メインコンテンツ

残差分析を使用した遠心ポンプの故障診断

この例では、ポンプ システムで発生するさまざまなタイプの故障を検出して診断するモデル パリティ方程式に基づく方法を説明します。ここでは定常状態実験を使用した遠心ポンプの故障診断で提示されている手法を、ポンプの動作が複数の動作状態にわたる状況に拡張します。

ここでは Rolf Isermann 著の書籍『Fault Diagnosis Applications』で紹介されている遠心ポンプ解析を使用します [1]。System Identification Toolbox™、Statistics and Machine Learning Toolbox™、Control System Toolbox™、および Simulink® の機能を使用しますが、Predictive Maintenance Toolbox™ は必要ありません。

複数速度のポンプ運転 - 残差分析による診断

定常状態の揚程とトルクの方程式では、速度が急激に変化したり速度範囲がさらに広くなる状態でポンプを運転した場合、正確な結果を得ることができません。摩擦やその他の損失の影響が増し、モデルのパラメーターが速度に依存するようになる可能性があります。そのような場合に広く応用できる方法として、動作のブラック ボックス モデルを作成することができます。そうしたモデルのパラメーターは、物理的に有意である必要はありません。このモデルは既知の動作のシミュレーションのためのデバイスとして使用されます。モデルの出力を対応する測定信号から差し引いて "残差" を計算します。平均、分散およびべき乗などの残差のプロパティは、通常動作と故障動作を区別するために使用されます。

静的な揚程の方程式および動的なポンプ-配管の方程式を使用して、図に示されている 4 つの残差を計算することができます。

このモデルには次のコンポーネントがあります。

  • 静的なポンプ モデル: Δpˆ(t)=θ1ω2(t)+θ2ω(t)

  • 動的な配管モデル: Qˆ(t)=θ3+θ4Δp(t)+θ5Qˆ(t-1)

  • 動的なポンプ-配管モデル: Qˆˆ(t)=θ3+θ4Δp(t)ˆ+θ5Qˆˆ(t-1)

  • 動的な逆ポンプ モデル: Mˆmotor(t)=θ6+θ7ω(t)+θ8ω(t-1)+θ9ω2(t)+θ10Mˆmotor(t-1)

モデル パラメーター θ1,...,θ10 はポンプ回転数への依存を示しています。この例では、パラメーターの区分的線形近似を計算します。動作領域を 3 つの領域に分割します。

  1. ω900RPM

  2. 900<ω1500RPM

  3. ω>1500RPM

健全なポンプが、基準速度範囲 0 ~ 3000 RPM において、閉ループのコントローラーをもつ閉ループで実行されています。基準入力は修正 PRBS 信号です。モーター トルク、ポンプ トルク、速度および圧力の測定値は 10 Hz のサンプリング周波数で収集しました。測定した信号を読み込み、基準と実際のポンプ速度をプロットします (これらは最大 20 MB の大規模なデータセットで、MathWorks® サポート ファイル サイトからダウンロードします)。

url = 'https://www.mathworks.com/supportfiles/predmaint/fault-diagnosis-of-centrifugal-pumps-using-residual-analysis/DynamicOperationData.mat';
websave('DynamicOperationData.mat',url);
load DynamicOperationData
figure
plot(t, RefSpeed, t, w)
xlabel('Time (s)')
ylabel('Pump Speed (RPM)')
legend('Reference','Actual')

Figure contains an axes object. The axes object with xlabel Time (s), ylabel Pump Speed (RPM) contains 2 objects of type line. These objects represent Reference, Actual.

ポンプ速度の範囲に基づいて動作範囲を定義します。

I1 = w<=900;            % first operating regime
I2 = w>900 & w<=1500;   % second operating regime
I3 = w>1500;            % third operating regime

モデルの同定

A. 静的なポンプ モデルの同定

ポンプ回転数 ω(t) と圧力差 Δp(t) の測定値を入出力データとして使用して、静的なポンプ方程式のパラメーター θ1 および θ2 を推定します。この推定を実行する補助関数 staticPumpEst を参照してください。

th1 = zeros(3,1);  
th2 = zeros(3,1); 
dpest = nan(size(dp));  % estimated pressure difference
[th1(1), th2(1), dpest(I1)] = staticPumpEst(w, dp, I1);  % Theta1, Theta2 estimates for regime 1
[th1(2), th2(2), dpest(I2)] = staticPumpEst(w, dp, I2);  % Theta1, Theta2 estimates for regime 2
[th1(3), th2(3), dpest(I3)] = staticPumpEst(w, dp, I3);  % Theta1, Theta2 estimates for regime 3
plot(t, dp, t, dpest) % compare measured and predicted pressure differential
xlabel('Time (s)')
ylabel('\Delta P')
legend('Measured','Estimated','Location','best')
title('Static Pump Model Validation')

