ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

位置环PD与电磁弹簧(Id锁相)

位置环PD与电磁弹簧(Id锁相) 位置 PD 与“冻结角度 Id 锁相”的区别1. 区别需要先澄清一个很关键的概念位置环本身并不能天然保证电机不抖。如果只是做位置 P 控制I q K p e I_q K_p eIq​Kp​e它本质上仍然像一个“电磁弹簧”。真正能明显改善“重物拖动轮子后电机来回弹动”的是I q K p e − K d ω \boxed{I_q K_p e - K_d \omega}Iq​Kp​e−Kd​ω​也就是位置 P提供恢复力相当于“弹簧”速度 D提供阻尼相当于“减震器”因此可以这样理解冻结角度 Id 锁相 ≈ 电磁弹簧 \boxed{\text{冻结角度 Id 锁相} \approx \text{电磁弹簧}}冻结角度 Id锁相≈电磁弹簧​位置 P ≈ 可调电磁弹簧 \boxed{\text{位置 P} \approx \text{可调电磁弹簧}}位置P≈可调电磁弹簧​位置 PD ≈ 可调电磁弹簧 主动减震器 \boxed{\text{位置 PD} \approx \text{可调电磁弹簧 主动减震器}}位置PD≈可调电磁弹簧主动减震器​2. 为什么“冻结角度 Id 锁相”像弹簧当前停止后的锁相逻辑大致是encoderIsrActive0;FOC_THETAcapElec;setIqref(0);setIdref(brakeCurrent);此时FOC_THETA被固定定子磁场方向被固定转子停在这个磁场附近Id提供磁场锁定能力。可以把它想象成固定定子磁场 ↑ │ ● 锁定位置当外部重物继续滑行并重新拖动轮子时转子会偏离原来的磁场位置固定磁场 ↑ │ ●────────→ 转子被外力拖走 Δθ转子磁极与固定定子磁场产生夹角后就会产生一个把转子拉回去的转矩。在偏角较小时可以近似写成T ≈ − K Δ θ T \approx -K\Delta\thetaT≈−KΔθ机械弹簧的关系是F − K x F-KxF−Kx两者形式完全类似。所以冻结角度 Id 锁相本质上就是一种电磁扭簧。3. 为什么它会产生来回振荡假设重物在轮子上滑行之后重新与轮子产生摩擦把轮子向正方向拖了一下。此时转子偏离锁定位置目标位置 ●────────────→ ● 转子 ↑ 被外力拖走固定磁场产生反向恢复转矩←←←←← 恢复转矩于是转子开始向目标位置返回。问题出现在它回到目标位置的时候。当Δ θ 0 \Delta\theta 0Δθ0由近似关系T ≈ − K Δ θ T \approx -K\Delta\thetaT≈−KΔθ可以得到T ≈ 0 T \approx 0T≈0但是此时转子往往还有速度ω ≠ 0 \omega \neq 0ω0即转子正在向左运动 ────────────●──────────── ↑ 目标位置虽然已经到达目标位置但因为惯性仍然存在转子会继续冲过去。于是转子跑到另一侧转子 ●──────────── 目标位置 ●固定磁场又产生相反方向的恢复转矩→→→→→ 恢复转矩这样就形成右侧偏移 ↓ 磁场向左拉 ↓ 冲过中心 ↓ 左侧偏移 ↓ 磁场向右拉 ↓ 再次冲过中心 ↓ ……因此看到的现象就是轮子或重物在停止后仍然来回抖动。如果机械摩擦较大振荡最终会自然衰减。但如果转动惯量较大机械摩擦较小锁相磁场较强外部重物重新接触轮子的冲击较大这种振荡就可能很明显。4. 位置 P 控制其实也像弹簧假设停止时记录目标机械位置holdPositionencoderReadRawAngle();之后实时计算posErrorholdPosition-currentPosition;如果控制方式只是IqRefKp*posError;那么I q K p ( θ r e f − θ ) I_qK_p(\theta_{ref}-\theta)Iq​Kp​(θref​−θ)又因为电机转矩近似为T K t I q TK_t I_qTKt​Iq​所以T K t K p ( θ r e f − θ ) TK_tK_p(\theta_{ref}-\theta)TKt​Kp​(θref​−θ)即T − K Δ θ \boxed{T-K\Delta\theta}T−KΔθ​因此单纯的位置 P 环本质上仍然是一个刚度可调的电磁弹簧。所以不能简单理解为“锁相会像弹簧但位置环不会。”更准确的说法应该是锁相和位置 P 都具有弹簧特性位置 PD 额外加入了主动阻尼。5. 真正关键的是位置 PD 中的速度阻尼位置 PD 可以写成I q K p e − K d ω \boxed{I_qK_p e-K_d\omega}Iq​Kp​e−Kd​ω​其中( e ) (e)(e)位置误差( K p e ) (K_p e)(Kp​e)恢复位置的转矩( − K d ω ) (-K_d\omega)(−Kd​ω)阻止当前运动的阻尼转矩。由于T K t I q TK_tI_qTKt​Iq​所以T K t K p e − K t K d ω \boxed{ TK_tK_p e-K_tK_d\omega }TKt​Kp​e−Kt​Kd​ω​其中的− K t K d ω -K_tK_d\omega−Kt​Kd​ω始终与当前运动方向相反因此相当于一个主动的“减震器”。6. 用实际过程理解位置 PD假设重物把轮子向正方向拖动。此时轮子运动方向→ speed 0同时转子偏离目标位置。位置 P 项Kp * positionError会产生把转子拉回目标位置的力。速度 D 项-Kd * speed因为speed 0所以 D 项会产生←←←的反向转矩。也就是说重物拖轮子 →→→ 位置 P ←←← 速度 D ←←←此时二者一起阻止转子继续被拖走。7. 转子返回时D 项开始发挥真正的“减震”作用当恢复转矩把转子拉回来时轮子运动方向← speed 0此时位置误差可能仍然要求转子向左回到目标位置位置 P←←←但是因为ω 0 \omega 0ω0所以− K d ω 0 -K_d\omega 0−Kd​ω0速度 D 项变成速度 D→→→于是形成位置 P←←← 把转子拉回目标 速度 D→→→ 阻止它回得太快D 项不是阻止转子回位而是在转子回位过程中不断削弱它的速度。这就是“减震器”的作用。8. 到达目标位置时两种方案的区别最明显8.1 冻结角度 Id 锁相假设转子刚好回到目标位置Δ θ ≈ 0 \Delta\theta \approx 0Δθ≈0因此恢复转矩接近T ≈ 0 T\approx0T≈0但是可能仍然ω − 20 RPM \omega-20\text{ RPM}ω−20RPM此时位置已经到了 ↓ 恢复转矩接近 0 ↓ 转子仍然有速度 ↓ 依靠惯性冲过目标位置 ↓ 另一侧产生反向恢复转矩 ↓ 再次拉回来 ↓ 产生振荡8.2 位置 PD同样在目标位置e ≈ 0 e\approx0e≈0所以 P 项约等于K p e ≈ 0 K_pe\approx0Kp​e≈0但只要ω ≠ 0 \omega\neq0ω0D 项仍然存在− K d ω ≠ 0 -K_d\omega\neq0−Kd​ω0例如转子正向左运动speed 0D 项会产生→→→ 制动转矩因此即使位置误差已经很小它仍然会主动把剩余的运动速度压下来。理想情况下过程变成被外力拖开 ↓ 产生恢复力 ↓ 开始回位 ↓ 速度阻尼不断吸收运动能量 ↓ 接近目标时速度也越来越小 ↓ 位置 ≈ 目标 速度 ≈ 0 ↓ 平稳停住而不是被拖开 ↓ 加速回位 ↓ 高速冲过目标 ↓ 反方向拉回 ↓ 再次冲过 ↓ 来回抖动9. 从系统方程看区别冻结角度 Id 锁相在小角度附近可以近似理解为J θ ¨ B θ ˙ K θ 0 J\ddot{\theta}B\dot{\theta}K\theta0Jθ¨Bθ˙Kθ0其中(J)系统转动惯量(B)机械自身阻尼(K)电磁锁相等效刚度。如果系统自身的 (B) 很小那么它就很容易振荡。位置 PD 控制I q K p e − K d ω I_qK_pe-K_d\omegaIq​Kp​e−Kd​ω加入电机转矩关系T K t I q TK_tI_qTKt​Iq​系统可以近似写成J θ ¨ ( B K t K d ) θ ˙ K t K p θ 0 \boxed{ J\ddot{\theta} (BK_tK_d)\dot{\theta} K_tK_p\theta 0 }Jθ¨(BKt​Kd​)θ˙Kt​Kp​θ0​这里最关键的是K t K d \boxed{K_tK_d}Kt​Kd​​它相当于人为给机械系统增加了一份额外阻尼。因此(K_p) 决定“位置有多硬”(K_d) 决定“运动有多容易被压住”。10. 一个直观的机械类比冻结角度 Id 锁相可以想象成墙 ───── 弹簧 ───── 重物 /\/\/\外力把重物推开以后弹簧拉回来 ↓ 冲过中心 ↓ 弹簧反方向拉 ↓ 继续来回振动实际系统只能依靠摩擦电机损耗机构自身阻尼慢慢把能量耗掉。位置 PD可以想象成墙 ───── 弹簧 ───── 重物 └──── 减震器 ─────┘其中Kp 弹簧 Kd 减震器当重物运动越快时减震器产生的反向作用越大。因此振动能量能够更快被消耗掉。11. 为什么这个区别特别适合当前“重物滑行”的工况当前实际工况更接近电机已经停止 ↓ 重物还有惯性继续滑行 ↓ 之后重新与轮子产生摩擦 ↓ 突然把轮子拖动 ↓ 锁相电机被拉开 ↓ 固定磁场产生恢复力 ↓ 轮子弹回来 ↓ 重物与轮子再次相互作用 ↓ 产生抖动这种情况不是普通的静态负载而包含明显的冲击能量。如果只提高 Id 锁相电流相当于把弹簧做得更硬。结果有可能不是抖动变小而是外部稍微拖动 ↓ 电机产生更猛烈的反向力 ↓ 轮子把冲击重新传给重物 ↓ 重物再次滑动或弹动 ↓ 抖动反而更明显所以这种工况通常不应该单纯追求“锁得越硬越好”。更合理的目标是允许少量位置偏移同时快速吸收这次冲击带来的运动能量。这正是位置 PD 更擅长的事情。12. 对这种系统的调参方向一般不建议一开始就把 (K_p) 调得特别大。更适合的方向是先使用较小或中等的 (K_p)加入较明显的 (K_d)确保轮子被拖动后能平稳回位再逐步提高 (K_p)提高位置刚度对IqRef做合理限幅防止冲击时出现过大转矩。例如IqRefKp*posError-Kd*speed;之后if(IqRefHOLD_IQ_MAX){IqRefHOLD_IQ_MAX;}elseif(IqRef-HOLD_IQ_MAX){IqRef-HOLD_IQ_MAX;}
返回列表