LQR控制实例、传递函数与状态矩阵相互转换

一、开环控制响应过程

首先,辨识出系统的传递函数,并转化成状态方程
连续系统模型
在这里插入图片描述

>>  num=[4 9 14 23];den=[2 4 6 10];G=tf(num,den)

G =
 
  4 s^3 + 9 s^2 + 14 s + 23
  -------------------------
  2 s^3 + 4 s^2 + 6 s + 10
 
Continuous-time transfer function.

>> [A,B,C,D]=tf2ss(num,den)
A =
    -2    -3    -5
     1     0     0
     0     1     0

B =
     1
     0
     0

C =
    0.5000    1.0000    1.5000

D =
     2

看一下开环系统阶跃响应曲线:

>> step(G)

LQR控制实例、传递函数与状态矩阵相互转换_第1张图片
可见系统最终是收敛了,但是收敛过程存在振荡

>> eig(A)

ans =
  -1.8437 + 0.0000i
  -0.0781 + 1.6449i
  -0.0781 - 1.6449i

通过lqr控制来解决这种震荡问题

二、LQR闭环控制响应过程

连续系统lqr()函数

[k,P,r]=lqr(A,B,Q,R)

k =

    2.7874    4.4596    0.9161


P =

    0.2787    0.4460    0.0916
    0.4460    2.8796    1.8323
    0.0916    1.8323    2.9131


r =

  -2.9310 + 0.0000i
  -0.9282 + 1.0756i
  -0.9282 - 1.0756i

求解闭环反馈矩阵Acl

>> Acl=A-B*k
Acl =
   -4.7874   -7.4596   -5.9161
    1.0000         0         0
         0    1.0000         0

状态空间模型建立:

>> G3=ss(Acl,B,C,D)

G3 =
 
  A = 
           x1      x2      x3
   x1  -4.787   -7.46  -5.916
   x2       1       0       0
   x3       0       1       0
 
  B = 
       u1
   x1   1
   x2   0
   x3   0
 
  C = 
        x1   x2   x3
   y1  0.5    1  1.5
 
  D = 
       u1
   y1   2
 
Continuous-time state-space model.

看一下闭环系统阶跃响应曲线:

>> step(G3)

LQR控制实例、传递函数与状态矩阵相互转换_第2张图片
可见系统最终是收敛了,但是收敛过程除了轻微超调,整个过程还是比较平滑

>> eig(Acl)

ans =
  -2.9310 + 0.0000i
  -0.9282 + 1.0756i
  -0.9282 - 1.0756i

三、将闭环状态方程转化成传递函数

>> G4=tf(G3)

G4 =

2 s^3 + 10.07 s^2 + 15.92 s + 13.33
-----------------------------------
 s^3 + 4.787 s^2 + 7.46 s + 5.916

Continuous-time transfer function.

>> step(G4)

LQR控制实例、传递函数与状态矩阵相互转换_第3张图片
① 传递函数和状态方程的阶跃响应都一样;
② 闭环传递函数的极点和闭环状态方程的特征值相同
LQR控制实例、传递函数与状态矩阵相互转换_第4张图片

你可能感兴趣的:(线性系统,matlab,传递函数模型,矩阵,线性代数,控制器,matlab)