Figure contains an axes object. The axes object with title Static Pump Model Validation, xlabel Time (s), ylabel Delta blank P contains 2 objects of type line. These objects represent Measured, Estimated.

B. 動的な配管モデルの同定

流量 Q(t) と圧力差 Δp(t) の測定値を入出力データとして使用して、配管吐出流の方程式 Qˆ(t)=θ3+θ4Δp(t)+θ5Qˆ(t-1) のパラメーター θ3θ4、および θ5 を推定します。この推定を実行する補助関数 dynamicPipeEst を参照してください。

th3 = zeros(3,1);  
th4 = zeros(3,1); 
th5 = zeros(3,1);
[th3(1), th4(1), th5(1)] = dynamicPipeEst(dp, Q, I1); % Theta3, Theta4, Theta5 estimates for regime 1
[th3(2), th4(2), th5(2)] = dynamicPipeEst(dp, Q, I2); % Theta3, Theta4, Theta5 estimates for regime 2
[th3(3), th4(3), th5(3)] = dynamicPipeEst(dp, Q, I3); % Theta3, Theta4, Theta5 estimates for regime 3

静的なポンプ モデルの場合と異なり、動的な配管モデルは流量値への動的な依存を示しています。速度状態を変化させてモデルをシミュレートするため、Control System Toolbox の "LPV System" ブロックを使用して Simulink で区分的線形モデルが作成されます。Simulink モデル LPV_pump_pipe と、このシミュレーションを実行する補助関数 simulatePumpPipeModel を参照してください。

% Check Control System Toolbox availability
ControlsToolboxAvailable = ~isempty(ver('control')) && license('test', 'Control_Toolbox');
if ControlsToolboxAvailable
    % Simulate the dynamic pipe model. Use measured value of pressure as input
    Ts = t(2)-t(1);
    Switch = ones(size(w));
    Switch(I2) = 2;
    Switch(I3) = 3;
    UseEstimatedP = 0;
    Qest_pipe = simulatePumpPipeModel(Ts,th3,th4,th5);
    plot(t,Q,t,Qest_pipe) % compare measured and predicted flow rates
else
    % Load pre-saved simulation results from the piecewise linear Simulink model
    load DynamicOperationData Qest_pipe
    Ts = t(2)-t(1);
    plot(t,Q,t,Qest_pipe)
end
xlabel('Time (s)')
ylabel('Flow rate (Q), m^3/s')
legend('Measured','Estimated','Location','best')
title('Dynamic Pipe Model Validation')

Figure contains an axes object. The axes object with title Dynamic Pipe Model Validation, xlabel Time (s), ylabel Flow rate (Q), blank m Cubed baseline /s contains 2 objects of type line. These objects represent Measured, Estimated.

C. 動的なポンプ配管モデルの同定

動的なポンプ-配管モデルは、上記で特定したものと同じパラメーター (θ3,θ4,θ5) を使用しますが、モデルのシミュレーションでは測定した値ではなく推定した圧力差を使用する必要があります。したがって、新しい同定の必要はありません。θ3,θ4,θ5 の推定値によって、ポンプと配管のダイナミクスが適切に再現されることを確認します。

if ControlsToolboxAvailable
    UseEstimatedP = 1;
    Qest_pump_pipe = simulatePumpPipeModel(Ts,th3,th4,th5);
    plot(t,Q,t,Qest_pump_pipe) % compare measured and predicted flow rates
else
    load DynamicOperationData Qest_pump_pipe 
    plot(t,Q,t,Qest_pump_pipe)
end

xlabel('Time (s)')
ylabel('Flow rate Q (m^3/s)')
legend('Measured','Estimated','location','best')
title('Dynamic Pump-Pipe Model Validation')

Figure contains an axes object. The axes object with title Dynamic Pump-Pipe Model Validation, xlabel Time (s), ylabel Flow rate Q (m Cubed baseline /s) contains 2 objects of type line. These objects represent Measured, Estimated.

適合は、測定した圧力値を使って取得したものと事実上同一です。

D. 動的な逆ポンプ モデルの同定

測定したトルク値を前のトルクと速度の測定値に回帰させることにより、パラメーター θ6,...,θ10 を同様の方法で特定できます。しかし、結果の区分的線形モデルの完全な複数速度シミュレーションでは、データへの適切な当てはめが得られません。そのため、異なるブラック ボックスのモデル化の方法を試します。これにはデータに当てはめる有理リグレッサーをもつ非線形 ARX モデルの同定が含まれます。

