基于胡寿松主编的《自动控制原理》(第七版)附录的MATLAB控制系统简单教程,可直接阅读教材附录,内容完全一样,没有大改动。



9.Simulink建模与仿真

9.1 综合运用1:延迟系统的仿真

ExampleB-12: 设系统如下图所示,绘制该系统的单位阶跃响应曲线。

解:

1.MATLAB交互命令行中输入:simulink打开仿真环境;
2.单击"Blank Model"新建模型;
3.打开"Library Browser"可见常见的仿真模块;
4.常见环节:Continuous:连续环节;Discontinuities:非线性环节;Discrete:离散环节;Math Operations:数学运算环节;Sinks:输出方式;Sources:输入源;
5.从对应模型库中拖曳相应的环节到界面;

具体步骤:
1.建立开环系统模型:
选择"Continuous(连续环节)"中的"Transfer Fcn(传递函数)"模块拖曳到模型窗口,双击模块即可修改参数;2.添加延迟环节:
选择"Continuous(连续环节)"中的"Transport Delay(传递函数延迟环节)"模块拖曳到模型窗口,双击模块修改参数;3.确立负反馈信号输入:
选择"Math Operations(数学运算环节)"中的"Sum(综合)"模块拖曳到模型窗口,把"List of sign"的编辑框的"++"修改为"+-"(负反馈);4.添加增益环节:
选择"Math Operations(数学运算环节)"中的"Gain(增益)"模块拖曳到模型窗口,双击模块修改参数,并选择"Format|Flip Block"对模块进行翻转;5.确定输入信号:
选择"Source(输入源)"中的"Step(阶跃输入信号)"模块拖曳到模型窗口,双击模块修改参数,将"Step time(阶跃时刻)"修改为0;6.确定仿真输出方式:
选择"Sinks(输出方式)"中的"Scope(示波器)"模块拖曳到模型窗口;7.模块连接;8.完整模型如下图所示,双击示波器可显示结果;


9.2 综合运用2:复杂系统仿真

ExampleB-10:

设线性定常系统的状态方程为:
x˙(t)=[−2−2.5−0.5100010]x(t)+[100]u(t),y(t)=[143.5]x(t),x(0)=[1−0.750.4]\dot{x}(t)= \begin{bmatrix} -2 & -2.5 & -0.5\\ 1 & 0 & 0\\ 0 & 1 & 0 \end{bmatrix}x(t)+ \begin{bmatrix} 1\\0\\0 \end{bmatrix}u(t),y(t)= \begin{bmatrix} 1 & 4 & 3.5 \end{bmatrix}x(t),x(0)= \begin{bmatrix} 1\\-0.75\\0.4 \end{bmatrix} x˙(t)=⎣⎡​−210​−2.501​−0.500​⎦⎤​x(t)+⎣⎡​100​⎦⎤​u(t),y(t)=[1​4​3.5​]x(t),x(0)=⎣⎡​1−0.750.4​⎦⎤​
问:

  1. 能否通过状态反馈将系统的闭环极点配置在−1、−2、−3-1、-2、-3−1、−2、−3处?如有可能,求上述极点配置的反馈增益向量kkk;
  2. 当系统的状态不可直接测量时,能否通过状态观测器来获取状态变量?如有可能,设计一个极点位于−3、−5、−7-3、-5、-7−3、−5、−7的全维状态观测器.

解:

【设计步骤】

  1. 检查系统的可控、可观测性。若被控系统可控可观测,则满足分离定理,用状态观测器估值形成状态反馈时,其系统的极点配置和观测器设计可分别独立进行;

  2. 对于系统x˙=Ax+bu\dot{x}=Ax+bux˙=Ax+bu,选择状态反馈控制律u=−kx+vu=-kx+vu=−kx+v,使得通过反馈构成的闭环系统极点,即(A−bk)(A-bk)(A−bk)的特征根配置在期望极点处;

  3. 构造全维状态观测器x^˙=Ax^+bu−hc(x^−x)=(A−hc)x^+bu+hy\dot{\hat{x}}=A\hat{x}+bu-hc(\hat{x}-x)=(A-hc)\hat{x}+bu+hyx^˙=Ax^+bu−hc(x^−x)=(A−hc)x^+bu+hy,设计观测器输出反馈阵hhh,使得观测器极点,即(A−hc)(A-hc)(A−hc)的特征根位于期望极点处;

  4. 利用分离定理分别设计上述状态反馈控制律和观测器,得复合系统动态方程为:
    [x˙x^˙]=[A−bkhcA−bk−hc][xx^]+[bb]v,y=[c0][xx^]\begin{bmatrix} \dot{x}\\ \dot{\hat{x}} \end{bmatrix}= \begin{bmatrix} A & -bk\\ hc & A-bk-hc \end{bmatrix} \begin{bmatrix} x\\ \hat{x} \end{bmatrix}+ \begin{bmatrix} b\\ b \end{bmatrix}v,y= \begin{bmatrix} c & 0 \end{bmatrix} \begin{bmatrix} x\\ \hat{x} \end{bmatrix} [x˙x^˙​]=[Ahc​−bkA−bk−hc​][xx^​]+[bb​]v,y=[c​0​][xx^​]

