电机控制
SV630P 伺服电机驱动器配置上电自动使能
步进电机控制
无刷直流电机控制
PID-C控制示例
BLDC 双环位置控制
RT-Thread中MPU6050使用详解及DMP姿态解算
ICM42688传感器万向节死锁现象
SimpleBGC 代码解读
机械回零策略
使用 STM32F407VET6 进行双电机 FOC 控制方案
FOC电流采集方案总结
本文档使用 MrDoc 发布
-
+
首页
BLDC 双环位置控制
非常好的问题!这种情况在实际应用中很常见,特别是在成本敏感或对性能要求不高的场合。没有电流采样电路,意味着你无法实现最内层、最快速的**电流环**控制。 但这并不意味位置控制无法实现,而是意味着控制系统的性能和稳定性会打折扣。我们可以将三环控制“降级”为双环控制(位置环+速度环),并通过一些策略来弥补没有电流环的缺陷。 ### 核心思想:从“三环”降级为“双环”,并用PWM电压控制近似替代扭矩控制 没有电流环后,系统的控制结构变为: **位置环(PID) → 速度环(PID) → PWM占空比(电压)** 此时,你控制的是施加在电机上的平均**电压**,而不是直接控制**电流**(扭矩)。因为电机扭矩与电流成正比(Te = Kt * Iq),而电流的大小是由(电压 - 反电动势)/ 绕组电阻 决定的。当负载、转速变化时,电流会随之波动,导致扭矩不直接受控。 --- ### 实现方法与步骤 #### 方法一:位置环 + 速度环(双PID控制) 这是最直接和最常见的替代方案。 1. **位置环(外环)**: * 输入:目标位置 - 编码器反馈的实际位置 = 位置误差。 * 计算:通过P或PI控制器,输出一个**目标速度**。 * `速度指令 = Kp_position * (位置误差)` 2. **速度环(内环)**: * 输入:位置环给出的目标速度 - 编码器估算的实际速度 = 速度误差。 * 计算:通过PI控制器,输出一个**PWM占空比**值。 * `PWM输出 = Kp_speed * (速度误差) + Ki_speed * ∫(速度误差) dt` * 这个PWM值直接对应要施加在电机上的电压。 **面临的挑战与补偿策略:** * **挑战1:负载变化时速度控制不稳**。 * 没有电流环,当负载突然增大时,电机会因为扭矩不足而迅速降速。速度环的积分项 `Ki_speed` 会检测到持续的速度误差,并逐渐增大PWM输出(积分累积),最终将速度拉回目标值。但这个调节过程比有电流环时**慢得多**,且可能出现较大超调或振荡。 * **对策**:必须将速度环的PID参数(尤其是积分增益 `Ki_speed`)设置得**相对保守**,避免过于激进导致系统振荡。这意味着要牺牲一些动态响应速度来换取稳定性。 * **挑战2:启动和过载时可能堵转烧毁电机**! * 这是最大的风险。有电流环时,驱动器可以限制最大电流,从而保护电机和电路。没有电流环,如果电机在启动时或运行中被卡住(堵转),速度误差会非常大,速度环会输出100%的PWM,导致电流急剧上升,远超电机和驱动器能承受的极限,最终烧毁。 * **对策**:必须在软件中实现**PWM软限幅**和**堵转检测**。 * **PWM软限幅**:无论速度环计算出多大的值,最终输出的PWM占空比都被限制在一个安全范围内,例如最大70%。这相当于一个简单的**电压限制**,能在一定程度上间接限制最大电流(虽然不精确)。 * **堵转检测**:持续监测位置反馈,如果在一定时间内位置没有变化,但PWM输出很高,则判断为堵转,立即切断PWM输出并报警。 #### 方法二:更简单的位置环PD控制 如果对速度的平滑性要求不高,只关心最终能否到达指定位置,可以采用更简单的纯位置环控制。 * **控制律**:`PWM输出 = Kp * (位置误差) + Kd * (速度反馈)` * `Kp`:比例增益,提供走向目标位置的基本动力。 * `Kd`:微分增益,它实际上起到了**阻尼**的作用。当电机接近目标位置时,微分项(负速度)会产生一个制动力,防止超调振荡。这里的“速度反馈”可以由位置微分得到。 这种方法结构简单,但参数整定困难,容易产生抖动,适用于负载非常轻且简单的场合。 --- ### 总结与关键点对比 | 特性 | 有电流环(理想方案) | 无电流环(本方案) | | :--- | :--- | :--- | | **控制结构** | 位置环 → 速度环 → **电流环** | 位置环 → **速度环** | | **控制对象** | 直接、精确控制**扭矩** | 控制**电压**,扭矩是间接、不精确的 | | **动态响应** | **快、精确**。负载变化时扭矩能瞬时补偿。 | **慢、迟钝**。负载变化后,需等速度变化了才响应。 | | **稳定性** | 高,内环保证了系统的快速收敛。 | 较低,需谨慎调节PID参数,易振荡。 | | **过载保护** | **有硬件级保护**,可精确设定最大电流。 | **无保护**,依赖软件的PWM限幅和堵转检测。 | | **适用场景** | 高性能伺服、机器人、无人机等。 | 对成本敏感、负载稳定、动态要求不高的场合,如简易机械臂、定位平台等。 | ### 实现步骤建议 1. **确保有高分辨率编码器**:这是实现精密位置控制的前提。 2. **先实现速度开环控制**:固定一个PWM值,让电机转起来,验证你能正确读取编码器并计算速度。 3. **整定速度环PID**: * 将位置环暂时断开,给一个固定的目标速度。 * 使用**试错法**(如Ziegler-Nichols方法)整定 `Kp_speed` 和 `Ki_speed`。原则是:**先调P增益,直到系统开始轻微振荡,然后加入较小的I增益以消除静差,最终将P增益适当减小以确保稳定**。 * **务必设置PWM输出限幅**(如±70%)。 4. **整定位置环P增益**: * 在稳定的速度环基础上,加入位置环。 * 通常一个纯比例控制器(`Kp_position`)就够了。从小到大逐渐增加 `Kp_position`,直到系统能快速响应且没有不可接受的超调或振荡。 5. **加入安全保护**: * 编写堵转检测程序。 * 设置软件PWM限幅。 **总而言之,没有电流采样电路,可以通过“位置环+速度环”的双环结构实现闭环位置控制,但你必须接受其动态性能的下降,并务必通过软件手段做好过流和堵转保护,这是成功应用的关键。** ### 参考文档 [PID-Library](https://github.com/Majid-Derhambakhsh/PID-Library)
qingkai
2025年11月25日 14:26
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码