H∞鲁棒控制入门案例(Matlab + Simulink)
H∞鲁棒控制入门案例Matlab Simulink✅ 第一步Matlab 中设计 H∞ 控制器matlab编辑1%% H∞鲁棒控制入门案例 - Matlab部分2clear; clc; close all;34% 1. 定义被控对象二阶系统5% G(s) 1 / (s^2 2ζωn s ωn^2)6wn 1; % 自然频率7zeta 0.5; % 阻尼比8G tf(1, [1 2zetawn wn^2]);910% 2. 定义加权函数用于性能与鲁棒性权衡11% W1: 灵敏度加权低频性能好12W1 tf([1 2], [1 0.01]);13% W2: 控制输入加权限制控制量14W2 tf([0.1], [1 1]);15% W3: 补灵敏度加权高频鲁棒性16W3 tf([1 0.1], [0.01 1]);1718% 3. 构建广义被控对象 P(s)19% 使用 augw 函数构建标准 H∞ 问题结构20P augw(G, W1, W2, W3);2122% 4. 设计 H∞ 控制器23[K, CL, gamma] hinfsyn(P, 1, 1, [0.1 10], 0.001);24% 参数说明25% - 第一个1: 测量输出数量26% - 第二个1: 控制输入数量27% - [0.1 10]: gamma搜索范围28% - 0.001: 精度2930fprintf(‘H∞范数上界 gamma %.4f\n’, gamma);3132% 5. 查看控制器33disp(‘H∞控制器传递函数:’);34tf(K)3536% 6. 闭环系统分析37T feedback(G*K, 1); % 闭环传递函数38figure;39bode(T); grid on;40title(‘闭环系统 Bode 图’);4142% 7. 阶跃响应43figure;44step(T); grid on;45title(‘闭环系统阶跃响应’);✅ 第二步Simulink 模型搭建 模型结构说明Reference Input阶跃信号期望轨迹Disturbance Input正弦或随机扰动Plant被控对象 G(s)ControllerH∞ 控制器 K(s)Scope观察输出、控制量、误差 搭建步骤打开 Simulinksimulink 命令新建模型 Hinf_Control_Example.slx添加以下模块Step参考输入Sine Wave 或 Band-Limited White Noise扰动Sum两个一个用于误差 e r - y一个用于叠加扰动Transfer Fcn被控对象 GLTI System 或 Transfer Fcn控制器 K从 Matlab 工作区导入Scope观察 y, u, e连接方式text编辑1Step → () Sum1 → K → () Sum2 → G → y2 ↑- | ↑3 | | |4 (-) Disturbance |5 |_____________________|Sum1: 计算误差 e r - ySum2: 控制量 u 扰动 d 作为植物输入从 Matlab 工作区导入控制器双击 LTI System 模块设置 LTI system variable 为 K或者将 K 转为传递函数填入 Transfer Fcn设置仿真时间0 ~ 20 秒运行仿真观察 Scope 中的响应 预期结果系统能快速跟踪阶跃信号外部扰动被有效抑制控制量平滑无剧烈震荡闭环系统稳定相位裕度充足 提示与扩展若未安装 Robust Control Toolbox需先安装add-on 管理器可尝试修改加权函数 W1, W2, W3 观察性能变化可扩展至多变量系统MIMO可加入参数不确定性如 ureal进行 μ 合成 文件结构建议text编辑
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2426683.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!