% exampleB_10.m
% 状态方程各矩阵
A=[-2 -2.5 -0.5;1 0 0;0 1 0];
b=[1 0 0]';
c=[1 4 3.5];
d=0;N=size(A);n=N(1);
sys0=ss(A,b,c,d);               % 系统状态空间模型;
S=ctrb(A,b)                     % 可控性矩阵;
f=rank(S);if f==ndisp('system is controlled')
elsedisp('system is not controlled')
endV=obsv(A,c)                     % 可观测性矩阵;
m=rank(V);if m==ndisp('system is observable')
elsedisp('system is not observable')
endP_s=[-1 -2 -3];                 % 系统的期望配置极点;
k=acker(A,b,P_s)                % 计算系统的反馈增益向量k;
P_o=[-3 -5 -7];                 % 观测器的期望配置极点;
h=(acker(A',c',P_o))'           % 计算观测器输出反馈向量;A1=[A -b*k;h*c A-b*k-h*c];
b1=[b;b];
c1=[c zeros(1,3)];
d1=0;x0=[1 -0.75 0.4]';
x10=[0 0 0]';sys=ss(A1,b1,c1,d1);            % 建立复合系统动态模型;
t=0:0.01:4;
[y,t,x]=initial(sys,[x0;x10],t);    % 计算系统的零输入响应;figure(1)
plot(t,x(:,1:3));grid;          % 零输入响应系统状态曲线;
xlabel('t(s)');ylabel('x(t)');figure(2)
plot(t,x(:,4:6));grid;          % 零输入响应观测状态曲线;
xlabel('t(s)');ylabel('x(t)');figure(3)
plot(t,(x(:,1:3)-x(:,4:6)));grid;   % 零输入响应状态误差曲线;
xlabel('t(s)');ylabel('e(t)');

【结果分析】

  1. 结果如下:

    S =1.0000   -2.0000    1.50000    1.0000   -2.00000         0    1.0000
    system is controlled
    V =1.0000    4.0000    3.50002.0000    1.0000   -0.5000-3.0000   -5.5000   -1.0000
    system is observable
    

    可见系统完全可控可观测;

  2. 反馈增益向量和观测器输出反馈向量如下:

    k =4.0000    8.5000    5.5000
    h =35.2324-19.816916.2958
    

【使用Simulink仿真】

Simulink环境下的组合系统模型如下图所示:

1.选择"Continuous(连续环节)"子模型库的"State-Space(状态空间)"模块,其参数为(上图中State-Space):
A=[-2 -2.5 -0.5;1 0 0;0 1 0],
b=[1;0;0],
c=eye(3),
d=[0;0;0],
Initial conditions=[1 -0.75 0.4]2.选择"Math operations(数学运算)"子模型库的"Gain(增益)"模块,其参数为(上图中c):
[1 4 3.5],
Multiplication引导框选择"Matrix(K*u)";3.选择"Continuous(连续环节)"子模型库的"State-Space(状态空间)"模块,其参数为(上图中Obsever-Space):
A=[-2 -2.5 -0.5;1 0 0;0 1 0]-[35.2324;-19.8169;16.2958]*[1 4 3.5],
b=[35.2324;-19.8169;16.2958],
c=eye(3),
d=[0;0;0]4.选择"Math operations(数学运算)"子模型库的"Gain(增益)"模块,其参数为(上图中k):
[4 8.5 5.5],
Multiplication引导框选择"Matrix(K*u)";5.选择"Sources(信号源)"子模型库的"Constant"模块,参数为:0
6.选择"Math operations(数学运算)"子模型库的"Sum"(两个)、"Add"(一个);
7.选择"Sink(输出)"子模型库的"Scope"模块(三个);
8.连线,run,然后双击"Scope"可得以下结果;



9.3 综合运用3:离散系统仿真

ExampleB-7: 设单位反馈线性定常离散系统的连续部分和零阶保持器的传递函数分别为:
G0(s)=1s(s+1),Gh(s)=1−e−sTsG_0(s)=\frac{1}{s(s+1)},G_h(s)=\frac{1-e^{-sT}}{s} G0​(s)=s(s+1)1​,Gh​(s)=s1−e−sT​
采样周期T=1sT=1sT=1s;

解:

Simulink仿真模型如下:

仿真结果如下:

Simulink模型亦可如下表示,仿真结果完全一样:
自动控制原理理论基础参考链接

