MATLAB 控制系统设计与仿真 - 41

鲁棒控制的其他函数 - 回路成型函数 loopsyn

灵敏度问题由鲁棒控制工具箱中的loopsyn就可以直接求解,该函数采用H无穷回路成型算法设计控制器,函数的调用格式为:

Matlab 复制代码
[K,CL,gamma,info] = loopsyn(G,Gd) % G为受控对象模型
                                  % Gd为期望的回路传递函数
                                  % K为回路成型控制器模型
                                  % CL为在该控制器下的闭环系统模型
                                  % gamma为成型精度,当gamma=1时表示设计出精确的成型控制器
[K,CL,gamma,info] = loopsyn(G,Gd,alpha) % alpha为[0 1]之间的数,当alpha趋于0时,
                                        % 设计出的控制器具有较好的闭环控制效果
                                        % 当alpha趋于1时,控制器具有较好的抗干扰能力
[K,CL,gamma,info] = loopsyn(G,Gd,alpha,ord) %orde可以用来设定控制器的阶数

给定一下系统

选择两个回路的模型均为

试设计回路成型控制器。

实现的MATLAB代码如下:

Matlab 复制代码
clear all;clc;
g11=tf([0.806 0.264],[1 1.15 0.202]);
g12=tf([-15 -1.42],[1 12.8 13.6 2.36]);
g21=tf([1.95 2.12 0.49],[1 9.15 9.39 1.62]);
g22=tf([7.15 25.8 9.35],[1 20.8 116.4 111.6 18.8]);
G=[g11 g12; g21 g22];
s=tf('s');
Gd=500/(s+1); 
[K,CL,gamma]=loopsyn(G,Gd);
figure(1)
step(CL,0.1);
hold on
step(feedback(G*K,eye(2)),0.1)
hold off
legend('step reponse of CL','step response of G*K/(1+G*K)')
figure(2)
bodemag(G*K,[Gd 0; 0 Gd])

程序运行结果如下:

有结果可知,设计的效果一般,因为耦合度还是比较高的。

如果我们设计控制器时要求控制系统的系统优先于模型不确定性。可以做如下修改

Matlab 复制代码
[K,CL,gamma]=loopsyn(G,Gd,0.0001);
figure(1)
step(CL,0.1);
hold on
step(feedback(G*K,eye(2)),0.1)
hold off
legend('step reponse of CL','step response of G*K/(1+G*K)')
figure(2)
bodemag(G*K,[Gd 0; 0 Gd])

程序运行结果如下:

由上图可知,系统的耦合得到了大大改善,小伙伴们也可以自己画一下闭环系统的传递函数比较一下。但是在实际应用中,要考虑到系统的不确定性,否则系统会不稳定。

最后,欢迎大家有问题给我留言。

非常感谢小伙伴们的-点赞-收藏-加关注。

相关推荐
551只玄猫4 分钟前
【数学建模 matlab 实验报告10】插值
开发语言·数学建模·matlab·课程设计·插值·实验报告
I疯子7 分钟前
2026-04-08 打卡第 5 天
开发语言·windows·python
foundbug9997 分钟前
Matlab基于分布式模型预测控制的多固定翼无人机共识控制
分布式·matlab·无人机
wfbcg11 分钟前
每日算法练习:LeetCode 15. 三数之和 ✅
算法·leetcode·职场和发展
2301_8227032017 分钟前
开源鸿蒙跨平台Flutter开发:跨端图形渲染引擎的类型边界与命名空间陷阱:以多维雷达图绘制中的 dart:ui 及 StrokeJoin 异常为例
算法·flutter·ui·开源·图形渲染·harmonyos·鸿蒙
游乐码17 分钟前
c#ArrayList
开发语言·c#
y = xⁿ18 分钟前
【LeetCode Hot100】双指针:分离指针
算法·leetcode
学习永无止境@19 分钟前
Verilog中有符号数计算
图像处理·算法·fpga开发
C+++Python20 分钟前
Python MCP Server 最简实现
开发语言·python
MinterFusion26 分钟前
如何在openKylin 2.0 SP2中安装Qt(v0.2.2)(上)
开发语言·qt·软件开发·系统维护·明德融创·openkylin