**
玩转Matlab-Simscape(初级)- 06 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(理论部分2)
**
目录
- 玩转Matlab-Simscape(初级)- 06 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(理论部分2)
- 前言
- 1 Simulink与COMSOL协同仿真简介
- 2 降阶模型简介
- 3 降阶模型的应用
- 3.1 创建降阶模型
- 3.2 提取降阶状态空间矩阵
- 3.3 提取全阶状态空间矩阵
- 总结
前言
学完《玩转Matlab-Simscape(初级)》系列博客的前三节 ,我发现应用Maltab simscape对多体进行仿真时,如果要研究一个刚体系统的动力学的行为,在Matlab Simscape中还是相对好处理的,但如果3D模型再复杂些,研究的结构中个别组件为柔性体(即对一个复杂刚柔耦合系统的控制进行仿真),或者想要了解系统组件中某个特殊位置的状态,在Matlab Simscape中进行分析,现阶段对我来说貌似有些困难,所以,今天我跳转介绍下COMSOL Multiphysics with Simulink。该部分主要想解决后续可能遇到的复杂3D刚柔耦合控制系统的仿真问题。
本文通篇概述基于Solidworks、Matlab Simulink、COMSOL进行协同仿真的理论基础部分。欢迎各位小伙伴关注、赞赞、留言和收藏。
(Matlab的这种刚柔耦合控制仿真分析模块我还没学习到,待掌握了解后跟此文方法会做个对比研究。😄)
1 Simulink与COMSOL协同仿真简介
- 任何时间相关的或静态的COMSOL模型都可以与Simulink一起用于联合仿真;
- 基于COMSOL模型导出状态空间模型为总自由度(DOFs)的线性化模型,是模态降阶的线性化模型,对于某些物理场,需要有额外的模块,以便能够建立执行模态分析所需的模态研究;
2 降阶模型简介
降阶模型可以用于模型分析和控制设计,以及提高仿真性能。可以用COMSOL模型的线性化状态空间表示。由于有限元模型通常具有非常高的自由度o(╯□╰)o,因此需要提取自由度更少的降阶模型。
3 降阶模型的应用
COMSOL Multiphysics提供了基于特征值解生成线性化的降阶模型的功能。与完整模型相比,简化后的系统具有更少的自由度(DOFs)。
从降阶模型中,使用LiveLink™for Simulink®检索以下系统的状态空间矩阵:
上述动态系统的另一种表示是:
后一种形式更适合于大型系统,因为矩阵MC和MCA通常是稀疏的,而A是密集的。
3.1 创建降阶模型
为了创建一个降阶模型,模型中必须有三项研究:
•时间研究
•本征频率研究
•包括模型简化研究步骤的研究。
注意:若要在COMSOL桌面中启用降阶建模,请右击“研究”选择“显示更多选项”,然后选择“降阶建模” 。
3.2 提取降阶状态空间矩阵
一般在Matlab中使用mpphreduction函数来提取模型的状态空间矩阵。
假设有这样一个传热模型:该传热模型包含一个热源,其热源被设置为状态空间系统中的输入。将某一特定点的温度作为输出。下面一步一步的来获得状态空间矩阵,并在Simulink中求解系统。
-
- 要创建降阶模型,首先向模型添加一个未降阶模型研究和一个训练研究。其中,
①创建的“未降阶模型研究”需要运行求解,确保模型求解没问题。
②一般会添加“域点探针”(右键组件→探针→域点探针),用于定义降阶模型的输出。
- 要创建降阶模型,首先向模型添加一个未降阶模型研究和一个训练研究。其中,
-
- 接下来,创建一个“空研究”
①在将“降阶研究”添加到模型前,需要设置降阶模型的输入。右键单击“全局定义”→选择“降阶建模”→“全局降阶模型输入”
②在“空研究”中右键添加“模型降阶”。
在“模型降阶设置”中,对“特征模态的培训研究”、“特征模态的研究步骤”、“为降阶模型研究”、“由研究步骤定义”,以及“输出变量”进行设置和定义。
- 接下来,创建一个“空研究”
-
- 点计算生成降阶模型。
-
- 在Matlab中提取状态空间矩阵
①在MATLAB命令窗中输入如下命令,加载刚刚创建的模型:
Model = mphload(<modelname>) ```其中<modelname>是Model mph文件的名称
②调用mphreduction会创建仿真降阶系统所需的状态空间矩阵。
MR = mphreduction(model, 'rom1',…) 'out', {'MA' 'MB' 'C' 'D' 'Mc'})`
- 在Matlab中提取状态空间矩阵
-
-
在Simulink中运行仿真
其中,状态空间模块的设置如下:
out 属性/值对
-
3.3 提取全阶状态空间矩阵
在Matlab中使用mphstate函数可以提取全阶模型的状态空间矩阵。优点是,它不需要特征值解;这种方法在多物理场问题的
情况下是有用的。从完整模型中获得的状态空间矩阵比从降阶模型中获得的矩阵大得多。(暂时用不到这个功能,先不研究这块了。O(∩_∩)O)
总结
以上就是今天分享的关于COMSOL Multiphysics with Simulink 的理论基础内容第二部分,简单分享了应用COMSOL Multiphysics with Simulink进行控制仿真的第二种方法(状态空间法替代模型)。详述了在Comsol中创建降阶模型,在Matlab中提取降阶状态空间、全阶状态空间,迎各位小伙伴关注、赞赞、留言和收藏。