% Use first 300 samples out of 550 for identification
N = 350;
sys3 = identifyNonlinearARXModel(Mmot,w,Q,Ts,N)
sys3 =

Nonlinear ARX model with 1 output and 2 inputs
  Inputs: u1, u2
  Outputs: y1

Regressors:
  1. Linear regressors in variables y1, u1, u2
  2. Custom regressor: u1(t-2)^2
  3. Custom regressor: u1(t)*u2(t-2)
  4. Custom regressor: u2(t)^2
  List of all regressors

Output function: Linear with offset
Sample time: 0.1 seconds

Status:                                          
Estimated using NLARX on time domain data.       
Fit to estimation data: 49.27% (simulation focus)
FPE: 1798, MSE: 3383                             

Model Properties
Mmot_est = sim(sys3,[w Q]);
plot(t,Mmot,t,Mmot_est) % compare measured and predicted motor torque
xlabel('Time (s)')
ylabel('Motor Torque (Nm)')
legend('Measured','Estimated','location','best')
title('Inverse pump model validation')

Figure contains an axes object. The axes object with title Inverse pump model validation, xlabel Time (s), ylabel Motor Torque (Nm) contains 2 objects of type line. These objects represent Measured, Estimated.

残差の生成

モデルの "残差" を、測定信号と、モデルで生成された対応する出力との差として定義します。4 つのモデル コンポーネントに対応する 4 つの残差を計算します。

r1 = dp - dpest;
r2 = Q - Qest_pipe;
r3 = Q - Qest_pump_pipe;

逆ポンプ モデル残差の計算には、元の残差に大きな分散が見られるため、移動平均フィルターを使用してモデル出力に平滑化操作を適用します。

r4 = Mmot - movmean(Mmot_est,[1 5]);

学習残差のビュー:

figure
subplot(221)
plot(t,r1)
ylabel('Static pump - r1')
subplot(222)
plot(t,r2)
ylabel('Dynamic pipe - r2')
subplot(223)
plot(t,r3)
ylabel('Dynamic pump-pipe - r3')
xlabel('Time (s)')
subplot(224)
plot(t,r4)
ylabel('Dynamic inverse pump - r4')
xlabel('Time (s)')

Figure contains 4 axes objects. Axes object 1 with ylabel Static pump - r1 contains an object of type line. Axes object 2 with ylabel Dynamic pipe - r2 contains an object of type line. Axes object 3 with xlabel Time (s), ylabel Dynamic pump-pipe - r3 contains an object of type line. Axes object 4 with xlabel Time (s), ylabel Dynamic inverse pump - r4 contains an object of type line.

残差特徴の抽出

残差は、故障特定のための適切な特徴を抽出する信号です。利用できるパラメーター情報がないため、信号の最大振幅や分散などの信号プロパティのみから求められる特徴を考慮します。

PRBS 入力実現を使用したポンプ-配管システムに対する 20 の実験セットを考えます。次の各モードについて実験セットを繰り返します。

  1. 健全なポンプ

  2. 故障 1: クリアランスの隙間にある摩損

  3. 故障 2: インペラー出口にある少量の堆積物

  4. 故障 3: インペラー入口にある堆積物

  5. 故障 4: インペラー出口にある摩耗

  6. 故障 5: ブレード折損

  7. 故障 6: キャビテーション

  8. 故障 7: 速度センサー バイアス

  9. 故障 8: 流量計バイアス

  10. 故障 9: 圧力センサー バイアス

実験データを読み込みます。

url = 'https://www.mathworks.com/supportfiles/predmaint/fault-diagnosis-of-centrifugal-pumps-using-residual-analysis/MultiSpeedOperationData.mat';
websave('MultiSpeedOperationData.mat',url);
load MultiSpeedOperationData
% Generate operation mode labels
Labels = {'Healthy','ClearanceGapWear','ImpellerOutletDeposit',...
    'ImpellerInletDeposit','AbrasiveWear','BrokenBlade','Cavitation','SpeedSensorBias',...
    'FlowmeterBias','PressureSensorBias'};

各アンサンブルおよび各操作モードにつき残差を計算します。これには数分かかります。したがって、残差データはデータ ファイルに格納されます。以下に示すように、helperComputeEnsembleResidues を実行して残差を生成します。

% HealthyR = helperComputeEnsembleResidues(HealthyEnsemble,Ts,sys3,th1,th2,th3,th4,th5); % Healthy data residuals
% Load pre-saved data from "helperComputeEnsembleResidues" run
url = 'https://www.mathworks.com/supportfiles/predmaint/fault-diagnosis-of-centrifugal-pumps-using-residual-analysis/Residuals.mat';
websave('Residuals.mat',url);
load Residuals

