控制系统仿真实验指导书及解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 MATLAB 软件操作练习
一、 实验目的
1. 熟悉MATLAB 软件的基本操作;
2. 学会利用MATLAB 进行基本数学计算的方法;
3. 学会用MATLAB 进行矩阵创建和运算。
二、实验设备
计算机一台,MATLAB 软件
三、实验内容
1. 使用help 命令,查找 sqrt (开方)、roots (求根)等函数的使用方法;
2. 用MATLAB 可以识别的格式输入以下矩阵
75350083341009103150037193......A ⎡⎤⎢⎥⎢⎥=⎢⎥-⎢⎥⎣⎦
并将A 矩阵的右下角2×3子矩阵赋给D 矩阵。
赋值完成后,调用相应的命令查看MATLAB 工作空间的占用情况。
3. 矩阵运算
(1)矩阵的乘法
已知A=[1 2;3 4]; B=[5 5;7 8];
求A^2*B
(2)矩阵除法
已知 A=[1 2 3;4 5 6;7 8 9];
B=[1 0 0;0 2 0;0 0 3];
A\B,A/B
(3)矩阵的转置及共轭转置
已知A=[5+i,2-i,1;6*i,4,9-i];
求A.', A'
(4)使用冒号选出指定元素
已知: A=[3 2 3;2 4 6;6 8 10];
求A 中第3列前2个元素;A 中所有列第2,3行的元素;
4. 分别用for 和while 循环结构编写程序,求出
63
23626302122222i i K ===++++++∑
并考虑一种避免循环的简洁方法来进行求和。
四、实验步骤
1. 熟悉MATLAB 的工作环境,包括各菜单项、工具栏以及指令窗口、工作空间窗口、启动平台窗口、命令历史窗口、图形文件窗口和M 文件窗口;
2. 在指令窗口中完成实验内容中规定操作并记录相关实验结果;
3. 完成实验报告。
实验二 M 文件编程及图形处理
一、实验目的
1.学会编写MATLAB 的M 文件;
2.熟悉MATLAB 程序设计的基本方法;
3. 学会利用MATLAB 绘制二维图形。
二、实验设备
计算机一台,MATLAB 软件
三、实验内容
1. 选择合适的步距绘制出下面的图形
(1)sin(tan )tan(sin )t t -,其中(,)t ππ∈-
(2)-0.5t y=e sin(t-)3π
,t ∈[0,20]
(3)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5), t ∈[0,2π]
2.基本绘图控制
绘制[0,4π]区间上的x1=10sint 曲线,并要求:
(1)线形为点划线、颜色为红色、数据点标记为加号;
(2)给横坐标标注’t ’,纵坐标标注‘y(t)‘,
3.M 文件程序设计
(1)编写程序,计算1+3+5+7+…+(2n+1)的值(用input 语句输入n 值);
(2)编写分段函数
⎪⎩
⎪⎨⎧≤≤-<≤=其它021210)(x x x x x f
的函数文件,存放于文件ff.m 中,计算出)2(f ,)3(-f 的值
四、实验要求
1. 预习实验内容,按实验要求编写好实验程序;
2. 上机调试程序,记录相关实验数据和曲线,
3. 完成实验报告。
实验三 数学模型建立与转换
一、实验目的
1.学会用MATLAB 建立控制系统的数学模型。
2.学会用MATLAB 对控制系统的不同形式的数学模型之间的转换和连接。
二、实验设备
计算机一台,MATLAB 软件
三、实验内容
1.建立控制系统的数学模型
(1)用MATLAB 建立下述零极点形式的传递函数类型的数学模型:
)
1)(1(3)(+++=s s s s G (2)用MATLAB 建立下述线性连续时间系统的状态方程类型的数学模型:
u x x B A +=.
u x y D C +=
式中,⎥⎦⎤⎢⎣⎡=....
321x x x x ,,,[]321x x x x ,,=,[]21u u u ,=,[]21y y y ,=, ⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=987654321A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=642531B ,⎥⎦⎤⎢⎣⎡=654321C ,⎥⎦⎤⎢⎣⎡=4321D 2.不同形式及不同类型间的数学模型的相互转换
(1)分子、分母多项式形式的传递函数模型与零极点形式的传递函数模型间的相互转换;
1)用MATLAB 将下列分子、分母多项式形式的传递函数模型转换为零极点形式的传递函数模型:
2)用MATLAB 将下列零极点形式的传递函数模型转换为分子、分母多项式形式的传递函数模型:
2
2642202412)(23423++++++=s s s s s s s G )43)(43)(2)(1()5)(6()(j s j s s s s s s s G -+++++++=
(2)分子、分母多项式形式的传递函数模型与状态方程模型间的相互转换
1)用MATLAB 将下列分子、分母多项式形式的传递函数模型转换为状态方程模型:
1
23)(3+++=s s s s G 2)用MATLAB 将下列状态方程模型转换为分子、分母多项式形式的传递函数模型:
(3)零极点形式的传递函数模型与状态方程模型间的相互转换
1)用MATLAB 将下列零极点形式的传递函数模型转换为状态方程模型
)
1)(1(3)(+++=s s s s G 2)用MATLAB 将下列状态方程模型转换为零极点形式的传递函数模型
3. 用MATLAB 命令求如下图2.1所示控制系统的闭环传递函数
图2.1
四、实验要求
预习实验内容,按实验要求编写好实验程序,调试程序,记录相关实验数据和曲线,并撰写实验报告。
[]u
x y u x x +=⎥⎦
⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡-=31102110 x y u x x ⎥⎦
⎤⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=22081200012242641413125119748612310961
实验四 控制系统响应及性能分析
一 、实验目的
1. 掌握控制系统频率特性曲线绘制方法。
2. 学会用MATLAB 绘制控制系统的根轨迹。
3. 学习控制系统动态响应曲线的绘制及动态性能指标的测试方法
二、实验设备
计算机一台,MATLAB 软件
三、实验内容
1. 已知系统的开环传递函数为:
s s s s s G o 4036820
)(234+++=
求系统在单位负反馈下的阶跃响应曲线。
2. 系统开环传递函数如下:
22(24)()(4)(6)( 1.41)
r K s s G s s s s s s ++=++++ 要求绘制系统根轨迹并进行系统分析。
①在MATLAB 环境下输入程序
num=[1 2 4];
den=conv([1 0],conv([1 4],conv([1 6],[1 1.4 1])));
rlocus(num,den)
绘制出系统的根轨迹图
②输入命令
rlocfind(num,den)
移动鼠标,确定系统变为不稳定时的k 值。
3. 系统结构图如图2.2所示,试用nyquist 频率曲线判断系统的稳定性。
如果系统稳定,求出系统稳定裕度。
并绘制系统的单位冲激响应以验证判断结论。
图2.2
其中
)
10625.0)(125.0)(185.0(7.16)(+++=s s s s s G
四、实验要求
1.预习实验内容,按实验要求编写好实验程序,调试程序;
2.根据控制系统的响应曲线,分析系统的性能;
3.记录相关实验数据和曲线,并撰写实验报告。
实验五 控制系统综合
一、实验目的
(1). 学习校正装置的设计和实现方法。
(2).掌握MATLAB 进行控制系统设计的基本方法
二、实验设备
计算机一台,MATLAB 软件
三、实验内容
设被控对象的传递函数为:
10()(5)
o G s s s =+ 设计方案,满足下列设计要求:。
1. 串联超前校正
参考程序:
ng=10;
dg=[1,5,0];
G0=tf(ng,dg);
kc=10;
dPm=70+10;
[mag,phase,w]=bode(G0*kc);
Mag=20*log10(mag);
[Gm,Pm,Wcg,Wcp]=margin(G0*kc);
phi=(dPm-Pm)*pi/180;
alpha=(1+sin(phi))/(1-sin(phi));
Mn=-10*log10(alpha);
Wcgn=spline(Mag,w,Mn);
T=1/Wcgn/sqrt(alpha);
Tz=alpha*T;
Gc=tf([Tz 1],[T 1]);
bode(G0*kc,G0*kc*Gc);
[Gm1,Pm1,Wcg1,Wcp1]=margin(G0*kc*Gc);
2.串联滞后校正
参考程序:
clear
clc
close
num=100;
den=[1 5 0];
[gm,pm,wcg,wcp]=margin(num,den);
dpm=-180+70+12;
[mag,phase,w]=bode(num,den);
wc=spline(phase,w,dpm);
magg=20*log10(mag);
mm=spline(w,magg,wc);
beta=10^(-mm/20);
w2=0.2*wc;
t=1/(beta*w2);
num1=[beta*t,1];
den1=[t,1];
gc=tf(num1,den1);
h=tf(num,den);
g=h*gc;
[gm1,pm1,wcg1,wcp1]=margin(g);
bode(g,'y')
hold on
bode(h,'r')
hold off
pm1
四.实验要求
1.本实验属于设计性实验,根据实验内容选择设计方案,如串联校正,PID 控制等;
2.按实验要求编写好实验程序,调试程序,得到校正前和校正后的BODE图;
3.记录相关数据和曲线,并撰写实验报告。
实验六 simulink 仿真
一、实验目的
1.掌握SIMULINK软件的基本内容及仿真方法。
2.熟悉实际系统动态结构图的建立方法。
二、实验设备
计算机一台,MATLAB软件
三、实验内容
1. 利用SIMULINK建立如图
2.3所示模型进行时域系统分析,选择合适的增益k使系统跟踪输入给定信号。
图2.3
2. 建立如图2.4所示的典型PID控制位置随动系统模型,选择阶跃输入模块.用示波器观察系统的仿真输出。
并对Kp、Ki、Kd参数进行调整,使系统具有较满意的动态性能。
①打开各相应函数库,建立如图3所示的PID控制系统的结构图程序文件;
②打开各元件参数设置窗口,输入各参数。
先取Kp=5,Ki=0.5,Kd=1;
③打开simulation菜单,选择Parameter项,设定适当的仿真参数;
④启动仿真,观察响应的动态特性;
⑤调整Kp、Ki、Kd参数,使得系统具有较满意的动态性能。
四、实验要求
1.SIMULINK环境下建立系统的仿真模型,调节实验参数,获得满意的响应曲线;
2.记录相关数据、模型和曲线,并撰写实验报告。
.
实验一MATLAB软件操作练习
2.A=[7.5
3.5 0 0;8 33
4.1 0;0 9 103 -1.5;0 0 3.7 19.3]
A =
7.5000 3.5000 0 0
8.0000 33.0000 4.1000 0
0 9.0000 103.0000 -1.5000
0 0 3.7000 19.3000
D=A(3:4,2:4)
D =
9.0000 103.0000 -1.5000
0 3.7000 19.3000
3.
1)
clear all
close
clc
A=[1 2;3 4]; B=[5 5;7 8];
A^2*B
ans =
105 115
229 251
2)
clear all
close
clc
A=[1 2 3;4 5 6;7 8 9];
B=[1 0 0;0 2 0;0 0 3];
A\B,A/B
ans =
1.0e+016 *
0.3152 -1.2609 0.9457
-0.6304 2.5218 -1.8913
0.3152 -1.2609 0.9457
ans =
1.0000 1.0000 1.0000
4.0000 2.5000 2.0000
7.0000 4.0000 3.0000
3)
clear all
close
clc
A=[5+i,2-i,1;6*i,4,9-i];
A.', A'
ans =
5.0000 + 1.0000i 0 +
6.0000i
2.0000 - 1.0000i 4.0000
1.0000 9.0000 - 1.0000i
ans =
5.0000 - 1.0000i 0 -
6.0000i
2.0000 + 1.0000i 4.0000
1.0000 9.0000 + 1.0000i
4)
clear all
close
clc
A=[3 2 3;2 4 6;6 8 10];
A(1:2,3),A(2:3,:)
ans =
3
6
ans =
2 4 6
6 8 10
4.
1:clear all
close
clc
a=0;
for i=0:63
a=a+2^i;
end
a
a =
1.8447e+019
2:
clear all
close
clc
a=0;
i=0;
while i<64
a=a+2^i;
i=i+1;
end
a
a =
1.8447e+019
简便方法:
clear all
close
clc
a=2^64-1
a =
1.8447e+019
实验二M文件编程及图形处理
1.
1):
clear all
close
clc
t=0:pi/300:2*pi;
y=sin(tan (t))-tan(sin (t));
plot(t,y)
01234567
-3-2
-1
1
2
3
2):
clear all
close
clc
t=0:20/300:20;
y=exp(-0.5*t).*sin (t-pi/3);
plot(t,y)
02468101214161820
-1-0.8
-0.6
-0.4
-0.2
0.2
0.4
3):
clear all
close
clc
t=0:pi/300:2*pi;
y1=cos(t-0.25);
y2=sin(t-0.5);
plot(t,y1,t,y2)
01234567
-1-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1
2.
clear all
close
clc
t=0:pi/15:4*pi;
x1=10*sin(t);
%subplot(223);
plot(t,x1,'r-.+');
xlabel('t');
ylabel('y(t)');
t y (t )
3.
1)
clear all
close
clc
i=0;
a=0;
n=input('n=')
while i<n+1
a=a+2*i+1;
i=i+1;
end
a
n=20
n =
20
a =
441
2)
ff.m文件:
function y=ff(x)
%x=input('x=')
if x<0||x>2
y=0;
%elseif x>2
%y=0;
elseif x>=1
y=2-x;
else
y=x;
end
主函数:
clear all
close
clc
n=input('n=')
y=ff(n)
n =
1.4142
y =
0.5858
n =
-3
y =
实验三数学模型建立与转换
1、建立控制系统的数学模型
程序如下:
clc
clear
close all
k=1;
z=[-3];
p=[-1,-1];
y=zpk(z,p,k)
运行结果如下:
Zero/pole/gain:
(s+3)
-------
(s+1)^2
2、分子、分母多项式形式的传递函数模型与零极点形式的传递函数模型间的相互转换;
程序如下:
clc
clear
close all
num=[12,24,0,20];
den=[2,4,6,2,2];
[z,p,k]=tf2zp(num,den)
y=zpk(z,p,k)
运行结果如下:
z =
-2.3118
0.1559 + 0.8346i
0.1559 - 0.8346i
p =
-0.9567 + 1.2272i
-0.9567 - 1.2272i
-0.0433 + 0.6412i
-0.0433 - 0.6412i
k =
6
Zero/pole/gain:
6 (s+2.312) (s^2 - 0.3118s + 0.7209)
-------------------------------------------------
(s^2 + 0.08663s + 0.413) (s^2 + 1.913s + 2.421)
3、用MATLAB将下列零极点形式的传递函数模型转换为分子、分母多项式形式的传递函数模型:
程序如下:
clc
clear
close all
k=1;
z=[0,-6,-5]';
p=[-1,-2,-3-4j,-3+4j]';
[num,den]=zp2tf(z,p,k)
y=tf(num,den)
运行结果如下:
num =
0 1 11 30 0
den =
1 9 45 87 50
Transfer function:
s^3 + 11 s^2 + 30 s
--------------------------------
s^4 + 9 s^3 + 45 s^2 + 87 s + 50
4、用MATLAB命令求如下图2.1所示控制系统的闭环传递函数
程序如下:
clc
clear
close all
num1=1;
den1=[500,0];
num2=[1,2];
den2=[1,4];
num3=[1,1];
den3=[1,2];
[num4,den4]=series(num1,den1,num2,den2);
[num,den]=feedback(num4,den4,num3,den3);
y=tf(num,den)
运行结果如下:
Transfer function:
s^2 + 4 s + 4
-------------------------------
500 s^3 + 3001 s^2 + 4003 s + 2
实验四控制系统响应及性能分析
1. 已知系统的开环传递函数求系统在单位负反馈下的阶跃响应曲线。
实验程序如下:
clc
clear
close all
num=[20];
den=[1,8,36,40,0];
[numc,denc]=cloop(num,den);
step(numc,denc);
运行结果如下:
0123456789
00.2
0.4
0.6
0.81
1.2
1.4
Step Response
Time (sec)A m p l i t u d e
2. 系统开环传递函数要求绘制系统根轨迹并进行系统分析。
实验程序如下:
clc
clear
close all
num=[1 2 4];
den=conv([1 0],conv([1 4],conv([1 6],[1 1.4 1])));
rlocus(num,den)
title('¸ù¹ì¼£Í¼')
运行结果如下:
-15-10
-5
5
10
15
根轨迹图
Real Axis I m a g i n a r y A x i s
程序如下:
clc
clear
close all
num=[1 2 4];
den=conv([1 0],conv([1 4],conv([1 6],[1 1.4 1])));
rlocus(num,den)
rlocfind(num,den)
结果如下:
selected_point =
-0.0059 + 3.5870i
ans =
152.0934
或
selected_point =
-0.0059 - 3.8665i
ans =
171.2445
结论:k1=152.0934; k2=171.2445
3. 系统结构图,试用nyquist 频率曲线判断系统的稳定性。
如果系统稳定,求出系统稳定裕度。
并绘制系统的单位冲激响应以验证判断结论。
(1)实验程序如下:
clc
clear
close all
num1=[16.7,0];
den1=conv([0.85,1],conv([0.25,1],[0.0625,1]));
[num2,den2]=cloop(num1,den1);
num3=10;
den3=1;
[num,den]=series(num3,den3,num2,den2);
figure(1);
[z,p,k]=tf2zp(num,den);
p
nyquist(num,den)
[numc,denc]=cloop(num,den);
impulse(numc,denc)
运行结果如下:
-20-15-10-505101520Nyquist Diagram Real Axis I m a g i n a r y A x i s
00.10.20.3
0.40.50.6-80-60
-40
-20
2040
60
80
100
Impulse Response
Time (sec)A m p l i t u d e
p =
-10.5602 +35.1033i
-10.5602 -35.1033i
-0.0560
gm =
Inf
pm =
11.3542
wcp =
Inf
wcg =
116.9331
结论:由于该系统右极点个数为0,且奈氏曲线包围的圈数也为0,所以该系统稳定。
实验五控制系统综合
1、串联超前校正
实验程序如下:
clc
clear
close all
ng=10;
dg=[1,5,0];
G0=tf(ng,dg);
kc=10;
dPm=70+10;
[mag,phase,w]=bode(G0*kc);
Mag=20*log10(mag);
[Gm,Pm,Wcg,Wcp]=margin(G0*kc);
phi=(dPm-Pm)*pi/180;
alpha=(1+sin(phi))/(1-sin(phi));
Mn=-10*log10(alpha);
Wcgn=spline(Mag,w,Mn);
T=1/Wcgn/sqrt(alpha);
Tz=alpha*T;
Gc=tf([Tz 1],[T 1]);
bode(G0*kc,G0*kc*Gc);
[Gm1,Pm1,Wcg1,Wcp1]=margin(G0*kc*Gc)
运行结果如下:
Gm1 =
Inf
Pm1 =
68.6694
Wcg1 =
Inf
Wcp1 =
16.6725
-100-50050
M a g n i t u d e (d B
)
10-1100101102103
P h a s e (d e g )Bode Diagram
Frequency (rad/sec)
结论:该系统校正后的相位裕度为68.6694度,增益裕度为无穷大。
不满足相位裕度大于70度,所以不能达到要求。
2、 串联滞后校正
实验程序如下:
clc
close
num=100;
den=[1 5 0];
[gm,pm,wcg,wcp]=margin(num,den);
dpm=-180+70+12;
[mag,phase,w]=bode(num,den);
wc=spline(phase,w,dpm);
magg=20*log10(mag);
mm=spline(w,magg,wc);
beta=10^(-mm/20);
w2=0.2*wc;
t=1/(beta*w2);
num1=[beta*t,1];
den1=[t,1];
gc=tf(num1,den1);
h=tf(num,den);
g=h*gc;
[gm1,pm1,wcg1,wcp1]=margin(g)
bode(g,'y')
hold on
bode(h,'r')
hold off
运行结果如下:
gm1 =
Inf
pm1 =
71.1440
wcg1 =
Inf
wcp1 =
0.7158
-100-50050100150
200
M a g n i t u d e (d B
)
10-410-310-210-1100101102
P h a s e (d e g )Bode Diagram
Frequency (rad/sec)
结论:该系统校正后的相位裕度为71.1440度,增益裕度为无穷大,满足所要求的条件。
实验六 simulink 仿真
1、利用SIMULINK建立模型进行时域系统分析,选择合适的增益k使系统跟踪输入给定信号。
取k=2;
2、建立典型PID控制位置随动系统模型,选择阶跃输入模块.用示波器观察系统的仿真输出。
并对Kp、Ki、Kd参数进行调整,使系统具有较满意的动态性能。