控制工程-实验指导书

控制工程-实验指导书
控制工程-实验指导书

《控制工程基础》实验指导书常熟理工学院机械工程系

目录

1.MATLAB时域分析实验 (2)

2.MATLAB频域分析实验 (4)

3. Matlab校正环节仿真实验 (8)

4.附录:Matlab基础知识 (14)

实验1 MATLAB 时域分析实验

一、实验目的

1. 利用MATLAB 进行时域分析。

要求:(1)计算连续系统的时域响应(单位脉冲输入,单位阶跃输入,任意输入)。

(2)根据系统的极点分析系统的稳定性。

2.掌握Matlab 系统分析函数impulse 、step 、lsim 、roots 、pzmap 的应用。

二、实验内容

1.已知某高阶系统的传递函数为

()26

543222050

1584223309240100

s s G s s s s s s s ++=++++++,试求该系统的单位脉冲响应、单位阶跃响应、单位速度响应和单位加速度响应。

MATLAB 计算程序 num=[2 20 50];

den=[1 15 84 223 309 240 100]; t= (0: 0.1: 20); figure (1);

impulse (num,den,t); %Impulse Response figure (2);

step(num,den,t);%Step Response figure (3);

u1=(t); %Ramp.Input hold on; plot(t,u1);

lsim(num,den,u1,t); %Ramp. Response gtext(‘t’); igure (4);

u2=(t*t/2);%Acce.Input hold on; plot(t,u2);

lsim(num,den,u2,t);%Acce. Response

gtext(‘t*t/2’);

2.已知某高阶系统的传递函数为

()328

76543272424

23456789

s s s G s s s s s s s s s +++=++++++++,试求该系统的极点并判断系统的稳定性。

MATLAB 计算程序 den=[1 2 3 4 5 6 7 8 9]; roots(den)

3.已知某高阶系统的传递函数为

()56

4233256

3.1210 6.25101.0108.010

4.410 6.2410s G s s s s s ?+?=+?+?+?+?,试求该系统的零极点并判

断系统的稳定性。

MATLAB 计算程序 num=[3.12*10^5 6.25*10^6];

den=[1 1.0*10^2 8.0*10^3 4.4*10^5 6.24*10^6]; [p,z]= pzmap(num,den); pzmap(num,den); title(‘Pole -Zero Map’); hold on;

实验2 MATLAB 频域分析实验

一、实验目的

1、加深理解频率特性的概念,了解一般系统的的Nyquist 图和Bode 图的特点和绘制。

2、学习采用MATLAB 绘制和分析系统频率特性图

二、实验要求

1、分析开环系统的频率特性,并用MATLAB 绘制其开环Nyquist 图和Bode 图,求取剪切频率ωc ,将实验结果与理论分析计算结果进行比较,验证理论的正确性。

2、用MATLAB 作闭环Nyquist 图和Bode 图,分析单位反馈系统的频率特性。

三、实验原理

1、对数频率特性:

Bode 图——对数坐标图,又称Bode 图,它由对数幅频特性图和对数相频特性图组成。对数幅频特性图纵坐标标度为20lgG( jw) ,其中对数以10为底均匀分度,采用单位是分贝(db);横坐标标度为lgw ,以对数分度绘制,标以w ,采用单位是弧度/秒(rad/s)。对数相频特性图纵坐标为角度,均匀分度,采用单位为度,横坐标与第一张图完全相同。对数相频特性图放在第一张之下,同时使横坐标的 上下一一对应,以便对比分析。

2、极坐标频率特性曲线(又称尼奎斯特曲线)

它是在复平面上用一条曲线表示w 由0→∞时的频率特性。即用矢量G( jw)的端点轨迹形成的图形,w 是参变量。在曲线的上的任意一点可以确定实频、虚频、幅频和相频特性。

3、用MATLAB 作频率特性曲线 1)用MATLAB 作开环频率特性

设系统的开环传递函数为

()10111011m m m m

n n n n b s b s b s b G s a s a s a s b ----+++=

+++ (2.1)

则系统的开环频率特性为

()10111011()()()()()()m m m m

n n n n b jw b jw b jw b G jw a jw a jw a jw a ----+++=

+++ (2.2)

据式(2.2)和表2.1中的MATLAB 命令可绘制出相应的尼奎斯特图和博德图。

2)用MATLAB 作闭环频率特性

()

M w 表示频率特性幅值,

()

w α表示相角,则闭环频率特性为

()()()

()()

j w o i X jw jw M w e

X jw αφ=

= (2.3)

其频率响应可按式(2.3)计算出不同频率处的()

i M w 和

()

i w α(i=1,2,3,…),

即可求得闭环系统频率特性并画出相应的曲线。 3)单位负反馈系统的频率特性

设单位负反馈系统的开环传递函数为

()

G s ,闭环频率特性表示为

