《机电系统控制基础》实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

哈尔滨理工大学
《机电系统控制基础》
机械电子工程专业
实验指导书
班级:
姓名:
学号:
实验名称:
荣成学院机械工程系机电教研室
2017年 8月
目录
实验一Matlab语言基础实验 (1)
实验二控制系统建模及模型转换 (6)
实验三控制系统的时域分析实验 (9)
实验四控制系统的频域分析实验 (14)
实验五控制系统的稳定性分析实验 (21)
附录一Matlab中输入希腊字母的方法 (30)
实验一Matlab语言基础实验
一、实验目的和要求
1、掌握Matlab软件使用的基本方法
2、熟悉Matlab的数据表示、基本运算和程序控制语句
3、熟悉Matlab绘图命令及基本绘图控制
4、掌握Matlab软件求拉普拉斯变换与逆变换基本方法
二、实验内容
1、MATLAB工作环境平台
①Command Window
命令窗口是对MATLAB 进行操作的主要载体,默认的情况下,启动MATLAB 时就会打开命令窗口,如图 1 所示。

一般MA TLAB的所有函数和命令都可以在命令窗口中执行。

图1 MATLAB工作界面平台
掌握MALAB 命令行操作是走入MA TLAB 世界的第一步。

命令行操作实现了对程序设计而言简单而又重要的人机交互,通过对命令行操作,避免了编程序的麻烦,体现了MATLAB 所特有的灵活性。

在运行MA TLAB
提示符“>>”表示MA TLAB正在等待执行命令。

注意:每个命令行键入完后,都必须按回车键。

当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此时需要使用续行符“…”,否则MA TLAB 将只计算一行的值,而不理会该行是否已输入完毕。

使用续行符之后MA TLAB 会自动将前一行保留而不加以计算,并与下一行衔接,等待完整输入后再计算整个输入的结果。

在MATLAB 命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。

比如
当然下面即将讲到的历史窗口也具有此功能。

②Command History
历史命令窗口在默认设置下历史命令窗口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。

而且双击某一行命令,即在命令窗口中执行该命令。

③Current Directory
在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。

④Workspace
工作空间管理窗口是MA TLAB 的重要组成部分。

在工作空间管理窗口中将显示所有目前保存在内存中的MATLAB 变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。

2、MATLAB 的基本规定
1)数值的表示
MATLAB 的数值采用十进制,可以带小数点或负号。

以下表示都合法。

0-100 0.00812.752 1.8e-6 8.2e52
2)变量命名规定
①变量名、函数名:字母大小写表示不同的变量名。

如A 和a
sin 是MA TLAB 定义的正弦函数,而Sin或SIN 等都不是。

②变量名的第一个字母必须是英文字母,不能是数字,最多可包含31 个字符(英文、
数字和下连字符)。

如A21 是合法的变量名,而3A21 是不合法的变量名。

③变量名中不得包含空格、标点,但可以有下连字符。

如变量名A _b21 是合法变量
名,而A 21 是不合法的。

(3)基本运算符
表1 MA TLAB 表达式的基本运算符
(4)MATLAB 默认的预定义变量
在MA TLAB 中有一些预定义变量(predefined variable)。

每当MATLAB 启动,这些变量就被产生。

用户在定义变量时,尽量避开表2 所列预定义变量名,以免产生混淆。

表2 MATLAB 的预定义变量
0/0
3、MATLAB 图形绘制
在二维曲线绘制中,最基本的指令是plot()函数。

如果用户将x 和y 两组数据分别在向量x 和y 中存储,且它们的长度相同,调用该函数的格式为plot(x,y 这时将在一个图形窗口上绘出所需要的二维图形。

在MA TLAB 命令窗口提示符“>>”下键入help plot ,可得到plot()函数的相关内容,如曲线颜色和线型的改变。

(1) 绘制余弦曲线y=cos(t)t∈[0,2π]
>> t=0:pi/100:2*pi;
>> y=cos(t)’
>> plot(t,y)
(2) 在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5), t∈[0,2π]
>> t=0:pi/100:2*pi;
>> y1=cos(t-0.25);y2=sin(t-0.5);
>> plot(t,y1,t,y2)
4、MATLAB求拉普拉斯变换与逆变换
在指定自变量w和指定参变量z F的Laplace
在指定自变量x和参变量v L(x)的laplace逆变换
(1)在系统默认自变量和参变量情况下,求f= t e的Laplace变换。

