如何将传递函数转换为微分方程,进行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是加速度
大家来讨论一下啊
Re:如何将传递函数转换为微分方程,进行C++求解
doc tf2ssRe:如何将传递函数转换为微分方程,进行C++求解
我就是利用了MATLAB转换成了状态方程了。但是关键就是这个状态变量的意义怎么来确定了。我这个传函是滤波器,输入的是加速度。求解一阶的微分方程组的时候需要对这个中间X状态变量赋值的,这个就是头痛的问题了。
Re:如何将传递函数转换为微分方程,进行C++求解
这个属于系统的实现问题对应于一个传递函数的A、B、C、D阵有无数多个,
matlab只是给出了最为简单的一种可能性,
具体你需要什么,要依你设定的状态变量来确定。
Re:如何将传递函数转换为微分方程,进行C++求解
我现在就是头痛这个状态变量了。我现在采用将它线性离散化的方式来进行转换,利用离散系统的数值方式来进行求解还是不很满意。我选取的输入为力,输出也为力。
Re:如何将传递函数转换为微分方程,进行C++求解
如何将传递函数转换为微分方程?你是为了进行数值计算的话,
不用转成状态方程的。
SISO系统的话可以直接对G(s)取拉氏反变换得到微分方程的形式。。
得到微分方程以后用龙格-库塔法进行数值积分计算即可。
可以参看有关数字仿真技术的书。
页:
[1]