离散状态观测器
-伺服实用A川伺服--模型追踪控制末端低频振动抑制-pmsm 完全自己搭建原理清晰效果可靠可实际验证 包含: 1详细原理性推导 2仿真基于离散化模型以及离散化设计 3包含源代码作为参考 41.5延时补偿伺服系统里最让人头疼的莫过于末端振动问题。今天咱们聊聊怎么用模型追踪控制Model Tracking Control给PMSM电机装个减震器直接从原理推导到代码实现手把手整点硬核的。先看这张结构图脑补控制器和被控对象中间插了个理想模型目标就是让实际输出紧紧咬住模型输出。这招妙在既能保证动态响应又能主动抑制外部干扰引起的振动。先扒开PMSM的数学底裤永磁同步电机在d-q轴下的电压方程别慌咱们只关注核心部分% 简化后的机械运动方程 J*dw/dt Te - Tl - B*w Te 1.5*p*(ψf*iq (Ld-Lq)*id*iq) % 电磁转矩实际调试中发现负载转矩Tl的低频波动是振动主因。这时候传统的PID就像用苍蝇拍打大象——使不上劲。上硬菜——模型追踪控制核心思想是把系统拆成两个部分处理名义模型理想情况下的系统扰动观测器专门抓各种幺蛾子离散化设计时特别注意采样周期T的选择举个仿真代码片段def disturbance_observer(x_prev, u, y, Ts): A_d np.array([[1 - Ts*B/J, Ts/J], [0, 1]]) # 离散化后的系统矩阵 L np.array([0.5, 0.3]) # 观测器增益调试重点 x_est A_d x_prev Ts * np.array([u/J, 0]) y_est x_est[0] x_corrected x_est L * (y - y_est) return x_corrected这里L的选取直接决定观测器性能经验是让极点比系统快2-3倍但别太猛否则噪声放大。-伺服实用A川伺服--模型追踪控制末端低频振动抑制-pmsm 完全自己搭建原理清晰效果可靠可实际验证 包含: 1详细原理性推导 2仿真基于离散化模型以及离散化设计 3包含源代码作为参考 41.5延时补偿延时补偿的骚操作实际系统总有1.5个采样周期的延迟传感器计算代码里这么处理// 环形缓冲区实现延时补偿 float buffer[3] {0}; void delay_compensation(float new_val) { static int idx 0; buffer[idx] new_val; idx (idx 1) % 3; float compensated 1.5*buffer[(idx1)%3] - 0.5*buffer[(idx2)%3]; return compensated; }这其实是个线性预测器用前两个历史值预测当前状态。实测能把相位滞后从54度压到12度左右。给个仿真效果对比没加控制时振动幅度0.8rad/s²加上追踪控制后直接干到0.05以内。关键看这段控制律实现def control_law(theta_ref, theta_actual, w_actual, Tl_est): Kp 12.0 # 刚度系数 Kd 0.5 # 阻尼系数 u Kp*(theta_ref - theta_actual) - Kd*w_actual Tl_est return np.clip(u, -48, 48) # 电压限幅这里Tl_est就是观测器抓到的负载扰动直接前馈补偿。注意clip防止积分饱和别问怎么知道的——都是炸过管子的教训。整套方案在STM32G4系列上跑通关键中断服务程序里这两行最要命__HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_1, duty_cycle); __HAL_TIM_SET_COUNTER(htim1, 0); // 必须重置计数器保证同步忘了重置计数器会导致相位乱飘这个坑足足卡了三天。最后说句实在话理论模型再漂亮也得在示波器上见真章。调参时建议先开环扫频找到共振点再针对性地整定观测器带宽。代码仓库里放了完整的motorcontrolv2.1分支里边有血泪注释版自取不谢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2462209.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!