(3)校正后系统的剪切频率
≥3.6rad/s
s=tf('s');
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°
s=tf('s');
G=1000/(s*(2*s+1)*(0.002*s+1));
margin(G)
s=tf('s');
G=1000/(s*(2*s+1)*(0.002*s+1));
sys=feedback(G,1);
step(sys)
s=tf('s');
G=1000/(s*(2*s+1)*(0.002*s+1));
[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])
Transferfunction:
0.07555s+1
--------------
0.009329s+1
s=tf('s');
G=1000/(s*(2*s+1)*(0.002*s+1));
Gc=(0.07555*s+1)/(0.009329*s+1);
margin(Gc*G)
s=tf('s');
G=1000/(s*(2*s+1)*(0.002*s+1));
Gc=(0.07555*s+1)/(0.009329*s+1);
step(feedback(Gc*G,1))
4、如果已知某被控对象传递函数如下所示:
试根据Ziegler-Nichols经验整定公式分别设计P、PI、PID控制器,并观察其单位阶跃响应曲线。
K=1;T=15;tao=5;
s=tf('s');
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');
gtext('PI');
gtext('PID');
PKp=3
Transferfunction:
40.5s+2.7
------------
15s
Transferfunction:
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