>> clc;clear;close all;
>> syms t %定义符号变量
>> f=t^3*exp(3*t-1); %定义符号函数
>> laplace(f) %求laplace变换
ans =
(6*exp(-1))/(s - 3)^4
(2)在系统默认自变量和参变量情况下,求函数(s2+4)/(s3+s2+2s)的laplace逆变换。

>> clc;clear;close all;
>> syms s %定义符号变量
>> f=(s^2+4)/(s^3+2*s^2+2*s); %定义符号函数
>> ilaplace(f) %求符号函数的laplace逆变换
ans =
2 - exp(-t)*(cos(t) + 3*sin(t))
三.
1. 利用MA TLAB 绘制函数 [(学号后2位)*t]与{[班级号]sin([学号后2位]*t)}的图形(变量范围 t ∈[0,2π]),并求其拉普拉斯变换。

例如:学号 13 ; 班级 2 ;
即求: 1)13t 2) 2sin13t
2.使用matlab 进行下列函数的拉式反变换(写出编程语言及结果)
1)()()3()12s G s s s +=++ 2)()()
21()14G s s s =++ 3)()()
2210()41G s s s s =++ 4)()()22328()242s s G s s s s s ++=+++ 5)()2122()s a s a G s s s a ++=+ 6)()()()()()
345()12s s s G s s s +++=++
实验二 控制系统建模及模型转换
一、实验目的和要求 1
2
3
4、掌握环节方框图的化简方法。

二、实验内容
1、tf ( )函数
若要在MA TLAB 环境下得到传递函数的形式,可以调用tf ( )函数。

该函数的调用格式为 G = tf ( num, den );
其中num, den 分别为系统传递函数的分子和分母多项式系数向量。

返回的G 为传递函数形式。

但如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变换为完全展开的形式,两个多项式的乘积在MATLAB 下借用卷积求取函数conv( )得出,其调用格式为
p=conv(p1,p2)
其中p1和p2为两个多项式,调用这个函数就能返回乘积多项式p 。

如果有3个多项式的乘积,就需要嵌套使用此函数,即
p=conv(p1,conv(p2,p3)) 或 p=conv(conv(p1,p2),p3)
请注意在调用时括号的匹配。

MATLAB 还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用s=tf(’s ’)定义传递函数算子,然后用数学表达式直接输入系统的传递函数。

请自己通过下面两个例子来演示和掌握tf ()和s=tf(’s ’)算子这两种输入方式。

例1 设系统传递函数 324325322431
s s s G s s s s +++=++++
输入方式一:num = [1, 5, 3, 2]; den = [1, 2, 4, 3, 1]; %分子多项式和分母多项式
G = tf ( num, den ); %这样就获得系统的数学模型G 了。

这些命令可在命令行输入也可编成一个M 文件。

在MATLB 提示符“>>”下键入G 或省略最后命令中分号,则可显示该数学模型。

输入方式二:s=tf(’s ’);
G=( s^3 + 5* s^2 + 3* s + 2)/( s^4 + 2*s^3 + 4* s^2 + 3* s + 1); 任务一设系统传递函数 435234s G s s s +=
+++采用上面两种输入方式,输入其传递函数,并记录命令。

例2 设系统传递函数()
()()()2225 2.41341s G s s s s +=++++
此题分子或分母多项式给出的不是完全展开的形式,而是若干个因式的乘积,采用tf () 这一种输入法之前,应先用conv( )函数获得分子和分母多项式给出的完全展开的形式num
和den,即输入命令:
num=conv([0,5],[1,2.4]);
den=conv(conv(conv([1,1],[1,1]),[1,3,4]),[1,0,1]);
G=tf(num,den) %递函数
Transfer function:
5 s + 12
----------------------------------------------------------------
s^6 + 5 s^5 + 12 s^4 + 16 s^3 + 15 s^2 + 11 s + 4
这种情况用算子方法可以更直观地输入系统模型,输入命令为:
s=tf('s');
G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1));
任务二MA TLAB 命令窗口中对例2的这两种输入方法进行验证。

