优秀的编程知识分享平台

网站首页 > 技术文章 正文

自动控制原理-状态空间、多项式、零极点传递函数形式转换

nanyue 2024-12-07 15:48:16 技术文章 12 ℃

1.多项式模型转换为零极点增益模型

matlab语法格式:

[z,p,k]=tf2zp(num,den);

G=zpk(z,p,k);

举例:

num=[13,4,0,6];
den=[5,3,16,1,7];
G=tf(num,den)
[z,p,k]=tf2zp(num,den)
G1=zpk(z,p,k)

G =

13 s^3 + 4 s^2 + 6

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

5 s^4 + 3 s^3 + 16 s^2 + s + 7

Continuous-time transfer function.

z =

-0.8902 + 0.0000i

0.2912 + 0.6585i

0.2912 - 0.6585i

p =

-0.3248 + 1.6160i

-0.3248 - 1.6160i

0.0248 + 0.7174i

0.0248 - 0.7174i

k =

2.6000


G1 =

2.6 (s+0.8902) (s^2 - 0.5825s + 0.5185)

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

(s^2 - 0.04959s + 0.5153) (s^2 + 0.6496s + 2.717)

Continuous-time zero/pole/gain model.

2. 零极点模型转换为多项式形式

maltab语法格式

[num den]=zp2tf(z,p,k)

G=tf(num,den)

举例:

maltab代码:

z=-3; p=[-2,-4,-5]; k=7;
G=zpk(z,p,k)
[num den]=zp2tf(z,p,k)
G1=tf(num,den)

运行结果:

G =

7 (s+3)

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

(s+2) (s+4) (s+5)

Continuous-time zero/pole/gain model.

num =

0 0 7 21

den =

1 11 38 40


G1 =

7 s + 21

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

s^3 + 11 s^2 + 38 s + 40

Continuous-time transfer function.


3. 多项式模式转换为状态空间方程模式

maltab语法:

[A,B,C,D]=tf2ss(num,den);

G=ss(A,B,C,D)

举例

maltab代码:

num=[13,4,0,6];
den=[5,3,16,1,7];
G=tf(num,den)
[A,B,C,D]=tf2ss(num,den);
G1=ss(A,B,C,D)

运行如下:

G =

13 s^3 + 4 s^2 + 6

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

5 s^4 + 3 s^3 + 16 s^2 + s + 7

Continuous-time transfer function.


G1 =

A =

x1 x2 x3 x4

x1 -0.6 -3.2 -0.2 -1.4

x2 1 0 0 0

x3 0 1 0 0

x4 0 0 1 0


B =

u1

x1 1

x2 0

x3 0

x4 0


C =

x1 x2 x3 x4

y1 2.6 0.8 0 1.2


D =

u1

y1 0

Continuous-time state-space model.


4. 将状态空间转化为多项式形式

maltab语法:

[num,den]=ss2tf(A,B,C,D);

G=tf(num,den);


举例:

matlab代码:

A=[0 1 0 0 ; 0 0 -1 0; 0 0 0 1;0 0 5 0];
B=[0;1;0;-2];
C=[1 0 0 0];
D=0;
G=ss(A,B,C,D)
[num,den]=ss2tf(A,B,C,D)
G1=tf(num,den)

运行结果:

G =

A =

x1 x2 x3 x4

x1 0 1 0 0

x2 0 0 -1 0

x3 0 0 0 1

x4 0 0 5 0


B =

u1

x1 0

x2 1

x3 0

x4 -2


C =

x1 x2 x3 x4

y1 1 0 0 0


D =

u1

y1 0

Continuous-time state-space model.

num =

0 0 1.0000 -0.0000 -3.0000

den =

1.0000 0 -5.0000 0 0


G1 =

s^2 - 4.441e-16 s - 3

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

s^4 - 5 s^2

Continuous-time transfer function.

5 零极点形式转换为状态空间方程

语法格式:

[A,B,C,D]=zpk2ss(z,p,k)

G=ss(A,B,C,D)

举例:

matlab 代码:

z=-3; p=[-2,-4,-5]; k=7;
G=zpk(z,p,k)
[A,B,C,D]=zp2ss(z,p,k)
G1=ss(A,B,C,D)

运行结果:

G =

7 (s+3)

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

(s+2) (s+4) (s+5)

Continuous-time zero/pole/gain model.

A =

-2.0000 0 0

1.0000 -9.0000 -4.4721

0 4.4721 0

B =

1

1

0

C =

0 0 1.5652

D =

0


G1 =

A =

x1 x2 x3

x1 -2 0 0

x2 1 -9 -4.472

x3 0 4.472 0


B =

u1

x1 1

x2 1

x3 0


C =

x1 x2 x3

y1 0 0 1.565


D =

u1

y1 0

Continuous-time state-space model.


6. 状态空间方程转换为零极点形式

matlab语法格式:

[z,p,k]=ss2zp(A,B,C,D);

G=zpk(z,p,k);


举例:

matlab 代码:

A=[0 1 0 0 ; 0 0 -1 0; 0 0 0 1;0 0 5 0];
B=[0;1;0;-2];
C=[1 0 0 0];
D=0;
G=ss(A,B,C,D)
[z,p,k]=ss2zp(A,B,C,D)
G2=zpk(z,p,k)


运行结果:

G =

A =

x1 x2 x3 x4

x1 0 1 0 0

x2 0 0 -1 0

x3 0 0 0 1

x4 0 0 5 0


B =

u1

x1 0

x2 1

x3 0

x4 -2


C =

x1 x2 x3 x4

y1 1 0 0 0


D =

u1

y1 0

Continuous-time state-space model.


z =

1.7321

-1.7321

p =

0

0

2.2361

-2.2361

k =

1


G2 =

(s-1.732) (s+1.732)

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

s^2 (s-2.236) (s+2.236)

Continuous-time zero/pole/gain model.

最近发表
标签列表