モード区別の能力が最も高い残差の特徴は事前に知られていません。そのため、各残差について平均、最大振幅、分散、尖度、1 ノルムなど、候補の特徴をいくつか生成します。すべての特徴が、健全なアンサンブルにおける値の範囲を使用してスケーリングされます。

CandidateFeatures = {@mean, @(x)max(abs(x)), @kurtosis, @var, @(x)sum(abs(x))};
FeatureNames = {'Mean','Max','Kurtosis','Variance','OneNorm'};
% generate feature table from gathered residuals of each fault mode
[HealthyFeature, MinMax] = helperGenerateFeatureTable(HealthyR, CandidateFeatures, FeatureNames);
Fault1Feature  = helperGenerateFeatureTable(Fault1R,  CandidateFeatures, FeatureNames, MinMax);
Fault2Feature  = helperGenerateFeatureTable(Fault2R,  CandidateFeatures, FeatureNames, MinMax);
Fault3Feature  = helperGenerateFeatureTable(Fault3R,  CandidateFeatures, FeatureNames, MinMax);
Fault4Feature  = helperGenerateFeatureTable(Fault4R,  CandidateFeatures, FeatureNames, MinMax);
Fault5Feature  = helperGenerateFeatureTable(Fault5R,  CandidateFeatures, FeatureNames, MinMax);
Fault6Feature  = helperGenerateFeatureTable(Fault6R,  CandidateFeatures, FeatureNames, MinMax);
Fault7Feature  = helperGenerateFeatureTable(Fault7R,  CandidateFeatures, FeatureNames, MinMax);
Fault8Feature  = helperGenerateFeatureTable(Fault8R,  CandidateFeatures, FeatureNames, MinMax);
Fault9Feature  = helperGenerateFeatureTable(Fault9R,  CandidateFeatures, FeatureNames, MinMax);

各特徴テーブルには 20 の特徴 (残差信号ごとに 5 つの特徴) があります。各テーブルは、各実験から 1 つずつ、50 の観測値 (行) を含みます。

N = 50; % number of experiments in each mode
FeatureTable = [...
   [HealthyFeature(1:N,:), repmat(Labels(1),[N,1])];...
   [Fault1Feature(1:N,:),  repmat(Labels(2),[N,1])];...
   [Fault2Feature(1:N,:),  repmat(Labels(3),[N,1])];...
   [Fault3Feature(1:N,:),  repmat(Labels(4),[N,1])];...
   [Fault4Feature(1:N,:),  repmat(Labels(5),[N,1])];...
   [Fault5Feature(1:N,:),  repmat(Labels(6),[N,1])];...
   [Fault6Feature(1:N,:),  repmat(Labels(7),[N,1])];...
   [Fault7Feature(1:N,:),  repmat(Labels(8),[N,1])];...
   [Fault8Feature(1:N,:),  repmat(Labels(9),[N,1])];...
   [Fault9Feature(1:N,:),  repmat(Labels(10),[N,1])]];
FeatureTable.Properties.VariableNames{end} = 'Condition';

