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)

在这里插入图片描述
可见系统最终是收敛了,但是收敛过程存在振荡

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

在这里插入图片描述
可见系统最终是收敛了,但是收敛过程除了轻微超调,整个过程还是比较平滑

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

在这里插入图片描述
① 传递函数和状态方程的阶跃响应都一样;
② 闭环传递函数的极点和闭环状态方程的特征值相同
在这里插入图片描述

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值