close[X]
您的购物车
型号 数量 货期
查看购物车 结算

低成本DVS系统解决方案

2022-01-25 10:53:23

低成本DVS系统解决方案

点击查看相关文章 分布式光纤测温系统DTS


分布式光纤振动传感系统( Distributed Optical Fiber Vibration Sensing System, DVS)是以光纤作为传感器进行振动感知的光学仪器,该系统利用单根光纤同时实现振动的监测和信号的传输; 分布式光纤传感技术是一种新兴的传感技术,将探测光缆沿管道同沟或者并行敷设,可实时获得管道沿线任一点的温度、应变、振动(声音)信息,实现管道沿线泄漏、打孔盗油、地质灾害等异常状况实时监测,具有测量距离远、连续分布式测量、可精确定位、安装简单、安全可靠、扩展性强等优点。

系统所需器件

RIO激光器(5kHz): https://www.microphotons.cn/?a=cpinfo&id=4492

可调光衰减器: http://www.microphotons.cn/?a=cpinfo&id=854

SOA光放大器: http://www.microphotons.cn/?a=cpinfo&id=1680

光环形器: http://www.microphotons.cn/?a=cpinfo&id=259

20km单模光纤(传感器件)

索雷博光电探测器(内置放大模块)

14pin激光二极管驱动

信号发生器(调制SOA做光开关)

示波器(数据采集装置)

计算机(数据处理装置)


005.png


由于DVS对光源线宽的要求非常高,目前我们只有在RIO激光器中才能看到比较良好的传感效果,dense light(50kHz)或DFB nl(100kHz)激光器均无法观测到传感振动信号。

由于SOA种子光过大后脉冲性能不是很好,所以RIO输出后需要添加一个衰减器控制输入种子光功率在1mW(0dBm)左右,也可以可以稍微大一点,视SOA器件参数而定。

我们的SOA调制频率能达到40MHz,脉宽可达10ns,用于DVS是完全足够的。10ns理论上对应的传感精度是1m。

环形器可以换成50:50耦合器,只是功率会下降一点。

PD探测器选用索雷博的放大可调探测器(PDA10CS2),将内置的放大倍数调节至30dB档,可以看到明显的分布式散射信号了。

最后对探测器的电压信号进行实时采集。AFG信号发生器同时分出一路触发信号给采集设备,实现同步采集。我们采用的是rigol示波器加matlab的方式进行采集。


2022/08/26

我们的DVS系统对比验证第一个是RIO的,第二个是LD-PD,25km光纤长度

RIO和LD-PD窄线宽激光器在DVS中的效果比对视频


RIO效果视频





LD-PD效果视频

 


2022/07/13


QQ图片20220713174017.jpg



QQ图片20220713174036.jpg



QQ图片20220713174050.jpg



QQ图片20220713174102.jpg



QQ图片20220713174115.jpg


QQ图片20220713174127.jpg

2022/02/15

添加了时间域单点振动判断的降噪DVS采集算法(matlab)

 clear
 clc
 delete(instrfind)%清空连接端口
 len = 100000;
ave = 20;%单次判定 时间域采样次数
tt=0.001;
yu = 2;
bil=1.1;
offset=200;

 send = ':wav:data? CHANnel1';%发送指令读取通道1数据
E = visa('ni','USB0::0x1AB1::0x0588::DS1ET184552667::INSTR');
E.InputBufferSize = len;
fopen(E);


for j = 1:ave%两次采样正好隔ave次平均后相减,
    fprintf(E,send);
    pause(tt)
[data,len]=fread(E,len);
wavepre(:,j) = offset-data(12:len-1);
end

subplot(2,1,1)
p1=plot(wavepre(:,ave));
axis([0 len 0 220])
meanwav = bil*mean(wavepre,2)+yu;
for j = 1:(ave - 1)
 errorpre(:,j) =  F( ( wavepre(:,j) - meanwav).* ( wavepre(:,j+1) - meanwav));
end
error = sum(errorpre,2);
subplot(2,1,2)
p2=plot(error);
axis([0 len 0 ave])
%for i = 1:100000  %采集次数
i=1;
while true
%     fprintf(E,':run');
% fprintf(E,':stop');
   % yu = mod(i-1,ave);%余数
   fprintf(E,send);
   [data,len]=fread(E,len);
   wave = offset-data(12:len-1);
   set(p1,'YData',wave);
 error1 = F((wave -meanwav).*( wavepre(:,ave) - meanwav));%求差后归一化
 errorpre = [ errorpre error1];
 error = sum(errorpre,2);
%  error = (wave - wavepre(:,yu+1));
   set(p2,'YData',error);
  
   title(i)  
    drawnow
     i=1+i;
   pause(tt)
errorpre(:,1) = [];
wavepre(:,1) =[]; %迭代数据
wavepre=[wavepre wave];
meanwav = bil*mean(wavepre,2)+yu;
end
fclose(E);
function y = F(x)
x(x>0) =0;
x(x<0)=1;
y = x;
end










使用本网站,即表示您同意我们使用cookie.它可以帮助更好地提供会员服务以及短时间内记录您的浏览记录
已知晓 了解详情
提示