​​​ 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. i春秋GetFlag

    进去是个提示界面,提示我们这是个迷你文件管理系统,我们需要登录然后下载文件再获得flag. 然后我们查看源码,没什么信息,点login进去查看源码,没什么信息 下方出现了一个substr(md5(ca ...

  2. Linux禁止摄像头自动曝光(手动调节曝光)

    前言 很多摄像头具有自动曝光的功能,例如在较暗的调节下,提高曝光率,在较亮的调节下降低曝光.下面简单介绍在linux平台俩种方式来修改自动曝光. 软件调节(图形化界面) 安装qv4l2 sudo ap ...

  3. 喜欢用Map却从未遭遇内存泄露的Java程序员上辈子都是神仙

    前言 点进来这篇文章的大概有两种人,一种是喜欢用Map的想看看自己是不是有可能也会踩雷,一种是不喜欢用Map的想进来看看那些喜欢用的人是怎么踩雷的. 那你要失望了,我只是单纯把公司最近代码审查时一个关 ...

  4. 将 Vue.js 项目部署至静态网站托管,并开启 Gzip 压缩

    摘要:关于使用 Nginx 开启静态网站 Gzip 压缩的教程已经有很多了,但是好像没几个讲怎么在对象存储的静态网站中开启 Gzip 压缩.其实也不复杂,我们一起来看下~ 本文分享自华为云社区< ...

  5. C++编程笔记(QT)

    目录 入门基础 模态对话框 消息提示框(messagebox) 文件和目录 字体选择框 输入对话框 进度条 工具栏 控件布局 Windows托盘案例 控件 button 下拉菜单按钮 `radioBu ...

  6. 前端开发:4、JavaScript简介、变量与常量、数据类型及内置方法、运算符、流程控制、循环结构、内置方法

    前端开发之JavaScript 目录 前端开发之JavaScript 一.JavaScript简介 二.JS基础 三.变量与常量 四.基本数据类型 1.数值类型 2.字符类型 3.布尔类型 五.特殊数 ...

  7. Go 每日一库之 go-carbon,优雅的golang日期时间处理库

    Carbon 是一个轻量级.语义化.对开发者友好的 golang 时间处理库,支持链式调用. Carbon 已被 awesome-go 收录, 如果您觉得不错,请给个 star 吧. github.c ...

  8. 小程序与app区别及测试点

    小程序和app区别 1. 用户获取渠道区别 小程序: 二维码.用户分享推荐.搜索小程序 APP: 需要去应用市场(或其他)下载 2. 下载.安装卸载 小程序: 不需下载安装,清除时直接删除小程序 AP ...

  9. C# 正则表达式常用的符号和模式解析

    〇.正则表达式的基本语法符号 若只简单匹配固定字符串,则无需任何修饰符,例如:需要匹配字符串 77,则可直接写:new Regex("77"). 下边例举一下常用的符号:(知道下面 ...

  10. 【转载】VUE入门教程

    vue-cli是官方提供的一个脚手架,用于快速生成一vue项目,有点类似java中使用maven构建项目 需要环境 Node.js : http://nodejs.cn/download/ 安装完后在 ...