赞
踩
理工科的同学对Matlab应该都不陌生,一款强大的数值计算软件。那么CST MWS对不是电磁场相关专业的同学来说应该就知之甚少。简单介绍下CST MWS, CST MWS全称是 CST MICROWAVE STUDIO, 一款电磁仿真软件。本人因为专业需求,使用该软件进行天线的设计和仿真。在数据后处理阶段,由于操作繁复枯燥,很费时间。常常花费数个小时的时间在软件里面点点点的导数据,非常的低效和乏味。个人科研的重点是分析和处理这些数据,而不是操作软件。于是就幻想能不能通过代码来帮助我完成这些工作,可能懒惰才是创新的动力。
闲暇的时候就浏览论博客,去论坛提问,试图找到前人相关的工作。有很多相关的但很悲伤都不是我想要的,无意间在youtube看到下面这个视频,让我觉察到了曙光。
可惜我没有找到视频相关的源码,但是我并不用代码来完成天线建模设计,仿真设置等工作,和视频中要做的还是不同的,我要做到是仿真完成后的数据后处理,所以有没有源码不重要,这个视频告诉我Matlab可以能做我想完成的事情。视频中提到一个CST-MATLAB-API的库。我觉得这个是代码的关键,后面终于让我在github上找到了,高兴出猪叫。
simos421/CST-MATLAB-APIgithub.com这个库中对于我想做的事情是不能直接拿来用,但是通过仔细研究他的代码。明白了Matlab控制CST MWS的方法,这是一种对COM对象的操作,Matlab做为客户端,CST MWS做为服务端。有两个重要的函数
actxserver();
激活一个服务端,建立通信联系。常见的例子的是操作Excel,word,没想到可以用来控制CST MWS。
invoke();
发送相关的指令。在研读上面那个库的代码的时候,我就在思考这里指令哪里来的,后面研究CST MWS自身支持的脚本VBA时我找到了参考。这里面的所有对象的属性和方法,都能做为invoke()函数的参数,只是都要加单引号。
CST Studio VBA Objectswww.mweda.com下面用我写的代码给大家演示下效果(ps: 由于是个实际的手机模型,项目文件比较大,打开的过程比较长,CST里面的所有操作都是Matlab代码完成的,结果保存在Matlab程序的RESULT文件夹下面)。首先言明我想做什么,我要导出MIMO 天线的所有端口在目标频点的3维远场数据和各个端口的S参数,然后进行信道的仿真。
看效果可能体会不是很明显,但是这个真的很节约时间,可以说是一劳永逸。每次导数据的时候只用修改下文件名,想导的目标频点以及导出后的文件名即可。试想下设计8 port 多频的MIMO 天线,要是手工导数据,得导几十个文件,重复的点点点,浪费时间且没有意义,代码能帮助解放生产力,提高效率。
供需要的参考学习
1 main.m
clc
以及调用的函数
2 ExportEPattern.m
function
3 ExportTouchstone.m
function
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。