首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于系统矩阵的自定义传递函数

基于系统矩阵的自定义传递函数
EN

Stack Overflow用户
提问于 2013-08-26 14:34:47
回答 2查看 1.7K关注 0票数 1

背景:我有一个复杂的机械振荡系统。通过类比,我把它转换成一个电路(每个元件都是RLC振荡器)。计算电路的唯一方法是节点分析,它太复杂了,无法用手完成。

由于无法使用SimPowerSystems工具箱和符号数学工具箱,因此无法方便地使用传递函数块计算传递函数G(s)

因此,我考虑使用自定义函数,但在查阅了文档之后,我仍然很无助。我希望在这里找到一些初步的想法。

我的系统可以用矩阵方程来描述:

代码语言:javascript
复制
A*x = y

其中A是包含电路RLC阻抗的8x8矩阵,所以基本上每个元素都是多项式Z(s),例如Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1)s是laplace域变量。向量x是包含8个标量输出的8x1行向量。y是一个8x1行向量,其元素要么是我的4个输入信号中的一个,要么是0。

最后,我需要一个4输入8输出的Simulink模块来求解以s为变量的线性方程组。

我可以想象使用4个块,每个块只有一个输入(将其他输入设置为‘zero`’)并对它们进行叠加。只选择一个输出也是可以想象的。

有什么办法来实现这个吗?如何创建一个块,它在Laplace-域中工作,而不是在时间域中工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-03 07:58:56

需要用传递函数定义n x n系统矩阵:

代码语言:javascript
复制
W = minreal( [  tf( ... ) ... tf(...) ; ... ; tf( ... ) ... tf(...)  ];

例如:

代码语言:javascript
复制
Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1)

->

代码语言:javascript
复制
Z_11 = tf( [1 2 0] , [1 3 -1] );

通常有必要进行反演

代码语言:javascript
复制
H = inv(W);

此矩阵可直接包含在“控制系统工具箱”的LTI-Sytem块中。输入输出矢量采用mux和demux嵌入。

在内部,LTI系统使用的是所提出的状态空间模型的n*n,因此对于大系统来说,手工创建它们将变得非常复杂。

票数 1
EN

Stack Overflow用户

发布于 2013-08-27 11:01:21

您可以按照您的建议使用4 传递函数 (SISO)块,但对于像您这样的MIMO系统,我建议您将系统转换为或重写为状态空间表示,并使用状态空间块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18446653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档