Chapter9:Simulink建模与仿真相关推荐

  1. 永磁同步电机PMSM启动Simulink建模与仿真

    永磁同步电机PMSM启动Simulink建模与仿真 学习完PMSM的基本原理之后,再根据具体的连接原则设计simulink仿真模型:主要包括一个产生三相正弦波的产生源,再两两相加减,再经过两个受控电压 ...

  2. FXLMS主动降噪的simulink建模与仿真

    ** ** FXLMS主动降噪的Simulink建模与仿真 ** ** 最近在研究关于主动降噪的课题,在摸索学习的过程中,分享一些初步学到的知识. **FXLMS算法是基于LMS算法在次级通道补偿方向 ...

  3. 转载:深入研究simulink建模与仿真之输入端口模块(Inport)的几种不同的图标

    深入研究simulink建模与仿真之输入端口模块(Inport)的几种不同的图标 版权 在临摹学习时,经常会看到demo中的Inport模块有多种不同的形式,现总结一下. 默认图标 从Ports &a ...

  4. 【更新中…】Matlab simulink建模与仿真

    本文为学习笔记,视频来源:https://www.bilibili.com/video/BV1L7411a7uL Matlab simulink建模与仿真 1 初始simulink 1.1 simul ...

  5. 【MASHIII调制器】MASHIII调制器的Simulink建模与仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 这里,基于小数分频的频率合成器,考虑到你需要实现sigma-delta以及mash等结构.因此,系统的模块结构如下图所示: 下面,我们对这个结 ...

  6. 迭代学习控制方式Simulink建模与仿真

    1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大.1984年,Ari ...

  7. 基于arx模型的MPC预测控制器simulink建模与仿真实现

    目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 MPC的优点 模型预测控制善于处理多输入多输出系统        对于MIMO系统,PID需要为每个子系统单独设计PID控制器,由于存在耦 ...

  8. m基于PID控制器的电动车充放电系统的simulink建模与仿真

    目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件 1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 随着全球经济的增长. ...

  9. 双闭环pid matlab仿真,SPWM波控制单相逆变器双闭环PID调节器的Simulink建模与仿真...

    随着电力行业的快速发展,逆变器的应用越来越广泛,逆变器的好坏会直接影响整个系统的逆变性能和带载能力.逆变器的控制目标是提高逆变器输出电压的稳态和动态性能,稳态性能主要是指输出电压的稳态精度和提高带不平 ...

  10. 深入研究simulink建模与仿真之信号线上的几种不同的图标

    先来看看一个简单模型中,信号线上的不同图标: 信号解析图标 信号解析图标是一个蓝色小叉子. 先双击信号线,添加信号标签(信号名称),再打开属性对话框,勾选"Signal name must ...

最新文章

  1. linux服务器补丁加载方法,Kpatch不重启给Linux内核打补丁
  2. QT的QParameter类的使用
  3. 【2016年第5期】数据科学人才的需求与培养
  4. 做一个中国式站长必须知道的五十个问题
  5. python多目标优化_多目标优化算法(四)NSGA3(NSGAIII)论文复现以及matlab和python的代码...
  6. DOM 事件深入浅出(一)
  7. set 有序吗js_2021了,你的vue实践够熟练了吗?源码思维呢?
  8. promise的状态值_ES6中的Promise的用法总结
  9. 开源syslog服务器_开源API网关Kong基本介绍和安装验证
  10. micropython和python区别-什么是MicroPython?
  11. 编码之道:是谁制造了混乱
  12. gdiplus 水印_GDIPlus合成半透明图片批量添加图片水印
  13. 小程序加入人脸识别_微信小程序怎么实现人脸识别
  14. 在用JAVA写一个简易CAD程序时的笔记
  15. 【Pygame系列一】吃豆人、魂斗罗等多款老游戏,80、90后的你玩过几个?(附素材源码)
  16. OpenCV-Python+Moviepy 结合进行视频特效处理
  17. Pholcus 幽灵蛛 —— Go 编写的重量级爬虫软件
  18. 计算机考研方向哪个好考,2022考研:计算机专业考研选择哪个方向比较好就业?...
  19. 哪种销售方式更能深入人心?
  20. 学大数据技术与应用的女生多吗?适合吗?

热门文章

  1. JavaWeb源码网上商城系统a
  2. PHP简单在线二维码生成工具源码
  3. html 做报表,创建 HTML 报表
  4. 单片机C51继电器控制C语言,单片机控制继电器,51单片机控制继电器详细说明
  5. Hive grouping sets 多维度交叉清洗数据
  6. 「微信小程序」有哪些冲击与机会?
  7. 能源DEA-动态SBM模型
  8. C语言图形编程中的绘图函数~
  9. 抖音内测语音直播交友 能够用声音打开社交的一扇门吗?
  10. VMware 镜像安装