我有一个机械振动系统,由一个 n x n
矩阵和传递函数 tf( ... )
定义。
W = minreal( [ tf( ... ) ... tf(...) ; ... ; tf( ... ) ... tf(...) ];
在下面的图中,您可以看到一些选定的频率响应。它显示了高频不规则性。
![振荡系统的波德图](https://istack.dev59.com/KOO1R.webp)
因此,我想在我的传输矩阵上应用低通滤波器,以便我可以使用更大的步骤进行更快的模拟时间。是否有一种方法可以在我的matlab代码或Simulink中实现这一点?
最后,我想根据我拥有多少时间和需要的精度来调整阈值频率。
我已经对适当的求解器进行了一些研究,但没有成功。任何关于求解器的建议也将帮助我。
这是我可用的工具箱的简陋列表。
Control System Toolbox Version 9.3 (R2012a)
Simulink Control Design Version 3.5 (R2012a)
System Identification Toolbox Version 8.0 (R2012a)
提前感谢您!
编辑:使用@am304的建议来说明。
从18阶到4阶降低系统的伯德图,我的情况不需要低通滤波器了。
ode15s
或ode23t
定义的公差对于一个稳定的系统来说太严格了,以至于减少模拟时间的效果不明显。此外,该模型必须与耦合的有限元分析交互,后者使用固定步长。因此,我尝试避免使用可变步长,但在最坏的情况下,我可以通过编辑接口来解决这个问题。 - Robert Seifertn
很大,则肯定更易读)。此外,也许可以尝试降低系统的阶数(n
)(有关更多详细信息,请参见http://www.mathworks.co.uk/help/control/model-simplification-1.html)。 - am304balred
导致速度提升了35%,使用balred
和balreal
(转换为状态空间)的组合最终使我加速了83%。非常感谢! - Robert Seifert