【Simulink系列】——控制系统仿真基础

声明:本系列博客参考有关专业书籍,截图均为自己实操,仅供交流学习!

一、控制系统基本概念

这里就不再介绍类似于开环系统、闭环系统等基本概念了!

1、数学模型

控制系统的数学模型是指动态数学模型,大致可以分为输入输出模型、状态空间模型、结构图模型三种。

①输入输出模型:微分方程模型、传递函数模型、频率特性模型(由传递函数s替换jw得到)。

②状态空间模型:是一种应用更为广泛的数学模型,可用于非线性系统、多变量系统,利用计算机方便获得数值响应。传递函数的状态空间不具唯一性(传递函数不可完全表示控制系统,只可表示处可控部分,而状态空间模型既可表示可控部分也可表示不可控部分。)

③结构图:串联、并联、反馈。

控制系统的性能指标:超调量、调节时间、峰值时间、上升时间。

2、分析方法

①时域分析法:拉普拉斯变换(传递函数)

  • 时域响应:单位脉冲、单位阶跃、单位斜坡、单位加速度、单位正弦响应等。
  • 稳定性分析:只要存在实部为正的特征根,系统就不稳定。Matlab的zpk和roots函数

②根轨迹分析法:系统某个参数(常为开环增益K)从0到无穷大变化,描绘所有根在S平面的轨迹。

  • 幅值条件和相角条件:同时满足这两个条件就是特征方程的根。
  • 根轨迹绘制:Matlab的rlocus函数,调节实轴虚轴比例尺相同用axis equal函数。

③频域分析法:频率特性反映的是系统对正弦输入信号的响应性能,可得定性或定量结论。

  • 频率响应曲线:奈奎斯特曲线(极坐标图)、伯德图(对数坐标图)、尼科尔斯图(对数幅相图)。尼科尔斯图是将伯德图的2张对数幅频特性和相频特性图在角频率w为参量情况下合成一张图。Matlab的nyquist、bode、nichols函数。
  • 频域性能指标:(静态特性)谐振峰值、谐振频率、频带、零频。
  • 稳定性分析:奈奎斯特盘踞(当w从负无穷到正无穷变化时,奈奎斯特曲线逆时针包围(-1,j0)的次数N等于系统位于右半平面的极点数P)
  • 稳定裕度:增益裕度、相角裕度。Matlab的margin函数。

④状态空间分析法:现代控制论,更全面更广泛!

  • 状态空间表示:u输入向量、x状态向量、y输出向量、A系统内部状态系数矩阵、B输入对状态的作用矩阵、C输出与状态的关系矩阵、D输入直接对输出的作用矩阵。Matlab的ss、tf2ss、zp2ss函数。
  • 标准型:同一系统、同一传递函数的状态空间模型各种各样,但独立的状态变量个数相同,说明不同状态空间模型之间存在联系——线性变换,变换矩阵P不唯一,所以状态空间模型不唯一。一般有可控标准型、可观标准型、对角标准型、约当标准型。Matlab的canon函数、jordan函数等。
  • 稳定性分析:Lyapunov第二方法。Matlab的lyap函数、lyap2函数可求解Lyapunov方程。

二、控制系统仿真模块

控制系统仿真所需模块大部分在Simulink标准仿真子模块库,另外一小部分在专家子模块库(工具箱)。

1、标准模块库

线性系统模块和非线性系统模块,在Continuous子模块库、Discontinuities子模块库、Discrete子模块库。

①Continuous子模块库

连续系统最常用的有状态空间、传递函数、零极点模块:

关键参数:系统矩阵A、输入矩阵B、输出矩阵C、反馈矩阵D;分子多项式num、分母多项式den;零点、极点、增益。

除了以上3个系统模型模块,控制器设计方面提供了单自由度PID控制器和二自由度PID控制器:

关键参数:控制器类型和形式、时域(连续or离散)、PID系数、滤波系数、初始条件、是否饱和及饱和程度;数据类型选项卡设置参数数据类型和最大最小值,默认为继承内部规则、无最值。

二自由度与单自由度的相似,但可以直接将系统的测量反馈信息与参考信号进行比较,还可指定P、I、D各项的权重,输出就是基于此权重。

②Discontinuities子模块库

提供模拟非线性环节的模块,间隙环节、死区环节、饱和环节:

关键参数:死区宽度、初始输出;死区起始时刻、死区终止时刻;饱和上下限、是否过零检测。

③Discrete子模块库

提供离散系统模块,Continuous子模块库中介绍的模块名前加Discrete即成为离散系统模块。除此还有单位延迟、零阶保持器,可以比较下两者对信号作用的不同之处:

若把求解器设置如下,仿真结果为

若求解器设置如下,仿真结果如下

单位延迟unit delay在每一秒处保持输入值,但会延迟一个采样周期。

2、工具箱

控制系统工具箱中只有LTI System一个模块。LTI即线性时不变,既能模拟连续LTI模型,也能模拟离散LTI模型,传递函数形式、零极点形式和状态空间描述均可使用。

