comsol操作技巧.docx

上传人:b****0 文档编号:969753 上传时间:2022-10-14 格式:DOCX 页数:6 大小:707.74KB
下载 相关 举报
comsol操作技巧.docx_第1页
第1页 / 共6页
comsol操作技巧.docx_第2页
第2页 / 共6页
comsol操作技巧.docx_第3页
第3页 / 共6页
comsol操作技巧.docx_第4页
第4页 / 共6页
comsol操作技巧.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

comsol操作技巧.docx

《comsol操作技巧.docx》由会员分享,可在线阅读,更多相关《comsol操作技巧.docx(6页珍藏版)》请在冰豆网上搜索。

comsol操作技巧.docx

comsol操作技巧

 

comsol操作技巧(总11页)

comsol操作技巧

下面是本人在利用comsol解决实际问题时碰到的一些问题,通过上网查询,以及自己想出的方法进行解决,很多是网络是无法直接查询到,希望和大家一起分享,也许其中的某条正是你下载冥思苦想要解决的问题,希望能够帮到你。

上网查找的部分如有侵权,请告之删除,谢谢!

(一)利用comsol的计算源程序,来建立新的循环计算

如果需要利用其它计算后的数值代入到comsol进行后计算,这就不可避免的要利用comsol的源程序进行后学的连续计算,这里主要需解决在次计算利用上次计算初始值的问题,下面两段就是有无利用上次计算结果作为初始值的程序:

%正常的求解

%Solveproblem

=femtime(fem,...

'solcomp',{'T'},...

'outcomp',{'T'},...

'blocksize','auto',...

'tlist',[colon(0,,1)],...

'estrat',1,...

'tout','tlist',...

'linsolver','gmres',...

'itrestart',100,...

'prefuntype','right',...

'prefun','gmg',...

'prepar',{'presmooth','ssor','presmoothpar',{'iter',3,'relax',},'postsmooth','ssor','postsmoothpar',{'iter',3,'relax',},'csolver','pardiso'},...

'mcase',[01]);

%将上次求解结果作为下次计算的初始值的求解

%Mappingcurrentsolutiontoextendedmesh

init=asseminit(fem,'init',,'xmesh',,'blocksize','auto');%(此处是关键)

%Solveproblem

=femtime(fem,...

'init',init,...%(此处是关键)

'solcomp',{'T'},...

'outcomp',{'T'},...

'blocksize','auto',...

'tlist',[colon(0,,1)],...

'estrat',1,...

'tout','tlist',...

'linsolver','gmres',...

'itrestart',100,...

'prefuntype','right',...

'prefun','gmg',...

'prepar',{'presmooth','ssor','presmoothpar',{'iter',3,'relax',},'postsmooth','ssor','postsmoothpar',{'iter',3,'relax',},'csolver','pardiso'},...

'mcase',[01]);

(二)对常数进行赋值

下面一段程序是comsol中常数的赋值语句:

%Constants

={'U0','',...

'I0','35',...

'It1','35',...

'It2','35',...

'It3','35',...

'It4','35',...

'Vt1','4',...

'Vt2','4',...

'Vt3','4',...

'Vt4','4',...

'OpenVt1','',...

'OpenVt2','',...

'OpenVt3','',...

'OpenVt4',''};

我们可以通过以下语句对其中的35,4,进行修改

It1=700;It2=700;It3=700;It4=700;

(1,6)={It1};

(1,8)={It2};

(1,10)={It3};

(1,12)={It4};

这样就可以实现常量变成变量,进行计算了

(三)启动COMSOLwithMATLAB2007b时,MATLAB和COMSOLMultiphysics用户界面都没有出现

该问题多出现在Windows上使用COMSOLwithMATLAB2007b,MATLAB2007a及更早的版本没有这种问题。

该问题可能与MATLAB2007b引入的新内存分配策略有关,解决办法是让MATLAB使用老的策略,将Windows环境变量MATLAB_RESERVE_LO设置为0。

优选解决方案

要解决这个问题,MathWorks推荐按下面的步骤设置环境变量:

在Windows中点击开始>控制面板>系统>高级>环境变量。

在系统变量框架中点击新增按钮。

在变量名称中键入MATLAB_RESERVE_LO,在变量值中键入0。

点击确定,关闭对话框。

第二种解决方案

在少数极端情况下,首选方案可能解决不了问题,则可按下面的步骤进行尝试:

试着启动一次COMSOLwithMATLAB,可能会失败,但将向COMSOL安装目录中写入一个文件。

打开,删除行-Xmx256m,并保存文件。

