【CST宏代码】批量导出S-parameters

CST模型:

假设一个CST模型具有三端口,每个端口考虑4阶模式,则该模型的S矩阵可以表示为:

S=\begin{bmatrix} S_{11} & S_{12} & S_{13} \\ S_{21} & S_{22} & S_{23}\\ S_{31}&S_{32} &S_{33} \end{bmatrix}, S_{ij}=\begin{bmatrix} S_{ij}^{(1)(1)}& S_{ij}^{(1)(2)} &S_{ij}^{(1)(3)} &S_{ij}^{(1)(4)} \\ S_{ij}^{(2)(1)}& S_{ij}^{(2)(2)} &S_{ij}^{(2)(3)} &S_{ij}^{(2)(4)}\\ S_{ij}^{(3)(1)}& S_{ij}^{(3)(2)} &S_{ij}^{(3)(3)} &S_{ij}^{(3)(4)} \\ S_{ij}^{(4)(1)}& S_{ij}^{(4)(2)} &S_{ij}^{(4)(3)} &S_{ij}^{(4)(4)} \end{bmatrix}

其中,下标代表端口序号,上标代表模式序号。由此可见,该模型具有 9*16 =144 条 S 参数曲线,在CST软件中分别显示为S1(1),1(1), S1(2),1(1), ... S3(4),3(4)。

如果需要将它们全部导出保存为 .txt文件,通过手动导出的方式费时费力,利用CST自带的macros编辑器,可以实现自动批量导出。

CST的宏代码是基于 Microsoft VBscript语言编写的,实现上述功能的代码及注释如下:

Option Explicit

Sub Main	
    '定义端口数量n_port. 例如,模型有三个端口,则 n_port=3
    Dim n_port
        n_port = 3

    '定义端口序号数组p(n). 由于数组从0开始,所以p(n)共有n+1个元素[p(0), p(1), ..., p(n)]
    Dim p(2)

    '端口序号数组赋值. 例如,三端口的序号分别为2,3,5,则 p(0) = 2, p(1) = 3, p(2) = 5, 根据实际情况修改
    p(0) = 1
    p(1) = 2
    p(2) = 3

    '定义端口模式数组q(n).
    Dim q(2)

    '端口模式数组赋值. 例如,三端口的模式阶数分别为2,5,1,则 q(0) = 2, q(1) = 5, q(2) = 1, 根据实际情况修改
    q(0) = 4
    q(1) = 4
    q(2) = 4

    '定义For循环所用的遍历变量, CST中所有S参数均可通过i,j,m,n来定位,如Si(m),j(n) 
	Dim i, j, m, n

    '定义中间量 i0, j0 用以指向p(n); 定义中间量 m0, n0 用以指向q(n)
    Dim i0, j0, m0, n0

For j = 0 To n_port-1
	j0 = p(j)
	n0 = q(j)-1

For n = 0 To n0

For i = 0 To n_port-1
	i0 = p(i)
	m0 = q(i)-1
	
For m = 0 To m0
    
    '定义需要导出的S曲线文件名,也可用于导出其他曲线,根据实际情况修改
	SelectTreeItem ("1D Results\S-Parameters\S" + CStr(i0) + "(" + CStr(m+1) +"),"+ CStr(j0) + "(" + CStr(n+1) + ")")

    '导出.txt 操作指令
	With ASCIIExport
	.SetfileType("csv")

    '保存路径及保存文件名,根据实际情况修改
	.filename ("E:\xxx\S" + CStr(i0) + "(" + CStr(m+1) +"),"+ CStr(j0) + "(" + CStr(n+1) + ").txt")
	.Execute
	End With
	Next
	Next
Next
Next
End Sub
	

本人不是专业码农,编码属于野路子自学,代码不简洁实属正常发挥。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值