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

news2025/4/21 17:04:22

多变量系统H_{\infty}控制器设计实例1

考虑如下给出的多变量系统模型:

G(s)=\begin{bmatrix} \frac{0.806s+0.264}{s^2+1.15s+0.202} &\frac{-15s-1.42}{s^3+12.8s^2+13.6s+2.36} \\ \frac{1.95s^2+2.12s+0.49}{s^3+9.15s^2+9.39s+1.62}&\frac{7.15s^2+25.8s+9.35}{s^4+20.8s^3+116.4s^2+111.6s+18.8} \end{bmatrix}

考虑混合灵敏度问题,引入加权矩阵:

W_1(s)=\begin{bmatrix} \frac{100}{s+0.5} & 0\\ 0 & \frac{100}{s+1} \end{bmatrix} \\ W_2=\begin{bmatrix} 10^{-5} & 0\\ 0 & 10^{-5} \end{bmatrix} \\ W_3(s)=\begin{bmatrix} \frac{s}{100} & 0\\ 0 & \frac{s}{200} \end{bmatrix}

设计H_{\infty}鲁棒控制器,并绘制闭环系统的阶跃响应曲线及开环系统的奇异值曲线。

MATLAB代码如下:

clear all;clc;
s=tf('s');
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];
W1=[100/(s+0.5) 0; 0 100/(s+1)];
W2=tf(1)*[10^-5 0; 0 10^-5];
W3=[s/100 0;0 s/200];
P=augtf(G,W1,W2,W3);
[K,CL,gamma]=hinfsyn(P);
figure(1)
step(feedback(G*K,eye(2)),0.1);
grid on;
figure(2)
sigma(G*K)
grid on;

程序运行结果如下:

从结果可以看出,得出的阶跃响应是很理想的,第1路阶跃输入作用于子系统时能得出很好的y1输出,而y2几乎为0.当第2路输入单独作用时效果也很好,然而这样设计出来的控制器阶次是相当高的。例如K(1,2)控制器的传递函数为:

>> tf(K(1,2))

ans =
 
                                                                                                                      
  9624 s^13 + 2.982e08 s^12 + 1.562e12 s^11 + 4.93e13 s^10 + 5.738e14 s^9 + 3.033e15 s^8 + 7.55e15 s^7 + 1.013e16 s^6 
                                                                                                                      
                                  + 7.884e15 s^5 + 3.663e15 s^4 + 1.014e15 s^3 + 1.618e14 s^2 + 1.355e13 s + 4.52e11  
                                                                                                                      
  --------------------------------------------------------------------------------------------------------------------
                                                                                                                     
   s^14 + 2.089e04 s^13 + 1.005e08 s^12 + 3.42e10 s^11 + 8.161e11 s^10 + 6.824e12 s^9 + 2.461e13 s^8 + 4.801e13 s^7  
                                                                                                                     
                   + 5.644e13 s^6 + 4.205e13 s^5 + 2.019e13 s^4 + 6.189e12 s^3 + 1.165e12 s^2 + 1.223e11 s + 5.466e09
                                                                                                                     
 
Continuous-time transfer function.
Model Properties

另外根据阶跃响应结果可知,y22的响应速度和y11相比显得很慢,因此需要加重y22的权重。

令:

W1=\begin{bmatrix} \frac{100} {(s+0.5)} & 0 \\ 0& \frac{1000}{s+1} \end{bmatrix}

重新设计最优H_{\infty}鲁棒控制器,MATLAB代码为:

W1=[100/(s+0.5) 0; 0 1000/(s+1)];
P=augtf(G,W1,W2,W3);
[K,CL,gamma]=hinfsyn(P);
figure(1)
step(feedback(G*K,eye(2)),0.1);
grid on;
figure(2)
sigma(G*K)
grid on;

程序运行结果为:

由上图可知,在新的控制器下,y22效果明显改善。

新的控制器传递函数为:

tf(K(1,2))

ans =
 
                                                                                                                    
  1.07e07 s^13 + 3.147e10 s^12 + 6.161e12 s^11 + 1.741e14 s^10 + 1.939e15 s^9 + 1.002e16 s^8 + 2.471e16 s^7         
                                                                                                                    
                    + 3.306e16 s^6 + 2.574e16 s^5 + 1.2e16 s^4 + 3.343e15 s^3 + 5.393e14 s^2 + 4.591e13 s + 1.571e12
                                                                                                                    
  ------------------------------------------------------------------------------------------------------------------
                                                                                                                    
  s^14 + 7.391e04 s^13 + 1.707e08 s^12 + 3.072e10 s^11 + 6.998e11 s^10 + 5.765e12 s^9 + 2.068e13 s^8 + 4.025e13 s^7 
                                                                                                                    
                  + 4.725e13 s^6 + 3.517e13 s^5 + 1.688e13 s^4 + 5.172e12 s^3 + 9.735e11 s^2 + 1.022e11 s + 4.565e09
                                                                                                                    
 
Continuous-time transfer function.
Model Properties

由于控制器的阶次较高,在实际应用中难以实现,因此可以考虑采用降阶算法降低控制器的阶次。可以采用闭环系统的控制器模型降阶的概念,降低控制器的阶次直接实现降阶。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[密码学实战]详解gmssl库与第三方工具兼容性问题及解决方案

[密码学实战]详解gmssl库与第三方工具兼容性问题及解决方案 引言 国密算法(SM2/SM3/SM4)在金融、政务等领域广泛应用,但开发者在集成gmssl库实现SM2签名时,常遇到与第三方工具(如OpenSSL、国密网关)验证不…

【k8s系列1】一主两从结构的环境准备