打开COMSOL安装目录的bin目录中的,改变行:

JAVAOPTS=on

JAVAOPTS=off

这将确保不会在每次启动COMSOLwithMATLAB被自动覆盖,从而可以永远使用手动修改过的文件。

当在COMSOLMultiphysics的文件菜单中使用“连接到MATLAB”时,会在根目录中查找,因此需要将编辑过的文件拷贝到文件主目录目录中,例如

C:

\DocumentsandSettings\

(四)comsol的数据txt文件不能用中文,但可以用小数点

(五)关于comsol程序进行循环计算的问题

1,如果不需要对常数和变量进行变化的话,只需要将求解的部分进行重复,就可以进行再次计算,即下面的程序:

=femtime(xfem,...

'solcomp',{'T'},...

'outcomp',{'T'},...

'blocksize','auto',...

'tlist',[colon(0,1,100)],...

'estrat',1,...

'tout','tlist',...

'maxstep',1,...

'initialstep',1,...

'linsolver','gmres',...

'itrestart',100,...

'prefuntype','right',...

'prefun','gmg',...

'prepar',{'presmooth','ssor','presmoothpar',{'iter',3,'relax',},'postsmooth','ssor','postsmoothpar',{'iter',3,'relax',},'csolver','pardiso'},...

'mcase',[01]);

如果要利用之前计算的记过作为初始值,可借鉴“利用comsol的计算源程序,来建立新的循环计算”中的相关内容。

2经过实际计算,即使要对常数和变量进行修改的话,这样处理也是可以的。

(七)comsol文件清除结果的操作

点击“文件”选择其中的“模型重置”即可将之前计算的结果清除,文件大小降为几百K

(八)关于comsol模型转成M文件运行的注意事项

1、将comsol进行过求解计算的文件另存为M文件,再通过“COMSOLwithMATLAB”打开文件进行编程和修改。

2、如果只是想对后处理的数据进行编程调试,必须先将comsol文件保存为*.mph文件,然后再另存为m文件,进行后续程序修改

简言之:

如果对comsol重新进行计算就在comsol计算完之后,进行一些后处理操作(这部分也可用自己编写的程序),没有关闭comsol之前就将comsol文件另存为M文件,这样下载运行这个程序时,会对comsol部分进行计算。

如果不对comsol重新计算,就在comsol计算完之后,关闭comsol,然后再重新打开,将comsol文件另存为M文件,这样下载运行这个程序时,不会对comsol部分进行计算,而直接可以用上次计算的结果。

(九)与matlab2010a会出现一些问题

对于下面这条程序,再普通不过了,但是在与matlab2010a中,总是提示错误,并且自动关闭程序,后来去除‘spline’,就变正常,但是使用的插值方法是默认的“linear”,最后将,2010a换成2007b,就正常了。

因此,与simulink结合,是否就是有这方面的问题,还待后续试试再来补充

InitialVopen=interp2(LZG_SOC,LZG_temp,LZG_Vopen,SOC,Temperature,'spline')

(十)关于comsol作为simulink的问题

1首先通过使用新旧两台电脑,在旧电脑上完全可以实现基本库---交叉学科---温度控制的例子,在新电脑(64位,同时也使用matlab2010,)在导出simulink模型时,如果更改Simulink方块类型为线性动态,就无法输出,如果按照默认还可以输出,但是后面整个simulink模型完成后,在旧电脑可以正常运行,在新电脑无法运行,同时自动退出matlab程序。

2、导出simulink模型后,必须在“COMSOLwithMATLAB”启动的matlab中才能找到“comsol”模块,然后将模块拖到新建的simulink窗口中,双击,在参数栏输入导出时的名称就可以出现输入输出口。

3、输入还好,没有什么问题,输出就有问题了,只有点的输出,无法进行面或体的操作,这是需要留意,在后续进行解决的问题

4对于下面这条程序,再普通不过了,但是在与matlab2010a中,总是提示错误,并且自动关闭程序,后来去除‘spline’,就变正常,但是使用的插值方法是默认的“linear”,最后将,2010a换成2007b,就正常了。

因此,与simulink结合,是否就是有这方面的问题,还待后续试试再来补充

InitialVopen=interp2(LZG_SOC,LZG_temp,LZG_Vopen,SOC,Temperature,'spline')

(十一)关于安装时忘记连接matlab的补救方法

忘了没有关系,直接在点击“setup”,然后选择“add/remove”,在弹出的窗口中右边勾选“matlab”即可。

如果想要把2007b换成2010a或其他版本,也可以采用相同的方法进行。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1