% Preview some samples of training data
disp(FeatureTable([2 13 37 49 61 62 73 85 102 120],:))
     Mean1       Mean2      Mean3      Mean4      Max1        Max2        Max3        Max4       Kurtosis1    Kurtosis2    Kurtosis3    Kurtosis4     Variance1    Variance2    Variance3    Variance4    OneNorm1    OneNorm2    OneNorm3    OneNorm4            Condition        
    ________    _______    _______    _______    _______    ________    ________    _________    _________    _________    _________    __________    _________    _________    _________    _________    ________    ________    ________    ________    _________________________

     0.32049     0.6358     0.6358    0.74287    0.39187     0.53219     0.53219     0.041795      0.18957    0.089492     0.089489              0     0.45647       0.6263       0.6263      0.15642      0.56001    0.63541     0.63541      0.24258    {'Healthy'              }
     0.21975    0.19422    0.19422    0.83704          0     0.12761     0.12761      0.27644      0.18243     0.19644      0.19643        0.20856    0.033063      0.16772      0.16773     0.025119     0.057182    0.19344     0.19344     0.063167    {'Healthy'              }
      0.1847    0.25136    0.25136    0.87975    0.32545     0.13929      0.1393     0.084162      0.72346    0.091488     0.091485       0.052552    0.063757      0.18371      0.18371     0.023845      0.10671    0.25065     0.25065      0.04848    {'Healthy'              }
           1          1          1          0    0.78284     0.94535     0.94535       0.9287      0.41371     0.45927      0.45926        0.75934     0.92332            1            1      0.80689      0.99783          1           1       0.9574    {'Healthy'              }
     -2.6545    0.90555    0.90555    0.86324     1.3037      0.7492      0.7492      0.97823    -0.055035     0.57019      0.57018         1.4412      1.4411      0.73128      0.73128      0.80573       3.2084    0.90542     0.90542      0.49257    {'ClearanceGapWear'     }
    -0.89435    0.43384    0.43385     1.0744    0.82197     0.30254     0.30254    -0.022325      0.21411    0.098504       0.0985      -0.010587     0.55959      0.29554      0.29554     0.066693       1.0432    0.43326     0.43326      0.13785    {'ClearanceGapWear'     }
     -1.2149    0.53579    0.53579     1.0899    0.87439     0.47339     0.47339      0.29547     0.058946    0.048138     0.048137        0.17864     0.79648      0.48658      0.48658      0.25686       1.4066     0.5353      0.5353      0.26663    {'ClearanceGapWear'     }
     -1.0949    0.44616    0.44616      1.143    0.56693     0.19719     0.19719    -0.012055     -0.10819     0.32603      0.32603     -0.0033592     0.43341      0.12857      0.12857     0.038392       1.2238    0.44574     0.44574     0.093243    {'ClearanceGapWear'     }
     -0.1844    0.16651    0.16651    0.87747    0.25597    0.080265    0.080265      0.49715       0.5019     0.29939      0.29938         0.5338    0.072397     0.058024     0.058025       0.1453      0.20263    0.16566     0.16566      0.14216    {'ImpellerOutletDeposit'}
     -3.0312     0.9786     0.9786    0.75241      1.473     0.97839     0.97839       1.0343    0.0050647      0.4917       0.4917        0.89759      1.7529       0.9568       0.9568       0.8869       3.6536    0.97859     0.97859      0.62706    {'ImpellerOutletDeposit'}

分類器の設計

A. 散布図を使用したモードの分離可能性の可視化

特徴の視覚検査によって解析を始めます。そのためには、故障 1: クリアランスの隙間にある摩損について考えます。この故障を検出するのに最も適した特徴を表示するため、'Healthy' と 'ClearanceGapWear' のラベルを使って特徴の散布図を生成します。

T = FeatureTable(:,1:20);
P = T.Variables;
R = FeatureTable.Condition;
I = strcmp(R,'Healthy') | strcmp(R,'ClearanceGapWear');
f = figure;
gplotmatrix(P(I,:),[],R(I))
f.Position(3:4) = f.Position(3:4)*1.5;

