【现代控制系统】从状态方程导出微分方程

从状态方程导出微分方程

2023年6月20日



1. 基本方法

状态空间表达式:
x ˙ ( t ) = A x ( t ) + B u ( t ) y ( t ) = C x ( t ) + D u ( t ) \begin{aligned} &\dot{ x}(t)={ A }{ x }(t)+{ B }{ u } (t) \\ &{ y }(t)={ C } { x }(t)+{ D } { u }(t) \end{aligned} x˙(t)=Ax(t)+Bu(t)y(t)=Cx(t)+Du(t)
矩阵 D D D的列数和矩阵 B B B相等,矩阵 D D D的行数和矩阵 C C C相等。
拉氏变换下:
s X ( s ) − X ( 0 ) = A X ( s ) + B U ( s ) Y ( s ) = C X ( s ) + D U ( s ) \begin{align*} s{ X}(s)-{ X}(0)=&{ A }{ X }(s)+{ B }{ U } (s)\\ { Y }(s)=&{ C } { X }(s)+{ D } { U }(s) \end{align*} sX(s)X(0)=Y(s)=AX(s)+BU(s)CX(s)+DU(s)
零状态下可以推出:
Y ( s ) = [ C ( s I − A ) − 1 B + D ] U ( s ) = G ( s ) U ( s ) \begin{align*} { Y}(s)=&[{ C}(s{ I}-{ A})^{-1}{ B}+{ D}]{ U}(s) \\ \\ =&{ G}(s){ U}(s) \end{align*} Y(s)==[C(sIA)1B+D]U(s)G(s)U(s)
所以传递函数矩阵:
G ( s ) = C ( s I − A ) − 1 B + D { G}(s)={ C}(s{ I}-{ A})^{-1}{ B}+{ D} G(s)=C(sIA)1B+D

clc;clear
A = [0 1 0; 0 -4 3; -1 -1 -2]; % 一个MIMO的系统示例
B = [0 0; 1 0; 0 1];
C = [1 0 0; 0 0 1];
D = [0 0 ;0 0];

syms s
sI = s * eye(size(A)); 
Gs = C*((sI-A)^-1)*B+D  % 求传递函数矩阵的公式
pretty(Gs)

代码对于SISO的系统也能使用。
matlab提供了一个现成的函数,ss2tf,可以直接得到系数,

[N1, D1] = ss2tf(A, B, C, D, 1) % 第一个输入对应的 y1 和 y2 的传递函数

注意这里得到的是相当于 u 2 ( s ) = 0 u_2(s)=0 u2(s)=0 时候 y 1 ( s ) y_1(s) y1(s) y 2 ( s ) y_2(s) y2(s)的传递函数,N1第一行是 y 1 ( s ) y_1(s) y1(s)传递函数分母的系数,第二行是 y 2 ( s ) y_2(s) y2(s)传递函数分母的系数。
特征方程:

poly2sym(D1, s)

题一嘴,这个函数如果第一个输入的列数大于一,会按先列后行的方式分配系数。


2. 电路与符号函数

上面的代码也可以推导符号函数,注意符号函数除法分母的括号不要漏写:

syms s R C1 C2 L
A = [-1/(C1*R), 0, -1/C1; 0, 0, 1/C2; 1/L, -1/L, 0]
B = [1/(C1*R); 0; 0];
C = [1, -1, 0];
D = 0;
sI = s * eye(size(A)); 
Gs = C*((sI-A)^-1)*B+D;  % 求传递函数矩阵的公式
pretty(simplify(Gs))

在这里插入图片描述

一般有几个电容+电感,就有几个状态变量,即几阶电路。电容的电压、电感的电流常作为状态变量。但当两个电容并联,或者两个电感串联时,可以合并成一个状态变量。


下链


  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值