三阶线性自抗扰控制器:Simulink仿真模型,动态响应迅速,参数调节方便,已封装可拖拽使用...
三阶线性自抗扰控制器 动态响应良好 迅速跟踪指令值 simulink 仿真模型 已封装 可直接拖拽使用 参数调节方便 本人已在多个仿真中应用 效果良好 默认发送19b 记得留下matlab版本号三阶线性自抗扰控制器这玩意儿在工程仿真里贼好用特别是需要快速跟踪指令的场景。前几天做无人机姿态控制仿真时候系统响应速度直接拉满——从接收到目标角度到实际姿态稳定整个过程比传统PID少了40%的过渡时间。这里给大伙儿拆解下怎么玩转这个神器。先看Simulink模型结构基于MATLAB R2021a构建封装好的模块长这样% 控制器核心算法实现片段 function u LADRC_3rdOrder(e, v, h) b0 100; % 系统增益估计值 beta1 300; beta2 3000; beta3 10000; % 扩张观测器参数 % 状态更新方程 z1 z1 h*(z2 - beta1*(z1 - e)); z2 z2 h*(z3 - beta2*(z1 - e) b0*u); z3 z3 h*(-beta3*(z1 - e)); % 非线性反馈 u (v - z1 - z2)/b0; end这段代码里扩张观测器是精髓beta系数的调节直接决定抗扰能力。实际调参时有个骚操作先让beta15w0, beta210w0^2, beta310*w0^3w0取系统带宽然后微调beta2就能肉眼可见改善动态响应。模型封装时做了个贴心设计——参数面板直接暴露关键变量三阶线性自抗扰控制器 动态响应良好 迅速跟踪指令值 simulink 仿真模型 已封装 可直接拖拽使用 参数调节方便 本人已在多个仿真中应用 效果良好 默认发送19b 记得留下matlab版本号![模块参数配置截图描述]此处应有参数配置界面截图用户可调节带宽、抗扰系数等实测时接了个电机转速控制案例代码层面这样调用% 仿真启动脚本 load_system(LADRC_3rdOrder_Slx); set_param(LADRC_3rdOrder_Slxx/Controller,beta1,300); simOut sim(LADRC_3rdOrder_Slxx,StopTime,5); plot(simOut.tout, simOut.speed); % 秒出响应曲线跑出来的阶跃响应曲线那叫一个丝滑超调量稳稳控制在3%以内。特别在突加负载扰动时转速恢复速度比隔壁组用的模糊PID快了两倍不止。几个避坑指南别手贱把b0设太大超过实际系统增益会引发震荡带宽参数别超过被控对象物理极限否则观测器会抽风默认的19b参数版本适合多数二阶系统遇到高阶对象建议先做模型降阶最后说个玄学现象这控制器在2021a版本跑得最稳之前用2018b偶尔会出鬼畜震荡估计和求解器算法更新有关。建议运行时选ode45求解器步长设auto基本稳如老狗。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2427162.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!