Figure contains 420 axes objects. Axes object 1 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 3 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 4 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 5 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 6 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 7 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 8 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 9 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 10 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 11 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 12 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 13 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 14 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 15 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 16 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 17 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 18 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 19 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 20 contains 2 objects of type line. Axes object 21 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 22 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 23 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 24 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 25 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 26 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 27 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 28 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 29 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 30 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 31 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 32 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 33 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 34 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 35 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 36 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 37 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 38 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 39 contains 2 objects of type line. Axes object 40 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 41 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 42 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 43 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 44 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 45 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 46 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 47 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 48 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 49 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 50 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 51 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 52 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 53 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 54 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 55 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 56 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 57 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 58 contains 2 objects of type line. Axes object 59 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 60 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 61 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 62 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 63 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 64 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 65 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 66 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 67 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 68 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 69 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 70 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 71 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 72 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 73 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 74 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 75 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 76 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 77 contains 2 objects of type line. Axes object 78 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 79 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 80 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 81 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 82 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 83 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 84 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 85 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 86 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 87 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 88 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 89 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 90 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 91 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 92 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 93 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 94 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 95 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 96 contains 2 objects of type line. Axes object 97 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 98 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 99 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 100 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 101 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 102 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 103 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 104 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 105 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 106 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 107 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 108 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 109 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 110 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 111 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 112 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 113 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 114 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 115 contains 2 objects of type line. Axes object 116 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 117 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 118 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 119 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 120 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 121 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 122 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 123 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 124 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 125 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 126 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 127 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 128 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 129 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 130 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 131 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 132 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 133 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 134 contains 2 objects of type line. Axes object 135 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 136 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 137 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 138 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 139 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 140 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 141 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 142 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 143 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 144 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 145 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 146 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 147 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 148 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 149 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 150 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 151 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 152 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 153 contains 2 objects of type line. Axes object 154 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 155 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 156 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 157 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 158 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 159 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 160 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 161 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 162 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 163 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 164 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 165 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 166 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 167 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 168 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 169 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 170 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 171 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 172 contains 2 objects of type line. Axes object 173 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 174 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 175 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 176 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 177 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 178 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 179 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 180 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 181 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 182 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 183 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 184 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 185 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 186 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 187 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 188 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 189 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 190 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 191 contains 2 objects of type line. Axes object 192 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 193 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 194 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 195 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 196 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 197 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 198 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 199 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 200 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 201 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 202 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 203 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 204 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 205 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 206 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 207 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 208 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 209 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 210 contains 2 objects of type line. Axes object 211 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 212 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 213 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 214 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 215 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 216 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 217 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 218 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 219 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 220 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 221 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 222 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 223 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 224 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 225 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 226 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 227 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 228 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 229 contains 2 objects of type line. Axes object 230 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 231 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 232 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 233 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 234 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 235 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 236 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 237 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 238 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 239 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 240 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 241 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 242 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 243 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 244 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 245 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 246 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 247 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 248 contains 2 objects of type line. Axes object 249 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 250 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 251 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 252 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 253 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 254 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 255 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 256 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 257 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 258 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 259 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 260 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 261 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 262 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 263 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 264 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 265 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 266 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 267 contains 2 objects of type line. Axes object 268 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 269 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 270 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 271 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 272 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 273 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 274 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 275 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 276 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 277 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 278 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 279 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 280 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 281 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 282 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 283 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 284 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 285 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 286 contains 2 objects of type line. Axes object 287 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 288 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 289 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 290 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 291 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 292 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 293 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 294 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 295 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 296 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 297 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 298 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 299 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 300 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 301 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 302 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 303 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 304 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 305 contains 2 objects of type line. Axes object 306 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 307 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 308 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 309 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 310 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 311 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 312 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 313 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 314 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 315 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 316 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 317 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 318 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 319 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 320 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 321 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 322 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 323 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 324 contains 2 objects of type line. Axes object 325 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 326 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 327 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 328 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 329 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 330 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 331 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 332 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 333 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 334 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 335 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 336 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 337 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 338 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 339 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 340 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 341 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 342 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 343 contains 2 objects of type line. Axes object 344 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 345 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 346 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 347 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 348 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 349 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 350 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 351 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 352 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 353 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 354 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 355 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 356 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 357 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 358 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 359 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 360 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 361 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 362 contains 2 objects of type line. Axes object 363 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 364 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 365 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 366 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 367 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 368 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 369 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 370 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 371 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 372 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 373 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 374 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 375 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 376 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 377 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 378 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 379 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 380 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 381 contains 2 objects of type line. Axes object 382 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 383 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 384 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 385 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 386 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 387 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 388 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 389 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 390 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 391 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 392 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 393 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 394 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 395 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 396 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 397 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 398 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 399 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 400 contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Healthy, ClearanceGapWear. Hidden axes object 401 contains 2 objects of type histogram. Hidden axes object 402 contains 2 objects of type histogram. Hidden axes object 403 contains 2 objects of type histogram. Hidden axes object 404 contains 2 objects of type histogram. Hidden axes object 405 contains 2 objects of type histogram. Hidden axes object 406 contains 2 objects of type histogram. Hidden axes object 407 contains 2 objects of type histogram. Hidden axes object 408 contains 2 objects of type histogram. Hidden axes object 409 contains 2 objects of type histogram. Hidden axes object 410 contains 2 objects of type histogram. Hidden axes object 411 contains 2 objects of type histogram. Hidden axes object 412 contains 2 objects of type histogram. Hidden axes object 413 contains 2 objects of type histogram. Hidden axes object 414 contains 2 objects of type histogram. Hidden axes object 415 contains 2 objects of type histogram. Hidden axes object 416 contains 2 objects of type histogram. Hidden axes object 417 contains 2 objects of type histogram. Hidden axes object 418 contains 2 objects of type histogram. Hidden axes object 419 contains 2 objects of type histogram. Hidden axes object 420 contains 2 objects of type histogram.

明確には見えませんが、1 列目と 17 列目の特徴で最もよく分離しています。これらの特徴をさらに詳しく解析します。

f = figure;
Names = FeatureTable.Properties.VariableNames;
J = [1 17];
fprintf('Selected features for clearance gap fault: %s\n',strjoin(Names(J),', '))
Selected features for clearance gap fault: Mean1, OneNorm1
gplotmatrix(P(I,[1 17]),[],R(I))

Figure contains 6 axes objects. Axes object 1 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 contains 2 objects of type line. Axes object 3 contains 2 objects of type line. Axes object 4 contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Healthy, ClearanceGapWear. Hidden axes object 5 contains 2 objects of type histogram. Hidden axes object 6 contains 2 objects of type histogram.