()()()

1G jw jw G jw φ=

+ (2.4)

有式(2.2),得

()101111011011()()()()()()()()()m m m m

n n m m n n m m

b jw b jw b jw b jw a jw a jw a jw a b jw b jw b jw b φ------+++=

+++++++ (2.5)

据式(2.5)和表2.1的MATLAB 命令可绘制出闭环频率特性曲线。

num[ ]和den[ ]分别表示传递函数的分子和分母中包含以s 的降幂排列的多项式系数;grid on :在所画出的图形坐标中加入栅格;text( ):文字注释;tf (num ,den ):创建传递函数对象;feedback ( ,1):求单位负反馈系统的闭环传递函数。 4、实验步骤

1)将系统的传递函数写成式(2.2)和(2.5)形式;

2)在MATLAB 环境下,按MATLAB 语言格式要求,给num 和den 赋值;

3)在MATLAB 环境下,用表1的命令绘图; 4)输入MATLAB 程序。 5、举例说明

例1:已知控制系统的开环传递函数为21

()0.81G s s s =

++,利用MATLAB 画出尼

奎斯特图。 实验程序:

num=[0 0 1]; den=[1 0.8 1]; nyquist(num,den); grid on ;

title(‘Nyquit Plot of G(s)=1/(s^2+0.8s+1)’);

例2:已知控制系统的开环传递函数为225

()425G s s s =

++,利用MATLAB 画出博

德图。 实验程序:

num=[0 0 25]; den=[1 4 25]; bode(num,den); grid on ;

title(‘Bode Diagram of G(s)=25/(s^2+4s+25)’);

例3:已知单位负反馈系统的开环传递函数为()

2290.21()( 1.29)s s G s s s s ++=

++,利用MATLAB

画出w 从

0.1rad

s 到

1000rad

s 的博德图。

实验程序:

num=[0 9 1.8 9]; den=[1 1.2 9 0]; w=log space(-2,3,100); bode(num,den,w);

grid on;

title(‘Bode Diagram of G(s)=9(s^2+0.2s+1)/[s(s^2+1.2s+9)]’);

例4:已知单位负反馈系统的开环传递函数为

1

()

1

G s

s

=

+,利用MATLAB绘制系

统的频率特性曲线。

解:系统的开环频率特性为

1

()

1

G jw

jw

=

+,闭环频率特性为

1

()

2

jw

jw

φ=

+

实验程序:

P=tf([1],[1 1]);

PC=feedback(P,1);

bode(PC);

grid on;

title(‘Frequency Response of Closed Loop’);

实验3 MATLAB校正环节仿真实验

一、实验目的

1、学习利用实验探索研究控制系统的方法;

2、学会控制系统数学模型的建立及仿真;

3、熟悉并掌握控制系统频域特性的分析;

4、采用PID算法设计磁悬浮小球控制系统;

5、了解PID控制规律和P、I、D参数对控制系统性能的影响;

6、学会用Simulink来构造控制系统模型。

二、实验内容

在Matlab中Simulink环境下,建立控制系统的方框图,进行仿真,调整PID 参数,观察系统瞬态响应和稳态响应的变化,并记录几组PID参数作为实际系统控制参数。

三、实验原理

首先从理论上对磁悬浮小球系统进行数学建模,采用PID算法设计调节器,在MATLAB平台仿真获得适当的PID参数范围,并进行频域分析,观察并记录实验仿真结果。

1、系统建模及仿真

磁悬浮小球系统简介:它主要由铁芯、线圈、位置传感器、放大器、控制器和控制对象小球组成。系统开环结构如图所示。

控制要求:调节电流,使小球的位置x 始终保持在平衡位置。

忽略小球受到的其它干扰力,则受控对象小球在此系统中只受电磁吸力F 和自身重力mg 。球在竖直方向的动力学方程可以如下描述:

()()()1,2

2x i F mg dt t x d m -=

式中:x ——磁极到小球的气隙,单位m ;m ——小球的质量,单位Kg ;F(i,x)——电磁吸力,单位N ;g ——重力加速度,单位m/s 2。

由磁路的基尔霍夫定律、毕奥-萨格尔定律和能量守恒定律,可得电磁吸力为:

()()22

,2

20?

?

?

??-

=x i AN x i F μ

式中:μ0——空气磁导率,4πX10-7H/m ;A ——铁芯的极面积,单位m 2;N ——电磁铁线圈匝数;x ——小球质心到电磁铁磁极表面的瞬时气隙,单位m ;i ——电磁铁绕组中的瞬时电流,单位A 。

根据基尔霍夫定律,线圈上的电路关系如下:

()()()()3dt

t di L t Ri t U += 式中:L ——线圈自身的电感,单位H ;i ——电磁铁中通过的瞬时电流,单位A ;R ——电磁铁的等效电阻,单位Ω。

