​​​ 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. Java网络编程:Socket 通信 2

    client----发送数据(输出流)------------(输入)-[管道流处理数据]-(输出)------接收数据(输入流)------server 文件传输: 客户端: 创建Socket连接对 ...

  2. C++编程笔记(智能指针学习)

    目录 scoped_ptr unique_ptr shared_ptr 智能指针简单应用 智能指针简单应用 scoped_ptr 拷贝构造和 =赋值操作均为私有,不允许 内部重载了解引用(*)操作符和 ...

  3. 工程坐标转换方法C#代码实现

    目录 1. 前言 2. 计算总体框架 3. C#代码实现 3.1 整体类的构建 3.2 椭球参数赋值 3.3 转换1.3(大地经纬度坐标与地心地固坐标的转换) 3.4 投影转换 3.5 转换2的实现( ...

  4. node-sass报错(Node Sass could not find a binding for your current environment)

    解决方案:参考 https://stackoverflow.com/questions/37986800/node-sass-couldnt-find-a-binding-for-your-curre ...

  5. Windows下使用VSCode搭建IDA Python脚本开发环境

    由于本人是VSCode的重度沉迷用户,需要写代码时总会想起这个软件,因此选择在VSCode中搭建IDA Python的开发环境 本文适用的环境如下: 1.操作系统 windows 2.Python3 ...

  6. 使用echarts(可视化图表库)

    一:echarts 1.简介 一个基于 JavaScript 的开源可视化图表库 echarts官网使用教程: https://echarts.apache.org/zh/index.html 2.e ...

  7. 从面试题入手,畅谈 Vue 3 性能优化

    前言 今年又是一个非常寒冷的冬天,很多公司都开始人员精简.市场从来不缺前端,但对高级前端的需求还是特别强烈的.一些大厂的面试官为了区分候选人对前端领域能力的深度,经常会在面试过程中考察一些前端框架的源 ...

  8. python 爬站长素材网页图片

    一.我们要用python第三方库: import requests import re 二.找到自己感兴趣的网页图片: for i in range(1,2): url = "https:/ ...

  9. CLI框架:klish安装与使用

    在通信设备领域,思科的路由器设备可以用CLI进行操作.这里介绍的开源项目klish是思科CLI风格(CISCO-like CLI)的框架.命令配置文件为xml格式. 源码:pkun/klish: Th ...

  10. mysql游标最后一行重复问题

    今天用调用存储过程时发现数据有点问题,和预期不一致 经排查,发现是游标在遍历过程中重复遍历了,或者说是对游标下标的判断有Bug 调试后发现是游标使用方式不正确 应该在循环外先对游标进行一次取值操作,在 ...