【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 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源文生图大模型Playground v2.5发布:超越SD、DALL·E 3和 Midjourney

前言 在AI技术迅速发展的今天,文生图模型成为了艺术创作、设计创新等领域的重要工具。Playground v2.5的发布,不仅在技术上取得了突破,更在开源文化的推广与实践上迈出了重要一步。 Huggingface模型下载:https://huggingface.co/…

【记录处理Vue项目中Video.js播放不了MP4视频Bug】

记录处理Vue项目中Video.js播放不了MP4视频Bug 一、项目场景:二、问题描述三、原因分析:四、解决方案: 一、项目场景: 在Vue项目中使用Video.js播放MP4视频。 二、问题描述 在项目中使用Video.js播放MP4视频。视频采集上来存在数…

使用java批量写入环境变量

环境需求 jdk版本&#xff1a;1.8 jna依赖&#xff1a; <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.10.0</version></dependency><dependency><groupId>net.java.…

Java - Spring MVC 实现跨域资源 CORS 请求

据我所知道的是有三种方式&#xff1a;Tomcat 配置、拦截器设置响应头和使用 Spring MVC 4.2。 设置 Tomcat 这种方式就是引用别人封装好的两个 jar 包&#xff0c;配置一下web.xml就行了。我也并不推荐&#xff0c;这里放两个我在网上找到的配置相关文章&#xff0c;感兴趣可…

更快更强,Claude 3全面超越GPT4,能归纳15万单词

ChatGPT4和Gemini Ultra被Claude 3 AI模型超越了&#xff1f; 3月4日周一&#xff0c;人工智能公司Anthropic推出了Claude 3系列AI模型和新型聊天机器人&#xff0c;其中包括Opus、Sonnet和Haiku三种模型&#xff0c;该公司声称&#xff0c;这是迄今为止它们开发的最快速、最强…

【论文阅读】DeepLab:语义图像分割与深度卷积网络,自然卷积,和完全连接的crf

【论文阅读】DeepLab:语义图像分割与深度卷积网络&#xff0c;自然卷积&#xff0c;和完全连接的crf 文章目录 【论文阅读】DeepLab:语义图像分割与深度卷积网络&#xff0c;自然卷积&#xff0c;和完全连接的crf一、介绍二、联系工作三、方法3.1 整体结构3.2 使用空间金字塔池…

Stable Diffusion 提示词语法(Prompt)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 大家好&#xff0c;我是水滴~~ 本篇文章主要讲述 Stable Diffusion 提示词语法&#xff0c;主要包括&#xff1a;提示词的概念、提示词的长度、权重、分步绘制、交替绘制、组合绘制等&#x…

ORA/GSA -- 学习记录

brief over-representation analysis(ORA),过表“达”分析&#xff0c;就是我们做多分组的RNAseq数据解析后会得到一些差异表达的gene&#xff0c;有些时候是单独拿出一个差异gene去解释表型&#xff0c;缺点是欠缺证据力度。有些人就把一些相关的差异gene放在一块儿解释&…

leetcode 热题 100_最大子数组和

题解一&#xff1a; 动态规划&#xff1a;这是一道经典的动态规划题。维护一个dp数组&#xff0c;dp[i]表示0~i组成的数组的最大子数组和。当数组长度为1时&#xff0c;最大和连续子数组是它本身&#xff0c;也就是dp[i]nums[i]。当数组长度每增加1时&#xff0c;最大和连续子数…

精准获客、优化体验,Xinstall数据自动分析全搞定

在移动互联网时代&#xff0c;App已经成为了我们生活中不可或缺的一部分。然而&#xff0c;对于App开发者来说&#xff0c;如何有效地评估渠道效果、精准获客以及优化用户体验&#xff0c;一直是一个令人头疼的问题。幸运的是&#xff0c;Xinstall作为一款一站式App全渠道统计服…

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

paper: https://arxiv.org/abs/2402.13616 code YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 一、引言部分二、问题分析2.1 信息瓶颈原理2.2 可逆函数 三、本文方法3.1 可编程梯度信息 四、实验4.1消融实验部分 今天的深度学习方法关注的…

Ajax、Axios、Vue、Element与其案例

目录 一.Ajax 二.Axios 三.Vue 四.Element 五.增删改查案例 一.依赖&#xff1a;数据库&#xff0c;mybatis&#xff0c;servlet&#xff0c;json-对象转换器 二.资源&#xff1a;elementvueaxios 三.pojo 四.mapper.xml与mapper接口 五.service 六.servlet 七.html页…

产品展示型wordpress外贸网站模板

孕婴产品wordpress外贸网站模板 吸奶器、待产包、孕妇枕头、护理垫、纸尿裤、孕妇装、孕婴产品wordpress外贸网站模板。 https://www.jianzhanpress.com/?p4112 床品毛巾wordpress独立站模板 床单、被套、毛巾、抱枕、靠垫、围巾、布艺、枕头、乳胶枕、四件套、浴巾wordpre…

请说明Vue中的异步组件加载

Vue中的异步组件加载是指当页面需要渲染某个组件时&#xff0c;可以在需要时再去加载这个组件&#xff0c;而不是在页面初始化的时候就将所有组件一次性加载进来。这种方式能够有效降低页面的初始加载时间&#xff0c;提升用户体验。 在Vue中&#xff0c;我们可以使用import函…

Dgraph 入门教程三(linux本地部署)

上一章中&#xff0c;我们用的官方的Clound操作的&#xff0c;怎么在本地部署一套Dgraph呢。这一章将做详细介绍。安装有好几种方式&#xff0c;最简单的就是联网部署。因为项目需要&#xff0c;这里先不介绍和测试线上部署了&#xff0c;只介绍离线部署。 1、下载安装包 Rel…

flask 数据库迁移报错 Error: No such command ‘db‘.

初学FLASK&#xff0c;使用pycharm的terminal 启动&#xff0c;实现数据库迁移 文件结构 项目启动文件不在一级目录pycharm>terminal启动 由于自己初入 python flask 很多东西并不懂&#xff0c;只能依葫芦画瓢&#xff0c;使用如下命令,输入完第一行命令执行没有任何错误…

Android Termux系统安装openssh实现公网使用SFTP远程访问

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…

力扣写法题:最后一个单词的长度

如果最后一个单词后有空格可以采用以下的写 int lengthOfLastWord(char* s) {int count0,flag0;int i(strlen(s)-1);while(i>0){if(s[i]! ) flag1;if(flag1) {if(s[i] ) break;else count;}i--;}return count; }

IAR全面支持小华全系芯片,强化工控及汽车MCU生态圈

IAR Embedded Workbench for Arm已全面支持小华半导体系列芯片&#xff0c;加速高端工控MCU和车用MCU应用的安全开发 嵌入式开发软件和服务的全球领导者IAR与小华半导体有限公司&#xff08;以下简称“小华半导体”&#xff09;联合宣布&#xff0c;IAR Embedded Workbench fo…

STM32CubeMX学习笔记14 ---SPI总线

1. 简介 1.1 SPI总线介绍 SPI 是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola(摩托罗拉)首先在其MC68HCXX系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在…