环境准备 虚拟机软件准备及安装,这里就不详细展开了,可以看文章:【一、虚拟机vmware安装】 linux环境准备及下载,下载镜像centOS7.9,以前也有写过这个步骤的文章,可以看:【二、安装centOS】 开始进入正题…

【Rust 精进之路之第2篇-初体验】安装、配置与 Hello Cargo:踏出 Rust 开发第一步

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 **作者:**码觉客 发布日期: 2025-04-20 引言:磨刀不误砍柴工,装备先行! 在上一篇文章中,我们一起探索了 Rust 诞生的缘由&…

腾讯旗下InstantCharacter框架正式开源 可高度个性化任何角色

目前基于学习的主题定制方法主要依赖于 U-Net 架构,但其泛化能力有限,图像质量也大打折扣。同时,基于优化的方法需要针对特定主题进行微调,这不可避免地会降低文本的可控性。为了应对这些挑战,我们提出了 “即时角色”…

详讲Linux下进程等待

3.进程等待 引言:什么是进程等待 想象有两个小伙伴,一个是 “大强”(父进程 ),一个是 “小强”(子进程 )。大强给小强安排了任务,比如去收集一些石头。 …

JBoss + WildFly 本地开发环境完全指南

JBoss WildFly 本地开发环境完全指南 本篇笔记主要实现在本地通过 docker 创建 JBoss 和 WildFly 服务器这一功能,基于红帽的禁制 EAP 版本的重新分发,所以我这里没办法放 JBoss EAP 的 zip 文件。WildFly 是免费开源的版本,可以在红帽官网找…

【网络原理】TCP协议如何实现可靠传输(确认应答和超时重传机制)

目录 一. TCP协议 二. 确定应答 三. 超时重传 一. TCP协议 1)端口号 源端口号:发送方端口号目的端口号:接收方端口号 16位(2字节)端口号,可以表示的范围(0~65535) 源端口和目的…

【国家能源集团生态协作平台-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

idea中导入从GitHub上克隆下来的springboot项目解决找不到主类的问题

第一步:删除目录下的.idea和target,然后用idea打开 第二步:如果有需要,idea更换jdk版本 原文链接:https://blog.csdn.net/m0_74036731/article/details/146779040 解决方法(idea中解决)&#…

【AI论文】CLIMB:基于聚类的迭代数据混合自举语言模型预训练

摘要:预训练数据集通常是从网络内容中收集的,缺乏固有的领域划分。 例如,像 Common Crawl 这样广泛使用的数据集并不包含明确的领域标签,而手动整理标记数据集(如 The Pile)则是一项劳动密集型工作。 因此&…

Linux操作系统--环境变量

目录 基本概念: 常见环境变量: 查看环境变量的方法: 测试PATH 测试HOME 和环境变量相关的命令 环境变量的组织方式:​编辑 通过代码如何获取环境变量 通过系统调用获取或设置环境变量 环境变量通常具有全局属性 基本概念…

Jenkins 多分支管道

如果您正在寻找一个基于拉取请求或分支的自动化 Jenkins 持续集成和交付 (CI/CD) 流水线,本指南将帮助您全面了解如何使用 Jenkins 多分支流水线实现它。 Jenkins 的多分支流水线是设计 CI/CD 工作流的最佳方式之一,因为它完全基于 git(源代…

C语言之图像文件的属性

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 图像文件属性提取系统设计与实现 目录 设计题目设计内容系统分析总体设计详细设计程序实现…

LeetCode hot 100—分割等和子集

题目 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 示例 1: 输入:nums [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。…

高等数学同步测试卷 同济7版 试卷部分 上 做题记录 上册期中同步测试卷 B卷

上册期中同步测试卷 B卷 一、单项选择题(本大题共5小题,每小题3分,总计15分) 1. 2. 3. 4. 5. 由f(2/n), n→∞可知 2/n→0, 即x→0. 二、填空题(本大题共5小题,每小题3分,总计15分) 6. 7. 8. 9. 10. 三、求解下列各题(本大题共5小…

【算法】快速排序、归并排序(非递归版)

目录 一、快速排序&#xff08;非递归&#xff09; 1.原理 2.实现 2.1 stack 2.2 partition(array,left,right) 2.3 pivot - 1 > left 二、归并排序&#xff08;非递归&#xff09; 1.原理 2.实现 2.1 gap 2.1.1 i 2*gap 2.1.2 gap * 2 2.1.3 gap < array.…

【实战中提升自己】内网安全部署之dot1x部署 本地与集成AD域的主流方式(附带MAC认证)

1 dot1x部署【用户名密码认证&#xff0c;也可以解决私接无线AP等功能】 说明&#xff1a;如果一个网络需要通过用户名认证才能访问内网&#xff0c;而认证失败只能访问外网与服务器&#xff0c;可以部署dot1x功能。它能实现的效果是&#xff0c;当内部用户输入正常的…

[matlab]南海地形眩晕图代码

[matlab]南海地形眩晕图代码 请ChatGPT帮写个南海地形眩晕图代码 图片 图片 代码 .rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: n…

Web安全和渗透测试--day6--sql注入--part 1

场景&#xff1a; win11家庭版&#xff0c;edge浏览器 &#xff0c; sqlin靶场 定义&#xff1a; SQL 注入&#xff08;SQL Injection&#xff09;是一种常见的网络安全攻击方式&#xff0c;攻击者通过在 Web 应用程序中输入恶意的 SQL 代码&#xff0c;绕过应用程序的安全机…

[SpringBoot]快速入门搭建springboot

默认有spring基础&#xff0c;不会一行代码一行代码那么细致地讲。 SpringBoot的作用 Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的。就像我们整个SSM框架时&#xff0c;就常常会碰到版本导致包名对不上、Bean非法参数类型的一系列问题&#xff08;原出…