1. 利用状态方程求传递函数公式

状态方程为G(s)=Y(s)U(s)=C(sI−A)−1B+D
例1:m−c−k系统,求m⋅⋅x+c⋅x+kx=f传递函数。
解:
令x1=x,x2=⋅x则有:
⎧⎨⎩⋅x1=x2⋅x2=1m[−cx2−kx1]+fm
根据状态方程的向量表达式和输出方程的向量表达式
{⋅X=AX+BfY=CX+Df
可以得到:
A=⎡⎣01−km−cm⎤⎦B=⎡⎣01m⎤⎦C=[10]D=0X=[x1x2]
所以
(sI−A)−1=⎡⎣s−1kms+cm⎤⎦−1=1∣∣
∣∣s−1kms+cm∣∣
∣∣⎡⎢
⎢⎣s+cm1−kms⎤⎥
⎥⎦
可以得到
G(s)=1s2+cms+km[10]⎡⎢
⎢⎣s+cm1−kms⎤⎥
⎥⎦⎡⎣01m⎤⎦=1ms2+cs+k
2. 反馈控制
2.1 状态反馈控制器设计
控制律为u=−KX+v
将控制律带入状态方程可以得到,闭环系统{⋅X=(A−BK)X+BvY=CX
传递函数为GK(s)=C(sI−A+BK)−1B
例2:⋅⋅x=⋅x+x+u,如何设计u,使得x→xd(t→∞),xd为常数。
解:
输入是u,特征方程为s2−s−1=0
可以看出该系统开环不稳定,因为有一个根在右半平面,可以设计u=−2⋅x−2x+xd
代入上述系统,可得⋅⋅x+⋅x+x=xd
对于此时的闭环系统,输入是xd,特征方程为s2+s+1=0,该方程两根为负,闭环稳定。
如果利用状态方程的方法,那么可以令x1=x,x2=⋅x,可以得到
{⋅x1=x2⋅x2=x1+x2+u
那么可以得到:
A=[0111]B=[01]C=[10]D=0X=[x1x2]
控制律为u=−KX+xd,其中K=[k1,k2],那么
(sI−A+BK)−1=([s00s]−[0111]+[01][k1,k2])−1=[s−1−1+k1s−1+k2]−1=1s2+(k2−1)s+k1−1[s−1+k211−k1s]
传递函数为
Gk(s)=C(sI−A+BK)−1B=1s2+(k2−1)s+k1−1[10][s−1+k211−k1s][01]=1s2+(k2−1)s+k1−1
如果令k1=k2=2,那么得到的特征方程为s2+s+1=0,与上面开始做的一样。
下图为状态反馈系统结构图

2.2 输出反馈控制器设计
控制律为u=−HY+v
将控制律带入状态方程可以得到,闭环系统{⋅X=(A−BHC)X+BvY=CX
传递函数为GH(s)=C(sI−A+BHC)−1B
输出反馈可看作状态反馈的特例,比如当y=x时,C=1。
下面是输出反馈系统结构图

该控制器就是PID控制器的设计原理。
3. 反馈线性化
例3:⋅⋅x=⋅x 2+x+u,如何设计u,使得x→xd(t→∞),其中xd为常数。
设计 u=−⋅x 2−x+v
代入系统 ⋅⋅x=⋅x 2+x+u
可以去掉非线性项,得到⋅⋅x=v
上面的方程已经完成线性化,但是开环不稳定。利用反馈控制的方法,设计:v=−⋅x−x+xd
得到闭环稳定的系统:⋅⋅x+⋅x+x=xd
我们可以写出闭环系统的跟踪误差方程。令ϵ=x−xd,则系统可以转化为
⋅⋅ϵ+⋅ϵ+ϵ=0
该方程有两个复根,可以描述成s1,2=α±βi的形式,其中α<0
解可以表示为:ϵ1,2=eαt(c1cosβt±c2isinβt)
可以得出分析出ϵ1,2→0,说明该系统稳定。
反馈线性化方法归纳:输入-状态线性化和输入-输出线性化:

- 对于前者,本例中可以令z=z(x)=⋅x⋅⋅x=v,则可以解得u=u(x,v)=−⋅x 2−x+v,此时的线性系统就是⋅⋅x=v
- 对于后者,本例中可以令y=h(x)=x,故⋅⋅y=g(x,u)=⋅⋅x=⋅x 2+x+u,这样就得到了输出y与输入u的关系,令⋅⋅y=v,同样得到u=−⋅x 2−x+v。
可以看出,本例两种方法解的过程是一致的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步