欢迎光临散文网 会员登陆 & 注册

控制系统仿真(MATLAB版)(四)

2020-10-06 09:25 作者:永远的修伊  | 我要投稿


s = tf('s');

G = (s^3+4*s^2+3*s+2)/(s^2*(s+1)*((s+4)^2+4))


G =

 

      s^3 + 4 s^2 + 3 s + 2

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

  s^5 + 9 s^4 + 28 s^3 + 20 s^2

 

Continuous-time transfer function.

A = [-0.3,0.1,-0.05;1,0.1,0;-1.5,-8.9,-0.05];

B = [2;0;4];

C = [1,2,3];

D = 0;

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


G1 =

 

  A = 

          x1     x2     x3

   x1   -0.3    0.1  -0.05

   x2      1    0.1      0

   x3   -1.5   -8.9  -0.05

 

  B = 

       u1

   x1   2

   x2   0

   x3   4

 

  C = 

       x1  x2  x3

   y1   1   2   3

 

  D = 

       u1

   y1   0

 

Continuous-time state-space model.

求其闭环的零极点


 G2 = feedback(G,1,-1);

 get(G2)

       Numerator: {[0 0 1 4 3 2]}

     Denominator: {[1 9 29 24 3 2]}

        Variable: 's'

         IODelay: 0

      InputDelay: 0

     OutputDelay: 0

              Ts: 0

        TimeUnit: 'seconds'

       InputName: {''}

       InputUnit: {''}

      InputGroup: [1×1 struct]

      OutputName: {''}

      OutputUnit: {''}

     OutputGroup: [1×1 struct]

           Notes: [0×1 string]

        UserData: []

            Name: ''

    SamplingGrid: [1×1 struct]


 num = G2.num{1,1}


num =


     0     0     1     4     3     2


 den = G2.den{1,1}


den =


     1     9    29    24     3     2


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


z =


  -3.2695 + 0.0000i

  -0.3652 + 0.6916i

  -0.3652 - 0.6916i



p =


  -3.9174 + 2.1007i

  -3.9174 - 2.1007i

  -1.1449 + 0.0000i

  -0.0102 + 0.2972i

  -0.0102 - 0.2972i



k =


     1


G3 = feedback(G1,1,-1);

get(G3)

                A: [3×3 double]

                B: [3×1 double]

                C: [1 2 3]

                D: 0

                E: []

           Scaled: 0

        StateName: {3×1 cell}

        StateUnit: {3×1 cell}

    InternalDelay: [0×1 double]

       InputDelay: 0

      OutputDelay: 0

               Ts: 0

         TimeUnit: 'seconds'

        InputName: {''}

        InputUnit: {''}

       InputGroup: [1×1 struct]

       OutputName: {''}

       OutputUnit: {''}

      OutputGroup: [1×1 struct]

            Notes: [0×1 string]

         UserData: []

             Name: ''

     SamplingGrid: [1×1 struct]


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


z =


    2.0748

   -1.8677



p =


   0.7646 + 0.0000i

  -0.5073 + 0.5687i

  -0.5073 - 0.5687i



k =


    14

求其他数学模型和零极点

A = [1,2,3;4,5,6;7,8,0];

>> B = [4;3;2];

>> C = [1,2,3];

>> D = 0;

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


G =

 

  A = 

       x1  x2  x3

   x1   1   2   3

   x2   4   5   6

   x3   7   8   0

 

  B = 

       u1

   x1   4

   x2   3

   x3   2

 

  C = 

       x1  x2  x3

   y1   1   2   3

 

  D = 

       u1

   y1   0

 

Continuous-time state-space model.

zpk(G)


ans =

 

     16 (s+0.7175) (s+9.407)

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

  (s-12.12) (s+5.735) (s+0.3884)

 

Continuous-time zero/pole/gain model.

tf(G)


ans =

 

   16 s^2 + 162 s + 108

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

  s^3 - 6 s^2 - 72 s - 27

 

Continuous-time transfer function.


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


z =


   -0.7175

   -9.4075



p =


   12.1229

   -0.3884

   -5.7345



k =


   16.0000

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


num =


         0   16.0000  162.0000  108.0000



den =


    1.0000   -6.0000  -72.0000  -27.0000

求其零极点和状态空间模型

>> num = [2 18 40];

>> den = [1 6 11 6];

>> G = tf(num,den)


G =

 

    2 s^2 + 18 s + 40

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

  s^3 + 6 s^2 + 11 s + 6

 

Continuous-time transfer function.

>> zpk(G)


ans =

 

    2 (s+5) (s+4)

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

  (s+3) (s+2) (s+1)

 

Continuous-time zero/pole/gain model.

>> ss(G)


ans =

 

  A = 

          x1     x2     x3

   x1     -6  -2.75   -1.5

   x2      4      0      0

   x3      0      1      0

 

  B = 

       u1

   x1   4

   x2   0

   x3   0

 

  C = 

          x1     x2     x3

   y1    0.5  1.125    2.5

 

  D = 

       u1

   y1   0

 

Continuous-time state-space model.

求其他模型和零极点,绘制零极点图

>> A = [0 1 0 0;0  0 1 0;0 0 0 1;-50,-48,-28.5,-9];

>> B = [0;0;0;1];

>> C = [10,2,0,0];

>> D = 0;

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

>> tf(G)


ans =

 

               2 s + 10

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

  s^4 + 9 s^3 + 28.5 s^2 + 48 s + 50

 

Continuous-time transfer function.

