Matlab.docx
《Matlab.docx》由会员分享,可在线阅读,更多相关《Matlab.docx(29页珍藏版)》请在冰豆网上搜索。
Matlab
附录
MATLAB仿真实验指导书
第一章MATLAB简介
1980年美国学者MOLER博士在研究线性代数时,为了解决矩阵运算非常繁琐这一问题,构思并开发了一种用于矩阵运算的矩阵实验室(MATrixLABoratory)软件。
由于MATLAB提供了功能非常强大的矩阵处理和绘图功能。
吸引了很多控制界的名家在自己擅长的领域编写了一些具有特殊意义的MATLAB工具箱,从而空前扩大了MATLAB的功能,使其成为了国际上最流行的控制系统计算机辅助设计的软件工具。
下面简单介绍自控原理实验涉及到的MATLAB知识
(一)模型化图形输入——SIMULINK(模块图仿真)的使用
❑SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入。
❑所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。
▪SIMULINK是一个进行动态系统建模、仿真和综合分析的集成软件包。
它可以处理的系统包括:
线性、非线性系统;离散、连续及混合系统;单任务、多任务离散事件系统。
▪在SIMULINK环境中,用户可观察到摩擦、风阻、齿隙、饱和、死区等非线性因素和各种随机因素对系统行为的影响。
还可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。
▪在MATLAB6.x版中,可直接在SIMULINK环境中运作的工具包很多,已覆盖通信、控制、信号处理、电力系统等诸多领域,所涉内容专业性极强。
1、进入WIN2000/WINOWSXP:
2、进入MATLAB:
点击WIN窗口中MATLAB图标
。
3、进入SIMULINK:
在MATLAB窗口中键入SIMULINK命令或SIMULINK图标
,即可弹出SIMULINK模块库。
如图3.1.1所示:
图3.1.1SIMULINK模块库
从上到下分别为常用模块库、连续模块库、非线性模块库、离散模块库、逻辑和位运算模块库、查找表模块库、数学运算模块库、模型校验模块库、模型扩充模块库、端口和子系统模块库、信号属性模块库、信号通路模块库、接收器模块库、信号源模块库、用户定义函数模块库、附加的数学与离散模块库等子模块库,每个子模块库分别包含若干个不同的模块。
如图3.1.2所示:
图3.1.2系统模块库和系统模块
4、建立自己的实验文件:
(2)FILE\NEW\MODEL。
(新建一个SIMULINK模型文件,缺省名为“untitled”。
)如图3.1.3所示:
图3.1.3缺省名为“untitled”的文件
5、FILE\SAVEAS…(键入自己的文件名)。
如图3.1.4所示:
图3.1.4键入自己的文件名
6、从SIMULINK模块库中挑选所需的模块:
(1)把SIMULIMKLIBRARYBROWSER窗和自己的实验窗并列平铺。
(2)在SIMULINKLIBRARYBROWSER窗中打开SOURCES模块库。
(3)从SOURCES库(信号源模块库)中使用鼠标左键选择并拖动STEP(单位阶跃输入)模块至自己的实验窗口。
如图3.1.5、3.1.6所示:
图3.1.5选择模块
图3.1.6将选择的模块拖到自己的窗口中
(4)类似
(2)(3)从SINKS库中拖出SCOPE(自动图形输出)模块。
(5)从COMMONLYUSEDBLOCKS、MATHOPERATION、CONTINUOUS库中分别选出GAIN(比例)、SUM、TRANFER-FCN(传递函数)等模块。
如图3.1.7所示:
图3.1.7选择多个模块到自己的窗口中
(6)A.可通过TRANFER-FCN模块构造积分、惯性、振荡环节。
双击TRANFER-FCN模块,弹出如图3.1.8对话框
图3.1.8TransferFcn模块对话框
其中Numeratorcoefficient为分子多项式的系数,Denominatorcoefficient为分母多项式的系数,通过修改多项式的系数实现不同环节的转变。
举例如下:
例1:
要实现传递函数
,则令Numeratorcoefficient为[1,2];
Denominatorcoefficient为[2,3,4];
例2:
要将传递函数变为积分环节:
,则令Numeratorcoefficient为[1];
Denominatorcoefficient为[1,0];
例3:
要将传递函数变为振荡环节:
,则令Numeratorcoefficient为[1];Denominatorcoefficient为[1,1,1];(在此传函中阻尼系数ζ为0.5)
例4:
要将传递函数变为实际微分环节:
,则令Numeratorcoefficient为[1,0];Denominatorcoefficient为[1,1];
例5:
实际微分环节的传递函数为:
,分子分母同除以Td,则为
。
因此,上式中分子s的系数即为Kd值,分母中常数项为Td的倒数.
B.双击SUM模块,出现如图3.1.9所示对话框。
将“LISTOFSIGNS”由“++”
改为“+-”。
选择“OK”,退出。
此处的设置可使系统的反馈设置为“负反馈”。
图3.1.9SUM模块参数设置对话框
C.双击GAIN模块,出现如图3.1.10所示对话框。
可将“Gain”值由“1”改为“3”,此处修改的是放大环节的增益。
图3.1.10GAIN模块的参数设置对话框
(7)在选择构建系统模型所需的所有模块后,需要按照系统的信号流程将各系统模块正确连接起来。
连接系统模块的步骤如下:
1)将光标指向起始块的输出端口,此时光标变成“+”。
2)单击鼠标左键并拖动到目标模块的输入端口,在接近到一定程度时光标变成双十字。
这时松开鼠标键,连接完成。
完成后在连接点处出现一个箭头,表示系统中信号的流向。
按
(1)~(7)建立好整个系统SIMULINK框图,例如图3.1.11:
图3.1.11系统SIMULINK框图举例
(8)设置仿真过程参数:
SIMULATION菜单\CONFIGURATIONPARAMETERS菜单项。
如图3.1.12:
图3.1.12仿真时间的设置
其中:
StartTime为仿真开始时间,计算机默认的值为0.0。
Stoptime为仿真终止时间,计算机默认的值为10.0。
MixStepSize为仿真最小步长。
MaxStepSize为仿真最大步长。
RELATIVETolerance/ABSOLUTETolerance为仿真相对/绝对精度。
仿真开始前可对StopTime进行修改,如改为10秒,50秒或200秒,再根据实际情况进行调整。
(9)进行仿真:
选择SIMULATION菜单中START菜单项。
(选用SCOPE输出时,可双击图标
显示系统时域阶跃响应曲线图,参见图例3.1.13图,当出来的图形不便于观察时,可选择AUTOSCALE图标,自动调整显示范围)
图3.1.13系统单位阶跃响应输出曲线示例
注:
要使曲线光滑可以通过提高仿真精度或增加采样点来实现。
(二)频域和时域分析——利用COMMANDWINDOW实现
知识准备:
(1)乘积多项式的系数
可利用多项式相乘函数CONV(X,Y),该函数直接在MATLABCOMMANDWINDOWS窗口中使用。
例6:
A(z)=(z-1)
B(z)=(z2+1.15z-1)
求A(z)*B(z)的多项式系数,可按如下步骤计算:
>>X=[1,-1];
>>Y=[1,1.15,-1];
>>C=CONV(X,Y)
上面式子等效于C=CONV([1,-1],[1,1.15,1])
注:
无常数项时,常数项系数记为0。
(2)传递函数模型的输入
对线性定常系统,式中s的系数均为常数,且a0不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示:
num=[b0,b1,…,bm];den=[a0,a1,…,an]。
注意:
它们都是按s的降幂进行排列的。
■sys=tf(num,den)
利用tf(num,den)函数可将系统表达为传递函数模型。
例7:
>>num=[12,24,0,20];den=[24622];
>>sys=tf(num,den)
例8:
>>num=4*conv([1,2],conv([1,6,6],[1,6,6]));
>>den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));
>>sys=tf(num,den)
1.时域分析
(1)稳定性分析
对于传递函数模型tf(num,den),利用求根函数roots(den)来求极点。
求出极点即可判断系统的稳定性。
例9:
已知系统的闭环传递函数为
,要求判断系统的稳定性。
解:
如图3.1.14所示,由结果知系统的闭环特征根均具有负实部,所以系统稳定!
图3.1.14系统稳定性的判别
(2)求连续系统的单位阶跃响应
step(sys)或step(sys,t)函数
例10:
已知系统的闭环传递函数为
,试绘制其单位阶跃响应曲线。
解:
>>num=[1,7,24,24];den=[1,10,35,50,24];
>>sys=tf(num,den);step(sys)
图3.1.15求阶跃响应1
例11:
已知单位负反馈系统前向通道的传递函数为
,试绘出系统的单位阶跃响应曲线。
并计算系统的阶跃响应性能指标。
解:
>>num=[4];den=[110];
>>sys=tf(num,den);
>>closys=feedback(sys,1);%求闭环传递函数
>>step(closys)
图3.1.16求阶跃响应2
(3)求取系统性能指标
1)用鼠标右键单击图形窗口任一处,可弹出一编辑菜单;选择“properties…”;弹出“阶跃响应属性编辑器”对话框,可选择定义调节时间和上升时间的方式。
2)在编辑菜单中选择“characteristics”;从中可选择“peakresponse(峰值响应)”(包括最大值“peakamplitude”、超调量“overshoot”、峰值时间”attime”),“settlingtime(调节时间)”,“risetime(上升时间)”,“steadystate(稳态值)”。
3)选择后,单击图形中显示的标记,即可得到所需的指标值。
以例11为例,可从图中读出所需的系统性能指标的值。
如图3.1.17所示:
对单位阶跃输入,稳态误差等于1-稳态值。
图3.1.17求系统的性能指标
2.根轨迹图的绘制
绘制根轨迹图rlocus(num,den)
例12:
绘制如下传递函数的根轨迹图:
G(s)=
可在MATLABCOMMANDWINDOW窗口中输入下列命令:
num=[1,1];den=[2,0,3];rlocus(num,den)
图3.1.18根轨迹的绘制1
例13:
已知装备有自动驾驶仪的飞机在纵向运动中的开环传递函数为
,绘制系统的根轨迹图
解:
num=[1,1];den=(conv([1,-1,0],[1,4,16]));
>>sys=tf(num,den);rlocus(sys)
图3.1.19根轨迹的绘制2
3.频域分析
A.开环幅相频率特性曲线(奈氏曲线)的绘制
nyquist(sys)函数
例14:
系统开环传递函数为
,绘制奈氏曲线,并判断系统的稳定性。
解:
>>num=1000;den=conv([132],[15]);
>>sys=tf(num,den);nyquist(sys)
N=-1,P=0;Z=2系统不稳定!
图3.1.20奈氏曲线的绘制
B.伯德图的绘制
bode(sys)
例15:
已知下图开环传递函数为
,绘制BODE图。
解:
>>num=1;den=conv([110],[12]);sys=tf(num,den);bode(sys)
图3.1.21
C.求系统的增益裕量(Gm)、相位裕量(Pm)和相位穿越频率(开环截止频率)Wcp、幅值穿越频率Wcg:
使用如下语句:
[gm,pm,wcg,wcp]=margin(sys)
对例15:
>>[gm,pm,wcg,wcp]=margin(sys)
gm=
6.0000
pm=
53.4109
wcg=
1.4142
wcp=
0.4457
第二章MATLAB实验指导书
实验一典型环节动态特性
[实验目的]
1、通过观察典型环节在单位阶跃信号作用下的动态特性,熟悉各种典型环节的响应曲线。
2、定性了解各参数变化对典型环节动态特性的影响。
3、初步了解MATLAB中SIMULINK的使用方法。
[实验内容]
1、掌握比例、积分、一阶惯性、实际微分、振荡的动态特性。
[例题]:
观察实际微分环节的动态特性
(1)连接系统,如图3.2.1.1所示:
图3.2.1.1
(2)参数设置:
在simulation/configurationparameters中将仿真时间(StopTime)设置为10秒。
(3)仿真:
simulation/start,仿真结果如图3.2.1.2所示
(4)改变传递函数模块的参数,观察仿真结果有什么变化
图3.2.1.2实际微分环节的动态特性图
2、利用上述五种环节(比例、积分、一阶惯性、实际微分、振荡)构成一个具有如图3.2.1.3所示的阶跃响应特性的系统。
图3.2.1.3阶跃响应特征曲线
[实验报告要求]
1、画出所要求的系统模块图。
2、画出相应的系统阶跃响应曲线。
3、叙述振荡环节中阻尼系数对环节的影响。
4、结合实验遇到的问题谈谈对实验的看法
实验二PID的控制作用
[实验目的]
1.了解PID控制器中P,I,D三种基本控制作用对控制系统性能的影响。
2.进行PID控制器参数工程整定技能训练。
[实验系统说明]
图3.2.2.1PID控制作用实验系统
图3.2.2.2PID控制器的组成
可按图3.2.2.2组成PID控制器。
其传递函数表达式为:
,对于实际微分环节可将分子、分母同除以Td,传函变为:
这样如果要改变PID的参数Td、Kd、Ti、Kp,只要改变模块的分子、分母多项式的系数即可。
图3.2.2.2中,GAIN模块的增益值对应于Kp参数;在Transfer–Fun2模块中,令B0=Kd,B1=0,A0=1,A1=1/Ti,可得微分控制器;在Transfer-Fcn3模块中令B0=0,B1=1;A0=Ti,A1=0,可得积分控制器。
然后据Kp,Kd,Ti,Td参数调整要求修改对应的B0、B1、A0、A1值,对系统进行整定。
[实验步骤]
1.进入SIMULINK。
2.按图3.2.2.3中(a)、(b)、(c)构成实验系统。
图3.2.2.3控制系统图
3.整定各PID参数,使得控制系统性能达到最优。
(最优即系统稳态误差为小、超调量小、调整时间短等)
[实验报告要求]
1、写出控制得到的三组最优Kp,Kd,Ti,Td值,要求三个环节都用上,并画出对应的响应曲线。
2、指出这三种系统分别为几型系统。
3、结合实验中遇到的问题谈谈自己的看法和体会。
实验三串联校正环节的设计
[实验目的]
1.学习使用MATLAB绘制根轨迹和伯德图。
2.熟悉使用根轨迹法和频率特性法设计典型滞后环节。
[实验内容]
1、有一单位反馈系统,其开环传递函数为G(s)=K/{(s+0.5)(s+0.1)(s+0.2)},试用根轨迹设计一个滞后校正环节,要求对应主导极点的ζ=0.5,Kp=10,以满足性能指标的要求。
2、设有一单位反馈系统的开环传递函数为G(s)=(0.08k)/{s(s+0.5)},试用频率特性法设计一个滞后校正环节,使得Kv≥4,相位裕量为50°,超调量Mp≤30%。
[实验方法及步骤]
寻找近似的闭环主导极点
根轨迹校正方法中,关键在于求出系统的闭环主导极点,在这里,我们用MATLAB的方法来求
1、用[R,K]=RLOUCS(NUM,DEN)命令,寻找近似的主导极点
●在MATLABCOMMANDWINDOWS中键入[R,K]=RLOUCS(NUM,DEN)命令,即可得出不同的K值对应的根值R,从中找出符合虚部与实部比值接近要求的根值。
本例题中,已知闭环主导极点的阻尼比为ξ=0.45(以原点为起点作角度为θ=COS
ξ的直线,与根轨迹相交得S1点,S1的与实轴相对称的点即为S2点,S1、S2为主导极点
)可知COSθ=0.45即θ=63.25
则tgθ=1.984≈2;现要找出一个共轭极点,使它的虚部与实部的比值接近tgθ=1.984。
下面数组中带下划线的共轭极点其虚部与实部的比值为
=1.945,接近给定值,找出与其对应的粗略K值,K=4.1
已知系统开环传递函数G
(S)=
可利用MATLAB函数c=conv([1,1,0],[1,5])
c=
1650;求多项式系数
num=[1];;分子多项式系数
den=[c];;分母多项式系数
[r,k]=rlocus(num,den)
结果为:
r=
0-5.0000-1.0000
-0.2543-5.0441-0.7015
-0.3080-5.0489-0.6431
┋
-0.4614+0.3198i-5.0773-0.4614-0.3198i
-0.4057+0.7910i-5.1886-0.4057-0.7910i
-0.3951+0.8525i-5.2097-0.3951-0.8525i
k=
0
1.2250
1.3500
┆
3.6000
4.1000
4.6000
5.1000
2、用R=RLOUCS(NUM,DEN,K),对K值精调
●在MATLABCOMMANDWINDOWS中键入R=RLOUCS(NUM,DEN,3.4),对K值精调,不断调整K值,最终要求tgθ=1.984左右,此时对应的K值即为主导极点的K值,写出此时的主导极点。
r=rlocus(num,den,4.1)
r=
-5.1886-0.4057+0.7910i-0.4057-0.7910i
tgθ=
=1.9497
设K=4.15,带入下面命令中,得
r=rlocus(num,den,4.15)
r=
-5.1908-0.4046+0.7974i-0.4046-0.7974I
tgθ=
=1.9708
设K=4.18,带入下面命令中,得
r=rlocus(num,den,4.18)
r=
-5.1920-0.4040+0.8012i-0.4040-0.8012I
tgθ=
=1.9831
可知主导极点为:
-0.4040+0.8012i-0.4040-0.8012I
对应得开环放大系数K为:
4.18
寻找新的穿越频率
(1)按规定的稳态误差系数确定放大系数K,此题K=5
(2)画出未校正系统的伯德图并求出其增益裕量和相位裕量
未校正系统的传递函数为:
G0=
在MATLABCOMMANDWINDOWS窗口中绘制BODE图
(3)寻找一新的幅值穿越ωc,在ω处G(Jω)的相角应等于-180加上所要求的相位裕量再加5-12º(补偿滞后校正环节造成的相位滞后)。
(4)为使滞后校正对系统的相位滞后影响较小(一般)
num=[5];
c=conv([110],[0.51]);
den=c
den=
0.50001.50001.00000
bode(num,den)
可得如下图3.2.3.1:
图3.2.3.1函数G(s)的BODE图
系统的增益裕量(Gm)、相位裕量(Pm)。
在MATLABCOMMANDWINDOWS窗口中键入如下命令
[gm,pm,wcp,wcg]=margin(num,den)
Warning:
Dividebyzero
gm=
0.6000增益裕量
pm=
-12.9972相位裕量
wcp=
1.4142增益穿越频率
wcg=
1.8022相位穿越频率
求新的增益穿越频率ωc’
在MATLABCOMMANDWINDOWS中键入如下命令:
[mar,pha,ω]=bode(num,den),即可得出不同的ω值对应的相角(PHA)和(MAR)
mar=
49.6898
┋
0.3342
0.1931
0.1090
0.0606
0.0332
0.0181
0.0098
pha=
-98.5730
┋
-119.3045
-125.6192
-133.0279
-141.5517
-151.1223
-161.5651
-172.6041
-183.8910
-195.0469
-252.9795
w=
0.1000
0.1233
0.1520
0.1874
0.2310
0.2848
0.3511
0.4329
0.5337
0.6579
0.8111
1.0000
┋
6.5793
ω=0.4329
找出近似满足PHA=-128°时对应的ω值,即为ωc’,如下画下划线
取滞后校正环节的第一转角频率ω1=
ωc’=0.086,可得T=11.6(S)
第二转角频率ω2=
=
则所求滞后校正环节的传递函数为
Gc(S)=
=
[实验报告要求]
1.对于根轨迹校正法,给出如下内容:
(1)原系统的稳态速度误差系数KP
(2)校正后的系统稳态速度误差系数Kp
(3)校正环节的传函GC(S)
2.对于频率特性校正,给出如下内容:
(1)新增益穿越频率Wc’和a值
(2)原相位裕量Pm
(3)校正环节的传函GC(S)
3.SIMULINK搭建未校正系统的模块图,观察其超调量;校正好后,将校正环节串入原系统,观察其超调量。
4.写出实验体会并进行校正前后的比较。
实验四离散控制系统的设计
[实验目的]
1、使用MATLAB绘制离散系统BODE图、z平面根轨迹以及使用SIMULINK实现离散系统动态特性的仿真。
2、熟悉ω域频率特性设计法和数字控制器直接设计法。
[实验内容]
对于如图3.2.4.1所示的