如何用matlab从workbank2022模型中提取空间状态矩阵

u1ehiz5o  于 8个月前  发布在  Matlab
关注(0)|答案(1)|浏览(102)

我需要提取Ansys-B2022模型的状态空间矩阵。我需要将这个Ansys-ANSYS模型(模态分析完成后)导入Matlab,然后对其进行后处理,以提取A,B和C矩阵(状态空间矩阵)。有可能吗?如何将此模型导入Matlab?如何提取A,B,和C矩阵(状态空间矩阵),然后在Matlab中?

fykwrbwg

fykwrbwg1#

我发现自己和你的处境一样。确实有一种方法可以在ANSYS Mechanical中提取状态空间矩阵。您可以在仿真树中包含SPMWRITE命令来实现此目的。你可以这样做:

**提取状态空间矩阵:**右键单击要执行的分析(模态、谐波响应等),并添加“命令(APDL)”,您可以直接编写APDL命令。使用“ExportStateSpaceMatrices.mac”宏(从2009年开始,很老了,我希望ANSYS最终会对它做些什么),它通常位于Ansys安装文件夹中(默认路径通常是C:\Program Files\ANSYS Inc\v221\aisol\DesignSpace\DSPages\macros)。用文本编辑器打开它,并将代码复制粘贴到您创建的APDL命令中。你可以编辑它,但我不能帮助你,对不起,但我还不知道APDL语言。我认为另一种方法是在命令(APDL)中写入“/input,ExportStateSpaceMatrices,mac,'C:\Program Files\ANSYS Inc\v221\aisol\DesignSpace\DSPages\macros'”,但我必须尝试一下。运行仿真,命令将被执行,在项目的结果文件夹(“project_folder\dp 0\SYS-n\MECH”内)中生成一个“.spm”文件。您可以通过在Windows界面中切换“文件”的可视化来快速找到它(左上角:视图-文件)。文件.spm将包含输入(力。我不知道它是如何工作的压力或其他负载),输出(用户定义的远程点)和状态空间矩阵A,B,C(D通常是0 -零-你可以在MATLAB中自己声明)。
挑战和解决办法:

1.**仅模态位移:**宏仅支持模态位移(或模态速度/加速度)。如果您需要处理应变或其他输出,则需要在MATLAB中处理数据。
1.随机顺序:.spm文件中的输入和输出是随机排序的。对它们进行排序可能需要MATLAB脚本。我还没有弄清楚如何直接从分析设置中对它们进行排序。要小心,因为重新排列输入/输出向量将需要重新组织B、C和D矩阵,因为它们处理输入和输出。
1.**矩阵切片:**当提取大量状态(例如超过50种模式或100种状态)时,您会注意到文本文件长度的限制:矩阵A和C的单行将对应于文本文件中的两个连续行,由反斜杠指示。您需要对原始矩阵进行“切片”并正确重组以获得您要查找的矩阵。
我正在进行模拟,等待结果。昨天我得到了spm文件,但是今天我对模型做了一些修正,有些东西不再工作了。(我的方法是试错法,但它确实有效。much)。
我真的希望这可以帮助你或任何人将阅读此线程。
顺祝商祺,
Giovanni

相关问题