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

news2025/5/10 12:33:14

MATLAB鲁棒控制器分析

所谓鲁棒性是指控制系统在一定(结构,大小)的参数扰动下,维持某些性能的特征。

根据对性能的不同定义,可分为稳定鲁棒性(Robust stability)和性能鲁棒性(Robust performance)。

以闭环系统的鲁棒性作为目标设计得到的控制器称为鲁棒控制器。

鲁棒控制问题概述

鲁棒控制系统的一般结构如下所示:

其中P(s)为增广的对象模型,K(s)为控制器模型。从输入信号到输出信号的传递函数可以表示为

T_{y_1u_1}(t).

我们可以用MATLAB鲁棒工具箱中提供的函数augtf/augw来建立增广的双端子系统模型。

增广的双端子状态模型建立举例

MATLAB augtf/augw的调用格式如下:

P=augw(P,W1,W2,W3); % W1为控制器输入信号(误差信号)的加权函数
                     % W2为控制器输出信号的加权函数
                     % W3为输出信号的加权函数
                     %augw要求W1,W2,W3为正则模型
P=augtf(P,W1,W2,W3); % W1为控制器输入信号(误差信号)的加权函数
                     % W2为控制器输出信号的加权函数
                     % W3为输出信号的加权函数

带有加权函数的双端子系统模型如下所示:

增广矩阵为:

\begin{bmatrix} z\\ e \end{bmatrix}=\begin{bmatrix} W_1 & -W_1G\\ 0 &W_2 \\ 0& W_3G\\ I&-G \end{bmatrix} \begin{bmatrix} w\\ u \end{bmatrix}=P(s)\begin{bmatrix} w\\ u \end{bmatrix}

 例如:给定一下系统状态方程模型及其加权函数,请建立增广的对象模型。

\dot{x}(t)=\begin{bmatrix} 0 & 1 & 0 & 0\\ -5000 & -100/3 & 500 & 100/3\\ 0 & -1 & 0 & 1\\ 0 & 100/3 & -4 & -60 \end{bmatrix}x(t)+ \begin{bmatrix} 0\\ 25/3\\ 0\\ -1 \end{bmatrix}u(t) \\ y(t)=\begin{bmatrix} 0 & 0 & 1 & 0 \end{bmatrix}x(t)

W_1(s)=\frac{100}{s+1},W_2(s)=10,W_3(s)=\frac{s}{1000}

MATLAB代码如下:

clear all;clc;
A=[0 1 0 0;-5000 -100/3 500 100/3;0 -1 0 1;0 100/3 -4 -60];
B=[0;25/3;0;-1];
C=[0 0 1 0];
D=0;
G=ss(A,B,C,D);
s=tf('s');
W1=100/(s+1);
W2=10;
W3=s/1000;
P=augtf(G,W1,W2,W3)

运行结果如下:

P =
 
  A = 
           x1      x2      x3      x4      x5
   x1       0       1       0       0       0
   x2   -5000  -33.33     500   33.33       0
   x3       0      -1       0       1       0
   x4       0   33.33      -4     -60       0
   x5       0       0      -1       0      -1
 
  B = 
          u1     u2
   x1      0      0
   x2      0  8.333
   x3      0      0
   x4      0     -1
   x5      1      0
 
  C = 
           x1      x2      x3      x4      x5
   y1       0       0       0       0     100
   y2       0       0       0       0       0
   y3       0  -0.001       0   0.001       0
   y4       0       0      -1       0       0
 
  D = 
       u1  u2
   y1   0   0
   y2   0  10
   y3   0   0
   y4   1   0
 
Input groups:       
    Name    Channels
     U1        1    
     U2        2    
                    
Output groups:      
    Name    Channels
     Y1      1,2,3  
     Y2        4    
                    
Continuous-time state-space model.
Model Properties

然后通过MATLAB函数tf,

tf(P)

我们可以得到P(s)=\begin{bmatrix} W_1 & -W_1G\\ 0 &W_2 \\ 0& W_3G\\ I&-G \end{bmatrix}

