Matlab控制系统计算机辅助设计文档格式.docx

上传人:b****5 文档编号:21098897 上传时间:2023-01-27 格式:DOCX 页数:28 大小:346.53KB
下载 相关 举报
Matlab控制系统计算机辅助设计文档格式.docx_第1页
第1页 / 共28页
Matlab控制系统计算机辅助设计文档格式.docx_第2页
第2页 / 共28页
Matlab控制系统计算机辅助设计文档格式.docx_第3页
第3页 / 共28页
Matlab控制系统计算机辅助设计文档格式.docx_第4页
第4页 / 共28页
Matlab控制系统计算机辅助设计文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

Matlab控制系统计算机辅助设计文档格式.docx

《Matlab控制系统计算机辅助设计文档格式.docx》由会员分享,可在线阅读,更多相关《Matlab控制系统计算机辅助设计文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

Matlab控制系统计算机辅助设计文档格式.docx

7.00004.00003.0000

(3)矩阵的转置及共轭转置

A=[5+i,2-i,1;

6*i,4,9-i];

y1=A.'

5.0000+1.0000i0.0000+6.0000i

2.0000-1.0000i4.0000+0.0000i

1.0000+0.0000i9.0000-1.0000i

y2=A'

5.0000-1.0000i0.0000-6.0000i

2.0000+1.0000i4.0000+0.0000i

1.0000+0.0000i9.0000+1.0000i

(4)使用冒号选出指定元素

y1=A(1:

2,3)

3

6

y2=A(2:

3,:

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;

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)

7.2778e+04

③polyvalm(P,A)

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:

y1=cos(t-0.25);

y2=sin(t-0.5);

plot(t,y1,t,y2)

4、基本绘图控制

4*pi;

x1=10*sin(t);

plot(t,x1,'

-.b*'

axis([-2020-2020])

gridon

title('

正弦曲线x1=10*sin(t)图'

xlabel('

4*pi'

ylabel('

x1'

text(pi/2,10,'

最大值'

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循环编写的程序

s2=0;

i=0;

while(i<

=30),

s2=s2+2^i;

i=i+1;

保存,并在命令窗口中输入[s2]=findsum2(),运行结果如下所示:

[s2]=findsum2()

s2=

3、解:

建立M文件,文件名记为two3,编辑程序容如下:

x=input('

pleaseinputacharacter:

\n'

'

s'

);

ifx=='

y'

||x=='

Y'

disp('

x=1'

elseifx=='

n'

N'

x=0'

else

itserro'

end

保存,并在命令窗口中输入two2,运行结果如下所示:

two2

x=0

S

itserro

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

-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=

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=

y1000.06250.1250.250.3125

d=

y10

Continuous-timemodel.

3、假设系统的对象模型为

建立M文件,文件名称为thr3,编辑程序容如下所示:

s=tf('

%拉氏算子

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,'

)%得到闭环系统的零极点及增益

在命令窗口中输入thr3,得到以下运行结果

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=

-1.0000+0.0000i

-1.0000-0.0000i

k3=

48

z4=

p4=

-1.4442+6.9670i

-1.4442-6.9670i

-0.0558+0.2217i

-0.0558-0.2217i

k4=

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。

出现以下波形图:

左图为使用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);

figure图如右图所示:

(2)解:

wn=[2:

2:

12];

z=0.7;

25;

holdon

fori=1:

length(wn)

G2=tf(wn(i)^2,[1,2*z*wn(i),wn(i)^2]);

step(G2,t)

gridon,holdoff

legend('

wn=2'

wn=4'

wn=6'

wn=8'

wn=10'

wn=12'

(3)解:

wn=6;

zetas=[0.20.40.60.81.01.52.0];

length(zetas)

G3=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);

step(G3,t)

zetas=0.2'

zetas=0.4'

zetas=0.6'

zetas=0.8'

zetas=1.0'

zetas=1.5'

zetas=2.0'

figure图如右上图所示:

2、系统稳定性分析

①零极点分布图法程序:

G4=zpk(-2,[0;

-1;

-20],100)

G5=feedback(G4,1)

pzmap(G5)

figure图:

由图可知该系统的极点均位于左半平面,所以该系统稳定。

②程序判定法程序:

p=pole(G5);

length(p)

ifreal(p(i))>

系统不稳定'

break

disp('

系统稳定'

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

1

结论:

编写程序判断该系统的稳定性结果是该系统是稳定的。

在Simulink环境下验证编程结果:

给出阶跃信号,画出以下仿真图进行仿真:

示波器显示结果:

从上图可以看出该系统是是稳定的,所以编程结果是正确的。

控制系统根轨迹分析

编写程序如下所示:

G=zpk(-0.5,[0;

-2;

-5],1)

rlocus(G)

[k,p]=rlocfind(G)

Figure图:

系统的根轨迹图:

G=zpk([],[0;

-2],1)

2、根轨迹分析

G=zpk(-3,[0;

-5;

-6;

-1+j;

-1-j],1)

由根轨迹图可以看出点击的这一点的增益k=35.2;

闭环极点的位置p=-0.00587+1.35i,因为p<

0,所以该点系统闭环是稳定的。

编写以下程序:

k=0:

98;

[r,k]=rlocus(G,k);

[m,n]=size(r);

ifreal(r(2,i))>

kg=k(i-1)

程序的执行结果:

Zero/pole/gain:

1

-------------

s(s+1)(s+2)

kg=

由上述的执行结果可以看出该系统稳定的k值围是当k<

6时,系统是稳定的。

Figure图如右图所示:

1、

(1)解:

zeta=0.7;

wn=[2,4,6,8,10,12];

num=[wn(i)^2];

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

G1=tf(num,den)

bode(G1)

得到右图所示运行结果:

zeta=[0.2,0.4,0.6,0.8,1.0,1.5,2.0];

length(zeta)

num=[wn^2];

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

G2=tf(num,den)

bode(G2)

holdoff

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系统不稳定。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1