文档库

最新最全的文档下载
当前位置:文档库 > 控制工程实验指导书.答案

控制工程实验指导书.答案

《控制工程基础》实验指导书

陈卫国

湖南文理学院

机械电子工程专业

实验一 典型环节模拟

一、实验目的

①了解、掌握计算机模拟典型环节的基本方法。

②熟悉各种典型环节的阶跃响应曲线。

③了解各种参数变化对典型环节动态特性的影响。

④了解计算机辅助分析和设计的特点与优点

二、实验要求

①通过计算机的仿真图形观测各种典型环节时域响应曲线。

②改变参数,观测参数变化时对典型环节时域响应的影响。

④对实验程序加上注释,写出实验报告。

三、实验内容

一般来讲,线性连续控制系统通常都是由一些典型环节构成的,这些典型环节有比例环节、积分环节、一阶微分环节、惯性环节、振荡环节、延迟环节等。下面分别对其性能进行仿真(建议实验程序在M 文件中用单步执行的方式执行程序,以便于分析):

1)比例环节

比例环节的传递函数为:k s G =)(

编程分析当k=1~10时,比例环节在时域的情况:

①当输人信号是单位阶跃信号时,比例环节的输出曲线(单位阶跃响应曲线)是什么形状呢?实验程序如下:

for k=1:1:10

num=k;

den=1;

G=tf(num,den);

step(G);

hold on;

end

在M 文件的窗口中,输入程序,录入程序完成后,保存该M 文件,在弹出的“保存为”窗工中输人M 文件名bl.m (也可以自己取文件名),选择存放该M 文件的路径,就可以完成保存工作,然后单击“Tools ”菜单中的“Run ”,将在step 图形窗口中显示出响应图形。试分析系统的输出信号的特点。

2)积分环节

积分环节的传递函数为: T

s G 1)(= ① 当输人信号是单位阶跃信号时,积分环节的仿真程序如下:

num=1;

den=[1,0];

G=tf(num,den);

step(G)

执行程序,试分析系统的输出信号的特点。若G(s)=k/s ,编程分析当K=1~10时,在单位阶跃信号激励下,积分环节时域响应的情况。

3)一阶微分环节

一阶微分环节的传递函数为: 1)(+=Ts s G

①当输入信号是单位阶跃信号时,一阶微分环节的输出在MA TLAB 的函数step ()中是无法绘制的。为了能够进行仿真,设置一个极点p ,该极点|P |>>1/T ,设极点P=-1000,T 取值范围为:1~10。

实验程序如下:

for T=1:1:10;

num=[T,1];

den=[0.0001,1];

G=tf(num,den);

Step(G);

Hols on;

试分析一阶微分环节阶跃响应的特点以及T 值的作用。

4)惯性环节

惯性环节的传递函数为:1

1)(+=Ts s G ①当输人信号是单位阶跃信号时,惯性环节的单位阶跃响应曲线是什么形状呢? 实验程序:

for T=1:1:10;

num=[1];

den=[T,1];

G=tf(num,den);

Step(G);

Hols on;

end

分析惯性环节的时间常数T 与响应到达稳态值时间之间的关系。

5)振荡环节 振荡环节的传递函数为:1

21)(22++=TS S T s G ξ ①当输入信号是单位阶跃信号时,振荡环节的单位阶跃响应曲线是什么形状呢? 实验参考程序如下(其中,T=6,ξ=0.1,0.4,0.7)

for T=6;

for zeta=[0.1,0.4,0.7];

num=[1];

den=[T^2,2*T*zeta,1];

G=tf(num,den);

Step(G);

Hols on;

End

end

分析阻尼系数ξ对单位阶跃响应的影响

实验二 控制系统时域仿真和稳定性研究

凡是能用二阶微分方程描述的控制系统,都称为二阶控制系统。 典型二阶控制系统的闭环传递函数为:2222)(n

n n s s s G ωξωω++= 当0<ξ<1时,二阶控制系统被称为欠阻尼系统;当ξ=1时,称为临界阻尼系统;当ξ>1时,称为过阻尼系统。

典型二阶控制系统的闭环传递函数有两个可选参数:ξ和ωn ,根据不同的ξ和ωn 的参数值,对二阶控制系统时域仿真和稳定性进行研究。

一、实验目的

①熟悉二阶控制系统的阶跃响应曲线。

②理解ξ和ωn 参数变化对系统动态特性的影响。

二、实验要求

①通过计算机的仿真图形观测二阶控制系统的时域响应曲线。

②改变ξ和ωn ,观测参数变化时对典型环节时域响应的影响。

② 对实验程序加上注释,写出实验报告。

三、实验内容

1)二阶控制系统时域响应和稳定性的仿真

