实验一初步认识MATLAB和控制系统仿真
一、实验目的
1.熟悉MATLAB桌面和命令窗口,掌握MATLAB仿真软件的使用方法。
2.掌握控制系统数学模型的多种描述方法及其仿真实现和互相转换。
3.熟悉控制系统仿真常用的MATLAB函数。
二、基础知识及MATLAB函数
Matlab是一个功能强大的数值计算、符号运算工具。我们可以很方便地处理线性代数中的矩阵计算,方程组的求解,微积分运算,多项式运算,偏微分方程求解,统计与优化等问题。
MATLAB语言以向量和矩阵为基本的数据单元, 包括流程控制语句(顺序、选择、循环、条件、转移和暂停等),大量的运算符,丰富的函数,多种数据结构,输入输出以及面向对象编程。这些既可以满足简单问题的计算,也适合于开发复杂的大型程序。MATLAB不仅仅是一套打好包的函数库,同时也是一种高级的、面向对象的编程语言。使用MATLAB能够卓有成效地开发自己的程序,MATLAB自身的许多函数,实际上也包括所有的工具箱函数,都是用M文件实现的。
1、启动MATLAB命令窗口
计算机安装好MATLAB之后,双击MATLAB图标,就可以进入命令窗口(Command Window),此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。
MATLAB语句形式
>变量=表达式;
通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。
2、常用函数
1)常用的数学运算符
+,—,*(乘),/(左除),\(右除),^(幂)
2)常用数学函数
abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real,sign,log,log10,conj(共扼复数)等
3)多项式处理函数
① 在MATLAB 中,多项式使用降幂系数的行向量表示,如:多项式
表示为:p=[1 -12 0 25 116],使用函数roots 可以求出多项式等于0的根,根用列向量表示。若已知多项式等于0的根,函数poly 可以求出相应多项式。
r=roots(p) r =
11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i p=poly(r) p =
-12 -0 25 116 ② 多项式的运算 ● 相乘conv
a=[1 2 3] ; b=[1 2] c=conv(a,b)=1 4 7 6 conv 指令可以嵌套使用,如conv(conv(a,b),c) ● 相除deconv [q,r]=deconv(c,b)
q=1 2 3 %商多项式 r=0 0 0 %余多项式 ● 求多项式的微分多项式polyder polyder(a)=2 2
● 求多项式函数值polyval(p,n):将值n 代入多项式求解。 polyval(a,2)=11 ③ 多项式的拟合
● 多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足
样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。 ● 命令格式:p=polyfit(x,y,n),其中x 和y 为样本点向量,n 为所求多项式的阶数,
p 为求出的多项式。 ④ 多项式插值
116
25012234+++-x x x x
●多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平
滑的效果。所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统属性的要求。Help polyfun可以得到更详细的内容。
y=interp1(xs,ys,x,’method’)
●在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method
中,有4种选择:
●nearest:执行速度最快,输出结果为直角转折
●linear:默认值,在样本点上斜率变化很大
●spline:最花时间,但输出结果也最平滑
●cubic:最占内存,输出结果与spline差不多
4)绘图函数
plot(x1,y1,option1,x2,y2,option2,…)
x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,以逐点连折线的方式绘制1个二维图形;同时类似地绘制第二个二维图形,……等。
这是plot命令的完全格式,在实际应用中可以根据需要进行简化。比如:
plot(y), 以向量y 的值为纵坐标,横坐标从1 开始自动赋值绘制一条平面曲线;
plot(x,y), x 和y 为长度相同的向量,以x 的值为横坐标和y 的值为纵坐标绘制一条平面曲线;
plot(x,y,s),这里s 是作图控制参数,用来控制线条的颜色、线型及标示符号等,用一个单引号括起来的字符串表示,所绘制的曲线与第二种格式相同(控制参数字符请参考Matlab的帮助,这些参数可以组合使用);
x=linspace(0,2*pi,100); % 100 个点的x 座标
y=sin(x); % 对应的y 座标
plot(x,y);
这就画出了正弦函数在[0,2π]上的图形
若要画出多条曲线,只需将座标对依次放入plot 函数即可:
plot(x, sin(x), x, cos(x));
该命令在同一坐标系中画出了正弦和余弦函数的图形。
grid on:在所画出的图形坐标中加入栅格
grid off:除去图形坐标中的栅格
hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。
hold off :使新图覆盖旧的图形 设定轴的范围
axis ([xmin xmax ymin ymax])
axis(‘equal ’):将x 坐标轴和y 坐标轴的单位刻度大小调整为一样。 文字标示
text(x,y,’字符串’)
在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 gtext(‘字符串’)
利用鼠标在图形的某一位置标示字符串。 title(‘字符串’)
在所画图形的最上端显示说明该图形标题的字符串。 xlabel(‘字符串’),ylabel(‘字符串’) 设置x ,y 坐标轴的名称。
输入特殊的文字需要用反斜杠(\)开头。
legend(‘字符串1’,‘字符串2’,…,‘字符串n ’)
在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。
subplot (mnk ):分割图形显示窗口
m:上下分割个数,n:左右分割个数,k:子图编号
semilogx :绘制以x 轴为对数坐标(以10为底),y 轴为线性坐标的半对数坐标图形。
semilogy :绘制以y 轴为对数坐标(以10为底),x 轴为线性坐标的半对数坐标图形。
3、控制系统的模型
控制系统的表示可用三种模型:传递函数、零极点增益、状态空间。每一种模型又有连续与离散之分。为分析系统方便有时需要在三种模型间转换。MATLAB 提供了各种命令,使我们可以很方便的完成这些工作,下面以连续系统为例简要说明有关命令。
1) 模型与表示式
① 传递函数模型
1110
1
110
...()...m m m m n n n n b s b s b s b G s a s a s a s a ----++++=++++ 在MATLAB 中直接用矢量组表示传递函数的分子、分母多项式系数,即:
num = [b m b m-1…… b 0]; 表示传递函数的分子多项式系数 den = [a n a n-1…… a 0]; 表示传递函数的分母多项式系数 sys = tf (num,den) tf 命令将sys 变量表示成传递函数模型。 ② 零极点增益模型
1212()()...()
()()()...()
m n s z s z s z G s k
s p s p s p ---=---
在MATLAB 中用z 、p 、k 矢量组分别表示系统的零点、极点和增益,即: z = [ z 1 z 2…… z m ]; p = [ p 1 p 2…… p n ]; k =[ k ];
sys = zpk (z,p,k) zpk 命令将sys 变量表示成零极点增益模型。 ③ 状态空间模型 x = ax + bu y = cx + du
在MATLAB 中用(a 、b 、c 、d )矩阵组表示,然后 sys = ss (a,b,c,d) ss 命令将sys 变量表示成状态空间模型。 2) 模型间的转换
在MATLAB 中进行模型间转换的命令有: ss2tf 、ss2zp 、tf2ss 、tf2zp 、zp2tf 、zp2ss 它们之间的作用可由下面的示意图表示:
3) 模型间的关系与系统建模
实际工作中常常需要由多个简单系统构成复杂系统,MATLAB 中有下面几种命令可以解决两个系统间的连接问题。
① 系统的并联
parallel 命令可以实现两个系统的并联。 命令格式:
[ n ,d ] = parallel (n 1,d 1,n 2,d 2)
其中n 1、d 1和n 2、d 2分别为g 1(s )、g 2(s )的传递函数分子、分母系数行矢量。 例 将下面两个系统并联连接
13()4g s s =+ 2224
()23
s g s s s +=++
执行下面程序: n 1 = [ 3 ]; d 1 = [ 1 4 ]; n 2 = [ 2 4 ]; d 2 = [ 1 2 3 ];
[ n ,d ] = parallel (n 1,d 1,n 2,d 2) 运行结果:n =
0 5 18 25 d =
1 6 11 12
可得并联后系统的传递函数为
232
51825
()61112
s s g s s s s ++=+++ ② 系统的串联
series 命令实现两个系统的串联,命令格式: [ n ,d ] = series (n 1,d 1,n 2,d 2) ③ 系统的反馈
feedback 命令实现两个系统的反馈连接, 命令格式: [ n ,d ] = feedback (n 1,d 1,n 2,d 2) 或:[ n ,d ] = feedback (n 1,d 1,n 2,d 2,sign )
其中sign 是反馈符号,缺省时默认为负(即sign = -1)。 例 设有下面两个系统:
121()23s g s s s +=++ 21
()10g s s =+
现要将它们负反馈连接,求传递函数 输入: n 1 = [ 1,1 ]; d 1 = [ 1,2,3 ]; n 2 = 1;
d 2 = [ 1,10 ];
[ n ,d ] = feedback (n 1,d 1,n 2,d 2) 运行结果: n =
0 1 11 10 d =
1 1
2 24 31
即所求系统为:2221110
()122431
s s g s s s s ++=+++
三、实验内容
1.已知21
)( ,5001)(22
1++==
s s s G s
s G ,分别求取)(1s G 和)(2s G 并联、串联以及反馈连接时,系统的传递函数。 并联
n1=[1];
d1=[500 0 0]; n2=[1 1]; d2=[1 2];
[n,d]=parallel(n1,d1,n2,d2)
500 500 1 2 d =
500 1000 0 0 串联 n1=[1];
d1=[500 0 0]; n2=[1 1]; d2=[1 2];
[n,d]=series(n1,d1,n2,d2)
n =
0 0 1 1
d =
500 1000 0 0 反馈 n1=[1];
d1=[500 0 0]; n2=[1 1]; d2=[1 2];
[n,d]=feedback(n1,d1,n2,d2)
n =
0 0 1 2 d =
500 1000 1 1 2.已知21
)( ,4
21)( 22
1++=+++=
s s s G s s s s G ,分别求取)(1s G 和)(2s G 并联、串联以及反馈连接时,系统的传递函数。 并联
n1=[1 1]; d1=[1 2 4]; n2=[1 1]; d2=[1 2];
[n,d]=parallel(n1,d1,n2,d2)
n =
1 4 9 6 d =
1 4 8 8 串联
n1=[1 1]; d1=[1 2 4]; n2=[1 1]; d2=[1 2];
[n,d]=series(n1,d1,n2,d2)
n =
0 1 2 1 d =
1 4 8 8 反馈
n1=[1 1]; d1=[1 2 4]; n2=[1 1]; d2=[1 2];
[n,d]=feedback(n1,d1,n2,d2)
n =
0 1 3 2 d =
1 5 10 9
3. 将系统;6
168s 6
82s )( 23
2+++++=s s s s G 转换为状态空间形式。 n=[2 8 6]; d=[1 8 16 6]; [A,B,C,D]=tf2ss(n,d)
A =
-8 -16 -6 1 0 0 0 1 0
B = 1 0 0
C =
2 8 6 D = 0
4. 将下列系统转换为传递函数形式。
[]0.D C B A DU.C X Y BU,AX X ==????
??????=??????????-=???+=+=,010 ,100 ,1026402011 A=[1 1 0;-2 0 4;6 2 10]; B=[0;0;1]; C=[0 1 0]; D=[0];
[n,d]=ss2tf(A,B,C,D)
n =
0 0 4 -4 d =
1.0000 -11.0000 4.0000 -36.0000
四、实验报告
1.根据内容要求,写出调试好的MATLAB 语言程序,及对应的MATLAB 运算结果。
2.用实验结果说明函数parallel与运算符“+”功能上的异同点。
3.写出实验的心得与体会。
五、预习要求
1. 预习实验中基础知识,运行编制好的MATLAB语句,熟悉MATLAB指令及函数。
2. 结合实验内容,提前编制相应的程序。
3.熟悉控制系统数学模型的表达及相互转换。
实验二典型环节的MATLAB仿真
一、实验目的
1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、SIMULINK的使用
MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。
1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。
2.选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。
3.在simulink仿真环境下,创建所需要的系统。
以图1-2所示的系统为例,说明基本设计步骤如下:
1)进入线性系统模块库,构建传递函数。点击simulink 下的“Continuous ”,再将右边窗口中“Transfer Fen ”的图标用左键拖至新建的“untitled ”窗口。
2)改变模块参数。在simulink 仿真环境“untitled ”窗口中双击该图标,即可改变传递函数。其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK ,即完成该模块的设置。
3)建立其它传递函数模块。按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。例:比例环节用“Math ”右边窗口“Gain ”的图标。
4)选取阶跃信号输入函数。用鼠标点击simulink 下的“Source ”,将右边窗口中“Step ”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。
5)选择输出方式。用鼠标点击simulink 下的“Sinks ”,就进入输出方式模块库,通常选用“Scope ”的示波器图标,将其用左键拖至新建的“untitled ”窗口。
6)选择反馈形式。为了形成闭环反馈系统,需选择“Math ” 模块库右边窗口“Sum ”图标,并用鼠标双击,将其设置为需要的反馈形式(改变正负号)。
7)连接各元件,用鼠标划线,构成闭环传递函数。
8
)运行并观察响应曲线。用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。运行完之后用鼠标双击“Scope ”元件,即可看到响应曲线。 三、实验原理
1.比例环节的传递函数为
K R K R R R
Z Z s G 200,1002)(211
212==-=-=-
=
其对应的模拟电路及SIMULINK 图形如图1-3所示。
2.惯性环节的传递函数为
图1-3 比例环节的模拟电路及SIMULINK 图形
uf C K R K R s C R R R Z Z s G 1,200,1001
2.021)(1211212
12===+-=+-=-
=
其对应的模拟电路及SIMULINK 图形如图1-4所示。 3.积分环节(I)的传递函数为
uf C K R s
s C R Z Z s G 1,1001.01
1)(111112==-=-=-
=
其对应的模拟电路及SIMULINK 图形如图1-5所示。
4.微分环节(D)的传递函数为
uf C K R s s C R Z Z s G 10,100)(11111
2
==-=-=-
= uf C C 01.012=<<
其对应的模拟电路及SIMULINK 图形如图1-6所示。
5.比例+微分环节(PD )的传递函数为
图1-4 惯性环节的模拟电路及SIMULINK 图形
图1-5 积分环节的模拟电路及及SIMULINK 图形
图1-6 微分环节的模拟电路及及SIMULINK 图形
)11.0()1()(111
212+-=+-=-
=s s C R R R
Z Z s G uf C C uf
C K R R 01.010,10012121=<<===
其对应的模拟电路及SIMULINK 图形如图1-7所示。
6.比例+积分环节(PI )的传递函数为 )1
1(1
)(11212s
R s C R Z Z s G +-=+-=-= uf C K R R 10,100121===
其对应的模拟电路及SIMULINK 图形如图1-8所示。
四、实验内容
按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。
① 比例环节1)(1=s G 和2)(1=s G ; ② 惯性环节11)(1+=
s s G 和1
5.01)(2+=s s G ③ 积分环节s s G 1)(1= ④ 微分环节s s G =)(1
⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G ⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+=
图1-7 比例+微分环节的模拟电路及SIMULINK
图形
图1-8 比例+积分环节的模拟电路及SIMULINK 图形
五、实验报告
1.画出各典型环节的SIMULINK仿真模型。
2. 记录各环节的单位阶跃响应波形,并分析参数对响应曲线的影响。
3. 写出实验的心得与体会。
六、预习要求
1.熟悉各种控制器的原理和结构,画好将创建的SIMULINK图形。
2.预习MATLAB中SIMULINK的基本使用方法。
实验三线性系统时域响应分析
一、实验目的
1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。
ω对二阶系统性能的影响。
2.通过响应曲线观测特征参量ζ和
n
3.熟练掌握系统的稳定性的判断方法。
二、基础知识及MATLAB函数
(一)基础知识
时域分析法直接在时间域中对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应)。本次实验从分析系统的性能指标出发,给出了在MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。
用MATLAB求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以s 的降幂排列写为两个数组num、den。由于控制系统分子的阶次m一般小于其分母的阶次n,所以num中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。
1.用MATLAB求控制系统的瞬态响应
1)阶跃响应
求系统阶跃响应的指令有:
step(num,den) 时间向量t的范围由软件自动设定,阶跃响应曲线随即绘出
step(num,den,t) 时间向量t的范围可以由人工给定(例如t=0:0.1:10)
[y,x]=step(num,den) 返回变量y为输出向量,x为状态向量
在MATLAB程序中,先定义num,den数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。
考虑下列系统:
25
425
)()(2
++=s s s R s C 该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以s 的降幂排列。则MATLAB 的调用语句:
num=[0 0 25]; %定义分子多项式 den=[1 4 25]; %定义分母多项式
step(num,den) %调用阶跃响应函数求取单位阶跃响应曲线 grid %画网格标度线 xlabel(‘t/s’),ylabel(‘c(t)’) %给坐标轴加上说明 title(‘Unit -step Respinse of G(s)=25/(s^2+4s+25)’) %给图形加上标题名 则该单位阶跃响应曲线如图2-1所示:
为了在图形屏幕上书写文本,可以用text 命令在图上的任何位置加标注。例如: text(3.4,-0.06,’Y1’) 和 text(3.4,1.4,’Y2’)
第一个语句告诉计算机,在坐标点x=3.4,y=-0.06上书写出’Y1’。类似地,第二个语句告诉计算机,在坐标点x=3.4,y=1.4上书写出’Y2’。
若要绘制系统t 在指定时间(0-10s )内的响应曲线,则用以下语句:
num=[0 0 25];
den=[1 4 25];
t=0:0.1:10;
step(num,den,t)
即可得到系统的单位阶跃响应曲线在0-10s 间的部分,如图2-2所示。
2)脉冲响应
① 求系统脉冲响应的指令有:
图2-1 二阶系统的单位阶跃响应
图2-2 定义时间范围的单位阶跃响应
impulse (num,den) 时间向量t 的范围由软件自动设定,阶跃响应曲线随即绘出
impulse (num,den,t) 时间向量t 的范围可以由人工给定(例如t=0:0.1:10)
[y,x]=impulse(num,den) 返回变量y 为输出向量,x 为状态向量 [y,x,t]=impulse(num,den,t) 向量t 表示脉冲响应进行计算的时间 例:试求下列系统的单位脉冲响应: 1
2.01
)()()(2
++==s s s G s R s C 在MATLAB 中可表示为
num=[0 0 1]; den=[1 0.2 1]; impulse(num,den) grid
title(‘Unit -impulse Response of G(s)=1/(s ^2+0.2s+1)’)
由此得到的单位脉冲响应曲线如图2-3所示: ② 求脉冲响应的另一种方法
应当指出,当初始条件为零时,G (s)的单位脉冲响应与sG(s)的单位阶跃响应相同。考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1所以
s
s s s s s s G s C s R s C 1
12.012.01)()()()(22?++=++===
因此,可以将G(s)的单位脉冲响应变换成sG(s)的单位阶跃响应。
向MATLAB 输入下列num 和den ,给出阶跃响应命令,
可以得到系统的单
图2-3 二阶系统的单位脉冲响应
位脉冲响应曲线如图2-4所示。
num=[0 1 0];
den=[1 0.2 1];
step(num,den) grid
title(‘Unit -step Response of sG(s)=s/(s^2+0.2s+1)’)
3)斜坡响应
MATLAB 没有直接调用求系统斜坡响应的功能指令。在求取斜坡响应时,通常利用阶跃响应的指令。基于单位阶跃信号的拉氏变换为1/s ,而单位斜坡信号的拉氏变换为1/s 2。因此,当求系统G(s)的单位斜坡响应时,可以先用s 除G(s),再利用阶跃响应命令,就能求出系统的斜坡响应。
例如,试求下列闭环系统的单位斜坡响应。
1
1
)()(2
++=s s s R s C 对于单位斜坡输入量,R(s)=1/s 2 ,因此 s
s s s s s s s C 1
)1(1111)(2
22?++=?++=
在MATLAB 中输入以下命令,得到如图2-5所示的响应曲线: num=[0 0 0 1]; den=[1 1 1 0];
step(num,den)
title(‘Unit -Ramp Response Cuve for System G(s)=1/(s^2+s+1)’)
2. 特征参量ζ和n ω对二阶系统性能的影响 标准二阶系统的闭环传递函数为:
2
2
22)()
(n
n n s s s R s C ωζωω++= 二阶系统的单位阶跃响应在不同的特征参量下有不同的响应曲线。
1)ζ对二阶系统性能的影响
设定无阻尼自然振荡频率)/(1s rad n =ω,考虑5种不同的ζ值:ζ=0,0.25,0.5,1.0和2.0,利用MATLAB 对每一种ζ求取单位阶跃响应曲线,分析参数ζ对系统的影响。
为便于观测和比较,在一幅图上绘出5条响应曲线(采用“hold ”命令实现)。 num=[0 0 1]; den1=[1 0 1]; den2=[1 0.5 1]; den3=[1 1 1]; den4=[1 2 1]; den5=[1 4 1];
t=0:0.1:10; step(num,den1,t)
grid
text(4,1.7,’Zeta=0’); hold
step(num,den2,t) text (3.3,1.5,’0.25’) step(num,den3,t) text (3.5,1.2,’0.5’) step(num,den4,t) text (3.3,0.9,’1.0’) step(num,den5,t) text (3.3,0.6,’2.0’)
title(‘Step -Response Curves for G(s)=1/[s^2+2(zeta)s+1]’)
由此得到的响应曲线如图2-6所示:
2)n ω对二阶系统性能的影响
同理,设定阻尼比25.0=ζ时,当n ω分别取1,2,3时,利用MATLAB 求取单位阶跃响应曲线,分析参数n ω对系统的影响。
num1=[0 0 1]; den1=[1 0.5 1]; t=0:0.1:10; step(num1,den1,t); grid; hold on text(3.1,1.4,’wn =1’)
num2=[0 0 4]; den2=[1 1 4]; step(num2,den2,t); hold on text(1.7,1.4,’wn=2’)
num3=[0 0 9]; den3=[1 1.5 9]; step(num3,den3,t); hold on text(0.5,1.4,’wn=3’)
由此得到的响应曲线如图2-7所示:
3.系统稳定性判断
1)直接求根判稳roots()
控制系统稳定的充要条件是其特征方程的根均具有负实部。因此,为了判别系统的稳定性,就要求出系统特征方程的根,并检验它们是否都具有负实部。MATLAB 中对多项式求根的函数为roots()函数。
若求以下多项式的根24503510234++++s s s s ,则所用的MATLAB 指令为: >> roots([1,10,35,50,24])
ans =
图2-7 n ω不同时系统的响应曲线