2020-12-03-电弧的电离区域确定

研究土壤电弧的电离过程。

电弧电流波形

测量到的电弧电流波形会有直流分量,这个直流分量不知道是系统产生的还是罗氏线圈的零漂,鉴于罗氏线圈是无法测量直流分量的,那么大概率应该是干扰导致的零漂,在分析电弧的电离区域时,需要首先把直流分量去掉。

去掉直流分量并不难,传统经验是用FFT分析波形,将直流量提取出来即可。但电弧是按照半周波为单位完成一次击穿燃弧到熄弧的过程的,所以按照每个周期为单位对直流分量进行识别处理。

首先需要将每个周期的电流波形提取出来,子程序如下。

%%%%%%%%%子函数——数据处理程序,将数据处理成以周期为单位的矩阵%%%%%%%%%
function [U_matrix,Num,Circles] = DataToCircles(U,f)
    N = f / 50;%每周期数据点数
    n = length(U);%测量向量内共有多少点
    Circles = fix(n/N);%取整,周期数
    Num = N * Circles;%共有多少点
    U = U(1:Num);%取得合适的周期数据,为编程矩阵做初处理
    U = U';%转置
    U_matrix = reshape(U,N,[]);
end

1. 利用FFT获取直流偏置分量

提取每周期的电流波形后,对单个周波进行FFT分析,FFT子程序如下。

%%%%%%%%%子函数——FFT谐波程序,获取规定次谐波的幅值和相位%%%%%%%%%%%%%
function [Amp_U,Ph_U] = FFT(U_matrix,Circles,L,harmonic)
    Y_U_matrix = fft(U_matrix,L);%快速傅里叶变换
    P2_U_matrix = abs(Y_U_matrix/L);  % 双侧频谱P2
    P1_U_matrix = P2_U_matrix(1:L/2 +1,:);   % 单侧频谱P1
    P1_U_matrix(2:end -1) = 2 * P1_U_matrix(2:end -1);
    num = harmonic + 1;
    for i = 1:Circles
        PY_U_matrix(:,i) = phase(Y_U_matrix(:,i));%频域弧度幅值
        PY_U_matrix(:,i) = PY_U_matrix(:,i) * 180 /pi;%频域相位 
    end
    for i = 1 : Circles
        Amp_U(i) = P1_U_matrix(num,i);
        Ph_U(i) = PY_U_matrix(num,i);
    end
end

通过查看波形,可以看出直流分量大约在2.5A左右,可是FFT的分析结果并不准确,很多周波的直流分量远低于2.5A,原因可能是存在大量的高频谐波,这些高频谐波会影响直流分量的幅值,那么只能采用更暴力的处理方法,找到每周波电压为0时的电流值设定为直流偏置分量。

FFT分析结果

2. 利用电压信号过零点获取直流偏置分量

同样利用DataToCircles子函数将电压和电流均转换为周期数据,建立一个程序子脚本。

%%%%%%%%%子函数——获取电压为零时的电流值,即直流分量%%%%%%%%%
function [I_DC_matrix] = FindCurrentAsVoltageEqualZero(U_matrix,I_matrix,Circles,f)
    N = f / 50;%每周期数据点数
    for i = 1 : Circles%按照周期进行分析
       location = find(U_matrix(:,i) == 0);%找到每周期中的U=0的位置
       k = length(location);%共有多少个U=0的点
       for j = 1:k%对每一点的位置找到对应的电流值
           I_DC_value(j) = I_matrix(location(j),i);
       end
       I_DC_matrix(i) = mean(I_DC_value);%取平均值
    end
end

U=0计算直流偏置结果

3. 确定电离区域的起点

电离区域人工分析

大约按照肉眼观察电离区域的起点中的有效数据,即躲避开罗氏线圈的精工电流区间,大概按照电流最大值的10%,认为是有效测量电流,即用10%~90%的电流部分进行模型参数数据分析,其他部分进行递推处理。

%%%%%%%%%子函数——获取半周波电压、电流电离区信号并去除电流直流分量%%%%%%%%%
function [IonizationZoneStartPoint,IonizationZoneEndPoint,IonizationZoneMaxPoint] = FindHalfCircleCurrentIonizationZone(HalfCircleNum,SingleHalfCircleNum,Id,I_DC_matrix)
    k = 1;
    for i = 1 : HalfCircleNum %分别分析每一个半周波
        Id_cal = Id(k : k + SingleHalfCircleNum(i) - 1);%提取第i个半周波电流信号
        [Id_cal_max IonizationZoneMaxPoint(i)] = max(abs(Id_cal));%将第i个半周波电流取绝对值后找到最大值及位置
%         IonizationZoneMaxPoint(i) = find(Id_cal == Id_cal_max);%找到最大值的位置
        for j = 1 : IonizationZoneMaxPoint(i)
            if ((Id_cal(j) - I_DC_matrix(i)) / (Id_cal(IonizationZoneMaxPoint(i)) - I_DC_matrix(i))) > 0.1%上升沿电流超过最大值的10%,则记录电离开始点
                IonizationZoneStartPoint(i) = j;
                break;
            else
                IonizationZoneStartPoint(i) = nan;
            end
        end
       
        for j = IonizationZoneMaxPoint(i) + 1 : SingleHalfCircleNum(i)
            if ((Id_cal(j) - I_DC_matrix(i)) / (Id_cal(IonizationZoneMaxPoint(i)) - I_DC_matrix(i))) < 0.1%下降沿电流低于最大值的10%,则记录电离结束点
                IonizationZoneEndPoint(i) = j;
                break;
            else
                IonizationZoneEndPoint(i) = nan;
            end
        end
        
        k = k + SingleHalfCircleNum(i);
        
    end
end

观察第一个半周波。

一个半周波的电压电流和电阻曲线

电压,电流和电阻的曲线,可以看到电压的最大值和电流的最大值时刻并不完全相同。V/R特性曲线如图所示。

V/R特性曲线

用一个更直观的方法画出则是下图这个样子的。

土壤非线性击穿过程曲线