2022-01-25 10:53:23
点击查看相关文章 分布式光纤测温系统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做光开关)
示波器(数据采集装置)
计算机(数据处理装置)
由于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
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