机器人 - 关于MIT电机模式控制

目录

一、MIT电机模式简单介绍

1.1 简单介绍

1.2 MIT模式的控制参数

1.3 使用场景

二、调试时建议

2.1 调试

2.2 问题定位


一、MIT电机模式简单介绍

1.1 简单介绍

Mixed Integrated Torque为一种混合控制模式,在同一帧CAN数据里包含 位置、速度、扭矩三类的闭环指令。驱动器里面把位置环、速度环、前馈扭矩相加,得到一个参考电流,然后再交给电流环完成精准扭矩输出。


1.2 MIT模式的控制参数
参数含义取值范围(常见)说明
kp位置比例系数(刚度)0 ~ 500 (单位视驱动器而定)kp = 0 时位置环失效,仅靠速度/扭矩环工作
kd位置微分系数(阻尼)0 ~ 500kd = 0 时位置环会产生振荡,实际使用时需给一个非零值
pos (q)期望位置(单位:计数或角度)-12.5 ~ 12.5 rad(示例)位置环的目标值
vel (dq)期望速度(单位:rpm)-30 ~ 30 rpm(示例)速度环的目标值
torq (tau)前馈扭矩(单位:Nm)-T_MAX ~ T_MAX直接给定的扭矩,常用于 纯扭矩控制(kp = kd = 0)

1.3 使用场景
场景参数设置示例说明
匀速转动kp = 0,kd ≠ 0,pos = 0,vel = 目标速度,torq = 0只打开速度环,电机以恒定速度运行。
纯扭矩输出kp = 0,kd = 0,pos = 0,vel = 0,torq = 目标扭矩前馈扭矩直接驱动电流环,适用于 力矩控制(如抓取、阻尼)
点到点位置控制kp > 0,kd > 0,pos = 目标位置,vel = 0,torq = 0位置环+速度环共同作用,实现平滑定位。
位置‑速度‑扭矩混合kp > 0,kd > 0,pos = 目标位置,vel = 目标速度,torq = 前馈扭矩适用于 刚度‑阻尼‑外力补偿(如机械臂的阻抗控制)。

在使用位置控制时,kd不能为0,否则电机会振荡、失控;



二、调试时建议

2.1 调试
步骤操作要点
① 先打开位置环设定 kp > 0kd > 0,观察位置响应曲线,确保无明显超调。
② 调整阻尼增大 kd 可抑制振荡;若响应过慢,可适当降低 kp
③ 速度环在位置环基础上调节 vel(目标速度)或直接使用 kp=0、kd≠0 进行 纯速度控制
④ 前馈扭矩当负载较大时,适当加入 torque 前馈,以补偿静摩擦或外部扰动。
⑤ 监测电流通过驱动器的电流反馈(CAN 0x02 帧)检查是否出现 过流,必要时限制 torque 上限。

2.2 问题定位
问题可能原因检查方式
电机不转动kp=0、kd=0、torque=0(所有环失效)确认发送的参数中至少有一个非零值。
出现振荡kd 设为 0 或过小增大 kd,或在位置环加入适当的 kp
转速偏差大前馈扭矩未补偿负载在 torque 参数中加入正向前馈,或调大 kp
CAN 报文未到达报文 ID 错误或波特率不匹配用示波器或上位机抓包确认 ID 为 0x00+motor_id(位置帧)和 0x01+motor_id(扭矩帧),波特率与驱动器保持一致(默认 1 Mbps)。
电机过流保护torque 设定过大限制 torque 幅值在驱动器手册规定的 T_MAX 范围内。

Read more

基于Java+SSM+Django网上书城的开发与研究(源码+LW+调试文档+讲解等)/网上书城/开发/研究/在线书店/电子商务/网站开发/数据库设计/用户界面设计/购物网站/网络安全/支付系统

基于Java+SSM+Django网上书城的开发与研究(源码+LW+调试文档+讲解等)/网上书城/开发/研究/在线书店/电子商务/网站开发/数据库设计/用户界面设计/购物网站/网络安全/支付系统

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题大全✅ 2025-2026年最新500个热门微信小程序毕业设计选题大全✅ Java毕业设计最新1000套项目精品实战案例 微信小程序毕业设计最新500套项目精品案例 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 本文项目技术选型介绍 前端:Django、Python Web框架,后端语言Python 后端:Spring+SpringMVC+Mybatis 数据库:MySQL、SQLServer 开发工具:IDEA、Eclipse、Navicat等 ✌关于毕设项目技术实现问题讲解也可以给我留言咨询!!! 详细视频演示 请联系博主获取更详细的演示视频-源码编号2585 具体实现截图 框架介绍 前端技术介绍 Django 的模板系统在程序设计中提供了灵活的页面渲

By Ne0inhk
智慧养老院|基于java+ vue智慧养老院管理系统(源码+数据库+文档)

智慧养老院|基于java+ vue智慧养老院管理系统(源码+数据库+文档)

智慧养老院 目录 基于springboot + vue智慧养老院系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot + vue智慧养老院系统 一、前言 博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,ZEEKLOG平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️ 主要项目:小程序、SpringBoot、SSM、Vue、Html、Jsp、Nodejs等设计与开发。 🍅文末获取源码联系🍅 二、系统功能演示 三、技术选型 系统设计原则 通常,大多数用户使用系统的目标主要是为了获取必要信息或享受系统提供的服务。因此,为了优化用户体验并增加系统的使用效率,在设计系统界面时,

By Ne0inhk

基于 Java Socket 实现多人在线聊天系统(附完整源码)

基于 Java Socket 实现多人在线聊天系统(附完整源码)在网络编程学习中,Socket(套接字)是实现 TCP/IP 通信的核心载体。本文将手把手教你搭建一个支持注册、登录、群发消息、在线用户查询的多人在线聊天系统,涵盖客户端 / 服务端通信、Swing 图形界面、多线程处理等核心知识点。 一、系统整体架构 本系统采用经典的 C/S(客户端 - 服务端)架构,基于 TCP 协议实现可靠的字节流通信: * 服务端:单端口监听(9999),为每个客户端连接创建独立线程,维护在线用户列表、处理登录 / 注册 / 消息转发逻辑。 * 客户端:提供 Swing 图形界面,支持登录注册、群发消息、查询在线用户,通过多线程处理消息收发(避免

By Ne0inhk
java-(double,BigDecimal),sql-(decimal,nuermic)

java-(double,BigDecimal),sql-(decimal,nuermic)

最近在项目中数据的处理涉及到了金额,所以才查了这个,double平常使用可以但是不能用来计算金额,bigDecimal可以用来计算金额 但是我看项目中他们之前写的也是使用的double,所以我还是使用了double 如果对精度要求比较高的情况下还是使用bigDecimal比较好 java中的BigDecimal和double 1.double 1.1. 无法精确表示部分十进制小数 十进制小数转换为二进制时,部分数值会变成无限循环小数,而 double 只能存储有限位数的二进制,因此会截断并保留近似值。 最经典的例子: double a =0.1;double b =0.2;System.out.println(a + b);// 输出 0.30000000000000004(而非预期的 0.3) 原因:0.1 转二进制是 0.0001100110011...(无限循环),double 只能存储其近似值,叠加后误差被放大。 1.

By Ne0inhk