控制系统仿真实验110.docx
《控制系统仿真实验110.docx》由会员分享,可在线阅读,更多相关《控制系统仿真实验110.docx(17页珍藏版)》请在冰豆网上搜索。
![控制系统仿真实验110.docx](https://file1.bdocx.com/fileroot1/2023-2/25/81244798-d1f4-45c5-9cdd-a0d23f06c5a8/81244798-d1f4-45c5-9cdd-a0d23f06c5a81.gif)
控制系统仿真实验110
控制系统仿真(Matlab)实验
实验1:
初步了解MATLAB环境及命令窗口的使用
一、课堂练习
1、掌握MATLAB的启动方式;熟悉MATLAB的命令窗口;熟悉常用的选单和工具栏;熟悉MATLAB桌面的其他窗口。
2、熟悉MATLAB命令窗口中的选单“File”的功能。
3、在命令窗口中输入以下命令并查看运行结果:
>>a=2.5
>>b=[12;34]
>>c=’a’
>>d=sin(a*b*pi/180)
>>e=a+c
4、根据3题分别输入以下命令查看运行结果。
(1)使用标点符号来修改命令行
①;:
不显示计算结果【注意与回车键比较运行结果】
>>a=2.5;
②%:
用做注释
>>b=[12;34]%b为矩阵
(2)通过常用操作键来编辑命令
①↑:
向前调回已输入过的命令行
②↓:
向后调回已输入过的命令行
③Esc:
消除当前行的全部内容
(3)查看工作空间窗口:
在工作空间中使用who,whos,clear命令,观察运行结果。
5、熟悉MATLAB环境。
(1)MATLAB命令窗口:
菜单命令各项的作用;工具栏各项功能,要求熟练使用工具栏按钮;熟练使用命令编辑区中命令窗口快捷键的功能。
(2)了解MATLAB的程序编辑器。
(3)熟悉MATLAB的work子目录。
(4)MATLAB运行外部环境:
进入DOS操作系统。
6、标点符号可以使命令行不显示运算结果,用来表示该行为注释行。
二、课外练习
1、MATLAB强大的绘图功能
(1)采用插值方式绘制海底形状图。
具体程序如下:
>>xi=linspace(-5,5,50);yi=linspace(-5,5,50)
>>[XI,YI]=meshgrid(xi,yi);
>>ZI=interp2(x,y,z,XI,YI,’*cubic’);
>>Surf(XI,YI,ZI),view(-25,25)
(2)绘制草帽图
具体程序如下:
>>[x,y]=meshgrid(-8:
0.5:
8);
>>r=sqrt(x.^2+y.^2)+eps;
>>z=sin(r)./r;
>>surf(x,y,z)
>>shadinginterp
>>axisoff
(3)绘制圆球球体
具体程序如下:
>>sphere(100);axisequal;
>>shadingflat;camlightright;
>>camlightleft;lightingphong
2、MATLAB程序流程控制
(1)在M文件编辑器中输入以下程序,并观察运行结果。
>>clc%清屏幕
>>a=[13479];%建立a矩阵
>>b=[246810];%建立b矩阵
>>c=a;%矩阵a与矩阵b交换,设中间变量
>>b=c;
>>a%输出a矩阵、b矩阵
>>b
实验2、3:
MATLAB数值运算基础
一、课堂练习
1、熟悉MATLAB算术运算符、关系运算符、逻辑运算符、特殊运算符。
2、熟悉MATLAB特殊的变量和常量。
3、x=[3*pi4*pi5*pi6*pi7*pi]
分别指明以下标识所代表的含义写出运算结果,并输入计算机加以验证:
x
(2)x(2:
4)x(3:
end)x(3:
-1:
1)
x
(2)=5x(find(x>15))
4、分别指明以下标识所代表的含义并求出下列的运算结果并上机验证:
A=[1234;5678;9101112]
A(2,3)A(3,:
)A(:
,2)A(:
)A(8)
5、
(1)数组的输入
在MATLAB命令窗口输入下列矩阵
102030
A=405060
708090
(2)已知A=[1020;3040]
计算:
A1=A+10A2=A+20A3=A+30G=[AA1;A2A3]
6、S=2
A=[234;567;8910]
计算:
(1)A+SA-SS-A
(2)S.*AA.*SS*AA*S
(3)S./AA.\SA./SS.\A
并由计算结果得出什么结论。
7、a=[123;456;789]
b=[111;222;333]
c=3
求:
(1)a.*b b.*a a*b b*a
(2)a./bb.\ab./aa.\b
(3)a.^cb.^cc.^ac.^ba.^bb.^a
8、a=[321;654;987];b=[112;221;313];
求:
a\binv(a)*ba/ba*inv(b)
9、熟悉MATLAB的基本数组函数、矩阵函数。
10、运行以下函数,写出操作结果
(1)zeros(4,4),ones(3,2)
(2)已知x=magic(5)
求:
diag(x)、triu(x)、tril(x)、size(x)、eye(x)。
11、数组函数、矩阵函数运算
(1)求复数矩阵的模与相角:
a=[1+2i3-4i;5+6i7-8i]
(2)求复数的实数与虚部:
a=[32+7i]
(3)求复数矩阵加法、开方、乘方、乘法运算:
c=[1+2i3+4i;5+6i7+8i],d=[1-i2-2i;3-3i4-4i]
c+d,sqrt(c),d^2,c*d
(4)求复数矩阵的模、共轭复数矩阵,以e为底的指数函数:
a=[1+2i3-4i;5+6i7-8i]。
12、复数变量a=2+3i,b=3-4i,计算a+b,a-b,c=a*b,a/b,并计算变量c的实部,虚部,模和相角。
13、熟练掌握多项式输入、求根、由根求多项式、多项式部分分式展开。
14、
(1)计算多项式P(x)=s3+21s2+20s的根以及由多项式的根得出系数。
(2)求多项式P(x)=s8+2s7+3s6+4s5+5s4+6s3+7s2+8s+9的根,并用求出的根求多项式。
(3)已知传函:
S+3
(1)G(S)=--------------------------------
S4+2S3+11S2+18S+18
2S3+5S2+3S+6
(2)G(S)=------------------------------
S3+6S2+11S+6
将其分解为部分分式。
(4)已知表达式G(S)=(S-4)(S+5)(S2-6S+9),展开多项式形式,并计算出G(S)=0的根。
15、两个多项式a(x)=5x4+4x3+3x2+2x+1,b(x)=3x2+1。
计算c(x)=a(x)*b(x),并计算c(x)的根,将b(x)/a(x)进行部分分式展开。
二、课外练习
1、输入矩阵A为3X3的魔方阵,B为3X3的单位阵,由小矩阵组成3X6的大矩阵C和6X3的大矩阵D,将D矩阵的最后一行构成小矩阵E。
具体程序:
>>a=magic(3);
>>b=eye(3)
>>c=[a,b]
>>d=[a;b]
>>e=d(6,:
)
2、求解方程组
2x1-3x2+x3+2x4=8
x1+3x2+x4=6
x1-x2+x3+8x4=7
7x1+x2-2x3+2x4=5
具体程序:
>>a=[2–312;1301;1–118;71–22];
>>b=[8;6;7;5];
>>x=a\b
3、已知符号表达式f=x3+3x2-6x+5,转换为多项式系数,并将f中的x用5,a替代。
具体程序:
>>f=sym(‘x^3+3*x^2-6*x+5’);
>>sym2poly(f);
>>subs(f,’a’);
>>subs(f,5)
实验4:
MATLAB仿真集成环境工具Simulink的界面与菜单
一、课堂练习
1、学会Simulink的启动方式。
2、熟悉Simulink界面各个部分的内容及其功能。
3、熟悉Simulink提供的11类基本模块库中最常用模块库的界面、模块英文名与图标信息。
4、重点掌握11类基本模块库中下列常用的一些标准功能模块名称、在Simulink中具体位置及其功能:
(1)Derivative、Integrator、State-Space、TransportFcn
Zero-pole、TransportDelay;
(2)Gain、Sum、Math-Function;
(3)Mux、Demux;
(4)Display、Out1、Scope、XYGraph;
(5)Clock、In1、PulseGenerator、Ramp、SineWave、Step、Ground;
(6)Subsystem。
5、熟悉Simulink模型窗口(Untitled)菜单项的功能;熟练使用模型窗口工具栏按钮并熟悉各按钮功能。
二、课外练习
1、创建一个由正弦输入信号、放大器、示波器构成的模型。
观察正弦信号幅值,频率和放大倍数变化时,示波器的输出变化。
2、创建一个由两个正弦输入信号、XYGraph模块构成的模型,观察当输入两个正弦信号相位差的变化时XYGraph模块输出波形的变化。
实验5:
用Simulink建立系统的模型
一、课堂练习
1、会使用打开“untitled”模型窗口的三种方法。
2、熟悉查找所需要的模块;熟练掌握模块的拷贝、移动、删除、连接;模块名称的修改;模块内部参数的修改;模块文件的保存和打开。
3、
试绘制上图直流单闭环调速系统的Simulink结构图模型,并完成以下实验内容:
输入信号分别换成斜坡信号、脉冲信号,点击示波器分别观察输出信号响应曲线。
要求:
1)所有模块名字体:
四号;粗体;
2)“电势系数”:
隐藏;
3)“直流单闭环调速系统”:
隶书;粗体;小一;
4)画好的图剪切到Word文本中。
5)用正确的名称存盘,并通过打开的方式检查存盘名称是否正确。
实验6:
Simulink窗口下自定义模块库与自定义子系统
一、课堂练习
1、定义模块库
(1)建立一个只有“Discrete”,“Function&Tables”,“Nonliner”,“signals&System”四类模块库组成的自定义模块库Library1。
(2)建立一个只有“Zero-pole”,“Transfer-Fcn”,“State-Space”,“Gain”,“Sum”,“Step”,“Scope”,“In1”,“Out1”9个基本模块构成的自定义模块库Library2。
2、定义子系统
用Simulink的两种方法(1.“Subsystem”2.“CreateSubsystem”)将直流调速系统的电流环自定义为一子系统(虚线框住的定义子系统)并对其进行单位阶跃响应进行仿真,完成以下实验内容:
(1)用同一个示波器在同一坐标系下同时观察单位阶跃输入、输出信号曲线。
(2)用同一个示波器在两个坐标系下同时观察单位阶跃输入、输出信号曲线。
(3)运用绘图命令plot(tout,yout)在MATLAB命令窗口绘制图形。
实验7:
控制系统的数学模型
一、课堂练习
1、三种数学模型在MATLAB里的建立
在MATLAB环境中输入下列系统的模型:
S3+4S2+3S+2
(1)G(S)=-----------------------------
S5+9S4+24S3+16S2
-0.30.1–0.052
(2)X(t)=10.10x(t)+0u(t),y(t)=[123]x(t)
-1.5-8.9-0.054
(S-5)(S-4)
(3)G(S)=--------------------------
S(S+1)(S+3)
(5S2+0.96S+9.6)
(4)G(S)=-------------------------------------
S(S+1)2(S2+0.384S+2.56)
9.9e-80S
(5)G(S)=-----------------------
120S+1
2、模型间的相互转化
6.8(S+3)(S+7)
给定系统的零极点模型为:
G(S)=----------------------------------
S(S+1.8+j1.63)(S+1)2
用MATLAB语句转化成等效的:
(1)传递函数模型
(2)状态空间模型。
3、环节方框图模型的化简
已知晶闸管—直流电机单闭环调速系统(V-M系统)的Simulink动态结构图如下图所示。
求按负反馈连接闭环系统的传递函数(在MATLAB命令窗口下编写程序求出)。
二、课外练习
1、控制系统的结构图如下所示,试建立控制系统的仿真模型,观察系统在阶跃信号作用下的输出响应。
给控制系统加上校正装置,如下图所示。
观察校正后系统在阶跃信号作用下的输出响应。
2、设计一个PID控制器,实现对G(S)=10/S2+S+10系统构成单位负反馈的控制,当输入阶跃和正弦信号时,观察通过PID参数变化对系统控制效果的影响。
3、用Simulink仿真一个正弦信号和一个余弦信号相加,即计算x(t)=2sin(2t)+3cos(5t)。
实验8:
控制系统时域分析的MATLAB实现
一、课堂练习
80
1、已知单位负反馈系统前向通道的传函为:
G(S)=----------------
S2+2S
试用MATLAB命令编写程序做出其单位阶跃响应曲线。
2、已知闭环系统的传递函数为:
1301(S+4.9)
G(S)=----------------------------------
(S2+5S+25)(S+5.1)(S+50)
试求系统的性能指标:
tr,tp,ts,σ%。
3、已知下列单位负反馈的开环传递函数,试对系统闭环判别其稳定性。
1
(1)G(S)=----------------------
S3+2S2+S+2
1
(2)G(S)=------------------------
S4+S3-3S2-S+2
4、已知单闭环系统Simulink动态结构图如下所示,试用
(1)指令方式
(2)窗口菜单方式,分别求时域响应仿真曲线。
5、二阶系统的动态性能分析
W2n
二阶系统的闭环传函的标准形式为Φ(S)=---------------------------,
S2+2ξWnS+W2n
分别取ξ=0.2、0.4、0.6、0.8、1.0、2.0,Wn=6时,试绘制出系统的单位阶跃响应曲线。
6、分别用两种方法:
(1)MATLAB命令窗口编写程序
(2)Simulink模型窗口绘制动态结构图,对下面的具有延迟环节传递函数进行时域仿真。
二、课外练习
1、如下图所示系统,请调节PID参数,使系统的输出状态达到最佳。
2、有一阶系统的传递函数为G(S)=K/(TS+1),试对T、K两个待定系数,分别取T=1,K=1;T=2,K=1;T=10,K=2;作出系统的阶跃响应,分析T、K对系统的稳态值和过渡过程时间(5%和2%的误差)的影响。
实验9:
控制系统根轨迹的MATLAB实现
一、课堂练习
1、已知系统的开环传函如下:
1
(1)G(S)=---------------------------------
S(S2+2S+2)(S2+6S+13)
(S-5)(S+4)
(2)G(S)=----------------------------
S(S+1)(S+3)
要求:
1)绘制系统的零极点图并求出零极点;2)绘制系统的根轨迹图。
k(S+1)
2、已知某系统开环传函为:
G(S)=-------------------
S2+S+10
(1)试绘制k:
0→∞系统的根轨迹曲线;
(2)当k=1时闭环系统的单位阶跃响应曲线。
k(5S2+0.96S+9.6)
3、已知系统开环传函为:
G(S)=-------------------------------------,
S(S+1)2(S2+0.384S+2.56)
试绘制当k:
0→∞的闭环系统的根轨迹图,并判断使系统稳定时k的取值范围。
二、课外练习
1、已知单位反馈系统的开环传递函数为G(S)H(S)=k(S+1)/S2(S+a)。
(1)准确记录根轨迹在a=10,9,8,3,1时的根轨迹曲线,分析a对系统稳定性的影响;
(2)确定不同情况下系统稳定的取值条件。
2、高性能的战斗机以0.9马赫的速度在10,000m高空飞行,其俯仰速度控制系统可用如下图表示,其中
G(S)=-18(S+0.015)(S+0.45)/(S2+1.2S+12)(S2+0.01S+0.0025)
(1)当控制器为比例环节,即GC(S)=K时,画出K变化时的根轨迹,并确定K的取值范围,使ωn>2的系统闭环根的阻尼比ξ大于0.15,并找出ξ的最大值;
(2)采用上面的K值,画出系统对阶跃输入r(t)的响应y(t);(3)有设计者建议采用控制器GC(S)=K/(S+2),试画出这时系统以K为参数的根轨迹图,并确定K的取值范围,使所有闭环根的阻尼比均满足ξ>0.8;(4)采用上面所选取的K值,画出系统对阶跃输入r(t)的响应y(t)。
3、某类高性能喷气式飞机的自动驾驶仪系统具有单位负反馈,试画出系统的根轨迹图,预测系统的阶跃响应并与计算得到的实际响应相比较。
实验十:
控制系统频域分析的MATLAB实现
1、试绘制出下面系统的Nyquist图、Bode图。
10
(1)G(S)=--------------------
S2(5S-1)(S+5)
8(S+1)
(2)G(S)=---------------------------------
S2(S+15)(S2+6S+10)
2、试绘制出下面系统的Bode图,并求出系统的幅值裕度Gm、幅值穿越频率wcp、相角裕度Pm、剪切频率wcg。
4(S/3+1)
(1)G(S)=-----------------------------------------
S(0.02S+1)(0.05S+1)(0.1S+1)
0214
(2)X(t)=-3–20x(t)+3u(t),y(t)=[123]x
1342
3、已知系统的开环传函为:
100(S+5)2
G(S)=--------------------------
(S+1)(S2-S+9)
(1)试绘制Nyquist图并由奈氏判据判断系统的稳定性;
(2)验证稳定性正确与否。