2、tfdata()函数
如果有了传递函数G,则提取控制系统的传递函数的分子多项式num和分母多项式den 可以由tfdata()
s=tf('s');
G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1))
[num,den]=tfdata(G,'v') %其中'v'表示想获得num和den的数值
任务三MA TLAB 命令窗口中对该例进行验证。

3、zpk ()函数
若要得到控制系统零极点传递函数,可以调用zpk ( )函数。

该函数的调用格式为
G = zpk ( Z, P,K );
其中K为系统的增益,Z, P 分别为系统传递函数的零点和极点列向量。

返回的G 为传递函数形式。

例3 设系统传递函数
()()()
()()()()
1.539
2.7305 2.8538 2.7305 2.8538
4321
s s j s j G
s s s s
++++-
=
++++
Z=[-1.539; -2.7305+2.8538i;-2.7305-2.8538i]; %
P=[-1;-2;-3;-4];
G=zpk(Z,P,1);
在MA TLB提示符“>>”下键入G
>> G %下面是MATLB的显示结果Zero/pole/gain:
(s+1.539) (s^2 + 5.461s + 15.6)
---------------------------------------- -
(s+1) (s+2) (s+3) (s+4)
任务四tf2zp( )函数求出例1系统的零极点。

4、环节方框图的化简
(1)串联环节连接的化简
()()()
()()()
1212,12num s num s G s G s den s den s == 则两个环节串联连阶的等效传递函数为 ()()()()()
()()
121212num s num s G s G s G s den s den s ==
在MA TLAB
sys1=tf(num1,den1)
sys2=tf(num2,den2)
sys=sys1*sys2
[num,den]=series(num1,den1,num2,den2)
(2)环节并联连接的化简
sys=sys1+sys2
[num,den]=parallel(num1,den1,num2,den2)
(3)反馈环节的化简
sys=feedback(sys1,sys2,sign)
式中sign 为反馈符号,‘+’表示正反馈,‘-’为负反馈。

缺省为‘-’。

任务五 应用例1和例2的传递函数表达式练习串联、并联和反馈的结果运算命令。

三. 实验结果与分析(包括运行结果截图、结果分析等)
完成上述“任务一~任务五”所示要求,并书写命令语句。

实验三 控制系统的时域分析实验
一、实验目的和要求
1、利用MATLAB 对一、二阶系统进行时域分析。

2、熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。

3、掌握一阶系统的时域特性,理解时间常数T 对系统性能的影响。

4、通过响应曲线观测特征参量ξ和n ω对二阶系统动态特性的影响。

5、通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

二、实验内容
1、观察函数step( )和impulse( )
2432
37
4641
s s G s s s s ++=++++
2、对典型二阶系统 ()2
2
2
2n n n G s s s ωξωω=++
1)分别绘出()2/n rad s ω=,ξ分别取0, 0.25, 0.5, 1.0和2.0时的单位阶跃响应曲
ξ对系统的影响,并计算ξ=0.25时的时域性能指标,,,,p r p s ss t t t e σ。

(2)绘制出当ξ=0.25, n ω分别取1,2,4,6时单位阶跃响应曲线,分析参数n ω对系统的
影响。

(3)某系统的开环传递函数为 ()432
20
83640G s s s s s
=+++
sys=tf([20],[1 8 36 40 20]) step(sys)
Transfer function: sys =
20
----------------------------------------- s^4 + 8 s^3 + 36 s^2 + 40 s + 20
(4)典型二阶系统()2
22
2n n n
G s s s ωξωω=++ 编程求当()6/n rad s ω=,ξ取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。