ans =
 
  From input 1 to output...
        100
   1:  -----
       s + 1
 
   2:  0
 
   3:  0
 
   4:  1
 
  From input 2 to output...
                       933.3 s^2 + 2.222e04 s + 5e05
   1:  -------------------------------------------------------------
       s^5 + 94.33 s^4 + 6486 s^3 + 3.197e05 s^2 + 3.333e05 s + 2e04
 
   2:  10
 
        -0.009333 s^3 - 0.2222 s^2 - 5 s + 3.599e-17
   3:  ----------------------------------------------
       s^4 + 93.33 s^3 + 6393 s^2 + 3.133e05 s + 2e04
 
                 9.333 s^2 + 222.2 s + 5000
   4:  ----------------------------------------------
       s^4 + 93.33 s^3 + 6393 s^2 + 3.133e05 s + 2e04
 
Input groups:       
    Name    Channels
     U1        1    
     U2        2    
                    
Output groups:      
    Name    Channels
     Y1      1,2,3  
     Y2        4    
                    
Continuous-time transfer function.
Model Properties

当我们得到增广的系统模型后, 我们可以利用MATLAB鲁棒工具箱提供的函数例如:

H_2, H_{\infty},mixsyn,loopsyn,hinfsyn求取鲁棒控制器。

接下来会举例分析介绍。

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

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

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

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

相关文章

性能比拼: Nginx vs Caddy

本内容是对知名性能评测博主 Anton Putra Nginx vs Caddy Performance 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 引言 在本期视频中,我们将对比 Nginx 和 Caddy---一个用 Go 编写的 Web 服务器和反向代理。 在第一个测试中,我们会使用…

C++项目-衡码云判项目演示

衡码云判项目是什么呢?简单来说就是这是一个类似于牛客、力扣等在线OJ系统,用户在网页编写代码,点击提交后传递给后端云服务器,云服务器将用户的代码和测试用例进行合并编译,返回结果到网页。 项目最大的两个亮点&…

李宏毅NLP-6-seq2seqHMM

比较seq2seq和HMM Hidden Markov Model(HMM) 隐马尔可夫模型(HMM)在语音识别中的应用,具体内容如下: 整体流程: 左侧为语音信号(标记为 “speech”),其特征表示为 X X X。中间蓝色模…

百度暑期实习岗位超3000个,AI相关岗位占比87%,近屿智能携AIGC课程加速人才输出

今年3月,百度重磅发布3000暑期实习岗位,聚焦大模型、机器学习、自动驾驶等AI方向的岗位比例高达87%。此次实习岗位涉及技术研发、产品策划、专业服务、管理支持、政企解决方案等四大类别,覆盖超300个岗位细分方向。值得一提的是,百…

【技术派后端篇】基于 Redis 实现网站 PV/UV 数据统计

在网站的数据分析中,PV(Page View,页面浏览量)和 UV(Unique Visitor,独立访客数)是两个重要的指标,几乎每个网站都需要对其进行统计。市面上有很多成熟的统计产品,例如百…

JAVA:利用 Apache Tika 提取文件内容的技术指南

1、简述 Apache Tika 是一个强大的工具,用于从各种文件中提取内容和元数据。📄Tika 支持解析文档、📸图像、🎵音频、🎥视频文件以及其他多种格式,非常适合构建🔍搜索引擎、📂内容管理系统和📊数据分析工具。 样例代码:https://gitee.com/lhdxhl/springboot-…

【AI】SpringAI 第二弹:接入 DeepSeek 官方服务

一、接入 DeepSeek 官方服务 通过一个简单的案例演示接入 DeepSeek 实现简单的问答功能 1.添加依赖 <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId> </dependency> 2…

XMLXXE 安全无回显方案OOB 盲注DTD 外部实体黑白盒挖掘

# 详细点&#xff1a; XML 被设计为传输和存储数据&#xff0c; XML 文档结构包括 XML 声明、 DTD 文档类型定义&#xff08;可 选&#xff09;、文档元素&#xff0c;其焦点是数据的内容&#xff0c;其把数据从 HTML 分离&#xff0c;是独立于软件和硬件的 信息传输…

SQL之DML(查询语句:select、where)

&#x1f3af; 本文专栏&#xff1a;MySQL深入浅出 &#x1f680; 作者主页&#xff1a;小度爱学习 select查询语句 在开发中&#xff0c;查询语句是使用最多&#xff0c;也是CRUD中&#xff0c;复杂度最高的sql语句。 查询的语法结构 select *|字段1 [, 字段2 ……] from 表…

