1、1,课程设计的目的,课程设计进度安排,求位置随动系统的数学模型,一阶直线倒立摆问题,第2章 连续系统的数学模型,第3章 用求取时域响应,第4章 用MATLAB绘制系统的根轨迹,第5章 用MATLAB进行系统的频域分析,仿真工具Simulink简介,课程设计说明书与图纸要求,2,课程设计的目的,自动控制原理课程设计目的是使学生通过学习本课程后,能初步理论联系实际,应用控制理论初步解决实际控制问题,能对系统进行校正和提出改善系统性能的途径和方法。能熟练应用MATLAB工具来分析和设计控制系统。,3,课程设计进度安排,4,课程设计说明书与图纸要求,设计完成后,按学校“课程设计工作规范”中的“统一书写
2、格式”,撰写课程设计报告一份,包括:设计题目、设计要求、设计方案、设计原理、设计分析与计算、仿真程序、仿真波形、结果分析、心得体会(不少于800字)、参考文献(不少于5篇)。课程设计报告用A4纸打印(不少于12页)。,5,求位置随动系统的数学模型,任务是控制机械负载,使其位置与输入手柄的位置相协调。,6,位置随动系统的方框图,7,各元件微分方程:,8,零初始条件下的拉氏变换:,9,各元件传递函数:,10,由各元部件传递函数,消去中间变量,得系 统的传递函数为:,为转矩系数(牛米/安),是反电势系数(伏/(弧度/秒),(La很小,可以忽略不计),11,例: 一长度为l ,质量为m的单倒立摆,用铰
3、 链安装在质量为M的小车上,小车受电机操纵, 在水平方向施加控制力u,相对参考坐标系产生位移x 。要求建立该系统的线性数学模型传递函数(以u为输入, 为输出)。,一阶直线倒立摆问题,12,设小车瞬时位置为 摆心瞬时位置为 在水平方向,由牛顿第二定律即:在垂直方向:惯性力矩与重力矩平衡,13,即:则有:联立求解:,14,其等效动态结构图为:,15,第2章 连续系统的数学模型,2.1 连续系统常用的数学模型及其转换,1微分方程及传递函数的有理分式模型,在MATLAB 语言中,可以利用分别定义的传递函数分子、分母多项式系数向量方便地加以描述。例如对于(2-2)式,系统可以分别定义传递函数的分子、分母
4、多项式系数向量为:,16,例2-1 已知系统传递函数为 利用MATLAB将上述模型表示出来,并将其建立在工作空间中。,解:,17,例2-2 已知系统传递函数为 利用MATLAB将上述模型表示出来。,解:其MATLAB命令为: num=7*2,3; den=conv(conv(conv(conv(1,0,0,3,1),1,2),1,2),5,0,3,8); sys=tf(num,den),Conv: 多项式乘法函数,18,19,2传递函数的零极点增益模型,在MATLAB里,用函数命令zpk( )来建立控制系统的零极点增益模型,或者将传递函数模型转换为零极点增益模型。zpk( )函数的调用格式为:
5、,sys=zpk(z,p,k),函数返回的变量sys为连续系统的零极点增益模型。,20,例2-3 已知系统传递函数为 ,利用MATLAB将上述模型表示出来。, k=5; z=-20; p=0,-4.6,-1; sys=zpk(z,p,k) 结果: Zero/pole/gain:5 (s+20) - s (s+4.6) (s+1),解:,21,3. 零极点增益模型转换为传递函数模型,用法举例:,z=-3;p=-1,-2,-5;k=6; num,den=zp2tf(z,p,k); g=tf(num,den), Transfer function:6 s + 18 - s3 + 8 s2 + 17
6、s + 10,结果:,22,1.反馈连接:feedback,格式:,num,den=feedback(num1,den1,num2,den2,sign),反馈连接,将系统1的指定输出out1 连接到系统2的输入,系统2的输出连接到系统1的 指定输入inp1,以此构成 闭环系统。 sign缺省时,默认为负反馈,即sign= -1。,2.闭环单位反馈连接 :cloop 格式:,numc,denc=cloop(num,den,sign),表示由传递函数表示的开环系统构成闭环系统, sign意义与上述相同。,2.2 求闭环系统的传递函数,23,用法举例:,【例】已知反馈系统框图如图所示,,试求系统的传
7、递函数C(s)/R(s) 。,24,n1=1;d1=1,0;g1=tf(n1,d1); n2=0.4;d2=0.5,1;g2=tf(n2,d2); n3=1;d3=4,1;g3=tf(n3,d3); n4=12,1;d4=6,1;h=tf(n4,d4); g=g1*g2*g3; sys=feedback(g,h,-1),Transfer function:2.4 s + 0.4-12 s4 + 29 s3 + 10.5 s2 + 5.8 s + 0.4,结果:,25,3.1 中连续系统模型表示方法,3.2 求连续系统的单位脉冲响应,3.3 求连续系统的单位阶跃响应,3.7 控制系统稳定性分析的
8、MATLAB实现,第3章 用求取时域响应,3.4 求系统单位阶跃响应动态性能指标,3.5 求系统单位斜坡响应,3.6 求系统单位抛物线输入响应,26,3.1 中连续系统模型表示方法,、连续系统多项式模型,表示方法,分子多项式 num=b0 , b1 , bm-1, bm,分母多项式 den=a0 , a1, an-1, an,建立传递函数模型: sys=tf(num,den),27,、连续系统零极点模型,表示方法:,比例系数: kk,分子: z=-z1 , -z2 , , -zm,分母: p=-p1 ,- p2 , , -pn,建立零极点传递函数模型: sys=zpk(z,p,k),模型转换:
9、 num,den=zp2tf(z,p,k),28,3.2 连续系统的单位脉冲响应,例1:求如下系统的单位脉冲响应,num=1.9691 , 5.0395 den=1,0.5572,0.6106 impulse(num,den),在的ditor/Debugger输入程序,在菜单中选择得到结果,29,30,3.3 连续系统的单位阶跃响应,num=1.9691 , 5.0395 den=1,0.5572,0.6106 step(num,den),例2:求如下系统的单位阶跃响应,在的ditor/Debugger输入程序,在菜单中选择得到结果,31,32,3.4 求系统单位阶跃响应动态性能指标,例3:求
10、如下系统的单位阶跃响应动态性能指标,在的ditor/Debugger输入程序,3.4.1 求系统单位阶跃响应的性能指标程序,33,num=22.68 den=1,9.2,7.36,5.376 t=0:0.01:20 step(num,den,t) y,x,t=step(num,den,t) maxy=max(y) yss=y(length(t) pos=100*(maxy-yss)/yss for i=1:2001if y(i)=maxyn=i;end end tp=(n-1)*0.01 y1=1.05*yss y2=0.95*yss i=2001 while i0i=i-1if y(i)=y
11、1|y(i)=y2;m=i;breakendend,34,ts=(m-1)*0.01 title(step response) grid,maxy =4.9032 yss =4.2174 pos =16.2616% tp =4.6600y1 = 4.4283 y2 =4.0065 ts =6.7300,在Debug菜单中选择得到结果,35,3.4.2 用MATLAB中的LTI Viewer图形工具 求系统单位阶跃响应的性能指标,【例4】已知一个单位反馈系统框图如图所示,其中,求系统的单位阶跃响应;并计算其性能指标。,36,以【例4】系统为例来说明怎样使用MATLAB中LTI Viewer,求系
12、统的各种性能指标。,在MATLAB命令框输入以下命令:,37,或运行【例4】中的M文件,38,系统的阶跃响应曲线,39, 在MATLAB提示符后,输入ltiview,即可启动该图形软件,显示窗口如图所示。,40,从File的下拉菜单中选中import选项选择需要仿真的系统。,选择窗口中的Lsys系统,并用鼠标点击OK,41,在画面中点击鼠标右键,选择 “Characteristics”选项,再选择 “Peak Time”项可得阶跃响应曲线中的 峰值时间为11.3。,42,43,System:Lsys Peak amplitued:1.35 Overshoot(%):34.9 At time:1
13、1.3,44,在画面中点击鼠标右键,选择“Characteristics”选项,再选择“Settling Time”、“Rise Time”、“Steady State”选项可得阶跃响应曲线中的调节时间为36.3,上升时间为4.4,稳态值为1(稳态误差为0)。,45,本例中,通过点击“Edit”菜单,在弹出的下拉菜单中选择“Viewer Preferences”项,设定阶跃响应的上升时间范围为最终稳态值的090%,调节时间的误差带为2%。,46,3.5 求系统单位斜坡响应,例5:求如下系统的单位斜坡响应,在的ditor/Debugger输入程序,47,num=10 den=1,4,8,10 t
14、=0:0.1:20 subplot(2,1,1) u=t plot(t,u) hold on lsim(num,den,u,t),在Debug菜单中选择得到结果,48,3.6 求系统单位抛物线输入响应,例6:求如下系统的单位抛物线输入响应,在的ditor/Debugger输入程序,49,num=8,8 den=1,5,12,16,8,0,0 t=0:0.1:20 y=step(num,den,t) subplot(2,1,1) y1=0.5*power(t,2) plot(t,y,t,y1) grid,在Debug菜单中选择得到结果,50,3.7 控制系统稳定性分析的MATLAB实现,直接求根
15、判定系统稳定性,求解控制系统闭环特征方程的根并判断所有根的实部是否小于零,在MATLAB里这是很容易用函数roots( )实现的。,【例7】已知系统开环传递函数为: ,试判别系统的稳定性。,【解】根据题意,利用roots( )函数给出以下MATLAB程序段:k=100;z=-2;p=0,-1,-20;n1,d1=zp2tf(z,p,k); G=tf(n1,d1);p=n1+d1; roots(p),%运行结果:n1 = 0 0 100 200,d1 = 1 21 20 0;,%运行结果: Transfer function:100 s + 200 - s3 + 21 s2 + 20 s,%运行
16、结果:p = 1 21 120 200,ans =-12.8990-5.0000-3.1010,51,主要的根轨迹函数表,第4章 用MATLAB绘制系统的根轨迹,52,4.1 求开环传递函数的零极点,例1:已知系统的开环传递函数,求系统开环零、极点的位置,num=2 5 1; den=1 2 3; pzmap(num,den); title(pole-zero Map),分子多项式,分母多项式,求零极点函数,打印标题,53,4.2 绘制常规根轨迹,例2:已知系统的开环传递函数,绘制该系统的根轨迹图,k=1 z=-0.5 p=0,-1,-2 n,d=zp2tf(z,p,k) rlocus(n,d
17、),绘制根轨迹函数,54,55,例3:已知系统的开环传递函数,绘制系统的根轨迹图。,num=1 den=conv(conv(1,0,1,2.73),1,2,2) rlocus(num,den) title(控制系统根轨迹图),56,57,4.3 绘制带阻尼比和自然振荡频率栅格,例4:已知系统的开环传递函数,绘制系统的根轨迹图及带阻尼比和自然振荡频率栅格。,k=1 z=-0.5 p=0,-1,-2 n,d=zp2tf(z,p,k) rlocus(n,d) sgrid title(控制系统根轨迹图和栅格),绘制栅格,58,59,4.4 系统性能分析,例5:已知系统的开环传递函数,绘制系统的根轨迹图
18、并分析系统性能。,k=1 z= p=0,-1,-2 n,d=zp2tf(z,p,k) rlocus(n,d) sgrid k,p=rlocfind(n,d),求十字光标处的闭环极点,60,Select a point in the graphics window selected_point = -0.3223 + 0.5342i,k = 0.9479 p = -2.3123 -0.3438 + 0.5401i-0.3438 - 0.5401i,61,4.5 用根轨迹法判断系统稳定性及其举例,【例6】已知一个单位负反馈系统开环传递函数为G(s),试在系统闭环的根轨迹图上选择一点,求出该点的增益
19、k及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。,【解】根据题目要求,调用函数命令rlocfind( )的程序如下:,num=1 3;den=conv(conv(conv(1 0,1 5),1 6),1 2 2);sys=tf(num,den); rlocus(sys),%运行结果: den =1 13 54 82 60 0,%运行结果:Transfer function:s + 3 - s5 + 13 s4 + 54 s3 + 82 s2 + 60 s,图4.5.-1,62,k,poles=rlocfind(sys),求给定一组根的系统根轨迹增益函数rlocfind( ),函数命令调
20、用格式: k,poles=rlocfind(sys),函数命令使用说明:,63,【例7】续【例6】,试计算当k在3337范围内时系统的闭环极点位置,并判断系统闭环的稳定性。,【解】根据题目要求,用函数命令编写MATLAB程序如下: num=1 3;den=conv(conv(conv(1 0,1 5),1 6),1 2 2); cpole=rlocus(num,den,33:1:37);,%运行结果: cpole =Columns 1 through 4 -5.5745 + 0.6697i -5.5745 - 0.6697i -1.7990 -0.0260 + 1.3210i-5.5768 +
21、 0.6850i -5.5768 - 0.6850i -1.8154 -0.0155 + 1.3340i-5.5791 + 0.7001i -5.5791 - 0.7001i -1.8313 -0.0052 + 1.3467i-5.5815 + 0.7147i -5.5815 - 0.7147i -1.8466 0.0048 + 1.3591i-5.5838 + 0.7291i -5.5838 - 0.7291i -1.8615 0.0146 + 1.3712iColumn 5 -0.0260 - 1.3210i-0.0155 - 1.3340i-0.0052 - 1.3467i0.0048
22、- 1.3591i0.0146 - 1.3712i,64,range=33:1:37; range,cpole,ans =Columns 1 through 4 33.0000 -5.5745 + 0.6697i -5.5745 - 0.6697i -1.7990 34.0000 -5.5768 + 0.6850i -5.5768 - 0.6850i -1.8154 35.0000 -5.5791 + 0.7001i -5.5791 - 0.7001i -1.8313 36.0000 -5.5815 + 0.7147i -5.5815 - 0.7147i -1.8466 37.0000 -5.
23、5838 + 0.7291i -5.5838 - 0.7291i -1.8615 Columns 5 through 6 -0.0260 + 1.3210i -0.0260 - 1.3210i-0.0155 + 1.3340i -0.0155 - 1.3340i-0.0052 + 1.3467i -0.0052 - 1.3467i0.0048 + 1.3591i 0.0048 - 1.3591i0.0146 + 1.3712i 0.0146 - 1.3712i,65,求系统根轨迹的函数 rlocus( ),函数命令调用格式: r,k=rlocus(a,b,c,d) r,k=rlocus(sys
24、),函数命令使用说明: rlocus( )函数命令用来绘制SISO系统的根轨迹图。给定前向通道传递函数G(s),反馈补偿为k*F(s)的受控对象,其闭环传递函数为:,可以用以下程序来校核当k=35与k=36时闭环系统的阶跃给定响应曲线: n1=1 3;d1=conv(conv(conv(1 0,1 5),1 6),1 2 2); for k=35:36 n=k*n1; s1=tf(n,d1); G1=feedback(s1,1); step(G1);hold on end gtext(k=35),gtext(k=36),图4.5-.3,66,主要频域响应函数表,第5章 用MATLAB进行系统的
25、频域分析,67,5.1 绘制Bode图,例5-1已知系统的传递函数,绘制系统的Bode图。,num=2.5 den=0.01,0.25,1,0 bode(num,den) grid,68,69,sys=tf(1,6,1,0,inputdely,1.5) bode(sys) grid hold on,例5-2 已知系统的传递函数,绘制系统的Bode图。,70,71,例5-3 已知系统的传递函数,绘制系统的Bode图;并求系统的相角裕度和幅值裕度。,sys=tf(1,6,1,0,inputdely,1.5) mag,phase,w=bode(sys) margin(sys),5.2 绘制Bode图
26、并求相应系统的相角裕度和幅值裕度,72,73,例5-4 已知系统的传递函数,绘制系统的Bode图;并求系统的相角裕度和幅值裕度。,n=2.5 d=0.01,0.25,1,0 g1=tf(n,d) mag,phase,w=bode(g1) margin(g1),74,75,5.3 绘制Nyquist图,例5-5 已知系统的传递函数,绘制系统的奈奎斯特图(Nyquist图)。,n=2.5 d=0.01,0.25,1,0 nyquist(n,d),76,77,5.4 MATLAB在线性系统校正中的应用,用MATLAB分析PID校正系统,PID控制器的传递函数,例: 单位反馈系统被控对象的传递函数为,
27、PID调节器的传递函数,比较校正前后系统的频率特性和单位阶跃响应,78,1、绘制未校正系统的伯德图,num1=35 den1=conv(conv(0.2,1,0,0.01,1),0.005,1) g0=tf(num1,den1) figure(1) margin(g0),2、分析校正后的频率特性,79,n2=0.2,3,10 d2=1,0 gc=tf(n2,d2) gk=g0*gc figure(2) margin(gk),3、求校正前后的单位阶跃响应,t=0:0.02:5 gb0=feedback(g0,1) gb=feedback(gk,1) y1=step(gb0,t) y2=step(
28、gb,t) figure(3) plot(t,y1,y2) grid,80,81,82,83,5.5 控制系统Bode图设计方法 一.Bode图超前校正设计,超前校正设计是指利用校正器对数幅频曲线具有正斜率的区段及其相频曲线具有正相移区段的系统校正设计。这种校正设计方法的突出特点是校正后系统的剪切频率比校正前的大,系统的快速性能得到提高。,相位超前校正主要用于改善闭环系统的动态特性,对于系统的稳态精度影响较小。,84,【例】已知单位负反馈系统被控对象的传递函数为:试用Bode图设计方法对系统进行超前串联校正设计,使之满足: (1)在斜坡信号 作用下,系统的稳态误差 (2) 系统校正后,相角裕度
29、有:43o48o。,即被控对象的传递函数为:,85,(2) 做原系统的Bode图与阶跃响应曲线,检查是否满足题目要求,86,图5.1未校正系统的Bode图,87,图5.2 单闭环系统的单位阶跃响应,由图5.1和图5.2可知系统的: 幅值裕度Gm0.1dB;-穿越频率 cg100.0s-1; 相角裕度Pm0.1deg;截止频率 cp99.5s-1,88,(3) 求超前校正器的传递函数,根据要求的相角裕度=45o并附加10o,即取=55o。,设超前校正器的传递函数为:,为了不改变校正后系统的稳态性能, 中的已经 包含在 中,89,计算系统开环对数幅频值。,因为增加超前校正装置后,使截止频率向右方移
30、动,并且减小了相位裕量,所以要求额外增加相位超前角50120。参见后图1。为什么?,Spline立方插值函数,90,计算结果为:,91,(4)校验系统校正后系统是否满足题目要求,92,由Bode图可知系统的: 幅值裕度Gm=17.614dB;-穿越频率cg=689.45s-1; 相角裕度Pm=48.148deg; 截止频率 cp=176.57s-1 计算出的相角裕度Pm=48.148deg,已经满足题目43o48o的要求。,93,(5)计算系统校正后阶跃给定响应曲线及其性能指标,94,从File的下拉菜单中选中import选项选择需要仿真的系统。,选择窗口中的sys系统,并用鼠标点击OK,95
31、,即可得如图画面。若求响应曲线的性能指标,只需在画面中点击鼠标右键,选择“Characteristics”选项,再选择后面的选项得: 超调量:sigma=25.6% 峰值时间:tp=0.0158s 调节时间:ts=0.0443s,96,97,98,99,仿真工具Simulink简介 (一)Simulink界面,Simulink图标,100,连续系统模块组,离散系统模块组,函数和表模块组,数学运算模块组,非线性模块组,信号与系统模块组,输出模块组,信号源模块组,101,(二)模型窗口的建立,打开“untitled”窗口有三种方法: 在MATLAB的命令窗口中选择FileNewModel菜单项;
32、单击Simulink工具栏中的“新建模型”图标; 如果Simulink动态结构图已经存在,那么在MATLAB指令窗口下直接键入模型文件名字,便会直接打开该模型动态结构图的模型窗口。,102,(三)框图模型建立举例,【例】已知一个单位反馈系统框图如图所示,其中:,试绘制其系统结构图模型,标注模块标题“三阶系统的阶跃响应”,并以文件名“Zhang4sys1”存盘。,103,绘制该系统结构图步骤如下: 按以下步骤创建一个新的“untitled”模型窗口。,104, 点击Sources,选中信号源模块组中的Step模块,并拖拽到“untitled”模型窗口。,105,106,在各模块库中,选中需要的标
33、准功能模块并拖拽到“untitled”模型窗口。双击“Transfer Fcn”模块,在得出的对话框中,分别输入系统的分子和分母参数,即可得到修改后的系统模型。,107,108,仿真参数的设置,仿真参数设置,启动仿真,109,仿真参数对话框及默认值,110, 从仿真曲线看,系统按默认参数仿真,其结果不完整(过渡过程没有结束)。需要修改仿真用参数后再仿真。,解算器,工作空间,诊断,111, 用鼠标左键选中并单击I积分环节模块标题“ntegrator”,将原标题字符删除重新输入汉字“积分环节”;并可依次修改其他模块标题。最后,再在窗口空白处,双击鼠标左键,输入文字“三阶系统的阶跃响应”。, 对建好
34、的系统结构图模型按“zhang4sys1.mdl”命名并存盘,112,(四).在simulink里绘制单位阶跃响应曲线,例 已知一个单位反馈系统框图如图所示,其中:,试绘制出该系统的单位给定阶跃响应曲线并计算其性能指标。,用SIMULINK提供的linmod( )和linmod2( )两个函数, 从连续系统中提取线性模型。,及计算性能指标,113,【解】:,114,(1)根据题目要求,用step( )函数命令编写求单位阶跃响应的MATLAB程序段如下: a,b,c,d=linmod2(t401); sys=ss(a,b,c,d); step(sys),SIMULINK动态结构图t401.mdl文件存放在MATLAB中,存放路径为MATLABR11work中。,115,(2)用LTI Viewer图形工具求系统阶跃响应的性能指标。,116,