​​​ 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长波形读取的潜力挖掘及上海光源测试的更多相关文章

  1. 长轮询实现Chat并迁移到Azure测试

    长轮询实现Chat并迁移到Azure测试 公司的OA从零开始进行开发,继简单的单点登陆.角色与权限.消息中间件之后,轮到在线即时通信的模块需要我独立去完成.这三周除了逛网店见爱*看动漫接兼职,基本上都 ...

  2. [NLP自然语言处理]计算熵和KL距离,java实现汉字和英文单词的识别,UTF8变长字符读取

    算法任务: 1. 给定一个文件,统计这个文件中所有字符的相对频率(相对频率就是这些字符出现的概率——该字符出现次数除以字符总个数,并计算该文件的熵). 2. 给定另外一个文件,按上述同样的方法计算字符 ...

  3. 三周,用长轮询实现Chat并迁移到Azure测试

    公司的OA从零开始进行开发,继简单的单点登陆.角色与权限.消息中间件之后,轮到在线即时通信的模块需要我独立去完成.这三周除了逛网店见爱*看动漫接兼职,基本上都花在这上面了.简单地说就是用MVC4基于长 ...

  4. VUE: 移动端长按弹出确认删除地址(后面测试发现IOS有BUG,后面有更新随笔,更新后的亲测有效)

    收货地址的删除方式可能有很多种,我目前见过的暂时只有两种(1.在编辑页删除  2.长按某一条收货地址弹出是否删除地址) 在开发的项目上要求第二种删除方法,于是记录一下我写的代码 ~ 1.首先,在移动端 ...

  5. 使用DataOutputStream输出流的read方法出现读取字节不一致解决办法,本地和测试环境不一致

    之前: DataInputStream in = new DataInputStream(connection.getInputStream());    byte[] b = new byte[in ...

  6. ABAP读取长文本的方法

    SAP中所有的项目文本都存在以下两张数据表中: 1. STXH  抬头项目文本 透明表 2. STXL  明细项目文本   透明表 长文本读取方法 首先在STXH和STXL中根据OBJECT NAME ...

  7. MongoDB 驱动以及分布式集群读取优先级设置

    本文主要介绍使用MongoDB C驱动读取分布式MongoDB集群时遇到的坑,主要在读取优先级和匹配tag上:同时简单介绍Python驱动.Node.js驱动.Mongoose驱动如何使用读取优先级和 ...

  8. java的io读取

    package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...

  9. java中读取文件以及向文件中追加数据的总结

    package gys; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; imp ...

  10. C#读取excl(兼容office多种版本)

    要求:导入excl引用了using System.Data.OleDb,需要安装一个office Microsoft.ACE.OLEDB.12.0 office7以上版本 Microsoft.Jet. ...

随机推荐

  1. python(牛客)试题解析1 - 简单

    导航: 一.NC103 反转字符串 二.NC141 判断是否为回文字符串 三.NC151 最大公约数 四.NC65 斐波那契数列 五.字符按排序后查看第k个最小的字母 六.数组内取出下标相同的元素求和 ...

  2. 抓包整理————ip 协议四[十五]

    前言 简单了解一下ip 协议选路问题. 正文 比如host1 到 host2是直接传输,因为host1和 host2 是同一交换机,直接arp表知道对方的mac. 第二种是他们是不同网段之间通信. 第 ...

  3. 小程序canvas2D绘制印章,话不多说,直接上代码

    效果图:  CanvasContext 是旧版的接口,不维护了, 新版 Canvas 2D 接口与 Web 一致 官方文档: https://developers.weixin.qq.com/mini ...

  4. (C++) 初始化列表 std::initializer_list

    构造时直接使用初始化列表 T object { arg1, arg2, ... }; (1) T { arg1, arg2, ... } (2) new T { arg1, arg2, ... } ( ...

  5. CSP 记

    csp 开考建好文件夹编译器不能用搞了半天换了台电脑 四道题看完一个小时过去了 第一题不会正解写了部分分还有点悬 第二题写暴力因为一个小错误调了半天 看时间不多了已经有点慌了 也没想正解直接开了下一题 ...

  6. 1.5.6 NN与2NN-hadoop-最全最完整的保姆级的java大数据学习资料

    目录 1.5.6 NN与2NN 1.5.6.1 HDFS元数据管理机制 1.5.6.2 Fsimage与Edits文件解析 1.5.6.2.1 Fsimage文件内容 1.5.6.2.2 Edits文 ...

  7. 【JVM】经典垃圾回收器

    本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 转载请在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益.让我们一起维护 ...

  8. Python函数用法和底层分析

    目录 Python函数用法和底层分析 函数的基本概念 Python 函数的分类 核心要点 形参和实参 文档字符串(函数的注释) 返回值 函数也是对象,内存底层分析 变量的作用域(全局变量和局部变量) ...

  9. 使用插件式开发称重仪表驱动,RS232串口对接各类地磅秤数据实现ERP管理

    在ERP系统中,采集一线的生产数据是重要工作之一,而称重计量是企业的核心资产数据,人工计重费时费力,还容易出错,重量数据是否正确,直接影响企业的采购或销售额.基于此,由系统对接电子秤实现自动抓取数据是 ...

  10. NET-SynchronizationContext

    title: .NET SynchronizationContext date: 2022-12-06 09:38:53 tags: - .NET 前言 最近在看CAP的源码,经常能看到Configu ...