armax函数 matlab 源码_Matlab与CST MWS交互

v2-eb8816196f93c9b37b32a05249353db5_1440w.jpg?source=172ae18b

背景介绍

理工科的同学对Matlab应该都不陌生,一款强大的数值计算软件。那么CST MWS对不是电磁场相关专业的同学来说应该就知之甚少。简单介绍下CST MWS, CST MWS全称是 CST MICROWAVE STUDIO, 一款电磁仿真软件。本人因为专业需求,使用该软件进行天线的设计和仿真。在数据后处理阶段,由于操作繁复枯燥,很费时间。常常花费数个小时的时间在软件里面点点点的导数据,非常的低效和乏味。个人科研的重点是分析和处理这些数据,而不是操作软件。于是就幻想能不能通过代码来帮助我完成这些工作,可能懒惰才是创新的动力。

前期调研

闲暇的时候就浏览论博客,去论坛提问,试图找到前人相关的工作。有很多相关的但很悲伤都不是我想要的,无意间在youtube看到下面这个视频,让我觉察到了曙光。

v2-56c0be04ece1925575c29df30a9e84a4_b.jpg

可惜我没有找到视频相关的源码,但是我并不用代码来完成天线建模设计,仿真设置等工作,和视频中要做的还是不同的,我要做到是仿真完成后的数据后处理,所以有没有源码不重要,这个视频告诉我Matlab可以能做我想完成的事情。视频中提到一个CST-MATLAB-API的库。我觉得这个是代码的关键,后面终于让我在github上找到了,高兴出猪叫。

simos421/CST-MATLAB-API​github.com
v2-ed556641cf53d840c71435530c902171_ipico.jpg

这个库中对于我想做的事情是不能直接拿来用,但是通过仔细研究他的代码。明白了Matlab控制CST MWS的方法,这是一种对COM对象的操作,Matlab做为客户端,CST MWS做为服务端。有两个重要的函数

actxserver();

激活一个服务端,建立通信联系。常见的例子的是操作Excel,word,没想到可以用来控制CST MWS。

invoke();

发送相关的指令。在研读上面那个库的代码的时候,我就在思考这里指令哪里来的,后面研究CST MWS自身支持的脚本VBA时我找到了参考。这里面的所有对象的属性和方法,都能做为invoke()函数的参数,只是都要加单引号。

CST Studio VBA Objects​www.mweda.com

实践操作

下面用我写的代码给大家演示下效果(ps: 由于是个实际的手机模型,项目文件比较大,打开的过程比较长,CST里面的所有操作都是Matlab代码完成的,结果保存在Matlab程序的RESULT文件夹下面)。首先言明我想做什么,我要导出MIMO 天线的所有端口在目标频点的3维远场数据和各个端口的S参数,然后进行信道的仿真。

v2-ffbf88cb248e14bedf7de3fa8e572199.jpg
https://www.zhihu.com/video/1138923478886518784

看效果可能体会不是很明显,但是这个真的很节约时间,可以说是一劳永逸。每次导数据的时候只用修改下文件名,想导的目标频点以及导出后的文件名即可。试想下设计8 port 多频的MIMO 天线,要是手工导数据,得导几十个文件,重复的点点点,浪费时间且没有意义,代码能帮助解放生产力,提高效率。

附上程序

供需要的参考学习

1 main.m

clc

以及调用的函数

2 ExportEPattern.m

function

3 ExportTouchstone.m

function
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值