czxly 发表于 2006-3-27 11:02:58

如何将传递函数转换为微分方程,进行C++求解

#1如何将传递函数转换为微分方程

d大家都知道在MATLAB中可以方便的进行传递函数模拟系统,得到相应的响应。但是在实时的操作系统中,该如何来对这样的系统进行分析了。

应该是将传递函数转换为微分方程组,然后进行求解。微分方程的数值解法很多。
我一直没有把其中的转换搞明白。
               s^3
H(s)=-------------------------
      s^3+2*a*b*s+b
a,b为常熟。

这样一个系统的输入与输出又是什么关系了,该怎么推出微分方程了。转换成状态方程后:
x'=Ax+Bu;
y=Cx+Du;
那这个x的意义如何来界定了?。加入输入u是加速度
大家来讨论一下啊

lxdawn 发表于 2006-3-27 14:58:41

Re:如何将传递函数转换为微分方程,进行C++求解

doc tf2ss

xjchen2001 发表于 2006-3-27 22:08:35

czxly 发表于 2006-3-29 10:56:40

Re:如何将传递函数转换为微分方程,进行C++求解

我就是利用了MATLAB转换成了状态方程了。但是关键就是这个状态变量的意义怎么来确定了。
我这个传函是滤波器,输入的是加速度。求解一阶的微分方程组的时候需要对这个中间X状态变量赋值的,这个就是头痛的问题了。

serap 发表于 2006-4-4 17:07:32

Re:如何将传递函数转换为微分方程,进行C++求解

这个属于系统的实现问题
对应于一个传递函数的A、B、C、D阵有无数多个,
matlab只是给出了最为简单的一种可能性,
具体你需要什么,要依你设定的状态变量来确定。

czxly 发表于 2006-4-9 09:48:57

Re:如何将传递函数转换为微分方程,进行C++求解

我现在就是头痛这个状态变量了。我现在采用将它线性离散化的方式来进行转换,利用离散系统的数值方式来进行求解还是不很满意。
我选取的输入为力,输出也为力。

serap 发表于 2006-4-12 08:46:56

Re:如何将传递函数转换为微分方程,进行C++求解

如何将传递函数转换为微分方程?

你是为了进行数值计算的话,
不用转成状态方程的。

SISO系统的话可以直接对G(s)取拉氏反变换得到微分方程的形式。。

得到微分方程以后用龙格-库塔法进行数值积分计算即可。
可以参看有关数字仿真技术的书。

chx0808 发表于 2006-5-13 22:45:47

页: [1]
查看完整版本: 如何将传递函数转换为微分方程,进行C++求解