鼎阳SDS6204长波形读取的潜力挖掘及上海光源测试
https://blog.csdn.net/weixin_43767046/category_11089525.html
上学期我搭建起来的逐束团3维质心位置测量系统一直是获取500us长的一组12bit分辨率的波形数据,每个通道5M个采样点,4个通道共20M的采样点。实际上这款示波器有500M采样点的缓存,实际上利用了不到1/20。上学期联系鼎阳,因为还没有用户需要更长的波形读取,所以rom和Labview驱动的适配那时候还不支持单通道超过12.5M个点的波形数据读取。我估计因为前期鼎阳和力科的深度合作,力科的该系列标配是50M采样点的缓存,4个通道同时工作时每个通道最大也只有12.5M个数据点的原因吧?
我的更长波形读取的需求上学期反馈给鼎阳后,他们很快就把rom和Labview的驱动搞定了,这学期就开始了这个更长波形的调试。
还是上学期搭建的3维测量系统,这次读取10ms长每个通道100M个点(1亿):
上面的截图是利用十一放假前和之后,难得的不会折腾程序的一段时间跑起来积累了15天连续运行的截图。一组波形数据一共400M采样点共800MB的数据,处理周期大约150s,那时候服务器只有256G的内存,跑采集程序的云主机需要分配100G的内存容量才行,如果想试重采样等功能都会报out of memory。之后就联系冷师兄去上海光源测试,连续的几天又把程序改进,又利用晓康为我做的模板把数据库在便携式服务器上调试好,让睿喆为我写了个python脚本好生成EPICS IOC需要load的上海光源720个束团的PV db模板的脚本。之后终于在10.18号成行。
去上海前发现个小问题:
如果不是在数据库里看这样的小电影,很难注意到这个8个台阶的现象,纵向时间有8个100ps高度的台阶,猜想labview读取1亿个点的波形数据时,是每次读取12500000个点后做拼接,在拼接时少了一个点才会出现这样的现象,我又用5GHz采样率采集做了实验,发现这样的台阶高度变成了200ps,证实了拼接少了一点的bug。
临出发前发现,bug已经来不及修复,之后就出行。去到上海光源,第一次见,大开眼界,以后有机会专门发文吧,说说测试,2代光源和3代光源比起来确实代差明显:
上面的程序界面,10ms波形含有720个束团6939圈的逐束团数据,图中的绿色曲线是用200mA模拟的逐圈流强曲线(因为在外网,没法通过EPICS获取到实时更新的储存环流强数据),中图是随便某个束团的逐圈X、Y,下面的图是某个束团的纵向时间,忽略八个100ps的锯齿,曲线宽度应该在10ps以内,有一点点震荡包络,包络幅度应该在5ps以内。上海光源是500MHz的RF,和合肥的204MHz相比同样的采样率每个bunch波形的点数稀疏了2.5倍,这样提取的数据噪声会大很多,不过看到的结果都是噪声宽度下很平稳的曲线,不像合肥这震荡的现象很严重。
上海之行比较匆忙还要赶紧回来,只连续积累了1夜的数据,第二天赶上维护没有束流,不过正好有机会进到光源核心区参观。浏览数据库时发现了一些现象:
虽然某个束团的逐圈X看不到明显的震荡,但是720束团平均的逐圈X还是可以看到些X方向的震荡;某个束团的逐圈X、Y测的噪声宽度虽然有0.3mm,但还是能明显看到那种某一些圈Y方向跳变的情况,720个束团的平均逐圈Y噪声宽度差不多30um,跳变的情况更明显,而且是那种两个位置来回跳的现象,应该是所有束团的共性,一直不明所以然,怀疑是否有气缸跳动引起BPM探测器的震动,期待冷师兄那边libera逐圈数据的结果,这次积累一夜的数据,由于处理周期400秒左右,竟然没有抓到一次注入时的数据,期待下次去测试时能积累更长时间并抓到注入时的姿态,很想看看不同机器注入时X、Y正视图的分布。
上图是程序跑的时候截的一张某束团的频谱曲线,横坐标是频率,单位是Hz,看的范围是上海光源回旋频率690KHz多的一半,程序处理过程中估计也会象合肥一样有一些底噪产生的峰位,对应哪些还不知道怎么从数据库里导出波形数据分析,以后有空再说吧。
从上海回来,鼎阳的许美美小姑娘很快就解决了拼接少一点的bug,之后看纵向时间的分布就舒爽多了:
现在没有了那个高100ps的锯齿和台阶,能坚持到这里的您看到了吧?二代光源纵向震荡是会有多么厉害,即使是45个束团的平均逐圈相位,也会有几十ps的震荡幅度。
上图是上海的720个束团的平均逐圈相位,看出差别了吧?忽略锯齿,曲线是多么的纤细和漂亮啊!真让人期待4代的合肥先进光源的样子!
这段时间把两台SDS6204分别接着条带和纽扣BPM在线跑起程序,对比中发现个问题:
拼接少一点的bug修复后,读取的数据点数从以前截图的99999992变到了完美的100000000个点,掐头去尾取整圈后的两台示波器的点数分别为99997791、99997803,嗯?怎么会不一样,差了12个点,是同一段时间长度啊!后来咨询鼎阳,原来有个时基精度的问题,下图是该款示波器时基的指标:
这两款示波器如果简单比较时基精度的话,应该是12/99997791=0.12ppm=120ppb,是好于厂家的标称指标的,后来又查了查是德的最高端示波器时基精度能做到的程度:
https://www.keysight.com/cn/zh/assets/7018-06242/data-sheets/5992-3132.pdf
数据源于上面的链接,比较了下,即使最高端,这个指标差别也没到一个量级,和我测的120ppb也不好多少,这样看来10ms的波形,差10几个点也是正常的,心里也就释然了,国产精品不管从稳定性,还有这类核心指标,都很不错了,完全可以常年在线使用了。不过更高端还任重道远,鼎阳和普源加油!
鼎阳SDS6204长波形读取的潜力挖掘及上海光源测试的更多相关文章
- 长轮询实现Chat并迁移到Azure测试
长轮询实现Chat并迁移到Azure测试 公司的OA从零开始进行开发,继简单的单点登陆.角色与权限.消息中间件之后,轮到在线即时通信的模块需要我独立去完成.这三周除了逛网店见爱*看动漫接兼职,基本上都 ...
- [NLP自然语言处理]计算熵和KL距离,java实现汉字和英文单词的识别,UTF8变长字符读取
算法任务: 1. 给定一个文件,统计这个文件中所有字符的相对频率(相对频率就是这些字符出现的概率——该字符出现次数除以字符总个数,并计算该文件的熵). 2. 给定另外一个文件,按上述同样的方法计算字符 ...
- 三周,用长轮询实现Chat并迁移到Azure测试
公司的OA从零开始进行开发,继简单的单点登陆.角色与权限.消息中间件之后,轮到在线即时通信的模块需要我独立去完成.这三周除了逛网店见爱*看动漫接兼职,基本上都花在这上面了.简单地说就是用MVC4基于长 ...
- VUE: 移动端长按弹出确认删除地址(后面测试发现IOS有BUG,后面有更新随笔,更新后的亲测有效)
收货地址的删除方式可能有很多种,我目前见过的暂时只有两种(1.在编辑页删除 2.长按某一条收货地址弹出是否删除地址) 在开发的项目上要求第二种删除方法,于是记录一下我写的代码 ~ 1.首先,在移动端 ...
- 使用DataOutputStream输出流的read方法出现读取字节不一致解决办法,本地和测试环境不一致
之前: DataInputStream in = new DataInputStream(connection.getInputStream()); byte[] b = new byte[in ...
- ABAP读取长文本的方法
SAP中所有的项目文本都存在以下两张数据表中: 1. STXH 抬头项目文本 透明表 2. STXL 明细项目文本 透明表 长文本读取方法 首先在STXH和STXL中根据OBJECT NAME ...
- MongoDB 驱动以及分布式集群读取优先级设置
本文主要介绍使用MongoDB C驱动读取分布式MongoDB集群时遇到的坑,主要在读取优先级和匹配tag上:同时简单介绍Python驱动.Node.js驱动.Mongoose驱动如何使用读取优先级和 ...
- java的io读取
package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...
- java中读取文件以及向文件中追加数据的总结
package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...
- C#读取excl(兼容office多种版本)
要求:导入excl引用了using System.Data.OleDb,需要安装一个office Microsoft.ACE.OLEDB.12.0 office7以上版本 Microsoft.Jet. ...
随机推荐
- C温故补缺(七):函数指针与回调函数
函数指针与回调函数 函数指针就是指向函数调用栈地址的指针,定义时须和函数的返回值类型,参数类型相同 如: #include<stdio.h> int max(int x,int y){ r ...
- day23 约束 & 锁 & 范式
考点: 乐观锁=>悲观锁=>锁 表与表的对应关系 一对一:学生与手机号,一个学生对一个手机号 一对多:班级与学生,一个班级对应多个学生 多对一: 多对多:学生与科目,一个学生对应多个科目, ...
- [论文阅读] 颜色迁移-Correlated Color Space
[论文阅读] 颜色迁移-Correlated Color Space 文章: Color transfer in correlated color space, [paper], [matlab co ...
- 【Java EE】Day07 HTML
一.WEB概念 1.软件架构 C/S:安卓.QQ.迅雷,开发两端 B/S 2.资源分类 静态资源:浏览器内置解析引擎 HTML:展示内容 CSS:页面布局 JavaScript:控制页面元素,产生动态 ...
- 使用Spring Reactor优化推荐流程
1. 背景 公司有一个推荐系统Rec,这个系统的主要功能是: 向外部系统提供推荐接口 根据请求获取推荐策略 根据推荐策略完成推荐的召回.过滤.打分.排序阶段 Rec作为微服务中的一环,本身不存储召回的 ...
- echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新
目录 ECharts Map地图的显示 GeoJSON数据文件获取 在ECharts中绘制浙江省的数据 ECharts Map地图的显示 ECharts支持地理坐标显示,专门提供了一个geo组件,在s ...
- 互斥锁 线程理论 GIL全局解释器锁 死锁现象 信号量 event事件 进程池与线程池 协程实现并发
目录 互斥锁 multiprocessing Lock类 锁的种类 线程理论 进程和线程对比 开线程的两种方式(类似进程) 方式1 使用Thread()创建线程对象 方式2 重写Thread类run方 ...
- 运行typhoon程序的三种方式
cmd直接编写运行:用于较短 临时执行的代码 解释器命令运行:可以编写较长的代码 并且可以长久保存 利用IDE工具编写:IDE开发者工具自动提示 携带各种功能插件 编写代码效率更高更快
- context状态树
provider customer 父组件 创建context对象并导出 export const AddContext = React.createContext<any>({}) 导出 ...
- JavaScript:操作符:赋值运算符和空赋值(??=)
=号是赋值运算,即返回符号右边的结果,同时将结果赋值给符号左边的变量,考虑下面代码的运行结果: 赋值运算b = 1 + 1,做了两件事,先返回符号右边的结果,即2,这个2将参与a = 1 + 2的计算 ...