当小球处于平衡状态时,其加速度为零,即所受合力为零,小球的重力等于小球受到的向上电磁吸力,即:

()()42,2

2

000???

?

??-

==x i AN x i F mg μ

综上所述,描述磁悬浮小球系统的方程可完全由下面方程确定:

()

()()()()()()()52,2,,2

020002

202

2??????

?

???

??

????

? ??-==+=???

??-=-=x i AN

x i F mg dt t di L t Ri t U x i AN x i F x i F mg dt t x d m μμ

以小球位移为输出,电压为输入,可得系统的传递函数为:

()3

112331

2/k k s k s k s k k s G +--=

其中:L R k mx ki k mx ki k AN k -=-==-

=32

02302012

0,2,2,2

μ 设系统参数如下表所示:

四、实验要求

1、建立磁悬浮小球控制系统框图;

2、给定几组PID参数作为实际系统控制参数,并观察PID参数对系统瞬态响应和

稳态响应的影响。

五、实验步骤

1)进入MATLAB软件系统,在命令区内键入simulink函数,调用实验软件系统的主界面。

2)将各模块连接起来,点击开始仿真,再双击示波器模块,其控制框图和仿真结

果如下图所示。从示波器来看,此系统是一个不稳定的系统。则需要用PID控制器来控制。

3)利用MATLAB设计具有PID调节器的磁悬浮小球控制系统,并计算相关参数,其控制系统如下图:

4)在Matlab中Simulink环境下,建立系统的控制总方框图,如下图所示。

5)调整PID参数,观察系统瞬态响应和稳态响应的变化;如K P=1,K I=0.05,K D=8,其仿真结果如下图所示。

6)双击PID模块,弹出界面如下图所示,改变并记录几组PID参数作为实际系统控制参数。

附录

M a t l a b基础

关于M A T L A B

MATLAB是Matrix laboratory的缩写,是美国的MATHWORK公司开发的一种进行科学和工程计算的交互式程序语言。1984年推出第一个商业版本,到现在已经到了6.1版本,功能日趋完善和强大。主要适用于矩阵运算及控制和信息处理领域的分析设计。另外还包括仿真、系统辨识、神经元网络、模糊控制等工具箱。其中Simulink仿真工具箱可以利用图形界面和框图来编程和仿真。

运行M A T L A B程序的流程

?MATLAB软件通常工作在交互状态下,当键入一条命令后,MATLAB系统立即执行该命令并在屏幕上显示结果;

?MATLAB系统也可以执行储存在文件中的命令序列。这两种工作方式构成了系统的解释环境。

数字运算

MATLAB可以像计算器一样直接进行数学运算。

在MATLAB命令窗口内输入:

80*0.8+16*12.2

ans =

259.2000

帮助命令h e l p

MATLAB提供了大量的函数和命令,如果想记住所有的函数及其调用格式几乎是不可能的。

在线帮助可以由help 命令来获得。在MATLAB 的命令窗口直接键入help即可得到所有的帮助主题。如果要对某一命令或函数进行查询,直接在help后跟上该命令或函数即可。

变量的命名规则

变量名对大小写敏感。

变量名的首字符必须是字母。

每个变更名最多可包含19个字符。函数的命名规则与变量相同。

表达式

MTLAB对使用者键入的表达式进行翻译和计算,语句的形式通常为:

变量=表达式;

或简单地写作:表达式;

其中分号是可选的,如果该语句的最后一个字符是分号,则在执行词句时不在屏幕上显示结果。

表达式是由运算符,函数以及变量名组成。例如:z=r*sin(x)

简单矩阵的输入

矩阵不需维数说明和类型定义,存储单元完全由计算机自动分配。输入矩阵最简单的方法是输入矩阵的元素表,每个元素之间用空格或逗号隔开,用“;”号作为元素表中每一行的结束符,并用[ ]将元素表括起来。

例如,输入语句:a=[1 2 3;4 5 6;7 8 9]

则结果为:a = 1 2 3

4 5 6

7 8 9

向量的产生

冒号是MATLAB中一个重要的字符。

语句:x=1:5

产生一个行向量,其元素为1至5的数,每个数较前一数字递增1。即:x=[1 2 3 4 5 ],增量也可以是其它数。

如:y=[0:2:10]

则y=[0,2,4,6,8,10]

矩阵操作

1、转置:

若a=[1 2 3;4 5 6]

b=a'

得b =

1 4

2 5

3 6

2、求逆(inverse)

使用函数inv(a),例如:

a=[1 2 0; 2 5 -1; 4 10 -1]

inv(a)

ans =

5 2 -2

-2 -1 1

0 -2 1

3、矩阵的加、减、乘。

两个同维矩阵,才能进行加减运算

c= a+b; d=a-b;

a的列数等于b的行数,则e=a*b;

