联合应用COMSOL和matlab
comsol_with_matlab
%%%%%%%%%% 用matlab运行comsol例子%%%%%%%%%%clear;disp(datestr(now,31));% 导入文件[filename, pathname]=uigetfile('*.mph','Select the Comsol file');full_filename=[pathname, filename];model=mphload(full_filename);% 改变模型参数my_a=6; %=========== 修改参数处model.param.set('a',my_a);% 重新运行计算model.sol('sol1').run;% 提取点值sx=0; %=========== 修改参数处sy=0; %=========== 修改参数处sz=2; %=========== 修改参数处model.result.dataset.create('cpt11', 'CutPoint3D');model.result.dataset('cpt11').set('pointx', num2str(sx));model.result.dataset('cpt11').set('pointy', num2str(sy));model.result.dataset('cpt11').set('pointz', num2str(sz));model.result.dataset('cpt11').run;my_Bz=mphinterp(model,'mfnc.Bz','dataset','cpt11','unit','G');tmp=(['点坐标:(',num2str(sx),',',num2str(sy),',',num2str(sz),')']); disp(tmp);tmp=(['Bz=',num2str(my_Bz),'Gs']);disp(tmp);% 提取一串点start=-5; %=========== 修改参数处stop=5; %=========== 修改参数处delta=0.1; %=========== 修改参数处sy=0; %=========== 修改参数处sz=2; %=========== 修改参数处tmp=(['range(',num2str(start),',',num2str(delta),',',num2str(stop),')']); model.result.dataset.create('cpt21', 'CutPoint3D');model.result.dataset('cpt21').set('pointx', tmp);model.result.dataset('cpt21').set('pointy', num2str(sy));model.result.dataset('cpt21').set('pointz', num2str(sz));model.result.dataset('cpt21').run;my_Line_Bz=mphinterp(model,'mfnc.Bz','dataset','cpt21','unit','G'); my_Line_Bz=my_Line_Bz';my_Line_Bz=[[start:delta:stop]' my_Line_Bz];% 保存图片figname=([pathname,'model_test_',num2str(my_a),'.jpg']); mphplot(model,'pg2');grid minor;saveas(gcf,figname);% 保存模型modelname=([pathname,'model_test_',num2str(my_a),'.mph']); model.save(modelname);% 结束disp(datestr(now,31));。
COMSOL 命令集
1. <target>comsol : 启动COMSOLcomsol server : 启动COMSOL SERVER,用于联用MATLABcomsol client : 启动COMSOL CLIENTcomsol batch : 命令行模式的COMSOL,用于运行一个MPH算例或class文件comsol compile : 编译模型java文件,用于JAVA APIcomsol server matlab : 启动MATLAB并连接到COMSOL SERVER,SSH下个人推荐这种方式,原因自己体会comsol matlab : 启动MATLAB,并设置COMSOL的路径,不灵的(它没把mli下级目录添加进去,因此需要手动设置下)comsol convertpre35a : 转换COMSOL v3.x版本模型,我觉得是生成高版本的MPH或M文件comsol mph : 运行COMSOL并行模式(multiprocessing daemon)2. <options>-h : 屏显HELP<target> -h : 屏显<target>的HELP-32 : 32位模式-64 :64位模式-3drend ogl | sw : OpenGL的3D渲染-np <number> : 启动核数,WIN窗口模式默认启动全部核心,LIN则需要配置-numasets <number> : 非一致性内存访问(NUMA)硬件可以通过将专用内存与CPU 配对来显著提高性能,通常为CPU核sockets数-mpmode throughput | : 并行模式优化COMSOL与其他线程同时运行turnaround | : 并行模式在无其他任务进行时,优化COMSOL进程owner : 并行模式在所有进程中,给予最高级的性能配置-blas {auto}| mkl | :basic linear algebra operations,COMSOL很多计算引擎依赖BLAS acml | path : 使用BLAS库mkl:intel的CPU,acml:AMD SSE2支持的CPU-blaspath <path> :BLAS库路径,与-blas path联用(环境变量为LD_LIBRARY_PATH)-ipv6 : IPV6支持-nn <number> : 节点数-nnhost <number> :每个HOST使用的节点数-mpi {auto} | intel |mpich2 | wccs2003 |whpc2008 | user| path :调用MPI库-mpipath <path> : MPI库路径-mpiroot <path> : MPI库root路径-mpirsh {rsh} | ssh : 在MPD模式下使用rsh或ssh-scalapack {auto} |mpich2 | wccs2003 |whpc2008 | user | path :Scalapcak库-scalapackpath <path> : Scalpack库路径-clusersimple :Simple cluser模式不知是神马-prefsdir <path> : 配置属性路径-tmpdir <path> : 临时文件路径-version : 屏显版本号-ckl : 使用class-kit 许可-forcegcc : 强制加载GCC库,通常是在联用MATLAB,而函数无法返回MATLAB时使用-forcecomsolgcc :与COMSOL强制加载GCC库,COMSOL通常默认使用系统GCC,当在无法正常启动COMSOL时,尝试使用该命令3. COMSOL SERVER 命令通用格式comsol [<options>] server [<target arguments>]comsol target arguments-user <user> : login user name-port <port> : TCP/IP port to listen-passwd <reset/nostore> : 当需要提供新密码时使用,如果不需要存储新密码联用nostore -login <{info}/force/never> : 查询登录信息-multi on | {off} : 允许client重复链接-silent : 不接受标准输入-graphics : 启动COMSOL的图形库,不在COMSOL的GUI下,但是是COMSOL 的绘图模式4. COMSOL CLIENT 命令通用格式comsol [<options>] client [<target arguments>]-port <port> : 指定连接的端口-server <server name> :连接的server名5. COMSOL BATCH 命令COMSOL的无GUI模式,可以运行MPH算例及模型JAVA文件,模型JAVA文件运行前需要编译。
MATLAB 和COMSOL 介绍
1、主窗口:主窗口除了兼容5个子窗口外,还主要包含标题栏、6个 菜单和一个工具条。
2、命令窗口:命令窗口是MATLAB极为重要的部分,也是用户使 用最频繁的部分。用户的数据输入和结果运算,一般都在此窗口中 进行。 3、历史记录窗口:在默认设置下,历史记录窗口会自动保留自安装 起所有用过的命令和变量的历史记录,并且还注明了使用时间,从 而方便了用户查询。 4、工作台及工具箱窗口:在MATLAB的工作台及工具箱窗口中,可 以看到已经安装的各种工具箱,双击选中的工具箱或单击前面的“+” 号,就能看到工具箱中的各项功能。 5、当前目录窗口:在当前目录窗口中可以显示或改变当前目录,还 可以显示当前目录下的文件并提供搜索功能。 6、工作空间窗口:在该窗口中显示所有目前内存中存放的变量明、 变量存储数据的维数、变量存储的字节数和变量类型说明。新打开 MATLAB时,只能看到一个变量ans,这是一个由系统提供的默认输 出变量。
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6
以下简单介绍一下MATLAB的以下特点:
1、语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式 自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要 的编程工作。由于库函数都由本领域的专家编写,因此用户不必担心函数的 可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上进行的。
Matlab的程序设计
利用MATLAB的命令窗口,可以完成比较简单的运算,但当遇到较为复 杂的问题时,就需要借助程序设计。 一、程序设计的基本原则 1、设置完整的路径,最好把当前的处理位置定为Current Directory。 2、参数值要集中放在程序的开始部分,便于程序维护。 3、MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结 果;若命令后为分号,则禁止显示结果。 4、“%” 后面所有文字为注释,“…”表示续行。 5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子 程序合并在一起来执行全部的操作。
Comsol with Matlab Quick Started (1)
CwM我用的确实不多,但用好了事半功倍。
本文只是个引子,仅作背景介绍。
很多筒子可能会抱怨,撒装的是低版本的Comsol,别人给汝的模型确实高版本的,那么正常途径撒肯定打不开这个文件。
其实,Comsol可以另存为M文件,这个文件实际上是一种录制宏,它几乎记录了你操作Comsol的每一个步骤(当然有例外)。
酱就好办了,侬导出一个M文件,交给别人,那么Ta只需要运行CwM,然后保存即可得到模型文件,酱模型文件小了很多,也方便交流。
当然除这种方法外,还有别的办法,比如修改mph文件的信息,但不管怎么都不能保证版本间的兼容性。
不足:M文件类似于journal文件,所以过程结果是不会保存的,亦是无结果文件。
M脚本属于解释型脚本,每一步都需要软件编译后执行,所以执行效率颇低。
本文使用Comsol 4.3b, Matlab 2013a,其他版本大部分雷同。
Comsol3.x用户的CwM 使用方法和4.x的完全不同,不在本文讨论范围。
另外Comsol3.5a用户比较悲摧,为保证CwM兼容性请选择Matlab2007b或之前版本,但也有兼容包,可以让其使用到Matlab2010左右。
这不是本文重点,仅仅是友情提示。
应该罗嗦下的:A. 启动这并不是问题,但往往会成为初学者的障碍。
Win平台下,配置好Matlab的根路径,双击COMSOL 4.3b with MATLAB即可启动。
Mac/Unix下,同样陪着Matlab根路径,执行comsol server matlab即可启动。
首次启动会提示输入 username 和 password对于绝大部分用户,你随便填什么都可以,只要保证输入合法有效即可,win下可能有防火墙提示,允许即可。
启动后,你会看到启动的是Matlab的界面,不要犹豫,CwM它就长酱紫。
当initializing结束后,状态栏显示ready,那么就万事OK,只等来炊。
B. 更换工作路径启动后,默认路径是%program files%\COMSOL\COMSOL的目录建议更换个默认工作路径,以免文件弄的混乱比如切换到 E盘work文件夹Matlab直接输入cd E:\work当然还有其他更换路径的方法,这里不讲,自行解决。
COMSOL与MATLAB联合仿真的实现方法
COMSOL与MATLAB联合仿真的实现方法作者:赵晓磊齐秋菊郭春超来源:《中国新技术新产品》2014年第24期摘要:本文在分析COMSOL与MATLAB这两款软件特点的基础上,研究了COMSOL 与MATLAB联合仿真的方法,通过COMSOL与MATLAB之间的相互调用,实现了MATLAB与COMSOL的数据传递,并结合实例介绍了联合仿真的方案,通过这两款软件的联合仿真,提高了仿真效率。
关键词:联合仿真;COMSOL;MATLAB中图分类号:TP31 文献标识码:ACOMSOL Multiphysics是一款大型的高级数值仿真软件。
广泛应用于各个领域的科学研究以及工程计算,被称为“第一款真正的任意多物理场直接耦合分析软件”。
在模拟科学和工程领域的各种物理过程中,COMSOL以高效的计算性能和杰出的多场双向直接耦合分析能力实现了高度精确的数值仿真。
COMSOL是以有限元法(FEM)为基础,通过求解偏微分方程来实现真实物理现象的仿真。
目前已经在声学、生物科学、化学反应、电磁学、流体动力学、燃料电池、地球科学、热传导、光学等领域得到了广泛的应用。
尽管COMSOL在仿真方面能力强大,但是由于软件没有可以输入程序的功能,使COMSOL对于进行大量重复性工作时,如果全由人工进行,工作量非常大。
而COMSOL其实是起源于MATLAB的Toolbox,最初命名为Toolbox 1.0。
因此这两款软件之间相互兼容,可以联合起来进行仿真。
这样,利用 MATLAB 进行编程,实现COMSOL的建模、计算、后处理等工作。
1 COMSOL与MATLAB 联合仿真的实现方案1.1 COMSOL 与MATLAB 联合仿真环境的连接方式本文采用的软件是Matlab2011b和COMSOL 4.3,系统为Win7,64bit。
安装顺序为先安装MATLAB,然后安装COMSOL到MATLAB的子文件夹下,并勾选link to MATLAB选项。
Comsol和Matlab
Comsol和Matlab 联合仿真的⽅法
1.联合使⽤Comsol和Matlab的原因:
尽管Comsol在仿真⽅⾯能⼒强⼤,但是由于软件没有可以与ANSYS⼀样输⼊程序的功能,使Comsol对于进⾏⼤量重复性⼯作时,如果全由⼈⼯进⾏,⼯作量⾮常⼤。
⽽COMSOL其实是起源于MATLAB的Toolbox的,最初命名为Toolbox 1.0。
这两款软件,可以联合起来进⾏仿真。
这样,利⽤MATLAB强⼤的计算功能,可以实现通过MATLAB进⾏编程,实现Comsol的建模,计算,后处理等⼯作。
sol与matlab联合仿真的实现:
所⽤软件为Matlab2011b和Comsol 4.2,系统为win7,64bit。
安装顺序为先安装Matlab,然后安装Comsol到Matlab的⼦⽂件夹2011b\bin\win64下,并勾选link to matlab选项,地址为2011b⽂件夹。
安装完毕后,打开Comsol with matlab,会打开matlab界⾯,然后⼿⼯打开Comsol。
这两个软件就通过⼀个共同的服务器联系在⼀起了。
sol 和Matlab相互调⽤的⽅法:
Matlab调⽤Comsol模型⽂件:对于Comsol中已经建好的某个模型,将其保存为Matlab可调⽤的.M格式⽂件,然后在Matlab的⼯作路径⾥找到这个⽂件并打开即可;
Comsol调⽤Matlab模型⽂件:对于Matlab中通过M语⾔已经编好的M模型⽂件,运⾏(Run),在Comsol的File下找到“从服务器导⼊模型”即可。
COMSOL软件介绍与应用
多孔介质传热传质报告题目姓名:学号:完成日期:COMSOL软件介绍与应用一、COMSOL Multiphysics软件介绍1.1 COMSOL Multiphysics软件简介COMSOL Multiphysics 是一款大型的高级数值仿真软件,由瑞典COMSOL 公司开发,广泛应用于各个领域的科学研究以及工程计算,被当今世界科学家称为“第一款真正的任意多物理场直接耦合分析软件”,适用于模拟科学和工程领域的各种物理过程,COMSOL Multiphysics以高效的计算性能和杰出的多场直接耦合分析能力实现了任意多物理场的高度精确的数值仿真,在全球领先的数值仿真领域里得到广泛的应用。
COMSOL Multiphysics 起源于MATLAB 的PDE Toolbox,最初命名为PDE Toolbox 1.0。
后来改名为Femlab 1.0(FEM 为有限元,LAB 为实验室),这个名字也一直沿用到Femlab 3.1。
从2003年3.2a 版本开始,正式命名为COMSOL Multiphysics。
在全球各著名高校,COMSOL Multiphysics 已经成为教授有限元方法以及多物理场耦合分析的标准工具,在全球500 强企业中,COMSOL Multiphysics 被视作提升核心竞争力,增强创新能力,加速研发的重要工具。
2006 年COMSOL Multiphysics 再次被NASA 技术杂志选为“本年度最佳上榜产品”,NASA 技术杂志主编点评到,“当选为NASA 科学家所选出的年度最佳CAE产品的优胜者,表明COMSOL Multiphysics 是对工程领域最有价值和意义的产品”。
COMSOL Multiphysics 软件设计理念独特,她抛弃了传统意义上的单元(库)的概念,抛弃了网格划分时单个单元刚度矩阵的概念,将多个偏微分方程(组)直接组装成一个总的刚度矩阵。
这样出现的结果即是,不管求解多少个物理场,我们只需选择对应的偏微分方程进行任意组合,软件自动联立求解,实现任意多物理场、直接、双向实时耦合。
COMSOL与MATLAB联合仿真的实现方法
数字 图像 ,包含了解码设施及互 通用 到 的接 口卡 ,通 常归 属 于 网卡 ,或 者 D D N 类别 的衔接配件 。接 口卡 的选取 ,要顾 及 到解码设施带有 的压缩水准 ,以及 电 信号所用 的路径种类。经由远程类监控
范畴,也提升 了通信 自身带有 的质量。 等配件 , 选取流水线及单一属. I 生的指令 , 体 系,可解析场地 内含的变电类设施真 目前 ,多 重 的 中小 级 别 变 电站 ,改 造 了 来优化 旧有 的处理器 。预设专门的整合 实状 态 。 三 、矩 阵带 有 的切换 构架 监控 的 图像 类 条 件 ;要 解 析 真 实 的 输 电 程 序,限缩 了芯片所 占的约束单元 ,从
合了存储设施及关联的处理端 口等,构
可 经 由剪 裁 及 延 展 的 步 骤 ,来 增 添 软 硬 可约束远端类的矩阵互换 ,采纳面对云 人类及输出类的视频复合。其 中,输 入 台及摄像所用体系的约束。远程类别 的 用 到 的 视 频 ,经 由 四种 路 径 来 构 建 ;而 配件具备的制约性能 。
信 息 技 术
N e wT 2 0 1 4 N O . 1 2( 下
远程视频图像监控在变 电站 设 计 中的实现
彭 华
如何使用COMSOL LiveLink with MATLAB的清单
cjmuqiao@ 编著 2017年8月1日
引子
责其所难,则其易者不劳而正;补其所短,则其长者不功而遂(资治通鉴) COMSOL是一个强大的多物理场仿真软件,容易上手,入门门槛低,便于对简单的模型进行计算。 我从2010年接触到现在,断断续续用它,用得 越多越发现高级用法竟然是和其它软件相结合. 比如和MATLAB。 当你要使用参数化设置时,比如使用自定义的函数时行边界条件设定, 又比如 使用复杂的模型的时候, 再比如进行后处理绘图时, 与MATLAB结合,更显强大。 事物发展的趋势就是多个优势结合,强强联合,而不是孤注一掷。个人觉得COMSOL这一点做得很好。
界面函数 函数 mphcd mphdoc mphload mphsave mphstart mphversion
功能 改变工作路径至模型路径,用法 mphcd(model) 返回帮助档 加载一个mph文件 保存模型文件 Matlab中启动Comsol Server 返回COMSOL版本号
几何函数 函数 mphgeom mphimage2geom
mpge文件为几何文件 mphimage2geom(imagedata,level,…) 高亮显示选择区域,注先标号,后类型 mphviewselection(model,geomtag,number,entity,...)
网格函数 函数 mphmesh mphmeshstats
你需要的内容的框架
1. Comsol w ith Matlab安装 2. Comsol w ith Matlab环境设置 3. 基础命令 4. API调用方法 5. 案例
建立随机几何模型 瞬态边界条件类型的改变 导出数据后处理 命令模式求解
【免费下载】COMSOL 命令集
1. <target>comsol : 启动COMSOLcomsol server : 启动COMSOL SERVER,用于联用MATLABcomsol client : 启动COMSOL CLIENTcomsol batch : 命令行模式的COMSOL,用于运行一个MPH算例或class文件comsol compile : 编译模型java文件,用于JAVA APIcomsol server matlab : 启动MATLAB并连接到COMSOL SERVER,SSH下个人推荐这种方式,原因自己体会comsol matlab : 启动MATLAB,并设置COMSOL的路径,不灵的(它没把mli下级目录添加进去,因此需要手动设置下)comsol convertpre35a : 转换COMSOL v3.x版本模型,我觉得是生成高版本的MPH或M文件comsol mph : 运行COMSOL并行模式(multiprocessing daemon)2. <options>-h : 屏显HELP<target> -h : 屏显<target>的HELP-32 : 32位模式-64 :64位模式-3drend ogl | sw : OpenGL的3D渲染-np <number> : 启动核数,WIN窗口模式默认启动全部核心,LIN则需要配置-numasets <number> : 非一致性内存访问 (NUMA)硬件可以通过将专用内存与 CPU 配对来显著提高性能,通常为CPU核sockets数-mpmode throughput | : 并行模式优化COMSOL与其他线程同时运行turnaround | : 并行模式在无其他任务进行时,优化COMSOL进程 owner : 并行模式在所有进程中,给予最高级的性能配置-blas {auto}| mkl | :basic linear algebra operations,COMSOL很多计算引擎依赖BLASacml | path : 使用BLAS库 mkl:intel的CPU,acml:AMD SSE2支持的CPU-blaspath <path> : BLAS库路径,与-blas path联用(环境变量为LD_LIBRARY_PATH)-ipv6 : IPV6支持-nn <number> : 节点数-nnhost <number> :每个HOST使用的节点数-mpi {auto} | intel |mpich2 | wccs2003 |whpc2008 | user| path :调用MPI库-mpipath <path> : MPI库路径-mpiroot <path> : MPI库root路径-mpirsh {rsh} | ssh : 在MPD模式下使用rsh或ssh-scalapack {auto} |mpich2 | wccs2003 |whpc2008 | user | path :Scalapcak库-scalapackpath <path> : Scalpack库路径-clusersimple :Simple cluser模式不知是神马-prefsdir <path> : 配置属性路径-tmpdir <path> : 临时文件路径-version : 屏显版本号-ckl : 使用class-kit 许可-forcegcc : 强制加载GCC库,通常是在联用MATLAB,而函数无法返回MATLAB时使用-forcecomsolgcc :与COMSOL强制加载GCC库,COMSOL通常默认使用系统GCC,当在无法正常启动COMSOL时,尝试使用该命令3. COMSOL SERVER 命令通用格式comsol [<options>] server [<target arguments>]comsol target arguments-user <user> : login user name-port <port> : TCP/IP port to listen-passwd <reset/nostore> : 当需要提供新密码时使用,如果不需要存储新密码联用nostore-login <{info}/force/never> : 查询登录信息-multi on | {off} : 允许client重复链接-silent : 不接受标准输入-graphics : 启动COMSOL的图形库,不在COMSOL的GUI下,但是是COMSOL的绘图模式4. COMSOL CLIENT 命令通用格式comsol [<options>] client [<target arguments>]-port <port> : 指定连接的端口-server <server name> :连接的server名5. COMSOL BATCH 命令COMSOL的无GUI模式,可以运行MPH算例及模型JAVA文件,模型JAVA文件运行前需要编译。
Matlab与COMSOL连接方案
Matlab与COMSOL连接方案
1、先运行起动菜单下comsol 4.0-client
server-comsol multiphysics 4.0 server。
2、等到出来让输入用户名时:随便输入个密码输入好后回车,然后重新输入一次。
3、关闭窗口。
完成上述步骤后,再重新启动comsol 4.0 with
matlab,进入了matlab2010a,但是matlab命令窗口中出现了java exception
occurred的错误。
试了很多次,该错误都是存在的,甚至更换操作系统都解决不了,有时候虽然不提示该错误,但是实际上也连接不上comsol。
最后怀疑是comsol4不认识matlab2010a,因为发布的比matlab2010a晚,所以尝试更换成matlab2009a,问题解决了。
另外在反复安装comsol过程中发现有时候装完没有了comsol 4.0 with
matlab,修复安装都没用。
但是经过重新安装就会出来。
还有就是如果之前在comsol multiphysics 4.0
server中输入过用户名和密码,即使卸载重装comsol4,该设置仍将保留。
解决办法是将C:\Documents and
Settings\用户名\.comsol文件夹删除。
4.0以后comsol with
matlab就没有界面了,只有一个控制台程序,comsol的界面和matlab是完全分开独立的两个东西,你在matlab里直接运行comsol脚本程是没有问题的。
COMSOL Multiphysics Livelink for MATLAB
COMSOL Multiphysics Livelink for MATLAB
中仿科技 王晓辉(Sean Wang)
May 4, 2020
仿真智领创新
Simulating inspires innovation
Interface Functions
• mphcd
: Change directory to the directory of the model
• mphdoc : Access HTML documentation
• mphload : Load a COMSOL model MPH-file
Using MATLAB Functions in the COMSOL Desktop
• Defined under Global Definitions
Under the Hood
• An external function defined in the COMSOL Desktop is evaluated in MATLAB. The result is sent back to COMSOL
• mphint2
: Perform integration of expressions
• mphinterp
: Evaluate expressions in arbitrary points
• mphmax
: Perform maximum of expressions
• mphmean
: Perform mean of expressions
cache
完整的MATLAB与COMSOL连接操作规范
完整的MATLAB 与COMSOL 连接操作规范一、安装MATLAB ;安装完如图1.图1.注意这里不一定是D 盘其他盘也以。
安装完红框标注的文件夹内容如图2.图2.2010.03.11信徒下一步将安装COMSOL 。
二、安装COMSOL ,注意与MATLAB 的安装顺序不可以变,否则如下的操作没法进行,其他注意事项如下:1. 注意COMSOL 的安装位置在MATLAB 安装位置的目录下:例如D :\MATLAB7.0则那么COMSOL 的安装位置为D :\MATLAB7.0\ 下;如图3.第一个红线标注处。
即图4.所示图3图4.2. 同是在图3.勾选第二红线标注的选项框,未勾选前如图5.所示,勾选后如图3所示3. 勾选后在MATLAB 安装文件夹选项中选择MATLAB 的目录,例如D :\MATLAB7.0,先好后如图3.所示三、完成以上设置后点击图3.所示的下一步,直至COMSOL 安装完毕。
四、以上是安装过程中注意的事项,下面介绍如何启动连接,启动连接有两种方式: 1. 运行安装目录下的COMSOL with MATLAB ,同时打开COMSOL 和MATLAB 即可。
2. 打开COMSOL 后,运行“文件>用户端/服务端/MATLAB>连接到MATLAB ”,打开MATLAB 即可。
以上两种方式任何一种操作都可以完成连接,连接后就可以把COMSOL 脚本生成的m 文件放在MATLAB 中运行,并且也可以在在MATLAB 中修改,总之连接后两个软件就完2010.03.11信徒2010.03.11信徒全融合成一个软件了!图5. 五、为了和图1.对比下,下面再给出安装完成后的MATLAB 文件夹的内容,如图6.图6.通过对比我们看到安装完毕后文件夹中多出了一项即红线标注的!六、结束语 2010.03.11信徒2010.03.11信徒为了保证连接的成功,注意一下几点:第一、 两个软件版本的兼容性,这个可以在COMSOL中查到;第二、 每次用完后最好在COMSOL中正常退出连接,以便下次连接时的成功性。
matlab(simulink)+simplorer+maxwell-电机联合仿真-svpwm-EMIl滤波器-差共模信号分离
Conclusion
The results are basically satisfactory.
My boss gives me this task in last November and I have finished it in the beginning of this semester. Now what I am doing is the EMI filter. That’s what I want to talk about next.
The transformer output is inconsistent with expectations. Normal operating frequency of the transformer can’t meet the needs.
Solution
Search for transformer meet requirements: can stably work from 150kHz to 30MHz.
Motor model in Maxwell (cut surface figure, 48 stator slots, 38 rotor slots)
Generate svpwm waveform circuit in MATLAB
The total co-simulation circuit in Simplorer
Maxwell
establish motor model
Simplorer
design control circuit
MATLAB (simulink)
use the sub-library simpowersystems to make electrical simulation to generate svpwm wave
MATLAB 和COMSOL 介绍
构造矩阵的 3、矩阵函数 矩阵计算的 四、算术运算符
zeros, ones, eye, rand, diag, triu, tril, … size, det, rank, inv, eig, trace, norm, …
矩阵的输入和运算
一、矩阵的输入 1、一维矩阵的输入 (1)逐个输入法:如果数据元素之间均用空格(或逗号)隔开,该向量称 为行向量;如果数据元素之间均用分号隔开,该向量称为列向量。 例:x=[2 3 sqrt(3) 5] (2)冒号生成法:x=first:increment:last,表示包含由first开始,步长 为increment,到last结束的整数组成的行向量。 例:x=0:pi/4:pi (3)利用内部函数:x=linspace(first,last,n),创建从first开始,到 last结束,有n个元素的均匀间隔的行向量。 例:x=linspace(0,pi,5)
MATLAB还提供了一些固有变量,即有特殊含义的内部常数:
三、函数
ans—用于结果的缺省变量名。 pi—圆周率。 i或j—表示虚数单位 inf—无穷大数,如1/0
1、标量函数: 三角、指数、对数、取整(fix)、开方(sqrt)等基本函数 作用于标量或矩阵(数组)的每一元素 2、向量函数: max, min, sum, length, … 作用于(列或行)向量或矩阵的每一列向量
6、图形功能强大。在FORTRAN和C语言与眼里,绘图都很不容 易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有 较强的编辑图形界面的能力。 7、功能强大的工具箱。MATLAB包含两个部分:核心部分和各种可选 的工具箱。核心部分中有数百个内部函数。其工具箱又可分为两类:功 能性工具箱和学科性工具箱。这些工具箱都是由该领域内的学术水平很 高的专家编写的,所以用户无需编写自己学科范围内的基础程序,就可 以直接进行高、精、尖的研究。 8、源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。 除内部函数以外,MATLAB的所有核心文件和工具箱文件都是可读可 改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新 的工具箱。 9、MATLAB的缺点是,和其他高级程序相比,程序的执行速度较 慢。由于MATLAB的程序不用编译等预处理,程序为解释执行, 所以速度较慢。
基于comsol的拓扑优化及联合仿真
《装备制造技术》2019年第09期拓扑优化是根据负载情况、约束条件(如应力、位移、频率和重量等)和性能指标(刚度、重量等),利用有限元分析和优化方法,使设计域达到最优材料布局的一种结构优化方法[1]。
目前,连续体拓扑优化的研究已经较为成熟,现有的商业有限元软件基本都可以进行拓扑优化,但每款软件的优化模块各有区别,关于参数的设置也多种多样,通用性较差,同时,对用户的使用要求较高,不适于拓扑优化的利用和推广,一定程度上迟滞了结构优化的发展,因此,提高拓扑优化的在仿真中的通用性和工程应用中的应用效率对结构优化具有重要意义。
1拓扑优化基本理论1.1变密度法结构优化设计是用系统的、目标定向的过程与方法代替传统设计,其目的在于寻求既经济又适用的结构形式,以最少材料、最低造价实现结构的最佳性能。
一般地,优化问题的数学模型可表示为:find X=[x1,x2,...,x n]Tmax f(X)or min f(X)s.t.g i(X)≤0(i,1,2,...,n)h j(X)=0(j,1,2,...,n)(1)式中:X为设计变量,f(X)为目标函数,g i(x),h j(x)为约束条件。
假设设计域由有限个单元组成,变密度法的基本思想就是定义一种密度可变的材料单元填充设计域,取值定义在(0,1)区间内,取0表示孔洞,取1表示实体,则优化问题转变为0-1问题。
在拓扑优化中,希望优化后的结构在保持最大应力承受极限的情况下质量减少,对于大多数工程上的零件,均采用统一结构制造,则质量最小可以等价为体积最小。
优化的目标一般是结构的刚度,为了在数学上方便凸优化计算,将刚度最大等效为柔度最小,其模型表达为:find X=[x1,x2,...,x n]Tmin C(x)=F T Us.t.V*≤fVF=KU0<x min≤x i≤1(j,1,2,...,n)(2)式中:C(x)为柔度,V为设计域初始体积,f为体积约束因子。
[转载]Comsol和Matlab联合仿真
[转载]Comsol和Matlab联合仿真
1、建立模型
可以在Comsol中先建立好模型或者执行一些操作,然后再通过菜单“文件”->“另存为模型M文件”,查看M文件中的语句,即可了解相应的操作过程和Matlab调用语法;
例:
上面的这个例子,在Comsol中新建了一个3维模型的稳态分析,将单位设置为mm,几何模型中建立了一个长方体,宽度100,深度50,高度10。
基本上通过函数的命名即可看出其实际的意义。
倒数第二句mphgoem函数的作用是在Matlab的Figure中显示几何模型。
打开桌面上的“COMSOL 4.2 with MATLAB”快捷方式,然后运行上述代码,即可看到如下结果:
2、设置材料
设置材料也可以在Comsol中先设置好,然后再另存为模型M文件,下面代码将上述模型材料设置为铝,对于结构分析来说其实关键设置杨氏模量、泊松比和密度就可以了;
3、划分网格
划分网格并显示的代码如下(自由划分网格):
其中mphmesh函数是显示划分的网格,结果如下:
4、设置载荷和约束
本例约束长方体的下表面,设置体载荷重力载荷,重力方向为Z 轴负方向,设置代码如下:
设置约束时需要选择约束的位置,上面的第二行代码中的[3]为长方体下表面的编号。
5、求解
求解的代码如下:
最后的mphplot函数的作用是在Matlab的Figure中显示分析结果,如下所示:
问题:最终显示结果默认是Von Mises应力的云图,如何设置单独显示变形的云图?结果数据如何导出?
通过为知笔记发布。
基于NX与MatlabSimulink的协同仿真与应用
基于NX与Matlab/Simulink的协同仿真与应用1引言传统的机电产品设计中,机械结构设计和控制系统设计是各自独立的,分别采用功能不同的软件进行设计、调试和试验,最后通过物理样机,进行机械结构和控制系统的联合调试,如果发现问题,需要各自分别修改,然后再进行物理样机的制造和调试,这需要较长的开发周期[1]。
NX是当今世界最先进的CAD/CAM/CAE三维集成化软件之一,为用户提供了一整套集成的、全面的产品开发解决方案,用于产品设计、分析和制造,广泛应用于航空航天、汽车、通用机械和电子等工业领域。
Simulink是MA TLAB中的一种可视化仿真工具,它提供了一个动态系统建模、仿真和综合分析的集成环境,被广泛应用于控制理论和数字信号处理的复杂仿真和设计,是常用的控制系统设计软件之一。
利用NX与Simulink的协同仿真,可以将机械结构与控制系统设计仿真软件有机结合起来,然后对系统进行协同分析,直到获得满意的设计效果,这大大的提高了设计效率,缩短了开发周期,降低了开发产品的成本,获得了优化的系统整体性能。
本文介绍了NX8.0与Matlab/Simulink(2010A)协同仿真的方法,通过该方法,可充分发挥软件各自的特长,为复杂机电产品设计仿真提供一集成化平台。
2 NX与Simulink协同仿真流程NX与Matlab/Simulink实现协同仿真的流程如下:1)在NX中完成机械结构的设计。
2)在NX用户默认设置中指定可执行文件matlab.exe的位置(文件→用户默认设置→运动分析→分NX的运动仿真模块,指定动力学分析,高级解算方案选择协同仿真。
4)设置控制/动态解决方案。
解算方案类型选择常规驱动,分析类型选择控制/动力学。
5)根据具体情况创建运动副、连杆、标记点(Marker)、传感器等,传感器必须依靠标记点才能把信息通过工厂输出传递给控制系统。
6)创建工厂输入。
工厂输入是Simulink控制系统输出到NX机械机构信息的容器,Simulink中的控制系统把生成的输出信号保存在工厂输入中,工厂输入可以是力、扭矩等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
联合应用COMSOL和MATLAB进行参数反分析研究
李仁民
东南大学岩土工程研究所
电话:1305186902
Email :77482623@
Comsol
2009
污染离子在垫层中的运移问题污染离子在垫层中的运移问题。
问题的过程背景问题的提出
问题的提出
初始条件(非稳态问题)
0(,0)()
c x c x = 边界条件
,0i i c c =(,)
i n N f c ϕ−⋅= 给定边界上各点的电位
0V ϕ= 给定固相颗粒表面电荷密度
σσ= 给定边界上各点的浓度或流量
源溶液源溶液Cl Cl -浓度
问题的提出
参数反分析数学模型*)(min f x f −b b u
x l ≤≤T n x x x x ]
,...,,[21=目标函数
约束条件分别为第分别为第i i 离子的有效扩散系数和有效电荷密度难点难点::(1)目标函数求解
(2)最优化求解问题 参数反分析模型参数反分析模型
有约束的非线性最优化求解 SQP SQP 的基本思想是在每次迭代中用的基本思想是在每次迭代中用拟牛顿法来近似Lagrangian Lagrangian 函数的函数的函数的Hessian Hessian Hessian矩阵矩阵矩阵,,将约束化问题
(Constrain Question Constrain Question ))转化为求解一系列的二次规划问题划问题,,也就是每次迭代步骤中解决一个二次规划子问题,求该求该SQP SQP SQP问题的解问题的解问题的解。
x0=[0.5;0.5];xm=[0.01;0.01];xM=[1;1];
A=[];B=[];Aeq=[];Beq=[];
[x,f_opt,c,d]=fmincon ('PNP ',x0,A,B,Aeq,Beq,xm,xM,'cffun',ff);
Comsol with Matlab
function wcfun=PNP
(x)DD1=2.032E-
9*x(1); DD2=1.334E-
9*x(2);DD3=1.957E-9*x(3);。
% wcfun=计算值-实测值
COMSOL Multiphysics Model M-
file 目标函数:采用Comsol Multiphysics 多物理场耦合分析软件求解多物理场耦合分析软件求解。
该软件可以使用图形用户界面创建复杂的模型图形用户界面创建复杂的模型,,并将之直接存储为M -file file脚本文件脚本文件,通过其二次开发工具COMSOL Script COMSOL Script或者或者或者Matlab Matlab Matlab可以编辑可以编辑可以编辑、、扩展以及执行这些及执行这些M M -file file脚本文件脚本文件脚本文件。
)ˆˆ(ˆ,f x f i i f i x i eff i c RT
F z c D j ϕφ∇+∇−=X F c
z F N
i i i x x eff ˆˆ1ϖϕε+=∇⋅∇−∑=
根据Comsol几何建模,另存为.m文件
% COMSOL Multiphysics Model M-file
function y=PNP(x)%x-为输入参数
DD1=2.032E-9*x(1);%参数1
DD2=1.334E-9*x(2);%参数2
DD3=1.957E-9*x(3);%参数3
% Constants-定义常数
fem.const = {'F','96500', ...
'D1',DD1, ...
'D2',DD2, ...
'D3',DD3, ...
'neff','1'};。
xxt=0.01:0.01:0.04; %测点对应的x坐标
c1test =[48,40,35,25]; %实测值
c1js=postinterp(fem,'c1',xxt); %后处理--取计算值
y=sqrt(sum((c1js-c1test).^2));
% y-目标函数编辑.m文件
氯化钠盐溶液在土样中的扩散问题,试样长度0.10m,左边源溶液中氯离子、钠离子浓度在试验过程中保持不变。
初始t=0时,试样中浓度为零,右边浓度取对称边界;左右两边电势、试样中初始电势均取零。
实例验证
反分析模型
分布步骤
先以给定的宏观运移参数计算获得的浓度值作为正解; 将计算所得的测点浓作为观测值,进行宏观运移参数的反分析。
实测浓度和反算浓度对比表实测浓度和反算浓度对比表((算例算例11,100h 100h))
参数反分析模型及结果
三个及以下参数采用有约束的非线性最优化求解,收敛速度快,精度高;
三个以上参数,容易陷入局部最优;
可以采用遗传算法(单种群、多种群、改进遗传
算法等)
四参数反分析结果
五参数反分析结果
多离子非稳态土柱扩散试验分析Hong and Shackelford 2009
试验试验土样土样土样::75%砂,25%凹凸棒石粘土棒石粘土,,采用标准击实试验
制备 ZnCl2在土样中扩散共8组:C7C7--1、C7C7--2、UC7UC7--1、UC7UC7--2;C14C14--1、C14C14--2、UC14UC14--1
、UC14UC14--2。
试样中Cl-浓度
源溶液
源溶液Cl
反分析获得的有效扩散系数多离子运移模型反分析获得的有效扩散系数宏观PNP多离子运移模型
计算结果与实测结果对比
计算结果与实测结果对比计算结果与实测结果对比((试验试验C14C14C14--1)
建立基于宏观建立基于宏观PNP PNP PNP多离子运移模型的参数反分析模多离子运移模型的参数反分析模型,采用有约束的非线性最优化和多种群遗传算法求解求解,,编制了相应的编制了相应的Matlab Matlab Matlab和和Comsol Comsol程序程序程序,,并采用有限元正反分析进行了验证有限元正反分析进行了验证。
小结
有约束的非线性最优化求解算法收敛速度快有约束的非线性最优化求解算法收敛速度快,,精度高度高,,三个以上参数三个以上参数,,易陷入局部最优易陷入局部最优;;多种群多种群遗遗传算法具有良好的全局寻优传算法具有良好的全局寻优,,但速度较慢但速度较慢,,精度略低
谢谢!。