sys1=tf([36],[1 2*0.2*6 36]) step(sys1) hold on
sys2=tf([36],[1 2*0.4*6 36]) step(sys2) hold on
sys3=tf([36],[1 2*0.6*6 36]) step(sys3)
sys4=tf([36],[1 2*0.8*6 36]) step(sys4) hold on
sys5=tf([36],[1 2*1.0*6 36]) step(sys5) hold on
sys6=tf([36],[1 2*1.5*6 36]) step(sys6) hold on
sys7=tf([36],[1 2*2.0*6 36])
step(sys7) hold on
(5)典型二阶系统传递函数为()2
2
2
2n n n G s s s ωξωω=++
绘制当ξ=0.7,n ω取2、4、6、8、10、12时的单位阶跃响应曲线。

sys1=tf([2^2],[1 2*0.7*2 2^2]) step(sys1) hold on
sys2=tf([4^2],[1 2*0.7*4 4^2]) step(sys2) hold on
sys3=tf([6^2],[1 2*0.7*6 36]) step(sys3)
sys4=tf([8^2],[1 2*0.7*8 8^2]) step(sys4) hold on
sys5=tf([10^2],[1 2*0.7*10 10^2]) step(sys5) hold on
sys6=tf([12^2],[1 2*0.7*12 12^2]) step(sys6)
hold on
3、在MA TLAB环境中求系统的时域响应如下图。

输入下面的命令:
num=[50];
den=[1,5, 25];
step(num,den)
1)解释以上命令的含义,求出系统的传递函数
2)根据传递函数确定系统的2个参数n ωξ和
(3)结合以下响应图形,指出二阶系统时域分析主要性能指标,作图直观求解本系统的稳态值、超调量和调整时间。

解:
(1)命令含义:系统传递函数分子、分母的代数表达式;step
数为
50
------------------ s^2 + 5 s + 25
(2)=5rad/s 0.5n ωξ=和
3) 二阶系统时域分析主要性能指标:上升时间、峰值时间、调整时间、超调量、调整次数等。

2
0.33 0.729s
调整时间为1.62s
三. 实验结果与分析(包括运行结果截图、结果分析等)
1、求以学号后两位为时间常数的一阶惯性环节的单位脉冲、单位阶跃、单位速度、单位加速度响应。

例如:学号为13
则时间常数13τ=, 一阶惯性环节()11
1131
G s s s τ=
=++ 2、典型二阶系统()2
22
2n n n
G s s s ωξωω=++,试用MATLAB 绘制出。

(1)当固有频率=6rad/s n ω,阻尼比ξ分别取0.1、0.5、1.0、2.0时的单位阶跃和单位脉冲的响应曲线;
(2)阻尼比ξ =0.7,固有频率n ω分别为2、6、10、12rad/s 时的单位阶跃和单位脉冲的响应曲线。

3、画出以学号后两位为固有频率和以(班级号*1/10、班级号*1/5)为阻尼比,以及以(班级号*1/20)为阻尼比与以(学号后两位、2*学号后两位)为固有频率的振荡环节的SIMULINK 仿真模型),并记录单位阶跃响应波形,并分析参数对响应曲线的影响。

实验四 控制系统的频域分析实验
一、实验目的和要求
1 2、掌握用MA TLAB
3、掌握Nyquist 图、Bode
4、掌握Matlab 中系统的频域特征量的求解方法,能够用Matlab 求系统的频域特征量。

二、实验内容
频域分析法是应用频域特性研究控制系统的一种经典方法。

它是通过研究系统对正弦信号下的稳态和动态响应特性来分析系统的。

采用这种方法可直观的表达出系统的频率特性分析方法比较简单,物理概念明确。

1、频率曲线主要包括:Nyquist 图和Bode 图。

(1)Nyquist 图的绘制与分析 MATLAB 中绘制系统Nyquist
nyquist(num,den) 频率响应w 的范围由软件自动设定 nyquist(num,den,w) 频率响应w 的范围由人工设定
[Re,Im]= nyquist(num,den) 返回奈氏曲线的实部和虚部向量,不作图 例1
()3226
252
s G s s s s +=
+++,试绘制Nyquist 图,并判断
系统的稳定性。