>> zpk(G)

ans =

 

                  2 (s+5)

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

  (s+4.458) (s+3.042) (s^2 + 1.5s + 3.687)

 

Continuous-time zero/pole/gain model.

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


z =


    -5


p =


  -4.4576 + 0.0000i

  -3.0419 + 0.0000i

  -0.7502 + 1.7676i

  -0.7502 - 1.7676i



k =


     2


>> pzmap(G)

求该串联系统的传递函数

>> G1 = tf([2 6 5],[1 4 5 2]);

>> G2 = tf([1 4 1],[1 9 8]);

>> G3 = zpk([-3;-7],[-1;-4;-6],5);

>> G = series(G1,series(G2,G3))

G =

  10 (s+3) (s+3.732) (s+7) (s+0.2679) (s^2 + 3s + 2.5)

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

            (s+1)^4 (s+2) (s+4) (s+6) (s+8)

 

Continuous-time zero/pole/gain model.


>> minreal(G)


ans =

 

  10 (s+3) (s+3.732) (s+7) (s+0.2679) (s^2 + 3s + 2.5)

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

            (s+1)^4 (s+2) (s+4) (s+6) (s+8)

Continuous-time zero/pole/gain model.

求该并联系统的传递函数

>> G1 = zpk([-3],[-1;-1;-2],1);

>> G2 = tf([3,4,1],[5,12,3]);

>> parallel(G1,G2)

ans =

  0.6 (s+0.287) (s^2 + 4.195s + 4.427) (s^2 + 0.8515s + 2.886)

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

               (s+1)^2 (s+2) (s+2.117) (s+0.2835)

Continuous-time zero/pole/gain model.

求该串联系统的状态方程模型

方法一


>> G1 = tf([1,1],[1,3,4]);

>> G2 = tf([1,3,5],[1,4,3,2,1]);

>> G = series(G1,G2);

>> ss(G)


ans =

 

  A = 

            x1       x2       x3       x4       x5       x6

   x1       -7    -4.75   -3.375   -1.188  -0.6875     -0.5

   x2        4        0        0        0        0        0

   x3        0        2        0        0        0        0

   x4        0        0        2        0        0        0

   x5        0        0        0        1        0        0

   x6        0        0        0        0      0.5        0

 

  B = 

       u1

   x1   1

   x2   0

   x3   0

   x4   0

   x5   0

   x6   0

 

  C = 

          x1     x2     x3     x4     x5     x6

   y1      0      0  0.125   0.25    0.5  0.625

 

  D = 

       u1

   y1   0

 

Continuous-time state-space model.


方法二

>> G11 = ss(G1);

>> G22 = ss(G2);

>> G12 = series(G11,G22)


G12 =

 

  A = 

         x1    x2    x3    x4    x5    x6

   x1    -4  -1.5    -1    -1     2     1

   x2     2     0     0     0     0     0

   x3     0     1     0     0     0     0

   x4     0     0   0.5     0     0     0

   x5     0     0     0     0    -3    -2

   x6     0     0     0     0     2     0

 

  B = 

       u1

   x1   0

   x2   0

   x3   0

   x4   0

   x5   1

   x6   0

 

  C = 

         x1    x2    x3    x4    x5    x6

   y1     0  0.25  0.75   2.5     0     0

 

  D = 

       u1

   y1   0

 

Continuous-time state-space model.

可见,系统的状态方程可能不唯一

求它们串并联系统的传递函数矩阵


>> G1 = [tf([1 2],[1 2 1]),tf(1,[1 3 2]);tf([1,1],[1,2]),tf([1,2],[1 5 6])];

>> G2 = [zpk([],[-1;-3],1.2),zpk([-1],[-2;-3],1);zpk(-1,[-2;-4],1),zpk(-2,[-3;-4],1)];

>> series(G1,G2)


ans =

 

  From input 1 to output...

       (s+1.599) (s+3) (s^2 + 3.219s + 2.857) (s^2 + 0.1815s + 2.32)

   1:  -------------------------------------------------------------

                          (s+1)^3 (s+2)^2 (s+3)^2

 

       (s+2)^2 (s+4) (s+1) (s^2 + 3s + 4)

   2:  ----------------------------------

         (s+2)^2 (s+3) (s+4)^2 (s+1)^2

 

  From input 2 to output...

       (s+2)^2 (s+2.046) (s+3) (s^2 + 0.9539s + 2.248)

   1:  -----------------------------------------------

                   (s+1)^2 (s+2)^3 (s+3)^3

 

       (s+1) (s+2) (s+2.57) (s+4) (s^2 + 4.43s + 6.615)

   2:  ------------------------------------------------

                (s+2)^3 (s+3)^2 (s+4)^2 (s+1)

 

Continuous-time zero/pole/gain model.


>> parallel(G1,G2)


ans =

 

  From input 1 to output...

       (s+4.652) (s+1.548) (s+1)

   1:  -------------------------

             (s+1)^3 (s+3)

 

       (s+5) (s+2) (s+1)

   2:  -----------------

         (s+2)^2 (s+4)

 

  From input 2 to output...

       (s+2) (s^2 + 3s + 4)

   1:  --------------------

       (s+2)^2 (s+3) (s+1)

 

         2 (s+2) (s+3)^2

   2:  -------------------

       (s+3)^2 (s+4) (s+2)

 

Continuous-time zero/pole/gain model.


控制系统仿真(MATLAB版)(四)的评论 (共 条)

分享到微博请遵守国家法律