在程序中,阻尼比ξ用变量zeta 来表示。

当ωn=1,ξ=0.1,0.3,0.5,0.7,0.9,1.0,2.0时的单位阶跃响应实验程序: ωn=1;

kos= [0.1:0.2:0.9,1.0,2.0]

for zeta = kos

num=ωn^2;

den=[1,2*zeta*ωn,ωn^2];

G=tf(num,den);

Step(G);

Hols on;

end

title(‘step response’)

应用impulse()函数,同样可以对二阶控制系统进行单位脉冲响应的仿真和分析。绘制ωn=6, ξ=0.7时的单位脉冲响应曲线,比较这些曲线的特点

实验程序:

wn=6

zeta=0.7

figure(1)

hold on

num=wn .^2

den=[1,2*zeta*wn,wn .^2]

impulse(num,den)

title(‘impulse response’)

2)二阶控制系统稳定性的仿真

对二阶系统

2

2

2

2

)

(

n

n

n

s

s

s

G

ω

ξω

ω

+

+

=

,n

ω

=6,绘制

ξ分别为0.7, 1.0,2.0情况下系统

的零极点图,判定系统的稳定性,并比较极点的分布特征。

实验程序:

wn=6

zeta=[0.7 1.0 2.0]

num=[wn*wn]

for i=1:3

figure(i)

den=[1 2*zeta(i)*wn wn*wn]

pzmap(num den)

grid

end

实验三、计算机辅助频域仿真分析

一、实验目的

①熟悉各种典型环节的频域响应的曲线

②学习采用MA TLAB绘制和分析系统频率特性图

二、实验要求

①通过计算机的仿真图形观测各典型环节的频率特性曲线及系统的开环频率特性曲线

②对实验程序加上注释,写出实验报告。

三、实验内容

1)利用频域分析函数绘制各典型环节的频率特性图

Bode()绘制Bode图

Nyquist()绘制Nyquist图

2) 已知控制系统的开环传递函数为)

1(2)(+=

s s s G ,绘制系统开环频率特性的极坐标图。

实验程序:

num=[2]

den=[1 1 0]

w=logspace(-1,2)

nyquist(num,den,w)

grid 3) 已知控制系统的开环传递函数为222

)

11.0()110()1(300)(+++=s s s s s G ,用SIMULINK 建模,利用模型文件绘制BODE 图、NYQUIST 图、脉冲响应、阶跃响应。试建立模型文件和M 文件

实验程序:

(1) SIMULINK 窗口内构筑已知的开环系统模型,并以文件名“moxig ”进

行保存。

控制工程实验指导书.答案

(2) 建立M 文件

[a b c d]=Linmod(‘moxing’)

sys=ss (a,b,c,d)

sys=tf(sys)

figure,bode(sys)

figure,nyquist(sys)

figure,step(sys)

figure,impulse(sys)

附录

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 )

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

在MATLAB 中,用[z,p,k]矢量组表示

Sys=zpk(z,p,k)

模型之间的转换

控制系统的时域分析

Impulse 脉冲响应

Step 阶跃响应

Lsim 任意输入模拟

控制系统频域分析

Bode Bode 图

Nyquist Nyquist 图

Margain 增益裕度和相位裕度

例:

figure,bode(sys1) 画其Bode 图

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 主要完成两方面的工作

建立控制系统的模型

实现控制系统的仿真 )

)...()(()

)...()(()(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)零极到传函

S I M U L I N K启动

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

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

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

连接与建模

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