从状态空间方程到传递函数矩阵 matlab实现

最近在看清华大学的博士论文:马克西姆. 贫预混燃烧振荡的自抗扰控制[D].清华大学,2017.

其中有一推导如下,自己手推其实很费劲,下面介绍如何用matlab进行符号运算:

从状态空间方程到传递函数矩阵 matlab实现

 

要用到的公式来自现代控制理论的教材,一般现控书都会给出状态空间表达式到传递函数矩阵是如何推导的,所以就不说是哪一本了

从状态空间方程到传递函数矩阵 matlab实现

 

matlab代码:

 

clear all %/清空工作区

syms s beta1 beta2 b0 u y;%/声明要用到的符号变量

I=eye(2)%/eye函数用于创建一个二阶单位阵

A=[-beta1 1;-beta2 0];%/照着论文打A矩阵

B=[b0 beta1;0 beta2];%/同上

F=inv(s*I-A);%/inv函数用来对矩阵取反

collect(F*B)%/collect函数是合并同类项

 

 

运行结果:

 

 

ans =

 

[      (b0*s)/(s^2 + beta1*s + beta2), (beta1*s + beta2)/(s^2 + beta1*s + beta2)]

[ (-b0*beta2)/(s^2 + beta1*s + beta2),         (beta2*s)/(s^2 + beta1*s + beta2)]

 

可以看到与论文中给出的相同。

本文结束啦。