实验二 控制系统的数学模型及其转换

更新时间:2023-09-22 05:13:01 阅读量: 工程科技 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 控制系统的数学模型及其转换

【实验2.1】求传递函数G(s)?(s?1)(ss(s?3)(s223?2s?6)2?2s?3s?4)的分子和分母多项式,并求传

递函数的特征根。

解:运行实验shiyan2_1.m代码 r =

0 0 -3.0000 -1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i

【实验2.2】某一以微分方程描述系统的传递函数,其微分方程描述如下:

y(3)?11y(2)?11y(1)?10y?u(2)?4u(1)?8u,试用MATLAB建立其模型。

解:运行实验shiyan2_2.m代码 num/den =

s^2 + 4 s + 8 ------------------------ s^3 + 11 s^2 + 11 s + 10

【实验2.3】已知某系统的传递函数G(s)?2ss33?9s?12?s?4s?4,求其部分分式表示形式,并

求其状态空间模型。

解:运行shiyan2_3.m代码,根据r、p、k结果可得部分分式形式为

G(s)?2??0.25is?2i?0.25is?2i??2s?1

k = 2

r =

0.0000 - 0.2500i 0.0000 + 0.2500i

-2.0000

A =

-1 -4 -4 1 0 0 0 1 0

C =

-2 1 -7

p =

-0.0000 + 2.0000i -0.0000 - 2.0000i

-1.0000

B = 1 0 0 D = 2

【实验2.4】给定RLC网络如图2-1所示,其中ui(t)为输入量,uo(t)为输出量。求解这个

系统的传递函数模型、零极点增益模型以及状态空间模型(假设

R1?1?,R2?1?,C?1F,L?1H),并求取系统的阶跃响应。

R1+ui(t)-i1Ci2Li3+R2uo(t)-

图2-1 RLC网络

解:从数学上求出系统的传递函数。

根据电路基本定理,列出该电路的微分方程:R1i1?Li1?i2?i3di3dt?u0?ui

同时还有 uo?i3R2i2?Cd?di3??uo??Ldt?dt?

整理

Uo(s)Ui(s)1?L?R1(R1Cs?1)?s?1????R2?R2?1s2

G(s)??代入具体数值可得G(s)??2s?2

运行shiyan2_4.m代码。

Zero/pole/gain: 1 --------------- (s^2 + 2s + 2) a =

x1 x2 x1 -2.00000 -1.41421 x2 1.41421 0 b =

u1 x1 1.00000 x2 0

c = x1 x2 y1 0 0.70711 d =

u1 y1 0

Step Response0.70.60.5Amplitude0.40.30.20.100123Time (sec)456

【练习2.1】控制系统结构如图4-2所示

图2-2

(1) 利用MATLAB函数代码对以上单位负反馈系统建立传递函数模型;

(2) 将第一问中求得的传递函数模型转化为零极点增益形式和状态空间形式。

num1=[2];den1=[1];

num2=[1 1];den2=[1 2 1];

[num3,den3]=series(num1,den1,num2,den2); [num,den]=cloop(num3,den3,-1); printsys(num,den)

[A,B,C,D]=tf2ss(num,den) [Z,P,K]=ss2zp(A,B,C,D)

num/den =

2 s + 2 ------------- s^2 + 4 s + 3 A =

-4 -3 1 0 C =

2 2 Z = P = -1.0000 -3 -1

【练习2.2】某控制系统结构如图2-3所示

B =

1 0 D =

0

K =

2.0000

图2-3

利用MATLAB函数代码对以上系统建立传递函数模型;

num1=[2];den1=[1];num2=[1];den2=[1 1]; num3=[1 1];den3=[1 2 1];

num4=[1 1];den4=[1 0];num5=[2];den5=[1]; [num6,den6]=parallel(num3,den3,num4,den4); [na,da]=series(num1,den1,num2,den2); [nb,db]=series(na,da,num6,den6);

[num,den]=feedback(nb,db,num5,den5,-1); printsys(num,den)

num/den =

2 s^3 + 8 s^2 + 8 s + 2 -------------------------------

s^4 + 7 s^3 + 19 s^2 + 17 s + 4

【练习2.3】已知某控制系统的运动方程为y''(t)?5y'(t)?6y(t)?u(t),其中y(t)为系统输出变量,u(t)为系统的输入变量。选择一组状态变量,利用MATLAB建立系统的状态空

间模型。

%x1=yt'; %x2=yt; num=1; den=[1,5,6]

printsys(num,den);

[a,b,c,d]=tf2ss(num,den)

num/den =

1

------------- s^2 + 5 s + 6

习题 2-1

num=[1 1 1]; den=[1 6 11 6]

[a,b,c,d]=tf2ss(num,den) a =

-6 -11 -6 1 0 0 0 1 0 c = 1 1 1 2-2

a=[0 1;-2 -3]; b=[1 0;1 1]; c=[1 0;1 1]; d=[0 0;0 0];

[num1,den1]=ss2tf(a,b,c,d,1);[num2,den2]=ss2tf(a,b,c,d,2);printsys(num1,den1) printsys(num2,den2) num(11)/den =

s + 4 ------------- s^2 + 3 s + 2 num(21)/den =

8.8818e-016 s + 1 ----------------- s^2 + 3 s + 2 2-3

num1=1;

b =1 0 0 d =0

num(12)/den =

2 s + 2 ------------- s^2 + 3 s + 2 num(22)/den = s + 1 ------------- s^2 + 3 s + 2

den1=[1 3 2]; num2=1;

den2=[1 3 0];

[num,den]=series(num1,den1,num2,den2);%系统串联; printsys(num,den);

[num,den]=parallel(num1,den1,num2,den2);%系统并联; printsys(num,den); num/den =

1 -------------------------- s^4 + 6 s^3 + 11 s^2 + 6 s 2-4

方法一:a=[0 1;-2,-3];

b=[1;2]; c=[3 0]; d=0;

p=[ 1 1;1 -1]; a=p*a*inv(p) b=p*b

c=c*inv(p) d=0

方法二:a=[0 1;-2,-3];

b=[1;2]; c=[3 0]; d=0;

p=[ 1 1;1 -1];

[a b c d]=ss2ss(a,b,c,d,p)

a =-2 0 3 -1 b =3 -1

c = 1.5000 1.5000 d =0

2-5

g=[0 1;1 3]; h=[0;1]; c=[1 1]; d=0; t=0.01;

[z,p,k]=ss2zp(g,h,c,d,1); sys=zpk(z,p,k,t);

num/den =

2 s^2 + 6 s + 2 -------------------------- s^4 + 6 s^3 + 11 s^2 + 6 s

sys1=d2d(sys,0.01) Zero/pole/gain: (z+1) -------------------- (z+0.3028) (z-3.303) 2-6

num=[2,1,2];

den=[1, 6,11,6];

[z,p,k]=tf2zp(num,den); [g,h,c,d]=zp2ss(z,p,k) g =

-1.0000 0 0

1.0000 -5.0000 -2.4495 0 2.4495 0 h =

1

0 0

C =2.0000 -9.0000 -4.0825 d =0

本文来源:https://www.bwwdw.com/article/lpuh.html

Top