これでプロットには、特徴 Mean1 および OneNorm1 を使用して、クリアランスの隙間の故障モードから健全モードを分離できることが明確に示されます。同様の解析を各故障モードについて実行できます。すべてのケースにおいて、故障モードを区別する特徴のセットを見つけることができます。したがって、故障動作の "検出" は常に可能です。ただし、同じ特徴に影響する故障タイプが複数あるため、故障の "特定" はより困難になります。たとえば、特徴 Mean1 (r1 の平均) と特徴 OneNorm1 (r1 の 1 ノルム) は多くの故障タイプで変化が見られます。同時に、センサー バイアスなど一部の故障は、多くの特徴において故障の特定が可能であり、比較的簡単に分離できます。

3 つのセンサー バイアス故障については、散布図の手動検査からの特徴を選択します。

figure;
I = strcmp(R,'Healthy') | strcmp(R,'PressureSensorBias') | strcmp(R,'SpeedSensorBias') | strcmp(R,'FlowmeterBias');
J = [1 4 6 16 20]; % selected feature indices
fprintf('Selected features for sensors'' bias: %s\n',strjoin(Names(J),', '))
Selected features for sensors' bias: Mean1, Mean4, Max2, Variance4, OneNorm4
gplotmatrix(P(I,J),[],R(I))

Figure contains 30 axes objects. Axes object 1 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 2 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 3 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 4 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 5 contains 4 objects of type line. Axes object 6 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 7 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 8 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 9 contains 4 objects of type line. Axes object 10 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 11 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 12 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 13 contains 4 objects of type line. Axes object 14 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 15 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 16 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 17 contains 4 objects of type line. Axes object 18 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 19 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 20 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 21 contains 4 objects of type line. Axes object 22 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 23 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 24 contains 4 objects of type line. One or more of the lines displays its values using only markers Axes object 25 contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent Healthy, SpeedSensorBias, FlowmeterBias, PressureSensorBias. Hidden axes object 26 contains 4 objects of type histogram. Hidden axes object 27 contains 4 objects of type histogram. Hidden axes object 28 contains 4 objects of type histogram. Hidden axes object 29 contains 4 objects of type histogram. Hidden axes object 30 contains 4 objects of type histogram.

選択した特徴の散布図は、4 つのモードが 1 つ以上の特徴ペアにより区別できることを示しています。故障の簡約セット (センサー バイアスのみ) に対し、特徴の簡約セットを使用して 20 メンバーのツリー バガー分類器に学習させます。

rng default % for reproducibility
Mdl = TreeBagger(20, FeatureTable(I,[J 21]), 'Condition',...
   'OOBPrediction','on',...
   'OOBPredictorImportance','on');
figure
plot(oobError(Mdl))
xlabel('Number of trees')
ylabel('Misclassification probability')

Figure contains an axes object. The axes object with xlabel Number of trees, ylabel Misclassification probability contains an object of type line.

誤分類のエラーは 3% 未満です。したがって、故障の特定のサブセットを分類するため、さらに少ない数の特徴のセットを選択し、取り扱うことが可能です。

B. 分類学習器アプリを使用した複数クラス分類器

前の節では散布図の手動検査に注目し、特定の故障タイプについて特徴セットを小さくしました。この方法は手間がかかり、すべての故障タイプをカバーしない可能性があります。さらに自動化された方法ですべての故障モードに対処できる分類器を設計することは可能でしょうか。Statistics and Machine Learning Toolbox には数多くの分類器が用意されています。短時間でこれらの多くを試してその性能を比較する 1 つの方法として、分類学習器アプリを使用できます。

  1. 分類学習器アプリを起動して、ワークスペースから、新しいセッションの作業データとして FeatureTable を選択します。ホールドアウト検証のためにデータの 20% (各モードの 10 のサンプル) を確保しておきます。

  2. メイン タブの [モデル タイプ] セクションで、[すべて] を選択します。次に [学習] ボタンを押します。

  3. 短時間で 20 の分類器の学習が行われます。これらの正確性は、履歴パネルでその名前の横に表示されます。線形 SVM 分類器の性能が最良であり、ホールド アウト サンプルでは 86% の正確性が得られます。この分類器では "ClearanceGapWear" の識別がやや難しく、40% の確率で "ImpellerOutletDeposit" として分類されます。

  4. 性能のグラフィカル ビューを得るには、メイン タブの [プロット] セクションから混同行列プロットを開きます。プロットは、選択した分類器 (ここでは線形 SVM 分類器) の性能を示します。

最も性能が良い分類器をワークスペースにエクスポートして、新しい測定値に対する予測に使用します。

まとめ

設計の優れた故障診断手法によって、サービスのダウンタイムとコンポーネントの交換費用を最小限に抑えることで運用コストを節約できます。この手法は、稼働するマシンのダイナミクスに関する適切な知識があると有利で、これとセンサー測定値を組み合わせて使用して、異なる種類の故障を検出し特定します。この例では、遠心ポンプの故障診断のための残差に基づく方法について説明しました。この方法は、モデル化タスクが複雑でモデル パラメーターに動作状態への依存が見られる場合に、パラメーターの推定と追跡に基づく方法の良い代替となります。

