永磁同步电机新型滑模扰动观测器控制(NSMDO)+无差拍电流预测控制(DBCC) [1]速度环...
永磁同步电机新型滑模扰动观测器控制NSMDO无差拍电流预测控制DBCC [1]速度环采用NSMDO [2]电流环采用DBCC 本系列仿真所使用的电机参数一致。永磁同步电机控制总绕不开抗干扰和动态响应这两个老问题最近在实验室折腾了新型滑模扰动观测器控制NSMDO和无差拍电流预测控制DBCC的组合方案。实测发现这俩兄弟配合起来效果有点意思特别是应对突加负载时的小暴脾气。速度环让滑模观测器长出直觉传统滑模观测器容易抖得像踩了缝纫机NSMDO的关键在于给切换函数动了点小手术。这里有个核心代码片段function d_hat NSMDO_Observer(i_q, w_m, K) persistent z_prev; if isempty(z_prev) z_prev 0; end e w_m - (i_q * K.mt K.sigma*sign(z_prev)); % 新型切换项 z z_prev K.Ts*(K.alpha*e K.beta*abs(e)^0.5*sign(e)); d_hat z K.eta*sat(e/K.epsilon); % 饱和函数柔化 z_prev z; end这段代码里的门道在sign(z_prev)和abs(e)^0.5这两个操作——前者避免了传统方法对转速微分信号的依赖后者则让指数项在误差大时增强跟踪误差小时减弱抖振。实际调试发现eta参数对观测精度影响最大通常取电机额定转矩的10%~15%效果最稳。电流环把时间切成豆腐块永磁同步电机新型滑模扰动观测器控制NSMDO无差拍电流预测控制DBCC [1]速度环采用NSMDO [2]电流环采用DBCC 本系列仿真所使用的电机参数一致。无差拍控制的精髓在于预测未来这里展示dq轴电流预测的关键步骤def deadbeat_control(i_dq, v_dq, Ld, Lq, R, Ts): A np.array([[-R/Ld, 0], [0, -R/Lq]]) B np.array([[1/Ld, 0], [0, 1/Lq]]) Ad expm(A*Ts) # 状态矩阵指数 Bd np.linalg.inv(A) (Ad - np.eye(2)) B # 下一拍电流预测 i_dq_next Ad i_dq Bd v_dq # 电压求解 v_ctrl np.linalg.pinv(Bd) (i_ref - Ad i_dq) return np.clip(v_ctrl, -Vdc/2, Vdc/2) # 考虑逆变器电压限制这个实现里有个坑点当Ld和Lq差异较大时矩阵求逆可能引发数值不稳定。解决方法是在Bd计算时加入正则化项或者改用QR分解。实际跑仿真时把Ts控制在50μs以内才能保证预测精度否则电流纹波会教做人。联调时的火花时刻把两个环级联后最带感的瞬间是突加5N·m负载时的波形对比。传统PI控制下转速会跌个50rpm左右而NSMDODBCC组合最大跌落不到20rpm且恢复时间缩短了60%。不过代价是开关频率会有所上升得在IGBT耐受性和控制性能间找平衡点。有个有趣的发现当把滑模观测器的输出作为前馈补偿注入电流环时q轴电流的超调量减少了约15%。这说明两种控制方法存在协同效应可能和扰动观测的相位超前特性有关。不过这个玩法需要精确匹配参数否则容易翻车。代码示例中的参数单位电感mH电阻Ω转速rpm时间s电压V电流A
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438356.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!