LTI系统变量就是设置连续or离散,传递函数形式、零极点形or状态空间描述。初始状态仅在状态空间描述时使用。

①可直接在模块参数框指定系统变量,如G(s)=\frac{s+1}{s^{2}+5s+1},设置tf([1 1],[1 5 1])。

②也可在Matlab编辑区定义,然后输入变量名

G1=tf([1 1],[1 5 1])

三、简单仿真实例

1、传递函数/零极点模型

阶跃响应曲线

这个省略,连接后输入信号设置为step,仿真后scope图像即为阶跃响应。

Bode图&Nyquist图&Nichols图(稳定性判别)

G(s)=\frac{25(s^{2}+s+7)}{(s+25)(s^{2}+3s+7)}

num=25*[1 1 7];
den=conv([1 25],[1 3 7]);
G=tf(num,den);
figure(1)
bode(G)
figure(2)
nyquist(G)
axis equal
figure(3)
nichols(G)

2、状态空间模型

一级倒立摆的状态空间模型:

\begin{aligned} &\dot{x} =\begin{bmatrix}0&0&1&0\\0&0&0&1\\0&-0.524&-3.129&0\\0&-15.332&9.012&-0.562\end{bmatrix}\boldsymbol{x}+\begin{bmatrix}0\\0\\81.23\\-120.1\end{bmatrix}\boldsymbol{u} \\ &y=\begin{bmatrix}1&0&0&0\\0&1&0&0\end{bmatrix}x \end{aligned}

这是一种不稳定、能控能观系统,设计一个二次型状态反馈调节器对其控制,并绘制阶跃响应曲线。首先应该判别稳定性、能控性、能观性,可选用二次型性能指标中的系数矩阵的值为:

\boldsymbol{Q}=\begin{bmatrix}1&0&0&0\\0&0.01&0&0\\0&0&0.01&0\\0&0&0&0.1\end{bmatrix},\quad R=45,\quad N=0

稳定性判别

A=[0 0 1 0;0 0 0 1;0 -0.524 -3.129 0;0 -15.332 9.012 -0.562];
B=[0;0;81.23;-120.1];
C=[1 0 0 0;0 1 0 0];
D=0;
sys=ss(A,B,C,D);  %状态空间模型
E=eig(A) %根据特征值判断稳定性
OB=obsv(A,C);%计算能控性矩阵的秩
N_B=rank(OB)
OC=ctrb(A,B);%计算能观性矩阵的秩
N_C=rank(OC)
Q=diag([1 0.01 0.01 0.1]);
R=45;
N=0;
[K,S,e]=lqr(sys,Q,R,N);%计算反馈矩阵K
sysT=ss(A-B*K,B,C,D);%加入控制器后的系统
step(sysT) %绘制加入控制器后的系统的阶跃响应曲线

可看出原系统:不稳定、能控能观。

阶跃响应曲线

下面为加入反馈器后系统的阶跃响应,上面是位移曲线,下面为摆角曲线,最终都趋于稳定。

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/E2F88

OpenCV-Python专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zK1jV

AI底层逻辑专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zic0f

机器学习专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FNWM7 

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

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

相关文章

车辆伤害VR安全教育培训复用性强

VR工地伤害虚拟体验是一种新兴的培训方式,它利用虚拟现实技术为参与者提供身临其境的体验。与传统的培训方式相比,VR工地伤害虚拟体验具有许多优势。 首先,VR工地伤害虚拟体验能够模拟真实的工作环境和事故场景,让参与者在安全的环…

基于单片机的晾衣架控制系统设计

目 录 摘 要 I Abstract II 引 言 1 1 系统方案设计 3 1.1 系统方案论证 3 1.2 系统工作原理 4 2 硬件设计 5 2.1 单片机 5 2.2 按键设计 7 2.3 光线检测模块 8 2.4 雨滴检测模块 9 2.5 电压比较器 10 2.6 微动步进电动机 11 2.7 硬件电路原理图 12 3 系统主要软件设计 14 3.1…

买不到的数目c++

题目 输入样例: 4 7输出样例: 17 思路 一个字,猜。 一开始不知道怎么做的时候,想要暴力枚举对于特定的包装n, m,最大不能买到的数量maxValue是多少,然后观察性质做优化。那么怎么确定枚举结果是否正确呢…

主题乐园如何让新客变熟客,让游客变“留客”?

群硕跨越时间结识了一位爱讲故事的父亲,他汇集了一群幻想工程师,打算以故事为基础,建造一个梦幻的主题乐园。 这个乐园后来成为全球游客最多、收入最高的乐园之一,不仅在2023财年创下了近90亿(美元)的营收…

独家揭秘:AI大模型在实践中的应用!

在当今社会,人工智能技术被广泛应用于各行各业。其中,AI大模型作为人工智能领域的热门话题,正逐渐成为现实生活中的重要应用。AI大模型是一种基于深度学习和神经网络技术的计算机模型,能够通过大规模数据的训练和学习,…