残差に基づく故障診断方法は以下の手順で行われます。

  1. 物理的な考慮事項またはブラック ボックスのシステム同定手法を使用して、システムの測定可能な入力と出力の間のダイナミクスをモデル化します。

  2. 測定した信号とモデルで生成された信号の差として残差を計算します。必要に応じて、故障特定可能性を改善するために残差をさらにフィルター処理します。

  3. 各残差信号からピーク振幅、電力、尖度などの特徴を抽出します。

  4. 異常検出と分類の手法を用いて、故障の検出と分類のための特徴を使用します。

  5. すべての残差および求められた特徴が、すべての故障の影響を受けるとは限りません。特徴ヒストグラムと散布図のビューによって、特定の故障タイプを検出するにはどの特徴が適しているかが明らかになります。特徴を選択し、故障特定におけるその性能を評価するこの過程は、反復手順となる場合もあります。

参考文献

  1. Isermann, Rolf, Fault-Diagnosis Applications.Model-Based Condition Monitoring:Actuators, Drives, Machinery, Plants, Sensors, and Fault-tolerant System, Edition 1, Springer-Verlag Berlin Heidelberg, 2011.

サポート関数

静的なポンプ方程式のパラメーター推定

function [x1, x2, dpest] = staticPumpEst(w, dp, I)
%staticPumpEst Static pump parameter estimation in a varying speed setting
% I: sample indices for the selected operating region.

w1 = [0; w(I)];
dp1 = [0; dp(I)];
R1 = [w1.^2 w1];
x = pinv(R1)*dp1;
x1 = x(1);  
x2 = x(2);  

dpest = R1(2:end,:)*x;
end

動的な配管のパラメーター推定

function [x3, x4, x5, Qest] = dynamicPipeEst(dp, Q, I)
%dynamicPipeEst Dynamic pipe parameter estimation in a varying speed setting
% I: sample indices for the selected operating region.

Q = Q(I);
dp = dp(I);
R1 = [0; Q(1:end-1)];
R2 = dp; R2(R2<0) = 0; R2 = sqrt(R2);
R = [ones(size(R2)), R2, R1];

% Remove out-of-regime samples
ii = find(I);
j = find(diff(ii)~=1);
R = R(2:end,:); R(j,:) = [];
y = Q(2:end); y(j) = [];
x = R\y;

x3 = x(1);
x4 = x(2);
x5 = x(3);

Qest = R*x;
end

LPV System ブロックを使用した、ポンプ-配管モデルの動的な複数操作モード シミュレーション。

function Qest = simulatePumpPipeModel(Ts,th3,th4,th5)
%simulatePumpPipeModel Piecewise linear modeling of dynamic pipe system.
% Ts: sample time
% w: Pump rotational speed
% th1, th2, th3 are estimated model parameters for the 3 regimes.
% This function requires Control System Toolbox.

ss1 = ss(th5(1),th4(1),th5(1),th4(1),Ts);
ss2 = ss(th5(2),th4(2),th5(2),th4(2),Ts);
ss3 = ss(th5(3),th4(3),th5(3),th4(3),Ts);
offset = permute([th3(1),th3(2),th3(3)]',[3 2 1]);
OP = struct('Region',[1 2 3]');
sys = cat(3,ss1,ss2,ss3);
sys.SamplingGrid = OP;

assignin('base','sys',sys)
assignin('base','offset',offset)
mdl = 'LPV_pump_pipe';
sim(mdl);
Qest = logsout.get('Qest');
Qest = Qest.Values;
Qest = Qest.Data;
end

逆ポンプ ダイナミクスの動的なモデルの特定。

function syse = identifyNonlinearARXModel(Mmot,w,Q,Ts,N)
%identifyNonlinearARXModel Identify a nonlinear ARX model for 2-input (w, Q), 1-output (Mmot) data.
% Inputs:
%  w: rotational speed
%  Q: Flow rate
%  Mmot: motor torque
%  N: number of data samples to use
% Outputs:
%  syse: Identified model
%
% This function uses NLARX estimator from System Identification Toolbox.

sys = idnlarx([2 2 1 0 1],'','CustomRegressors',{'u1(t-2)^2','u1(t)*u2(t-2)','u2(t)^2'});
data = iddata(Mmot,[w Q],Ts);
opt = nlarxOptions;
opt.Focus = 'simulation';
opt.SearchOptions.MaxIterations = 500;
syse = nlarx(data(1:N),sys,opt);
end

参考

トピック