num=[2 6];
den=[1 2 5 2];
[z,p,k]=tf2zp(num,den); nyquist(num,den)
极点的显示结果及绘制的Nyquist 图如图1所示。

由于系统的开环右根数P=0,系统的Nyquist 曲线没有逆时针包围(-1,j0)点,所以闭环系统稳定。

z =
-3 p =
-0.7666 + 1.9227i -0.7666 - 1.9227i -0.4668 + 0.0000i k = 2
图1开环极点的显示结果及Nyquist 图
若上例要求绘制()
23
10,10ω-∈间的Nyquist 图,则对应的MA TLAB
num=[2 6]; den=[1 2 5 2];
w=logspace(-2,3,100); 即在10-2和103之间,产生100个等距离的点 nyquist(num,den,w)
2、Bode 图的绘制与分析
系统的Bode 图又称为系统频率特性的对数坐标图。

Bode 图有两张图,分别绘制开环频 率特性的幅值和相位与角频率ω的关系曲线,称为对数幅频特性曲线和对数相频特性曲线。

MATLAB 中绘制系统Bode
bode(num,den) 频率响应w 的范围由软件自动设定 bode(num,den,w) 频率响应w 的范围由人工设定
[mag,phase,w]=bode(num,den,w) 指定幅值范围和相角范围的伯德图 例2
()()
()
2300.5116100s G s s s s +=
++,试绘制系统的伯德图。

num=[0 0 15 30]; den=[1 16 100 0]; w=logspace(-2,3,100); bode(num,den,w) grid
绘制的Bode 图如图2(a)
[mag,phase,w]=bode(num,den,w)
图2(a)幅值和相角范围自动确定的Bode图
图2(b) 指定幅值和相角范围的Bode图
mag,phase 是指系统频率响应的幅值和相角,由所选频率点的w 值计算得出。

其中,幅值的单位为dB ,它的算式为magdB=20lg10(mag)。

指定幅值范围和相角范围的MA TLAB 2(b)所示。

num=[0 0 15 30]; den=[1 16 100 0]; w=logspace(-2,3,100);
[mag,phase,w]=bode(num,den,w); %指定Bode 图的幅值范围和相角范围
subplot(2,1,1); %将图形窗口分为2*1个子图,在第1个子图处绘制图形 semilogx(w,20*log10(mag)); %使用半对数刻度绘图,X 轴为log10刻度,Y 轴为线性刻度 grid on
xlabel(‘w/s^-1’); ylabel(‘L(w)/dB’);
title(‘Bode Diagram of G(s)=30(1+0.2s)/[s(s^2+16s+100)]’);
subplot(2,1,2); %将图形窗口分为2*1个子图,在第2个子图处绘制图形 semilogx(w,phase); grid on
xlabel(‘w/s^-1’);
ylabel(‘\phi^o’); % y 轴显示为o φ,详情见“附录一”
注意:半Bode 图的绘制可用semilgx 函数实现,其调用格式为semilogx(w,L)L=20*log10(abs(mag))。

2、幅值裕量和相位裕量
幅值裕量和相位裕量是衡量控制系统相对稳定性
取。

应用MATLAB 功能指令可以方便地求解幅值裕量和相位裕量。

其MA TLAB
[Gm,Pm,Wcg,Wcp]=margin(num,den)
其中,Gm,Pm 分别为系统的幅值裕量和相位裕量,而Wcg,Wcp 分别为幅值裕量和相位 裕量处相应的频率值。

另外,还可以先作bode 图,再在图上标注幅值裕量Gm 和对应的频率Wcg 相位裕量 Pm 和对应的频率Wcp
margin(num,den) 例3
()
321039G s s s s
=
++MATLAB 语句如下:
num=10; den=[1 3 9 0];
[gm,pm,wcg,wcp]=margin(num,den); gm,pm,wcg,wcp
gm = 2.7000 pm = 64.6998 wcg = 3.0000 wcp = 1.1936
[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)
mag,phase,w )分别为频域响应的幅值、相位与频率向量。

