matlab复习Word格式.docx
《matlab复习Word格式.docx》由会员分享,可在线阅读,更多相关《matlab复习Word格式.docx(27页珍藏版)》请在冰点文库上搜索。
![matlab复习Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/957a9795-054c-4f45-9ec3-5b19c21a325e/957a9795-054c-4f45-9ec3-5b19c21a325e1.gif)
ylabel('
y1'
title('
正弦曲线'
legend('
图一正弦曲线'
subplot(122);
plot(x,y2,'
m'
y2'
余弦曲线'
图二余弦曲线'
2、绘制下列数学函数定义的三维网格曲面
x=-8:
0.5:
8;
y=x'
;
[X,Y]=meshgrid(x,y);
Z=1./((sqrt((1-X).^2+Y.^2)+eps))+1./((sqrt((1+X).^2+Y.^2)+eps));
mesh(X,Y,Z)
X'
),ylabel('
Y'
),zlabel('
Z'
)
实验三控制系统数学模型及其转换
一、实验目的
1、掌握控制系统常用数学模型Matlab表示
2、利用Matlab实现数学模型之间的转换
二、实验学时:
2学时
三、实验原理
1、已知传递函数模型:
,由分子和分母多项式可以唯一确定传递函数。
分子向量num=[bmbm-1…b1b0];
分子向量den=[anan1…a1a0];
Matlab工具箱中,用命令tf()可以建立一个传递函数模型,或将状态空间模型和零极点增益模型变化伟零极点增益模型。
2、Matlab工具箱中,用命令zpk()可以建立零极点增益函数模型,或将传递函数模型和状态空间模型变化伟零极点增益模型。
3、Matlab工具箱中,用命令ss()可以建立状态空间模型,或将传递函数模型和零极点增益模型变化伟零极点增益模型。
4、函数tf2ss用于将传递函数化成状态空间模型,调用格式如:
[A,B,C,D]=tf2ss(num,den);
5、函数tf2zp用于将传递函数化成零极点模型,调用格式如:
[z,p,k]=tf2ss(num,den);
6、函数zp2ss用于将零极点增益模型化为状态空间模型,调用格式如:
[A,B,C,D]=zp2ss(z,p,k);
7、函数c2d用于将连续系统化为离散系统模型,调用格式如:
Sysd=c2d(sys,Ts);
8、函数cannon用于将控制系统模型化为对角标准型,调用格式如:
Csys=cannon(sys,’modal’)
四、实验内容
1、已知某SISO系统传递函数为:
,用MATLAB表示,查看模型属性,并修改延迟时间为5秒,修改分子多项式为s-1。
2、在图3-1所示的系统串连框图中,已知sys1的传递函数为:
,系统sys2的传递函数为:
,试求系统串连后的仿真模型。
图3-1SISO系统模型串连示意图
实验数据
1、已知某SISO系统传递函数为:
num=[11];
den=[123];
sys1=tf(num,den,'
inputdelay'
2)
Transferfunction:
s+1
exp(-2*s)*-------------
s^2+2s+3
get(sys1)
num:
{[011]}
den:
{[123]}
Variable:
'
s'
Ts:
0
ioDelay:
InputDelay:
2
OutputDelay:
InputName:
{'
'
}
OutputName:
InputGroup:
[1x1struct]
OutputGroup:
Notes:
{}
UserData:
[]
修改延迟时间为5秒,修改分子多项式为s-1。
num=[1-1];
sys1=tf(num,den,'
5)
s-1
exp(-5*s)*-------------
{[01-1]}
5
1、在图3-1所示的系统串连框图中,已知sys1的传递函数为:
num=[11];
den=[125];
G1=tf(num,den)
-------------
s^2+2s+5
G2=tf(5,[130])
5
---------
s^2+3s|
sys=series(G1,G2)
Transferfunction:
5s+5
---------------------------
s^4+5s^3+11s^2+15s
1、时域分析
1)根据下面传递函数模型:
绘制其单位阶跃响应曲线并从图上读取最大超调量,并求出单位脉冲响应曲线。
num=[52530];
den=[16108];
step(num,den)
sys=tf(num,den)
5s^2+25s+30
----------------------
s^3+6s^2+10s+8
最大超调量:
num=[52530];
den=[16108];
step(num,den)
grid
impulse(num,den)
(2)典型二阶系统传递函数为:
当ζ=0.7,ωn取2、4、6、8、10、12的单位阶跃响应。
forwn=2:
2:
12;
num=[wn^2];
den=[11.4*wnwn^2]
sys=tf(num,den);
step(num,den);
holdon
end
(3)典型二阶系统传递函数为:
当ωn=6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0的单位阶跃响应。
forkesi=0.2:
0.2:
1.0;
num=36;
den=[112*kesi36]
forkesi=1.0:
2.0;
2、频域分析
(1)典型二阶系统传递函数为:
当ζ=0.7,ωn取2、4、6、8、10、12的伯德图
bode(num,den);
当ωn=6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0的伯德图。
(3)已知二阶系统传递函数
绘制阻尼系数
分别为1.2,1.0,0.5和0.25时系统的Nyquist曲线。
1.2;
num=1;
den=[12*kesi1]
nyquist(num,den);
forkesi=0.25:
0.25:
0.5;
3、根轨迹分析
根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析系统稳定的K值范围。
num=[1];
den=[1,3,2,0];
sys=tf(num,den)
rlocus(sys)
四、实验内容:
1、已知单位负反馈系统开环传递函数为:
试设计一滞后校正网络,满足下列性能指标:
(1)单位斜坡输入作用下,系统稳态误差
(2)校正后系统相位裕量满足:
43°
<
Pm<
50°
(3)校正后系统的剪切频率
≥3.6rad/s
s=tf('
G=50/(s*(0.2*s+1)*(0.01*s+1));
figure
(1)%¸
Ã
¾
ä
Ê
Ç
¿
ª
³
ö
µ
Ú
Ò
»
¸
Í
¼
Ð
Î
´
°
£
¬
×
±
æ
Ö
Æ
BodeÍ
margin(G)
figure
(2)
step(feedback(G,1))
2、已知某单位负反馈系统被控对象的传递函数为;
设计一个超前校正网络
,使系统满足如下要求:
(1)单位斜坡输入作用下,系统稳态误差小于0.001;
(2)校正后系统的相位裕量Pm范围是:
40°
~50°
G=1000/(s*(2*s+1)*(0.002*s+1));
sys=feedback(G,1);
step(sys)
[mag,phase,w]=bode(G);
[Gm,Pm]=margin(G);
QWPm=45;
FIm=QWPm-Pm+5;
FIm=FIm*pi/180;
alfa=(1-sin(FIm))/(1+sin(FIm));
adb=20*log10(mag);
am=10*log10(alfa);
wc=spline(adb,w,am);
T=1/(wc*sqrt(alfa));
alfat=alfa*T;
Gc=tf([T1],[alfat1])
0.07555s+1
--------------
0.009329s+1
Gc=(0.07555*s+1)/(0.009329*s+1);
margin(Gc*G)
step(feedback(Gc*G,1))
4、如果已知某被控对象传递函数如下所示:
试根据Ziegler-Nichols经验整定公式分别设计P、PI、PID控制器,并观察其单位阶跃响应曲线。
K=1;
T=15;
tao=5;
Gz=K/(T*s+1);
[np,dp]=pade(tao,2);
Gy=tf(np,dp);
G=Gz*Gy;
PKp=T/(K*tao)
step(feedback(PKp*G,1)),holdon
PIKp=0.9*T/(K*tao);
PITI=3*tao;
PIGc=PIKp*(1+1/(PITI*s))
step(feedback(PIGc*G,1)),holdon
PIDKp=1.2*T/(K*tao);
PIDTI=2*tao;
PIDTd=0.5*tao;
PIDGc=PIDKp*(1+1/(PIDTI*s)+PIDTd*s/((PIDTd/10)*s+1))
step(feedback(PIDGc*G,1)),holdon
[PIDKp,PIDTI,PIDTd]
gtext('
P'
PI'
PID'
PKp=3
40.5s+2.7
------------
15s
99s^2+36.9s+3.6
---------------------
2.5s^2+10s
ans=3.600010.00002.5000
实验六:
Simulin建模与仿真
1、掌握Simulink建模与仿真的基本方法。
2、熟悉Simulink基本模块库及主要元件的使用方法。
4学时
三、实验原理:
1、Simulink仿真过程
在已知系统数学模型或系统框图的情况下,利用Simulink进行建模仿真的基本步骤如下。
(1)启动Simulink,打开Simulink库浏览器。
(2)建立空白模型窗口。
(3)由控制系统数学模型或结构框图建立Simulink仿真模型。
(4)设置仿真参数,运行仿真。
(5)输出仿真结果。
2、Simulink建模与仿真基本方法
根据给定的数学模型或控制系统框图,可建立Simulink仿真模型。
下面以图3-1所示的控制系统框图为例,说明Simulink建模与仿真的基本方法。
图中R是单位阶跃输入信号,Y为系统输出响应。
建立图6-3所示系统框图的Simulink仿真模型的基本方法如下。
1.启动MATLAB/Simulink工具箱
依次启动MATLAB软件、Simulink模块库浏览器后,如图6-1所示。
2.建立Simulink空白模型
Simulink空白模型的建立可通过如下方法进行。
3、在MATLAB主窗口中选择【File】→【New】→【Model】命令。
4、在Simulink模块库浏览器窗口中选择【File】→【New】→【Model】命令。
5、单击Simulink模块库浏览器工具栏中的
(Newmodel)工具。
图6-1闭环控制系统框图
通过上述方法可以打开Simulink空白模型,如图6-2所示。
并可将其保存为后缀是mdl的文件(Simulink仿真模型的文件存储格式),例如Example_Model.mdl。
在保存Simulink模型文件的时候,为了实现向下兼容,MATLABR2008/Simulink7.1允许将模型保存为其他版本的Simulink模型。
图6-2空白模型窗口
3.根据系统框图选择模块
构建Simulink仿真模型,首先需要知道所需模块所属的子模块库名称。
如图6-3所示的闭环控制系统,用到了单位阶跃信号、符号比较器、传递函数模型和信号输出模块。
因此可确定它们分别隶属于信号源模块库、数学模块库、连续系统模块库和输出模块库。
在模块库浏览器中打开相应的模块库,并选择所需模块。
如图3-3所示,选中信号源模块库的单位阶跃信号模块。
图中被选中的模块成高亮显示。
图6-3在Simulink模块库浏览器中选择所需模块
4.模块的复制与删除操作
在找到所需模块后,需要将模块复制到Simulink空白模型上,具体操作方法如下。
6、在模块库选中模块后,按住鼠标左键不放并拖动到Simulink模型窗口的指定位置,释放鼠标左键,完成模块的复制操作。
7、在模块库选中模块后,右击该模块,在弹出的快捷菜单中选择【AddtoExample_Model】命令,将模块添加到指定模型窗口,完成模块的复制操作。
8、在模块库选中模块后,在库浏览器窗口中选择【Edit】→【Copy】命令,用鼠标单击目标模型窗口中指定的位置,再从模型窗口中选择【Edit】→【Paste】命令,完成模块的复制操作。
9、当模型窗口已有所需模块时,也可以直接从该处复制模块,操作方是右击所选模块,在弹出的快捷菜单中选择【Copy】命令,然后右击模型窗口空白处,在弹出的快捷菜单中选择【Paste】命令来完成粘贴任务。
此外,也可以使用编辑菜单进行复制、粘贴操作。
当然还可以用鼠标右键按住所需复制的模块不放,并拖动到指定位置完成复制操作,这可大大加快建模速度。
按照上述方法,可将阶跃信号模块、符号比较器、传递函数模型、信号输出模块一一复制到Exmaple_Model窗口,如图6-4所示。
图6-4完成模块复制的模型窗口
当需要删除模块时,在模型窗口选中指定模块,按下【Delete】键完成删除,也可以右击选中的模块,在弹出的快捷菜单中选择【Delete】命令来完成删除操作,还可以选择【Edit】→【Delete】命令来完成删除操作。
5.模块的连接
在完成所需模块的复制操作之后,需要将模块连接起来,构成Simulink仿真模型,具体方法如下。
10、将鼠标移动到模块的输出端上,当鼠标出现“十字”符号后,单击鼠标并拖动到下级模块的输入端上,完成模块信号的连接,如图3-5(a)、(b)所示。
11、选中信号输出模块,按下键盘【Ctrl】键并单击下级模块完成模块信号的连接。
12、在已存在的信号线上引出新的信号线时,可用鼠标右键单击源信号线,并按住不放拖动到指定位置,完成信号线的分支连接。
如图6-5所示。
在模块没有完成连接时,以红色虚线显示,当连接完成后以黑色实线显示。
图6-5模块的连接示意图
图66利用鼠标右键引出信号线分支
将各子模块连接起来后,构成如图6-7所示的系统模型。
图6-7完成连接的Simulink模型
6模块的参数设置
在完成模块的信号线连接并建立起系统的Simulink仿真模型后,需要设置模块的参数。
在Simulink模型里,双击需要修改参数的模块,弹出参数设置对话框。
例如,在图6-9中,双击阶跃信号模块,弹出如图6-8所示的参数设置对话框。
在这里可设置阶跃信号参数,比如将阶跃发生时间由默认的1秒改为0.5秒。
图6-8阶跃信号参数设置对话框
在图3-7中双击Sum(加法器)模块,弹出其参数设置对话框,如图6-9所示,将反馈信号连接改为负反馈。
在图6-9中,符号列表中的“|”是用来定义加法器模块输入端口标识符在图形外部的显示位置,输入端口数及操作符号由图3-9中“Listofsigns”栏的加、减符号列表来确定。
图6-9加法器属性参数设置对话框
下一步修改传递函数模型,在图6-8中双击TransferFcn模块,弹出其参数设置对话框,如图6-10所示。
根据被控对象传递函数,在“Numeratorcoefficient”文本框中输入分子多项式系数向量,在“Denominatorcoefficient”文本框中输入分母多项式系数向量,从而建立被控对象的Simulink仿真模型。
图6-10连续系统传递函数模块设置对话框
最后对Scope(输出信号接收器)模块进行参数设置。
在图6-8中,首先双击Scope模块,弹出如图6-11所示的仿真数据输出窗口,然后单击Scope工具栏中的
(Parameters)工具,弹出Scope基本参数设置对话框,如图6-12所示。
在Numberofaxes文本框中设置输入信号数。
在Timerange文本框中设置示波器显示时间范围,默认为系统自动设定显示时间范围,用户也可以进行修改。
“TickLabel选项框可以选择是否显示坐标系标签。
图6-11Scope模块显示窗口图6-12Scope基本参数设置对话框
单击“Datahistory”选项卡,切换到历史数据参数设置面板,如图6-13所示,在“Limitdatapointstolast”栏可以设置示波器显示的仿真数据点数。
系统默认只显示最近的5000个数据点,用户可以修改该数据,也可以取消“Limitdatapointstolast”复选框的勾选,使示波器显示所有仿真数据点。
在“Savedatatoworkspace”栏,可以将输出的数据保存到工作空间,此时需要指定保存输出数据的变量名称及其保存格式。
例如将仿真输出数据保存到工作空间,变量名为“y”,格式为“Array”(矩阵)形式。
图6-13Scope历史数据参数设置对话框
7仿真参数设置
在模型窗口选择【Simulation】→【ConfigurationParameters】命令,打开“ConfigurationParameters”对话框,在这里可以设置Simulink的仿真求解器参数。
仿真参数设置是Simulink动态仿真的一个优点、亮点,也是一个难点,在后面将详细讲到。
S