VNA校准件参数提取
中文摘要
本文简单阐述了一种利用脚本来拟合校准件参数的方法。

过了年喜提KC901V一台,可惜科创这边没有SMA的校准件,于是上淘宝随便买了一套。但是这种随便买的并不会提供校准件的校准参数,导致校准完以后还是不准。在网上寻寻觅觅,发现了国外一个同好自己写了个小程序来从实测的S11中拟合校准件的三阶校准参数和延时,拿来试了一下,感觉还不错。看起来是一段传输线+三阶参数的模型。

周末在工厂出差,到现在板子都没贴出来,闲着没事给大家分享一下。

脚本是基于GNU Octave编写的,需要两个第三方的库,一个是SparameterToolBox,另一个是NLopt。SparameterToolBox的安装十分方便,只需要把路径放进Octave的查找路径下面就好。NLopt的安装十分麻烦,且官方文档给出的说明语焉不详,最后还是靠github上一位热心老哥的说明才成功搞定。

首先下载好编译好的dll和NLopt的源码,然后按照下面步骤进行操作,如果不出意外你应该可以成功的得到oct文件。下面说明摘自https://github.com/stevengj/nlopt/pull/287

### Octave plugin    


To build the NLopt plugin for [GNU Octave](https://en.wikipedia.org/wiki/GNU_Octave) (a free Matlab clone, which uses the [same NLopt interface as in Matlab](NLopt_Matlab_Reference.md)), you will need the following additional steps. (See [Octave for Windows](https://wiki.octave.org/Octave_for_Microsoft_Windows) on the Octave web page to download Octave.)    


1. Copy `libnlopt.dll` from `build` to `C:\Octave\Octave-X.X.X.X\mingw64\bin`    

2. Copy `nlopt.f`, `nlopt.h`, and `nlopt.hpp` from `build\src\api` to `C:\Octave\Octave-X.X.X.X\mingw64\include`    

3. Create a folder named "nlopt" inside `C:\Octave\Octave-X.X.X.X\mingw64\lib\cmake`    

4. Copy `NLoptConfig.cmake`, `NLoptConfigVersion.cmake`, `NLoptLibraryDepends.cmake`, and `NLoptLibraryDepends-release.cmake` from `build` and `build\CMakeFiles\Export\lib\cmake\nlopt`, respectively, to `C:\Octave\Octave-X.X.X.X\mingw64\lib\cmake`    

5. Copy `nlopt.pc` from `build` to `C:\Octave\Octave-X.X.X.X\mingw64\lib\pkgconfig`    

6. Copy `libnlopt.dll.a` from `build` to `C:\Octave\Octave-X.X.X.X\mingw64\lib`    

7. Compile the Octave plugin (`.oct` file) with `mkoctfile -lnlopt --output nlopt_optimize.oct nlopt_optimize-oct.cc` (`mkoctfile` is a program included with Octave)


上面操作完成后,打开脚本文件,按照说明执行即可,对结果不满意,可以尝试修改下脚本中标明[tweak]的部分。下面附上我自己的结果。S11文件来自公司的R&S 100K-8.5G VNA,使用ZV135校准件校准。

开路件:

open100k-7g-7001-average_S11_dB_meas_mod.png open100k-7g-7001-average_S11_meas_mod.png open100k-7g-7001-average_delta_S11_meas_mod.png



offs_delay = 65.239249 ps

offs_loss = 6.595951 Gohm/s

offs_Z0 = 47.849356 ohm

C0 = -382.876602 * 1e-15 F

C1 = -6144.818923 * 1e-27 F/Hz

C2 = 1620.049213 * 1e-36 F/Hz^2

C3 = -360.441560 * 1e-45 F/Hz^3


短路件:

short100k-7g-7001-average_S11_dB_meas_mod.png

short100k-7g-7001-average_S11_meas_mod.png

short100k-7g-7001-average_delta_S11_meas_mod.png

offs_delay = 28.612214 ps

offs_loss = 10.400061 Gohm/s

offs_Z0 = 49.042136 ohm

L0 = 867.907873 * 1e-12 H

L1 = 198.143414 * 1e-24 H/Hz

L2 = 2449.191930 * 1e-33 H/Hz^2

L3 = 300.502018 * 1e-42 H/Hz^3


负载的结果比较奇怪,而且KC901V里面也好像没有定义负载的地方,所以就不放出来了。开路件的拟合看起来比较准一些,短路件就一般般。KC901V使用拟合参数,外接一N转SMA头再加1米长电缆,校准后的结果看下图。虽然跟那种校准以后缩成一个点没法比,但是凑合凑合应该还是可以的。

MVIMG_20210314_120411.jpg


参考链接:

https://nlopt.readthedocs.io/en/latest/

https://github.com/stevengj/nlopt

https://www.qsl.net/in3otd/electronics/VNA_calkit/calkit.html


attachment icon nlopt-2.6.1.zip 2.07MB ZIP 3次下载

attachment icon NLopt.v2.6.1.x86_64-w64-mingw32.tar.gz 310.80KB GZ 3次下载

attachment icon SparameterToolBox.zip 25.47KB ZIP 1次下载

attachment icon calkit_model.m 15.68KB M 2次下载


[修改于 1 个月前 - 2021-03-14 12:06:55]

该用户不需要名字
1个月7天前
1楼

sticker 没有特别看懂唉,请问可以说说这个作用是什么吗?一般校准件不是直接拧上去较准就可以了吗。


回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wzh19940105作者
1个月7天前
2楼
引用该用户不需要名字发表于1楼的内容
没有特别看懂唉,请问可以说说这个作用是什么吗?一般校准件不是直接拧上去较准就可以了吗。

那是你VNA内置了跟你所用校准件相同的校准参数,否则的话是不准的

回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
该用户不需要名字
1个月7天前
3楼
引用wzh19940105发表于2楼的内容
那是你VNA内置了跟你所用校准件相同的校准参数,否则的话是不准的

哦哦明白了

回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
1176764177
1个月7天前
4楼

是不是可以考虑直接ads 频变电感然后用优化直接综合一套参数出来


回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
wzh19940105作者
1个月7天前
5楼
引用1176764177发表于4楼的内容
是不是可以考虑直接ads 频变电感然后用优化直接综合一套参数出来

你可以尝试下 我没怎么用过ADS其实

回复
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

%7B%22isDisplay%22%3Atrue%7D

仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传
空空如也~
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
{{forum.displayName}}
{{forum.countThreads}}
篇文章,
{{forum.countPosts}}
条回复
{{forum.description || "暂无简介"}}
ID: {{user.uid}}
学术分隐藏
{{submitted?"":"投诉或举报"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png
插入公式
分享回复:{{shareId}}
加载中...
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
加入关注取消关注
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
建议修改
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
下载资料
{{fileName}}
大小:{{size}}
下载当前附件将花费 {{costMessage}}
{{description}}
你当前剩余 {{holdMessage}}
{{fileName}}
大小:{{size}}
当前附件免费。
你已购买过此附件,下载当前附件不需要花费积分。
加载中...
{{errorInfo}}
附件已丢失
当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}