[转载]Comsol和Matlab联合仿真

标签:
转载 |
分类: 工程软件 |
实验室同学写的,转一个!
可以在Comsol中先建立好模型或者执行一些操作,然后再通过菜单“文件”->“另存为模型M文件”,查看M文件中的语句,即可了解相应的操作过程和Matlab调用语法;
例:
上面的这个例子,在Comsol中新建了一个3维模型的稳态分析,将单位设置为mm,几何模型中建立了一个长方体,宽度100,深度50,高度10。基本上通过函数的命名即可看出其实际的意义。
倒数第二句mphgoem函数的作用是在Matlab的Figure中显示几何模型。
打开桌面上的“COMSOL
4.2 with MATLAB”快捷方式,然后运行上述代码,即可看到如下结果:
![[转载]Comsol和Matlab联合仿真 [转载]Comsol和Matlab联合仿真](//simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
设置材料也可以在Comsol中先设置好,然后再另存为模型M文件,下面代码将上述模型材料设置为铝,对于结构分析来说其实关键设置杨氏模量、泊松比和密度就可以了;
划分网格并显示的代码如下(自由划分网格):
其中mphmesh函数是显示划分的网格,结果如下:
本例约束长方体的下表面,设置体载荷重力载荷,重力方向为Z轴负方向,设置代码如下:
设置约束时需要选择约束的位置,上面的第二行代码中的[3]为长方体下表面的编号。
求解的代码如下:
最后的mphplot函数的作用是在Matlab的Figure中显示分析结果,如下所示:
原文地址:Comsol和Matlab联合仿真作者:qinshaoq
1、建立模型
function
%
%
%
%
import
import
model
model.modelPath('D:QSQDocumentsComsol');
model.modelNode.create('mod1');
model.geom.create('geom1',
model.mesh.create('mesh1',
model.physics.create('solid',
model.study.create('std1');
model.study('std1').feature.create('stat',
model.geom('geom1').lengthUnit('mm');
model.geom('geom1').run;
model.geom('geom1').feature.create('blk1',
model.geom('geom1').feature('blk1').setIndex('size',
model.geom('geom1').feature('blk1').setIndex('size',
model.geom('geom1').feature('blk1').setIndex('size',
model.geom('geom1').feature('blk1').set('base',
model.geom('geom1').run('blk1');
mphgeom(model,
out
|
![[转载]Comsol和Matlab联合仿真 [转载]Comsol和Matlab联合仿真](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
2、设置材料
model.material.create('mat1');
model.material('mat1').name('Aluminum');
model.material('mat1').set('family',
model.material('mat1').propertyGroup('def').set('relpermeability',
model.material('mat1').propertyGroup('def').set('heatcapacity',
model.material('mat1').propertyGroup('def').set('thermalconductivity',
model.material('mat1').propertyGroup('def').set('electricconductivity',
model.material('mat1').propertyGroup('def').set('relpermittivity',
model.material('mat1').propertyGroup('def').set('thermalexpansioncoeffici
model.material('mat1').propertyGroup('def').set('density',
model.material('mat1').propertyGroup.create('Enu',
model.material('mat1').propertyGroup('Enu').set('poissonsratio',
model.material('mat1').propertyGroup('Enu').set('youngsmodulus',
model.material('mat1').propertyGroup.create('Murnaghan',
model.material('mat1').propertyGroup('Murnaghan').set('n',
model.material('mat1').propertyGroup('Murnaghan').set('m',
model.material('mat1').propertyGroup('Murnaghan').set('muLame',
model.material('mat1').propertyGroup('Murnaghan').set('l',
model.material('mat1').propertyGroup('Murnaghan').set('lambLame',
model.material('mat1').propertyGroup.create('Lame',
model.material('mat1').propertyGroup('Lame').set('muLame',
model.material('mat1').propertyGroup('Lame').set('lambLame',
model.material('mat1').propertyGroup.create('NeoHookean',
model.material('mat1').propertyGroup('NeoHookean').set('mu',
model.material('mat1').propertyGroup('NeoHookean').set('lambda',
model.material('mat1').set('family',
|
3、划分网格
model.mesh('mesh1').run;
mphmesh(model,
|
![[转载]Comsol和Matlab联合仿真 [转载]Comsol和Matlab联合仿真](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
4、设置载荷和约束
model.physics('solid').feature.create('fix1',
model.physics('solid').feature('fix1').selection.set([3]);
model.physics('solid').feature.create('bl1',
model.physics('solid').feature('bl1').set('FperVol',
model.physics('solid').feature('bl1').selection.all;
|
5、求解
model.sol.create('sol1');
model.sol('sol1').study('std1');
model.sol('sol1').feature.create('st1',
model.sol('sol1').feature('st1').set('study',
model.sol('sol1').feature('st1').set('studystep',
model.sol('sol1').feature.create('v1',
model.sol('sol1').feature.create('s1',
model.sol('sol1').feature('s1').feature.create('fc1',
model.sol('sol1').feature('s1').feature.remove('fcDef');
model.sol('sol1').attach('std1');
model.result.create('pg1',
model.result('pg1').set('data',
model.result('pg1').feature.create('surf1',
model.result('pg1').feature('surf1').set('expr',
model.result('pg1').name([native2unicode(hex2dec('5e94'),
model.result('pg1').feature('surf1').feature.create('def',
model.result('pg1').feature('surf1').feature('def').set('expr',
model.result('pg1').feature('surf1').feature('def').set('descr',
model.sol('sol1').runAll;
model.result('pg1').run;
mphplot(model,
|
![[转载]Comsol和Matlab联合仿真 [转载]Comsol和Matlab联合仿真](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
问题:最终显示结果默认是Von Mises应力的云图,如何设置单独显示变形的云图?结果数据如何导出?