- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
CST与Matlab连接设置
这里说明如何将CST 微波工作室(CST MWS)与MATLAB 一起使用。MATLAB 是以线性代数和矩阵数学为基础的科学计算程序。COM(组件对象模型)和 ActiveX 用来通过 CST MWS 的VBA 宏语言与 MATLAB 连接。CST MWS 与 MATLAB 连接的主要目的在于想利用MATLAB 的广泛的数据处理、信号处理和图 形处理能力。
COM 和 ActiveX 接口允许两个程序在工作后台的数据传递和紧密结合。这里所描述的连接方法对CST 工作室的其他产品都适用,同样也适用于将CST 工作室与任意其他以Windows 为基础的第三方软件相连接,比如: MATHCAD, MATHEMATICA, MAPLE 等。
1. 背景
假设用户已经熟悉与CST MWS VBA兼容的宏语言。如果用户对宏语言不熟悉,可以参考 CST 微波工作室的Advanced Topics manual(高级用户手册)。
CST MWS 可以设置成控制MATLAB 或者是受MATLAB 控制。当CST MWS 控制MATLAB 时,CST MWS 是客户系统,MATLAB 是服务系统,反之亦然。该用户说明主要是关于CST MWS 作为客户系统,MATLAB 作为服务系统。
在 MATLAB 的主页上可以得到更多的使用和编程方面的相关信息。MATLAB 中COM 对象技术的相关说明也可以通过在MATLAB 命令窗口中输入以下命令来获得。
h=actxserver(‘Matlab.Application’); invoke(h);
命令窗口中会出现以下语句:
Execute=String Execute(String)
GetCharArray=String GetChatArray(String,String)
GetFullMatrix=Void GetFullMatric(String,String,Variant(Pointer),Variant(Pointer))
MaximizeCommandWindow=Void MaximizeCommandWindow() MinimizeCommandWindow=Void
MinimizeCommandWindow() PutCharArray=Void
PutCharArray(String,String,String)
PutFullMatrix=Void PutFullMatrix(String,String,SafeArray,SafeArray)
Quit=Void Quit()
以上指令可以用于在 MATLAB 中发送、获取和处理数据。该执行方法可以用于 MATLAB 中任意语句,让用户感觉到与直接在MATLAB 的命令窗口中编程一样。
2. CST 与MATLAB连接例子说明
以下将通过一个具体的例子来说明 CST 与 MATLAB 是如何连接的。该例子通过一个CST VBA宏MATLAB Data Exchange来实现。
该宏主要是关于在CST MWS和 MATLAB之间交换数据。数据交换将CST 项目中的仿真结果S11 的数据线性地传递给 MATLAB,由MATLAB 计算S11 的dB 值,再将计算后的值送回到CST MWS,并在1D Result中画出。
3. 具体处理过程
这个宏用来证明COM 对象方法的正确使用,同样它们仅仅局限于一个端口/一种模式的结构。很容易扩展到任意端口、任意模式。你使用 CST MWS 的电脑上必须安装MATLAB。这些宏都可以集成到任一个可仿真获得S11 的CST MWS 的项目中。
将该宏文件放置在项目目录下的 Model3D 文件夹中,这样仿真完成后选择菜单中的 Macros,最下方列出的局部宏就是“MATLAB Data Exchange”。
选择 MATLAB Data Exchange,CST MWS 将会启动 MATLAB,在出现的 MATLAB 窗口中将会以dB 的形式显示S11 的值。确保MATLAB 命令窗口依然开着,点击 MATLAB 的命令窗口,在命令行中输入whos 命令显示这些内部变量。注意到这些变量在MATLAB 中以cst_data.mat 文件存储,该文件存在C:Program FilesCST Matlab data 目录下。返回 CST MWS 窗口中,在1DResults > Matlab > S11dB 中可以找到在MATLAB 中计算得到的S11dB值。
点击 CST MWS 的 Macros 菜单,在下拉菜单中选择 Edit/Move/Delete VBA Macro 子菜单。从结果列表中选中MATLAB Data Exchange,并且选择 edit。MATLAB Data Exchange 的VBA脚本将会在VBA editor 中出现。你可以滚动察看应用细节。脚本的第一部分标志为 user defined settings(用户定义的设置)。Matlab_visible 可以被设置为Ture 或者False,使得MATLAB命令窗口在计算结束时保持开启或者关闭状态。
User_path中包含了所有文件存储的完整路径和MATLAB 的设置路径。Save_file_name文件中指定了MATLAB 数据存储的.mat文件的名称。独立的MATLAB脚本文件(.m文件)则能够通过 COM对象方法的执行而运行。