SpringMVC-异步调用,拦截器与异常处理

1.异步调用 1.发送异步请求 <a href"javascript:void(0);" id"testAjax">访问controller</a> <script type"text/javascript" src"js/jquery-3.7.1.js"></script> <script type"text/javascript&qu…

C语言学习--练习2

目录 1.排序数组 2.多数元素 3.存在重复元素 4.最大间距 5.按奇偶排序数组 6.最小时间差 1.排序数组 /*** Note: The returned array must be malloced, assume caller calls free().*/ int cmp(const void*a,const void*b){return *(int*)a-*(int*)b; } int* sortArray(i…

C语言抽象代码(其五)

水博客 今天突发奇想&#xff0c;可不可以用中文写代码。 然后我发现可以用#define完成。 我们看代码 非常好理解就是用前面代替后面。比如&#xff1a; 主函数 代替 int main 非常简单

二叉搜索树题目:二叉搜索树迭代器

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉搜索树迭代器 出处&#xff1a;173. 二叉搜索树迭代器 难度 4 级 题目…

计讯物联智慧工业园区系统平台全面提升园区智能化水平

工业园区聚集着各种生产要素&#xff0c;是纺织、机械、家具等诸多产业集中的区域&#xff0c;更是资源消耗和污染物排放的集中地。根据某些工业园区环境调研&#xff0c;园区入驻企业从生产原料到生产制造过程大多带有有毒有害、易燃易爆的特性&#xff0c;再加上装置大型化、…

SpringBoot 热部署。

SpringBoot 热部署。 文章目录 SpringBoot 热部署。 pom.xml。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional…

LeetCode-第137题-只出现一次的数||

1.题目描述 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 2.样例描述 3.思路描述 先把数组排序&am…

M2TS转MP4怎么转?超快的方法~

M2TS格式的优点主要体现在对高清视频的完美支持&#xff0c;能够提供极致的视觉体验。然而&#xff0c;由于其相对较大的文件大小&#xff0c;有时可能不太适合网络传输。此外&#xff0c;部分不支持M2TS的播放设备可能导致一定的兼容性问题。 想要播放m2ts视频&#xff0c;可…

【kubernetes】关于k8s集群如何将pod调度到指定node节点?

目录 一、k8s的watch机制 二、scheduler的调度策略 Predicate&#xff08;预选策略&#xff09; 常见算法&#xff1a; priorities&#xff08;优选策略&#xff09;常见的算法有&#xff1a; 三、k8s的标签管理之增删改查 四、k8s的将pod调度到指定node的方法 方案一&am…

DFS回溯-经典全排列问题(力扣)

前言 对于全排列问题&#xff0c;常用的做法是设置一个vis数组来确定位置i上的数字是否被访问&#xff0c;因为是全排列问题&#xff0c;所以不同的顺序也是不一样的排列&#xff0c;因此每次都是从起点开始询问**(注意起点到底是0还是1)** 46全排列(最简单的模板) class So…

某资产管理系统打点过程中的免杀经历

上周&#xff0c;被扔过来单位内部的一个链接&#xff0c;让渗透一下&#xff0c;本以为三下五除二很快就能测完&#xff0c;没想到在对抗杀软时费了一番功夫&#xff0c;再加上杂七杂八的事儿&#xff0c;经过了一个星期才测完(&#xff03;&#xffe3;&#xff5e;&#xff…

C#知识点-21(初识数据库)

数据库与内存、文件的比较 内存&#xff1a; 优点&#xff1a;存取速度快 缺点&#xff1a;-容量小 -断电后&#xff0c;数据不会保存 文件&#xff1a; 优点&#xff1a;数据可以持久化保存 缺点&#xff1a;-读取速度慢…

mprpc分布式RPC网络通信框架

mprpc 项目介绍 该项目是一个基于muduo、Protobuf和Zookeeper实现的轻量级分布式RPC网络通信框架。 可以把任何单体架构系统的本地方法调用&#xff0c;重构成基于TCP网络通信的RPC远程方法调用&#xff0c;实现同一台机器的不同进程之间的服务调用&#xff0c;或者不同机器…

下载无水印抖音视频

在抖音看到某些视频想下载&#xff0c;却出现无法保存在本地【显示"作品暂时无法保存,链接已复制"】。或者下载的视频有水印。 而某些微信小程序下载可能需要付费或者有水印。其实我们可以直接使用电脑浏览器直接下载。 举个例子: 这是来自王道官方账号的一条视频链…

基于springboot的某大学外卖系统的实现(源码+论文)

文章目录 目录 文章目录 前言 一、功能设计 二、功能实现 1 后台登录 2管理员界面 3员工信息管理 4客户信息管理 三、库表设计 四、论文 前言 如今&#xff0c;信息化不断的高速发展&#xff0c;社会也跟着不断进步&#xff0c;现今的社会&#xff0c;各种工作都离不开信息化技…