Oracle--用户管理

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 用户管理在 Oracle 数据库中至关重要。一个服务器通常只运行一个 Oracle 实例&#xff0c;而一个 Oracle 用户代表一个用户群&#xff0c;他们通过该用…

git忽略已跟踪的文件/指定文件

在项目开发中&#xff0c;有时候我们并不需要git跟踪所有文件&#xff0c;而是需要忽略掉某些指定的文件或文件夹&#xff0c;怎么操作呢&#xff1f;我们分两种情况讨论&#xff1a; 1. 要忽略的文件之前并未被git跟踪 这种情况常用的方法是在项目的根目录下创建和编辑.gitig…

RAG(检索增强生成)、ReAct(推理与行动) 和 多模态AI 的详细解析,包括三者的定义、工作原理、应用场景及协同关系

以下是 RAG&#xff08;检索增强生成&#xff09;、ReAct&#xff08;推理与行动&#xff09; 和 多模态AI 的详细解析&#xff0c;包括三者的定义、工作原理、应用场景及协同关系&#xff1a; 一、RAG&#xff08;Retrieval-Augmented Generation&#xff09; 1. 核心原理 …

6.QT-常用控件-QWidget|windowTitle|windowIcon|qrc机制|windowOpacity|cursor(C++)

windowTitle API说明windowTitle()获取到控件的窗⼝标题.setWindowTitle(const QString& title)设置控件的窗⼝标题. 注意!上述设置操作针对不同的widget可能会有不同的⾏为. 如果是顶层widget(独⽴窗⼝),这个操作才会有效. 如果是⼦widget,这个操作⽆任何效果. 代码⽰例…

Excel/WPS表格中图片链接转换成对应的实际图片

Excel 超链图变助手&#xff08;点击下载可免费试用&#xff09; 是一款将链接转换成实际图片&#xff0c;批量下载表格中所有图片的转换工具&#xff0c;无需安装&#xff0c;双击打开即可使用。 表格中链接如下图所示&#xff1a; 操作方法&#xff1a; 1、双击以下图标&a…

PostgreSQL基础

一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议&#xff0c;这个协议基本和MIT开源协议一样&#xff0c;说人话&#xff0c;就是你可以对PostgreSQL进行一些封装&a…

win11修改文件后缀名

一、问题描述 win11系统中&#xff0c;直接添加.py后缀后仍然是txt文本文件 二、处理方式&#xff1a; 点击上方三个小点点击“选项”按钮 点击“查看”取消“隐藏已知文件类型的扩展名”选项点击“应用” 此时&#xff0c;“.txt”文件后缀显示出来了。将txt删去&#xff0c…

Navicat连接数据库密码忘了如何解析

1、首先打开Navicat导出密码 打开文件---》导出链接----》选择连接并勾选导出密码 2、用编辑器打开复制密码 把password后面的密码复制出来 3、打开php编辑器&#xff0c;我这边因为平时不用就在网上找了一个在线编辑器 地址: https://www.w3cschool.cn/tryrun/runcode?la…

OpenStack Yoga版安装笔记(22)Swift笔记20250418

一、官方文档 https://docs.openstack.org/swift/yoga/admin/objectstorage-components.html#https://docs.openstack.org/swift/yoga/admin/objectstorage-components.html# 二、对象存储简介&#xff08;Introduction to Object Storage&#xff09; OpenStack 对象存储&a…

18、TimeDiff论文笔记

TimeDiff **1. 背景与动机****2. 扩散模型基础****3. TimeDiff 模型****3.1 前向扩散过程****3.2 后向去噪过程** 4、TimeDiff&#xff08;架构&#xff09;原理训练推理其他关键点解释 DDPM&#xff08;相关数学&#xff09;1、正态分布2、条件概率1. **与多个条件相关**&…

Linux环境下使用ADB命令做嵌入式开发

介绍 adb一般是给Android开发用的&#xff0c;但是换个思路也能做嵌入式Linux开发 安装 以Ubuntu20.04为例 sudo apt install android-tools-adb android-tools-fastboot安装成功可以查看adb版本号 命令 查看adb设备 登录shell 上传文件到设备指定目录 拉取设备上的文件到…