当前位置: 首页 > news >正文

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

范数鲁棒控制器的设计

H_2, H_{\infty}鲁棒控制器的设计

根据双端子状态方程对象模型结构,H_{\infty}控制器设计的目标是找到一个控制器K(s),它能保证闭环系统的H_{\infty}范数限制在一个给定的小整数\gamma下,即

\left \| T_{y_1 u_1}(s)\right \|_{\infty}< \gamma

这时控制器的状态方程为:

\dot{x}(t)=A_fx(t)-ZLu(t) \\ y(t)=Kx(t) \\ A_f=A+\gamma ^{-2}B_1B_1^TX+B_2K+ZLC_2 \\ K=-B_2 ^TX,L=-YC_2^T,Z=(I-\gamma ^{-2}YX)^{-1}

其中X与Y分别为下面两个代数Riccati方程的解。

A^TX+XA+X(\gamma ^{-2}B_1B_1^Tx-B_2B_2^T)X+C_1C_1^T=0 \\ A^TY+YA+Y(\gamma ^{-2}C_1C_1^Tx-C_2C_2^T)X+B_1B_1^T=0

H_{\infty}控制器存在的前提条件为:

  1. 在增广矩阵中,D_{11}足够小,且满足D_{11}<\gamma
  2. 控制器Riccati方程的解X为正定矩阵
  3. 观测器Riccati方程的解Y为正定矩阵
  4. \lambda _{max}(XY)<\gamma ^2,即两个Riccati方程的积矩阵的所有特征值均小于\gamma ^2

在上述前提条件下搜索最小的\gamma值,则可设计出最优H_{\infty}控制器。

H_2, H_{\infty}鲁棒控制器的实现

对双端子模型G,鲁棒控制工具箱中相应的函数可以直接用于控制器的设计,这些函数的调用格式为:

[K,CL,gamma] = h2syn(G,nmeas,ncont); % nmeas:输出信号y的个数% ncont:控制信号u的个数% K 为优化的控制器状态空间方程% CL为w到z的传递函数% gamma为CL的2范数[K,CL,gamma] = hinfsyn(G,nmeas,ncont); % nmeas:输出信号y的个数% ncont:控制信号u的个数% K 为优化的控制器状态空间方程% CL为w到z的传递函数% gamma为CL的无穷范数

其中控制系统的双端子模型如下所示。

例如:

考虑一下对象模型:

G(s)=\frac{300}{s^2+1.5s+300} \\ W_1(s)=\frac{100(0.06s+1)^2}{(0.3s+1)^2},\\ W_2(s)=1; \\ W_3(s)=\frac{s^2}{3000}

试用MATLAB鲁棒控制函数设计H_2, H_{\infty}控制器。

首先利用MATLAB函数h2syn计算在优化H_2 norm下的控制器。

MATLAB代码如下:

clear all;clc;
num=300;
den=[1 1.5 300];
G=tf(num,den);
s=tf('s');
W1=100*(0.06*s+1)^2/(0.3*s+1)^2;
W2=1;
W3=s^2/3000;
Tss=augtf(G,W1,W2,W3);
[K,CL,gamma]=h2syn(Tss);
Gc=feedback(G,K);
step(feedback(G*tf(K),1))
grid on

程序运行结果为:

首先利用MATLAB函数hinfsyn计算在优化H_{\infty} norm下的控制器。

MATLAB代码如下:

clear all;clc;
num=300;
den=[1 1.5 300];
G=tf(num,den);
s=tf('s');
W1=100*(0.06*s+1)^2/(0.3*s+1)^2;
W2=1;
W3=s^2/3000;
Tss=augtf(G,W1,W2,W3);
[K,CL,gamma]=hinfsyn(Tss);
Gc=feedback(G,K);
step(feedback(G*tf(K),1))
grid on

程序运行结果为:

如果知道了控制器,大家可以

  1. 画出闭环系统的传递函数
  2. 引入模型不确定性,然后观察系统响应
  3. 观察输入信号曲线,进而判断控制器的可行性

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

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

相关文章:

  • Linux:命令行参数、环境变量
  • [经验总结]Linux双机双网卡Keepalived高可用配置及验证细节
  • 大数据赋能,全面提升‘企业服务平台’实际效能!
  • 浏览器的存储机制 - Storage
  • NO.97十六届蓝桥杯备战|数论板块-最大公约数和最小公倍数|欧几里得算法|秦九韶算法|小红的gcd(C++)
  • 爬虫学习——Scrapy
  • Java编程语言 1.打印数组元素 2.Student类 StudentTest类
  • 【go】什么是Go语言中的GC,作用是什么?调优,sync.Pool优化,逃逸分析演示
  • alertManager部署安装、告警规则配置详解及告警消息推送
  • 华为openEuler操作系统全解析:起源、特性与生态对比
  • 机器学习模型(2/4课时):损失函数
  • 深度学习中的卷积神经网络
  • 命令行工具kubectl
  • 密码学中的盐值是什么?
  • RAII资源管理理解
  • Python 中的数据类型有哪些
  • 每日算法-250418
  • 智能化印刷新时代:Modbus 转profinet网关的完美融合,提升生产效率与环保标准
  • LangChain4j-第一篇 |几分钟完成deepseek 在线集成
  • 数据资产登记导则详解 | 企业如何规范化登记与管理数据资产?
  • 淄博张店区国资公司挂牌转让所持“假国企”股权,转让底价为1元
  • 收藏家尤伦斯辞世,曾是中国当代艺术的推手与收藏者
  • 华夏幸福:累计未能如期偿还债务金额合计为227.91亿元
  • 泸州市长余先河已任四川省委统战部常务副部长
  • 纪念沈渭滨︱初五沈大大  浓浓师生情
  • 接下来上海很热闹,天后天团轮番来开演唱会