基于模型参考的滑模控制/MRSMC 基于模型参考的滑模控制(MRSMC, Model Refe...
基于模型参考的滑模控制/MRSMC 基于模型参考的滑模控制MRSMC, Model Reference Sliding Mode Control是一种结合了模型参考控制和滑模控制优点的控制策略。 它通常用于系统的鲁棒控制尤其是在面对模型不确定性和外部扰动时。 在simulink中以模块图形式搭建被控对象是一个很简单的关系式便于学习和理解。 附说明文档默认发送2023b版本的模型文件直接开撸今天咱们聊聊怎么在Simulink里玩转基于模型参考的滑模控制MRSMC。这个控制方法就像给系统装了个智能防抖仪甭管模型参数怎么飘或者突然来个外部干扰它都能死死咬住预设的轨迹。先看个实战场景假设咱们要控制一个二阶系统真实对象模型是dx/dt -3x 8u d(t)这里d(t)代表未知扰动。目标是要让系统输出紧紧跟随参考模型dxm/dt -5xm 5r的轨迹。Step 1参考模型搭建在Simulink里直接拖个Transfer Fcn模块参数设置为[5]/(s5)。这里分子分母的设置直接对应微分方程系数调试时可以修改分母的5这个数来调整响应速度。% 参考模型传递函数 num_m [5]; den_m [1 5];Step 2滑模面设计基于模型参考的滑模控制/MRSMC 基于模型参考的滑模控制MRSMC, Model Reference Sliding Mode Control是一种结合了模型参考控制和滑模控制优点的控制策略。 它通常用于系统的鲁棒控制尤其是在面对模型不确定性和外部扰动时。 在simulink中以模块图形式搭建被控对象是一个很简单的关系式便于学习和理解。 附说明文档默认发送2023b版本的模型文件核心公式s e λe这里e是跟踪误差。取λ3时对应的滑模面模块可以用这个代码实现% 滑模面计算 function s sliding_surface(e, de, lambda) s de lambda * e; end在Simulink里用MATLAB Function模块直接敲入这行代码就行。注意给误差e和误差导数de做好信号连线实操时建议用Derivative模块获取误差导数。Step 3控制律设计重点来了控制量计算公式u u_eq - K*sat(s/Φ)等效控制部分u_eq需要根据模型计算。对于咱们的案例% 等效控制计算 u_eq (3*x_plant 5*e)/8; // 注意这里的系数来自对象模型和参考模型饱和函数sat()比符号函数sign()更能抑制抖振。在Simulink里用Saturation模块设置边界层Φ0.2后面接个Gain模块调K值。新手常见坑K值太小会导致抗扰能力不足建议从5开始往上调。模块连线秘籍误差信号用Sum模块做参考模型输出减实际输出滑模面输出接个Scope看收敛情况扰动d(t)用Signal Generator模拟突发方波干扰超带劲控制量记得加Clamp模块限制执行器物理范围调参骚操作当看到系统响应有高频抖颤把边界层Φ从0.2放大到0.5响应速度不够把滑模面参数λ从3提到6试试遇到持续震荡在控制律里加个积分项系数给0.05左右实测效果给系统突然加个2N的阶跃扰动普通PID控制误差会飙到0.3用MRSMC误差不超过0.08而且1秒内就收敛回来。把参考输入从阶跃信号换成正弦波跟踪曲线几乎重合这时候切到XY模式看相轨迹那叫一个丝滑。避坑指南对象模型参数不确定时u_eq里的系数改用在线估计器更新实际设备测试前一定要在控制量输出端加Rate Limiter防执行器过冲复杂系统建议把滑模面改成积分型s e λ1e λ2∫e dt最后来个硬核操作在模型里加个Matlab System模块实时显示李雅普诺夫函数值的变化这样就能直观看到系统是不是真的全局稳定。代码模板甩这儿classdef LyapunovMonitor matlab.System methods(Access protected) function stepImpl(obj, s) V 0.5 * s^2; fprintf(Lyapunov值:%.4f\n, V); end end end玩转MRSMC的关键就是敢折腾参数多看看相轨迹和Lyapunov函数的变化趋势。工程应用时别死磕理论证明先调出效果再回头补数学推导更带劲
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2460143.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!