例如:a=[1 3 5 7], b=[2 4 6 8]则

a.*b’

ans =

2 12 30 56

M A T L A B程序的流程

MATLAB通常工作在交互状态下,当键入一条命令后,MATLAB系统立即执行该命令并在屏幕上显示结果;

MATLAB系统也可以执行储存在文件中的命令序列。这两种工作方式构成了系统的解释环境。

当面对一个问题,用文本编辑器编辑好MATLAB程序后,保存为后缀为“.m”的文件(实质为MATLAB命令序列),执行时在命令窗口键入M文件名后回车或用菜单命令。

M A T L A B程序的流程

MATLAB具有类似其它语言while ,for循环语句,可以实现一条语句或一组语句的多次重复执行。

1、for循环

for i = 1:n,

for j = 1:n

a(i , j) = 1/(i+j-1);

end

end

重复执行FOR 和END之间的命令,可以嵌套。

2、while循环

while 表达式

语句

end

例:n=1;y=0;

while n<=100

y=y+n; n=n+1;

end

得 y =5050

3、if语句

if x>0

x=x ;

else

x= - x ;

end

图形处理

MATLAB有强大图形处理功能,能处理二维、三维及图形对象或句柄图形。

二维图形处理常用命令有:

figure 创建图形窗口

plot、fplot、ezplot 基本的二维绘图命令

semilogx、semilogy、semilog,同plot,但此行的命令坐标轴是lnx,lny

xlabel、ylabel、title 标注轴名称与图形标题

text、gtext、legend 标注图形与图例的标注

help graph2d 二维图形方面有命令

help graph3d 三维图形方面有命令

help specgrah 特殊图形方面有命令

假设有两个同长度的向量 x 和 y, 则用 plot(x,y) 就可以自动绘制画出二维图来。如果打开过图形窗口,则在最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。

〖例〗正弦曲线绘制:

t=0:0.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,...,6.2

y=sin(t); % 计算正弦向量

plot(t,y) %绘制图形

这样立即可以得出二维图

控制系统工具箱

控制工具箱包含了进行控制系统分析与设计所必需的工具箱函数。

(1)模型建立(2)模型变换

(3)模型简化(4)模型实现

(5)模型特性(6)方程求解

(7)时间响应 (8)频率响应

(9)根轨迹 (10)估计器/调节器设计 控制系统模型

1)状态空间状态空间形式的系统方程写为:

在MA TLAB 中,这个系统简单的写为A 、B 、C 、D 四个矩阵的形式即可

Sys=ss(A,B,C,D) 2)传递函数

传递函数一般记为:

在MA TLAB 中,直接用分子/分母系数表示 Num=[b0,b1,b2…bm] den=[a0,a1,a2,….an] sys=tf(num,den)

(3)零点增益模型(ZP )

在MATLAB 中,用[z,p,k]矢量组表示 Sys=zpk(z,p,k) 模型之间的转换

控制系统的时域分析

Impulse 脉冲响应 Step 阶跃响应 Lsim 任意输入模拟 控制系统频域分析

Bode Bode 图 Nyquist Nyquist 图

Margain 增益裕度和相位裕度 例:

figure,bode(sys1) 画其Bode 图

Du

Cx y Bu Ax x

+=+= n

n n m

m m a s a s a b s b s b s den s num s H ++++++=

=--......)()()(110110)

)...()(())...()(()(2121m m p s p s p s z s z s z s k

s H ------=[num,den]=ss2tf(a,b,c,d,iu)状态空间到传函[z,p,k]=ss2zp(a,b,c,d,iu)状态空间到零极

[a,b,c,d]=tf2ss(num,den)传函到状态空间

[z,p,k]=tf2zp(num,den)传函到零极[a,b,c,d]=zp2ss(z,p,k)零极到状态空间[num,den]=zp2tf(z,p,k)零极到传函

figure,nyquist(sys1) 画Nyquist图

margin(sys1) 求系统的幅值裕量与相位裕量

控制系统稳定性分析

在MATLAB中,可利用pzmap函数绘制系统的零极点图,从而确定系统的稳定性

调用格式:

Pzmap(num,den)

系统仿真工具箱S I M U L I N K

类似V B中在窗体上放置控件一样,S I M U L I N K用方框图的绘制代替了程序的编写。SIMULINK 主要完成两方面的工作

建立控制系统的模型

实现控制系统的仿真

S I M U L I N K启动

1. 在MATLAB的命令窗口中键入SIMULINK,就打开了SIMULINK的模块库(如图);

2. 在MATLAB命令窗口的file菜单中选择new命令的model,将打开一个新的空白窗口;

3. 在MATLAB的工具栏中,按按钮,将打开一个新的空白窗口;

连接与建模

构成任何一个系统需要三步:选定典型环节、相互联接和给定环节参数。

相关主题
相关文档
最新文档