3、综合练习
(1)典型二阶系统传递函数为:(二阶传递函数任选3
()2
2
2
2n n n G s s s ωξωω=++ 绘制当ζ=0.7,ωn 取2、4、6、8、10、12时的伯德图。

sys1=tf([4],[1 2*0.7*2 4]) bode(sys1) hold on
sys2=tf([36],[1 2*0.7*6 36]) bode(sys2) hold on
sys3=tf([100],[1 2*0.7*10 100]) bode(sys3) hold on
(此处任取2、6、10)

(2)典型二阶系统传递函数为()2
22
2n n n
G s s s ωξωω=++ (二阶传递函数任选3个,画在同一图形中)
绘制当ωn =6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的伯德图。

clc;clear;close all ;
sys1=tf([36],[1 2*0.4*6 36]) bode(sys1) hold on
sys2=tf([36],[1 2*1.0*6 36]) bode(sys2) hold on
sys3=tf([36],[1 2*2.0*6 36]) bode(sys3) hold on
(此处任取0.4、1.0、2.0)


三、 实验结果与分析

1、典型二阶系统()2
2
2
2n n n G s s s ωξωω=++
绘制出n ω为学号后两位,ξ=0.1,0.3,0.5,0.8,2的bode 图,记录并分析ξ对系统
bode 图的影响。

2、系统的开环传递函数为
(1) ()()()210
515G s s s s =
-+ (2)()()()()
22
8115610s G s s s s s +=+++ (3)()()
()()()
4/310.0210.0510.11s G s s s s s +=
+++
绘制系统的Nyquist 曲线和Bode 图,说明系统的稳定性,并通过绘制阶跃响应曲线验证。

3、已知系统的开环传递函数为()()
2
1
0.11s G s s s +=
+。

求系统的开环幅值穿越频率、相位穿越频率、幅值裕度和相位裕度。

应用频率稳定判据判定系统的稳定性。

实验五控制系统的稳定性分析实验
一、实验目的和要求
1
2
3、掌握roots函数、margin函数的用
4、学会运用MATLAB对系统稳定性进行仿真。

5、掌握Matlab中系统特征根的求解方法,掌握Matlab中系统稳定性的判定方法
6、用margin函数求出系统的幅值裕度、相位裕度、幅值穿越频率和相位穿越频率,并判定系统的相对稳定性。

二、实验原理
线性系统稳定的充要条件是系统的特征根均位于S平面的左半部分。

系统的零极点模型可以直接被用来判断系统的稳定性。

另外,MATLAB语言中提供了有关多项式的操作函数也可以用于系统的分析和计算。

1、直接求特征多项式的根
设p为特征多项式的系数向量,则MATLAB函数roots()可以直接求出方程p=0在复数范围内的解v,该函数的调用格式为:
v=roots(p)
例1
532
++++
x x x x
321
特征方程的解可由下面的MATLAB命令得出。

>> p=[1,0,3,2,1,1];
v=roots(p)
v =
0.3202 + 1.7042i
0.3202 - 1.7042i
-0.7209
0.0402 + 0.6780i
0.0402 - 0.6780i
利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。

2、由根创建多项式
如果已知多项式的因式分解式或特征根,可由MA TLAB函数poly()直接得出特征多项式
p=poly(v)
如例1中
v=[0.3202+1.7042i;0.3202-1.7042i; -0.7209;0.0402+0.6780i; 0.0402-0.6780i];
p=poly(v)
结果显示
p =
1.0000 -0.0000 3.0000
2.0000 1.0000 1.0000 由此可见,函数roots()与函数poly()是互为逆运算的。

3、多项式求值
在MATLAB 中通过函数polyval()可以求得多项式在给定点的值,
该函数的调用格式为:
polyval(p,v)
对于上例中的p 值,求取多项式在
x p=[1,0,3,2,1,1]; x=1;
polyval(p,x) 结果显示 ans =
8
4、部分分式展开
()()101101n n n
n n n
M s num b s b s b N s den a s a s a --+++==
++
+ 式中00a ≠,但是a i 和b j 中某些量可能为零。

MATLAB 函数可将()
()
M s N s 展开成部分分式,直接求出展开式中的留数、极点和余项。

该函
数的调用格式为:[,,](,)r p k residue num den =

()
()
M s N s 的部分分式展开由下式给出: ()()()()()
()
()
()
()1212M s r r r n k s N s s p s p s p n =+++
+---
式中()()()121,2,,n p p p p p n p =-=-=-,为极点,
()()()121,2,,n r r r r r n r =-=-=-为各极点的留数,k (s )为余项。

例2
()32322536
6116
s s s G s s s s +++=+++
num=[2,5,3,6]; den=[1,6,11,6];
[r,p,k]=residue(num,den) 命令窗口中显示如下结果
r= p= k= -6.0000 -3.0000 2 -4.0000 -2.0000 3.0000 -1.0000
留数为列向量r ,极点为列向量p ,余项为行向量k 。

由此可得出部分分式展开式:()643
2321
G s s s s --=
++++++ 该函数也可逆向调用,把部分分式展开转变回多项式
()
()
M s N s
[num,den]=residue(r,p,k)
>> [num,den]=residue(r,p,k) 结果显示 num=
2.0000 5.0000
3.0000 6.0000
den=
1.0000 6.0000 11.0000 6.0000
应当指出,如果p(j)=p(j+1)=…=p(j+m-1),则极点p(j)是一个m 重极点。

在这种情况下,
()()
()()()()2
11[]
[]
m
r j r j r j m s p j s p j s p j ++-+
++
---
3
()()
223
3223
23331
1s s s s G s s s s s ++++=
=++++
v=[-1,-1,-1] num=[0,1,2,3]; den=poly(v);
[r,p,k]=residue(num,den) 结果显示 r= 1.0000 0.0000 2.0000 p=
-1.0000 -1.0000 -1.0000 k= [ ]
其中由poly()命令将分母化为标准降幂排列多项式系数向量den, k=[]为空矩阵。

()()()23
1020111G s s s s =
++++++ 5、由传递函数求零点和极点。

在MATLAB 控制系统工具箱中,给出了由传递函数对象G 求出系统零点和极点的函数,
其调用格式分别为:
Z=tzero(G) P=G .P{1}
注意:式中要求的G 必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号{}表示的矩阵元素,详细内容参阅后面章节。

例4
()2432
6.861.295.2
7.52219.5s s G s s s s s
++=+++
num=[6.8,61.2,95.2]; den=[1,7.5,22,19.5,0]; G=tf(num,den); G1=zpk(G); Z=tzero(G) P=G1.P{1} 结果显示 Z = -7 -2
P =
0 -3.0000 + 2.0000i -3.0000 - 2.0000i -1.5000
6、零极点分布图
在MA TLAB 中,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳
pzmap(num,den)
例5 给定传递函数: ()432543232546
34272
s s s s G s s s s s s ++++=+++++
利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图3-1所示。

num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; pzmap(num,den)
title(¹Pole-Zero Map ¹) % 图形标题。

图1 MA TLAB 函数零、极点分布图
6、Nyquist 图与Bode 图法判定系统的稳定性。

[Gm,Pm,Wcp,Wcg]=margin(sys
0):在命令窗口得到系统sys0 margin(sys 0):MATLAB 绘制系统的伯德图,计算伯德图上的稳定裕度,并将计算结果表示在图的上方。

bode(sys 0):MATLAB 绘制系统的伯德图,但无系统的分析结果。

7Matlab 分析系统的相对稳定性
(1)已知某系统开环传递函数为()()()()
2
10
210.51G s H s s s s s =
+++,试用Bode 图法判断闭环系统的稳定性,并用阶跃响应曲线验证。

s=tf('s');
GH=10/[s*(2*s+1)*(s^2+0.5*s+1)]
figure(1)
bode(GH)
grid on
figure(2)
step(GH)
grid on
图2a开环传递函数的Bode图
图2b 阶跃响应曲线
图2
2、已知控制系统的开环传递函数为()()()()
15K
G s H s s s s =
++
应用margin 函数,求K=10及K=100其幅值裕度、相位裕度、幅值穿越频率和相位穿越频率,从而判断系统稳定性的变化。

%%K=10:
s=tf('s');
GH=10/[s*(s+1)*(s+5)] [Gm,Pm,Wcg,Wcp]=margin(GH) margin(GH)
%%K=100:
s=tf('s');
GH=100/[s*(s+1)*(s+5)] [Gm,Pm,Wcg,Wcp]=margin(GH) margin(GH)
图3 K=10
由图3可以看出,系统的开环幅值穿越频率1.23rad/s 、相位穿越频率2.24 rad/s 、 幅值裕度9.54dB 、相位裕度25.4度。

此传递函数为最小相位传递函数,故在此最小相位系统中,幅值裕量,相位裕量都为正值, 故此系统是稳定的。

图4 K=100
由图4 3.91rad/s 、相位穿越频率2.24 rad/s 、 幅值裕度-10.5dB 、相位裕度-23.7度 。

此传递函数为最小相位传递函数,故在此最小相位系统中,幅值裕量,相位裕量都为负值, 故此系统是不稳定的.
3、已知某系统开环传递函数为()()()()
19
10.11G s H s s s s =
++,试用Bode 图法判断
闭环系统的稳定性,并用阶跃响应曲线验证。

s=tf('s');
GH=19/[s*(s+1)*(0.1*s+1)] figure(1) margin(GH) figure(2) step(GH) grid on
图5a 图5b
图5
此传递函数为最小相位传递函数,故在此最小相位系统中,幅值裕量,相位裕量都为负值,故此系统是不稳定的。

三、实验内容及要求
1、已知系统的开环传递函数: ()()()()
2100120s G s s s s +=++ 用求根的方法来判别闭环系统的稳定性。

2、已知单位负反馈系统的传递函数为
(1)()1322.754G s s s s =++ (2)()2322.754G s s s s
=+- 用Bode 图法判断系统闭环的稳定性。

3、系统传函为()432154323254634272
s s s s G s s s s s s ++++=+++++,用以下三种方法试判断其稳定 1) 利用pzmap 绘制连续系统的零极点图
2) 利用tf2zp
3) 利用roots 求分母多项式的根来确定系统的极点
4、系统传函为()2432227352
s s G s s s s s ++=++++,用题3的三种方法试判断其稳定。

