背景:我有一个复杂的机械振荡系统。通过类比,我将其转换为电路(每个元件都是RLC振荡器)。计算电路的唯一方法是节点分析,手动操作太复杂了。
由于符号数学工具箱和 SimPowerSystems 工具箱不可用,因此没有方便的方法来计算传递函数G(s)
以使用传递函数块。
所以我考虑过使用自定义函数,但在查阅文档后我仍然很无奈。我希望在这里找到一些初步想法。
我的系统可以通过矩阵方程描述:
A*x = y
其中A是包含我的电路的RLC阻抗的8x8
矩阵,因此基本上每个元素都是多项式Z(s)
,例如Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1)
其中s
是laplace-domain变量。向量x
是一个8x1行向量,包含我的8个标量输出。 y
是一个8x1行向量,其元素是我的4个输入信号之一或0.
最后,我需要一个带有4个输入和8个输出的Simulink模块,它解决了以s
为变量的线性方程组。
替代方案我可以想象使用4个块,每个块只有一个输入(将其他输入设置为'zeroo`)并叠加它们。只选择一个输出也是可以想象的。
有没有办法实现这个?如何创建一个块,它在Laplace-Domain中工作,而不是在时域中工作?
答案 0 :(得分:1)
您可以按照建议使用4 Transfer Function(SISO)块,但对于像您这样的MIMO系统,我建议您将系统转换为或重写为状态空间表示,改为使用State-Space块。
答案 1 :(得分:1)
需要使用传递函数定义n x n
系统矩阵:
W = minreal( [ tf( ... ) ... tf(...) ; ... ; tf( ... ) ... tf(...) ];
e.g:
Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1)
- >
Z_11 = tf( [1 2 0] , [1 3 -1] );
通常需要反转
H = inv(W);
此矩阵可以直接包含在控制系统工具箱的LTI-Sytem块中。 使用mux和demux嵌入输入和输出向量。
LTI系统内部正在使用建议的状态空间模型的n * n,因此大型系统手动创建它们会很复杂。