Matlab控制系统计算机辅助设计.docx
- 文档编号:7962852
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:28
- 大小:346.53KB
Matlab控制系统计算机辅助设计.docx
《Matlab控制系统计算机辅助设计.docx》由会员分享,可在线阅读,更多相关《Matlab控制系统计算机辅助设计.docx(28页珍藏版)》请在冰豆网上搜索。
Matlab控制系统计算机辅助设计
实验目录
实验一:
Matlab环境熟悉与基本运算(设计型)
实验二:
Matlab语言程序设计(设计型)
实验三:
控制系统模型的建立(设计型)
实验四:
Simulink仿真入门(验证型)
实验五:
控制系统时域仿真分析(设计型)
实验六:
Simulink环境下时域仿真
实验七:
控制系统根轨迹仿真分析
实验八:
控制系统频域仿真分析(设计型)
实验名称:
Matlab环境熟悉与基本运算(设计型)
1、矩阵运算
(1)矩阵的乘法
A=[12;34];
B=[55;78];
y=A^2*B
y=
105115
229251
(2)矩阵除法
A=[123;456;789];
B=[100;020;003];
y1=A\B
警告:
矩阵接近奇异值,或者缩放错误。
结果可能不准确。
RCOND=1.541976e-18。
y1=
1.0e+16*
-0.45041.8014-1.3511
0.9007-3.60292.7022
-0.45041.8014-1.3511
y2=A/B
y2=
1.00001.00001.0000
4.00002.50002.0000
7.00004.00003.0000
(3)矩阵的转置及共轭转置
A=[5+i,2-i,1;6*i,4,9-i];
y1=A.'
y1=
5.0000+1.0000i0.0000+6.0000i
2.0000-1.0000i4.0000+0.0000i
1.0000+0.0000i9.0000-1.0000i
y2=A'
y2=
5.0000-1.0000i0.0000-6.0000i
2.0000+1.0000i4.0000+0.0000i
1.0000+0.0000i9.0000+1.0000i
(4)使用冒号选出指定元素
A=[123;456;789];
y1=A(1:
2,3)
y1=
3
6
y2=A(2:
3,:
)
y2=
456
789
(5)复数矩阵的生成:
symsa1a2a3a4b1b2b3b4
A=[a1+b1*ja2+b2*j;a3*exp(b3*j)a4*exp(b4*j)]
A=
[a1+b1*1i,a2+b2*1i]
[a3*exp(b3*1i),a4*exp(b4*1i)]
a1=3;a2=-2;a3=9;a4=23;b1=5;b2=3;b3=6;b4=33;
A=[a1+b1*ja2+b2*j;a3*exp(b3*j)a4*exp(b4*j)]
A=
3.0000+5.0000i-2.0000+3.0000i
8.6415-2.5147i-0.3054+22.9980i
2、多项式
p=
1024
roots(p)%用roots函数求多项式的根
ans=
0.5898+1.7445i
0.5898-1.7445i
-1.1795+0.0000i
①A=[1.2350.9;51.756;3901;1234];
P=poly(A);
poly2sym(P)
ans=
x^4-(69*x^3)/10-(3863*x^2)/50-(8613*x)/100+12091/20
②polyval(P,20)
ans=
7.2778e+04
③polyvalm(P,A)
ans=
1.0e-11*
-0.4093-0.4849-0.3876-0.4519
-0.5002-0.8072-0.6004-0.5684
-0.4704-0.6196-0.6480-0.5230
-0.3297-0.4455-0.3595-0.3638
3、基本绘图命令
(1)t=0:
0.01:
2*pi;
y=cos(t);
plot(t,y)
运行结果如右图所示:
(2)
t=0:
0.01:
2*pi;
y1=cos(t-0.25);
y2=sin(t-0.5);
plot(t,y1,t,y2)
运行结果如右图所示:
4、基本绘图控制
t=0:
0.01:
4*pi;
x1=10*sin(t);
plot(t,x1,'-.b*')
axis([-2020-2020])
gridon
title('正弦曲线x1=10*sin(t)图')
xlabel('t=0:
0.01:
4*pi')
ylabel('x1')
text(pi/2,10,'最大值')
运行结果如右图所示:
实验名称:
Matlab语言程序设计(设计型)
1、编写命令文件:
计算1+2+…+n<5000时的最大n值;
解:
建立M文件,文件名称记为two1,编辑程序容如下所示:
s=0;
n=1;
while(s<5000),
s=s+n;
n=n+1;
end,
n
保存,并在命令窗口中输入two1,运行结果如下所示:
two1
n=
101
2、编写函数文件:
解:
①用for循环结构编写程序:
建立函数文件,文件名称记为findsum1,编辑程序容如下所示:
function[s1]=findsum1()
%findsum1用for循环编写的程序
%求2的0到30次幂的和,s表示和,i表示执行次数
s1=0;
fori=0:
30,
s1=s1+2^i;
End
end
保存,并在命令窗口中输入[s1]=findsum1(),运行结果如下所示:
[s1]=findsum1()
s1=
2.1475e+09
②用while循环结构编写程序:
建立函数文件,文件名记为findsum2,编辑程序容如下所示:
function[s2]=findsum2()
%findsum2用while循环编写的程序
%求2的0到30次幂的和,s表示和,i表示执行次数
s2=0;
i=0;
while(i<=30),
s2=s2+2^i;
i=i+1;
end
end
保存,并在命令窗口中输入[s2]=findsum2(),运行结果如下所示:
[s2]=findsum2()
s2=
2.1475e+09
3、解:
建立M文件,文件名记为two3,编辑程序容如下:
x=input('pleaseinputacharacter:
\n','s');
ifx=='y'||x=='Y',
disp('x=1');
elseifx=='n'||x=='N',
disp('x=0');
else
disp('itserro');
end
end
保存,并在命令窗口中输入two2,运行结果如下所示:
two2
pleaseinputacharacter:
n
x=0
two2
pleaseinputacharacter:
S
itserro
two2
pleaseinputacharacter:
Y
x=1
1、在MATLAB环境中输入下面的系统模型
解:
实验名称:
控制系统模型的建立和分析(设计型)
建立M文件,文件名称记为thr1,编辑程序容如下所示:
num=[1,4,3,2];%系统模型的分子系数
den=conv([1,0,0],conv([1,1],[1,8,20]));%分母系数
G1=tf(num,den);%得到开环系统模型
G2=feedback(G1,1);%得到闭环系统模型
[p1,z1]=pzmap(G1)%不加分号,在命令窗口可显示出开环系统的零极点
[p2,z2]=pzmap(G2)%不加分号,在命令窗口可显示出闭环系统的零极点
在命令窗口输入thr1,则得出以下结果:
thr1
p1=
0
0
-4.0000+2.0000i
-4.0000-2.0000i
-1.0000
z1=
-3.2695
-0.3652+0.6916i
-0.3652-0.6916i
p2=
-3.9174+2.1007i
-3.9174-2.1007i
-1.1449
-0.0102+0.2972i
-0.0102-0.2972i
z2=
-3.2695
-0.3652+0.6916i
-0.3652-0.6916i
2、假设系统由两个模块和串联连接而成,已知
且
解:
建立M文件,文件名称为thr2,编辑程序容如下所示:
G3=tf([1,1],[1,3,4]);%实验三的第二题,题中的G1(s)模型
G4=tf([1,3,5],[1,4,3,2,1]);%题中的G2(s)模型
G5=series(G3,G4)%用串联函数,将G3和G4模型串联,得到G5模型,在命令窗口显示出模型
Gss=ss(G5)%用ss得到G5模型的状态方程模型
在命令窗口中输入thr2,得到以下运行结果:
Transferfunction:
s^3+4s^2+8s+5
-------------------------------------------------
s^6+7s^5+19s^4+27s^3+19s^2+11s+4
a=
x1x2x3x4x5x6
x1-7-2.375-1.688-0.5938-0.3438-0.25
x2800000
x3020000
x4002000
x5000100
x600000.50
b=
u1
x11
x20
x30
x40
x50
x60
c=
x1x2x3x4x5x6
y1000.06250.1250.250.3125
d=
u1
y10
Continuous-timemodel.
3、假设系统的对象模型为
解:
建立M文件,文件名称为thr3,编辑程序容如下所示:
s=tf('s');%拉氏算子
G6=10/((s+1)^3);%实验三第3题的对象模型
Gpid=0.48*(1+1/(1.814*s)+0.4353*s/0.04353);%PID控制器
G7=series(G6,Gpid);%控制器与对象模型进行串联得到的开环系统模型
G8=feedback(G7,1)%闭环系统的传递函数模型
[z3,p3,k3]=zpkdata(G7,'v')%得到开环系统的零极点及增益
[z4,p4,k4]=zpkdata(G8,'v')%得到闭环系统的零极点及增益
在命令窗口中输入thr3,得到以下运行结果
Transferfunction:
3.79s^2+0.379s+0.2089
-------------------------------------------------------
0.07896s^4+0.2369s^3+4.027s^2+0.458s+0.2089
z3=
-0.0500+0.2294i
-0.0500-0.2294i
p3=
0
-1.0000
-1.0000+0.0000i
-1.0000-0.0000i
k3=
48
z4=
-0.0500+0.2294i
-0.0500-0.2294i
p4=
-1.4442+6.9670i
-1.4442-6.9670i
-0.0558+0.2217i
-0.0558-0.2217i
k4=
48
4、解:
三种典型模型建模函数:
①传递函数模型:
G=tf(num,den);
②零极点增益模型:
G=zpk(z,p,k);
③状态空间模型:
G=ss(A,B,C,D);
各种模型之间的转换语句:
[A,B,C,D]=tf2ss(num,den);
[num,den]=ss2tf(A,B,C,D,iu);
[z,p,k]=tf2zp(num,den);
[num,den]=zp2tf(z,p,k);
[A,B,C,D]=zp2ss(z,p,k);
[z,p,k]=ss2zp(A,B,C,D,i)
实验名称:
Simulink仿真环境入门(验证型)
1、搭建下图所示控制系统模型,自己设计输入正弦曲线参数,观察示波器及输出数据。
解:
画出的仿真图如下,SineWave:
O(t)=3*sin(2*t),增益为5。
实验名称:
Simulink仿真环境入门(验证型)
出现以下波形图:
左图为使用plot函数画出的figure图,右图为示波器显示的图。
实验名称:
控制系统时域仿真(设计型)
1、时域分析
(1)解:
建立M文件,写入以下程序:
G1=tf([5,25,30],[1,6,10,8]);
t=[0:
0.0005:
25];
[y1,t]=step(G1,t);
[ymax,tp]=max(y1);
max_overshoot=ymax-1
[y2,t]=impulse(G1,t);
plot(t,y1,t,y2)
figure图如右图所示:
(2)解:
建立M文件,写入以下程序:
wn=[2:
2:
12];
z=0.7;
t=0:
0.0005:
25;
holdon
fori=1:
length(wn)
G2=tf(wn(i)^2,[1,2*z*wn(i),wn(i)^2]);
step(G2,t)
end
gridon,holdoff
legend('wn=2','wn=4','wn=6','wn=8','wn=10','wn=12')
figure图如右图所示:
(3)解:
建立M文件,写入以下程序:
wn=6;
zetas=[0.20.40.60.81.01.52.0];
t=0:
0.0005:
25;
holdon
fori=1:
length(zetas)
G3=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);
step(G3,t)
end
gridon,holdoff
legend('zetas=0.2','zetas=0.4','zetas=0.6','zetas=0.8','zetas=1.0','zetas=1.5','zetas=2.0')
figure图如右上图所示:
2、系统稳定性分析
(1)解:
①零极点分布图法程序:
G4=zpk(-2,[0;-1;-20],100)
G5=feedback(G4,1)
pzmap(G5)
figure图:
由图可知该系统的极点均位于左半平面,所以该系统稳定。
②程序判定法程序:
G4=zpk(-2,[0;-1;-20],100)
G5=feedback(G4,1)
p=pole(G5);
fori=1:
length(p)
ifreal(p(i))>0
disp('系统不稳定')
break
end
end
disp('系统稳定')
pzmap(G5)
figure图:
实验名称:
Simulink环境下时域仿真
1、
解:
仿真图:
阶跃响应:
方波响应:
2、解:
仿真图:
阶跃响应:
正弦信号输入响应:
斜坡输入响应:
3、解:
仿真图:
建立M文件,编写以下程序:
G1=tf([11],[21]);
G2=tf([5],[231]);
H1=tf([1],[21]);
G3=series(G1,G2);
G4=feedback(G3,H1)
isstable(G4)
得到以下实验结果:
g3
Transferfunction:
10s^2+15s+5
----------------------------------
8s^4+20s^3+18s^2+12s+6
ans=
1
结论:
编写程序判断该系统的稳定性结果是该系统是稳定的。
在Simulink环境下验证编程结果:
给出阶跃信号,画出以下仿真图进行仿真:
示波器显示结果:
从上图可以看出该系统是是稳定的,所以编程结果是正确的。
实验名称:
控制系统根轨迹分析
1、
(1)解:
编写程序如下所示:
G=zpk(-0.5,[0;-1;-2;-5],1)
rlocus(G)
[k,p]=rlocfind(G)
Figure图:
系统的根轨迹图:
(2)解:
编写程序如下所示:
G=zpk([],[0;-2],1)
rlocus(G)
[k,p]=rlocfind(G)
Figure图:
系统的根轨迹图:
2、根轨迹分析
(1)解:
编写程序如下所示:
G=zpk(-3,[0;-5;-6;-1+j;-1-j],1)
rlocus(G)
[k,p]=rlocfind(G)
Figure图:
系统的根轨迹图:
由根轨迹图可以看出点击的这一点的增益k=35.2;闭环极点的位置p=-0.00587+1.35i,因为p<0,所以该点系统闭环是稳定的。
(2)解:
编写以下程序:
G=zpk([],[0;-1;-2],1)
rlocus(G)
k=0:
0.01:
98;
[r,k]=rlocus(G,k);
[m,n]=size(r);
fori=1:
n
ifreal(r(2,i))>0
break
end
end
kg=k(i-1)
程序的执行结果:
Zero/pole/gain:
1
-------------
s(s+1)(s+2)
kg=
6
由上述的执行结果可以看出该系统稳定的k值围是当k<6时,系统是稳定的。
Figure图如右图所示:
实验名称:
控制系统频域仿真分析(设计型)
1、
(1)解:
编写以下程序:
zeta=0.7;
wn=[2,4,6,8,10,12];
fori=1:
length(wn)
num=[wn(i)^2];
den=[1,2*zeta*wn(i),wn(i)^2];
G1=tf(num,den)
bode(G1)
end
legend('wn=2','wn=4','wn=6','wn=8','wn=10','wn=12')
得到右图所示运行结果:
(2)解:
编写以下程序:
wn=6;
zeta=[0.2,0.4,0.6,0.8,1.0,1.5,2.0];
holdon
fori=1:
length(zeta)
num=[wn^2];
den=[1,2*zeta(i)*wn,wn^2];
G2=tf(num,den)
bode(G2)
end
holdoff
legend('zeta=0.2','zeta=0.4','zeta=0.6','zeta=0.8','zeta=1.0','zeta=1.5','zeta=2.0')
得到右图所示运行结果:
(3)
(a)编写以下程序:
num=[10];
den=conv([1,0,0],conv([5,1],[1,5]));
G1=tf(num,den)
nyquist(G1)
bode(G1)
得到右图所示运行结果:
(b)编写以下程序:
num=conv(8,[1,1]);
den=conv([1,0,0],conv([1,15],[1,6,10]));
G2=tf(num,den)
nyquist(G2)
bode(G2)
得到右图所示运行结果:
(c)编写以下程序:
num=conv(4,[1/3,1]);
den=conv([1,0],conv([0.02,1],conv([0.05,1],[0.1,1])));
G3=tf(num,den)
nyquist(G3)
bode(G3)
得到右图所示运行结果:
2、
(1)解:
编写以下程序:
G1=tf(2.7,[1,5,4,0])
G2=tf(2.7,[1,5,-4,0])
figure
(1)
margin(G1)
figure
(2)
margin(G2)
得到以下运行结果:
由图可以分析出G1的系统是稳定的,G2系统不稳定。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 控制 系统 计算机辅助设计