我需要将传递函数分成两个传递函数,这样S2 = S1‘实际上我有S2*S1的乘积
s = tf('s')
Suu = -1.6/((s-4)*(s+4))
Sux = -0.8/((s+4)*(s-4)*(s^2 + 0.1*s + 1))
Sxx = 0.3*(s - 4.163)*(s + 4.163)/((s+4)*(s-4)*(s^2 - 0.1*s + 1)*(s^2 + 0.1*s + 1))
Sxu = Sux'
SxdSdx = Sxx - (Sxu*Sux)/Suu如果Sxd = Sdx‘,如何确定Sxd和Sdx?有人能帮我吗?
发布于 2012-03-26 03:30:27
你要做的就是谱分解。关于谱分解算法的一篇很好的调查论文是A.H.赛义德和T.Kailath,"A survey of spectral factorization Methods",Numer。线性代数应用,第8卷,第467-496页,2001。
如果您的传递函数可以表示为您可以分解的有理函数(即,s中多项式的比率),那么您可以选择S1作为其零点(分子多项式的根)和极点(分母多项式的根)都在左半平面(即实部小于零)的有理函数。如果有真正的根,那么这些根必须成对出现,您可以将每对根中的一个成员分配给S1。如果你这样做,那么S1*conj(S1)将是原始的传递函数。
将传递函数分解的数值方法取决于传递函数的极点和零点的性质(有多少个,它们有多接近等),以及你如何知道传递函数(你是通过它的多项式系数知道的吗?你是通过它在s空间中的选定点的值来知道它的吗?),你知道它的准确性(你对传递函数系数的准确性有多高),以及你希望你的因式分解有多精确。
https://stackoverflow.com/questions/9860734
复制相似问题