5、系统开环传函为()225123
s s G s s s ++=++,利用Nyquist 图分析闭环系统的稳定性。

6、系统开环传函为()210.41
G s s s =++,利用Nyquist 图分析闭环系统的稳定性。

附录一Matlab中输入希腊字母的方法
Matlab的命令窗口中是没有办法输出希腊字母的,但是画图的时候可以在图中输出希腊字母。

希腊字母等特殊字符用 \加拼音表示,拼音首字母大写表示大写的希腊字母(如果有的话),小写表示小写的希腊字母。

如下面的命令:
figure(1);
clf;
title('\alpha');
xlabel('\beta');
ylabel('\Gamma');
结果如下:
希腊字母的对照表:Αα:阿尔法 Alpha
Ββ:贝塔 Beta
Γγ:伽玛 Gamma
Δδ:德尔塔 Delte
Εε:艾普西龙 Epsilon
Ζζ:捷塔 Zeta
Εη:依塔 Eta
Θθ:西塔 Theta
Ιι:艾欧塔 Iota
Κκ:喀帕 Kappa
∧λ:拉姆达 Lambda
Μμ:缪 Mu
Νν:拗 Nu
Ξξ:克西 Xi
Οο:欧麦克轮 Omicron
∏π:派 Pi
Ρρ:柔 Rho
∑σ:西格玛 Sigma
Ττ:套 Tau
Υυ:宇普西龙 Upsilon
Φφ:fai Phi
Χχ:器 Chi
Ψψ:普赛 Psi
Ωω:欧米伽 Omega
另外,还有其他需要输入的特殊部分如:上标用^(指数)
下标用_(下划线)
希腊字母等特殊字符用\加英文发音
不等于\neq<< \ll>> \gg
正负\pm
左箭头\leftarrow
右箭头\rightarrow
上箭头\uparrow。

相关文档
最新文档