主要内容

シミュレーションデータを使用した複数クラス故障検出

この例では、金宝app模拟モデルを使用して健全な状態のデータと故障状態のデータを生成する方法を説明します。このデータを使用して、さまざまな故障の組み合わせを検出する複数クラス分類器を開発します。この例は 3.重往復ポンプ モデルを使用し、漏れ、閉塞、およびベアリングの故障を含みます。

モデルの設定

この例では,拉链ファイルに保存されている多くのサポートファイルを使用します。ファイルを解冻してサポートファイルにアクセスし,モデルパラメーターを読み込み,往复ポンプライブラリを作成します。

如果~存在(' + mech_hydro_forcesPS '“dir”)解压('pdmRecipPump_金宝appsupportingfiles.zip'结束%负载参数pdmRecipPump_Parameters%泵CAT_Pump_1051_DataFile_importedCAD%%如果需要,创建Simscape库如果存在(“机械液压机构”“文件”)~=4 ssc\U构建mech_hydro_forcesPS结束

往復ポンプモデル

往復ポンプは,電気モーター,ポンプハウジング,ポンプクランク,およびポンププランジャーで構成されています。

mdl='pdmRecipPump';open_system(MDL)

开放式系统([mdl,'/泵'])

ポンプモデルは,シリンダーの漏れ,吸込口の閉塞,およびベアリング摩擦の増加という3タイプの故障をモデル化するように設定されます。これらの故障はワークスペース変数としてパラメーター化され,ポンプブロックダイアログによって設定されます。

故障データと健全データのシミュレーション

3つの故障タイプそれぞれについて,故障なしから重大な故障までの故障重大度を表す値の配列を作成します。

定义故障参数变化数值=10;泄漏面积系数=linspace(0.00,0.036,数值);泄漏面积系数=泄漏面积系数*TRP零件止回阀In.Max面积;泄漏面积系数=Max(泄漏面积系数,1e-9);%泄漏区域不能为0blockinfactor_set = linspace (0.8, 0.53, numParValues);bearingfactor_set = linspace(0 6的军医numParValues);

ポンプ モデルはノイズを含めるように設定されているため、同じ故障パラメーター値でモデルを実行すると、結果としてさまざまなシミュレーション出力が得られます。これは、同じ故障状態と重大度に対して複数のシミュレーション結果が可能であることを意味するので、分類器の開発に役立ちます。そのような結果が得られるシミュレーションを設定するには、故障パラメーター値のベクトルを作成します。ここで値は、故障なし、1.つの故障、2.つの故障の組み合わせ、および 3.つの故障の組み合わせを表します。故障なし、1.つの故障、などの各グループについて、上記で定義されている故障パラメーター値から、故障値の 125の組み合わせを作成します。これにより故障パラメーター値の合計 1000の組み合わせが得られます。

nPerGroup=125;%每个故障组中的元素个数%无故障模拟leakArea=repmat(leak\u area\u set(1),nPerGroup,1);blockingFactor=repmat(blockinfactor\u set(1),nPerGroup,1);bearingFactor=repmat(bearingFactor\u set(1),nPerGroup,1);%单故障模拟idx=ceil(10*rand(nPerGroup,1));leakArea=[leakArea;leak_area_set(idx)];blockingFactor=[blockingFactor;repmat(blockinfactor_set(1),nPerGroup,1)];leakArea=[leakArea;repmat(bearingFactor_set(1),nPerGroup,1)];blockingFactor=[blockingFactor;blockingFactor_集(idx)];bearingFactor=[bearingFactor;repmat(bearingFactor_集(1),nPerGroup,1)];idx=ceil(10*rand(nPerGroup,1));leakArea=[leakArea;repmat(leak_area_集(1),nPerGroup,1)];bearingFactor=[blockingFactor;repmat(blockingFactor_集(1),nPerGroup,1)];bearingFactor=[bearingFactor;bearingFactor_集(idx)];双故障模拟idxA =装天花板(10 *兰德(nPerGroup, 1));idxB =装天花板(10 *兰德(nPerGroup, 1));leakArea = [leakArea;leak_area_set (idxA)];blockingFactor = [blockingFactor; blockinfactor_set (idxB)];bearingFactor = [bearingFactor; repmat(bearingfactor_set(1),nPerGroup,1)];idxA =装天花板(10 *兰德(nPerGroup, 1));idxB =装天花板(10 *兰德(nPerGroup, 1));leakArea = [leakArea;leak_area_set (idxA)]; blockingFactor = [blockingFactor;repmat(blockinfactor_set(1),nPerGroup,1)]; bearingFactor = [bearingFactor;bearingfactor_set(idxB)']; idxA = ceil(10*rand(nPerGroup,1)); idxB = ceil(10*rand(nPerGroup,1)); leakArea = [leakArea; repmat(leak_area_set(1),nPerGroup,1)]; blockingFactor = [blockingFactor;blockinfactor_set(idxA)']; bearingFactor = [bearingFactor;bearingfactor_set(idxB)'];三次故障模拟idxA =装天花板(10 *兰德(nPerGroup, 1));idxB =装天花板(10 *兰德(nPerGroup, 1));idxC =装天花板(10 *兰德(nPerGroup, 1));leakArea = [leakArea;leak_area_set (idxA)];blockingFactor = [blockingFactor; blockinfactor_set (idxB)];bearingFactor = [bearingFactor; bearingfactor_set (idxC)];

故障パラメーターの組み合わせを使用して金宝app仿真软件。SimulationInputオブジェクトを作成します。各シミュレーション入力につき、異なる結果が生成されるようにランダム シードを必ず異なる値に設定します。

simminput (ct) = Simulink.SimulationInput金宝app(mdl);simInput (ct) = setVariable (simInput (ct),“leak_cyl_area_WKSP”leakArea (ct));simInput (ct) = setVariable (simInput (ct),“块系数中的块系数”,阻塞因子(ct));相似输入(ct)=设置变量(相似输入(ct),“轴承故障摩擦WKSP”,bearingFactor(CT));simInput (ct) = setVariable (simInput (ct),“noise_seed_offset_WKSP”,ct-1);结束

関数generateSimulationEnsembleを使用して,上で定义された金宝app仿真软件。SimulationInputオブジェクトによって定義されるシミュレーションを実行し、ローカル サブフォルダーに結果を格納します。次に、格納された結果から模拟训练数据存储を作成します。

これら 1000のシミュレーションを並列で実行する場合、標準のデスクトップでは約 1.時間かかり、約 620MBのデータが生成されることに注意してください。便宜上、最初の 10個のシミュレーションのみを実行するオプションが用意されています。

%运行仿真并创建一个整体来管理仿真结果runAll = true;如果runAll [OK,E] = generateSimulationEnsemble(simInput,完整文件(“。”“数据”),“UseParallel”,对);其他的[确定,E] = generateSimulationEnsemble(simInput(1:10),完整文件(“。”“数据”));% #好< UNRCH >结束
[09-APR-2018 9时01分38秒]检查并行池的可用性... [09-APR-2018 9时01分38秒]加载的Simulink并行的工人......分析和传输文件给工人..金宝app。完毕。[09-APR-2018 9时01分38秒]配置模拟高速并行的工人文件夹... [09-APR-2018 9时01分38秒]上并行运行工... SetupFcn [09-APR-2018 09:1点39]上平行工人加载模型... [09-APR-2018 9时01分39秒]转移模型中使用的平行工基工作区变量... [09-APR-2018 9时01分41秒]运行模拟... [09-APR-2018 9时02分28秒]已完成1000 1的模拟运行。[09-APR-2018 9时02分33秒]已完成2 1000的模拟运行。[09-APR-2018 09:02:37]已完成3 1000的模拟运行。[09-APR-2018 9时02分41秒]已完成4 1000的模拟运行。[09-APR-2018 9时02分46秒]已完成5 1000个模拟运行[09-APR-的2018 9时02分49秒]已完成1000 6的模拟运行。[09-APR-2018 9时02分54秒]已完成1000 7的模拟运行。[09-APR-2018 9时02分58秒]已完成8的1000个模拟运行[09-APR-2018 9时03分01秒]已完成的1000个仿真运行9 ...
实体= simulationEnsembleDatastore (fullfile (“。”“数据”));

シミュレーション結果からの特徴の処理と抽出

このモデルはポンプの吐出圧力,出流量,モーター速度,およびモーター電流をログに記録するよう設定されます。

ens.DataVariables
ans =8×1字符串数组"SimulationInput" "SimulationMetadata" "iMotor_meas" "pIn_meas" "pOut_meas" "qIn_meas" "qOut_meas" "wMotor_meas"

アンサンブルのメンバーごとに,ポンプ出流量を前処理し,ポンプ出流量に基づいて状態インジケーターを計算します。状態インジケーターは後で故障分類のために使用されます。前処理のため,出流量の最初の0.8秒を削除します。これにはシミュレーションおよびポンプ始動からの過渡状態が含まれるためです。前処理の一部として,出流量のパワースペクトルを計算し,SimulationInputを使って故障変数の値を返します。

対象とする変数だけが読み取りで返されるようにアンサンブルを设定し,この例の最后で定义されている关数预处理を呼び出します。

ens.SelectedVariables=[“qOut_meas”“模拟输入”];Reset (ens) data = read(ens)
data =1×2表qOut_meas SimulationInput __________________ ______________________________ [2001×1时间表] [1×1 Simulin金宝appk.SimulationInput]
(流、flowP flowF faultValues] =预处理(数据);

流量と流量スペクトルをプロットします。プロットされるデータは故障なしの状态のものです。

%带有标称值的数字子图(211);绘图(流量、时间、流量、数据);子图(212);半对数x(流量、功率2db(流量));xlabel(“赫兹”

流量スペクトルは,期待された周波数での共振ピークを示しています。具体的には,ポンプのモーター速度は950转,つまり15.833赫兹であり,ポンプはシリンダーを3つもつため,流量は3 * 15.833赫兹つまり47.5赫兹で基本波であり,47.5赫兹の倍数において高调波であると予想されます。流量スペクトルは,期待される共振ピークを明确に示しています。ポンプの1つのシリンダーに故障が生じると,ポンプのモーター速度15.833赫兹およびその高调波で共振が発生します。

流量スペクトルおよび低速信号は,可能な状態インジケーターをある程度示唆しています。具体的には,平均や分散などの一般的な信号統計量,およびスペクトル特性です。ピーク振幅の周波数,15.833赫兹周辺のエネルギー,47.5赫兹周辺のエネルギー,および100 Hzを超えるエネルギーなどの,期待される高調波に関連するスペクトル状態インジケーターが計算されます。スペクトル尖度ピークの周波数も計算されます。

状態インジケーターのデータ変数および故障変数値の状態変数を使用して、アンサンブルを設定します。その後、関数extractCIを呼び出して特徴を計算し,writeToLastMemberReadコマンドを使用して特徴および故障変数の値をアンサンブルに追加します。関数extractCIはこの例の最後で定義されています。

ens.DataVariables = [ens.DataVariables;...“FPEAK”“犁”“pMid”“pHigh”“肺结核”...“qMean”“qVar”“qSkewness”“qKurtosis”...“qPeak2Peak”“查收我们”“qRMS”“qMAD”“qCSRange”];ens.ConditionVariables = [“LeakFault”“BlockingFault”“BearingFault”];壮举= extractCI(流、flowP flowF);dataToWrite=[faultValues,feat];WriteLastMemberRead(ens,dataToWrite{:})

上记のコードは,シミュレーションアンサンブルの最初のメンバーの状态インジケーターを前处理して计算します。アンサンブルのhasdataコマンドを使用して,アンサンブルのすべてのメンバーについてこれを缲り返します。さまざまな故障状态下におけるシミュレーション结果を把握するには,アンサンブルを100要素ごとにプロットします。

%数字与名义和错误图,子地块(211);lFlow=绘图(流量、时间、流量、数据、,“线宽”子批次(212);lFlowP=semilogx(flowF,pow2db(flowP),“线宽”2);包含(“赫兹”)CT = 1;lColors = GET(lFlow.Parent,“彩色订单”)lIdx=2;%循环集合中的所有成员,预处理%并计算每个成员的特征尽管hasdata(实体)读取成员数据data =阅读(ens);%预处理并从成员数据中提取特征[flow,flowP,flowF,faultValues]=预处理(数据);feat=extractCI(flow,flowP,flowF);%添加所提取的特征值提供给构件数据dataToWrite=[faultValues,feat];WriteLastMemberRead(ens,dataToWrite{:})%绘制每100个成员的成员信号和频谱如果Mod (ct,100) == 0 line(“父”, lFlow。父母,“扩展数据”,流。时间,“YData”,流。数据,...“颜色”lColors (lIdx:));线(“父”,lFlowP.Parent,“扩展数据”,flowF,“YData”pow2db (flowP),...“颜色”lColors (lIdx:));如果lIdx == size(lColors,1);其他的lIdx = lIdx + 1;结束结束CT = CT + 1;结束

さまざまな故障状態および重大度の下において,期待される周波数でスペクトルに高調波が含まれることに注意してください。

ポンプの故障の検出と分類

前の節では,シミュレーションアンサンブルの全メンバーの流量信号から状態インジケーターを前処理して計算しました。これはさまざまな故障の組み合わせと重大度によるシミュレーション結果に対応します。状態インジケーターを使用して,ポンプの流量信号からポンプの故障を検出し分類することができます。

状态インジケーターを読み取るようにシミュレーションアンサンブルを设定し,高大コマンドと收集コマンドを使用してすべての状态インジケーターと故障変数値をメモリに読み込むことができます。

%获取数据来设计一个分类。重置(ens) ens. selectedvariables = [...“FPEAK”“犁”“pMid”“pHigh”“肺结核”...“qMean”“qVar”“qSkewness”“qKurtosis”...“qPeak2Peak”“查收我们”“qRMS”“qMAD”“qCSRange”...“LeakFault”“BlockingFault”“BearingFault”];idxLastFeature = 14;%加载状态指示器数据到内存中数据=聚集(高(ENS));
使用“local”配置文件启动并行池(parpool)…保留id为1 2的作业,因为它们包含崩溃转储文件。你可以使用'delete(myCluster.Jobs)'来删除所有用profile local创建的作业。要创建'myCluster',请使用'myCluster = parcluster('local')'。连接到6个工人。使用Parallel Pool 'local'计算tall表达式
数据(1:10,:)
ans =表10×17fPeak犁pMid pHigh pKurtosis qMean qVar qSkewness qKurtosis qPeak2Peak查收我们则qMAD qCSRange LeakFault BlockingFault BearingFault  ______ _______ ______ ______ _________ ______ ______ _________ _________ __________ ______ ______ ______ ________ _________ _____________ ____________ 43.909 0.86472 117.63 18.874 276.49 35.572 7.5242 -0.728322.7738 13.835 1.1494 35.677 2.2326 42690 0 1 e-09 0.8 43.909 0.44477 125.92 18.899 12.417 35.576 7.869 -0.7094 2.6338 13.335 1.1449 35.686 2.3204 42697 0 1 e-09 0.8 43.909 1.1782 137.99 17.526 11.589 35.573 7.4367 -0.72208 2.7136 12.641 1.1395 35.678 2.2407 42695 1 e-09 0.8 0 44.151 156.74 173.84 21.073 199.5 33.768 12.466 -0.30256 2.4782 17.4461.2138 33.952 2.8582 40518 2.4 e-06 0.8 0 43.848 0.71756 110.92 18.579 197.02 35.563 7.5781 -0.72377 2.793 14.14 1.1504 35.669 2.2671 42682 1 e-09 0.8 0 43.909 0.43673 119.56 20.003 11.589 35.57 7.5028 -0.74797 2.7913 13.833 1.1551 35.676 2.2442 42689 0 1 e-09 0.8 43.788 0.31617 135.3 19.724 476.82 35.568 7.4406 -0.70964 2.6884 14.685 1.1473 35.67342687 - 2.2392 1 e-09 0.8 0 43.848 0.72747 121.63 19.733 11.589 35.523 7.791 -0.72736 2.7864 14.043 1.1469 35.633 2.2722 42633 1 e-09 0.8 0 43.848 0.62777 128.85 19.244 11.589 35.541 7.5698 -0.6953 2.6942 13.451 1.1415 35.647 2.2603 42654 0 1 e-09 0.8 43.848 0.4631 134.83 18.918 12.417 35.561 7.8607 -0.68417 2.6664 13.885 1.1504 35.671 2.3078 426811 e-09 0.8 0

アンサンブルメンバーごとの故障変数値(データテーブルの1行)を故障フラグに変换し,これらの故障フラグを,各メンバーのさまざまな故障ステータスを捕捉する1つのフラグに组み合わせることが可能です。

%将故障变量值转换为标志data.LeakFlag=data.LeakFault>1e-6;data.BlockingFlag=data.BlockingFault<0.8;data.BearingFlag=data.BearingFault>0;data.CombinedFlag=data.LeakFlag+2*data.BlockingFlag+4*data.BearingFlag;

状态インジケーターを入力として受け取り,组み合わせた故障フラグを返す分类器を作成します0.2次多项式カーネルを使用するサポートベクターマシンを学习させます。cvpartitionコマンドを使用して、アンサンブルのメンバーを学習用のセットと検証用のセットに分割します。

rng (“默认”%的再现性预测器=数据(:,1:idxLastFeature);响应=data.CombinedFlag;cvp=cvpartition(大小(预测器,1),“KFold”5);%创建并训练分类器模板= templateSVM(...'KernelFunction'“多项式”...“多项式序”2....“KernelScale”“汽车”...“BoxConstraint”1....“标准化”, 真的);combinedClassifier = fitcecoc(...预测(cvp.training (1):)...响应(cvp.training (1):)...“学习者”, 模板,...'编码'“一对一”...“类名”, (0;1;2;3;4;5;6;7);

検証データを使用して学習後の分類器の性能をチェックし,結果を混同プロットにプロットします。

%通过计算和绘制混淆矩阵来检查性能actualValue =响应(cvp.test (1):);predictedValue = predict(combinedClassifier, predictors(cvp.test(1),:));confdata = confusionmat (actualValue predictedValue);图,标签= {“没有”“泄漏”“阻止”“泄露”&阻塞“方位”...“轴承&泄漏”“轴承和阻塞”“所有”};h =热图(confdata,...'YLabel'“实际泄漏故障”...'YDisplayLabels'、标签...'XLabel'“预测的故障”...'XDisplayLabels'、标签...“ColorbarVisible”“关闭”);

混同プロットは,故障の各組み合わせにつき,故障の組み合わせが正しく予測された回数(プロットの対角エントリ)と,故障の組み合わせが誤って予測された回数(非対角エントリ)を示しています。

混同プロットから、分類器は一部の故障状態を正しく分類しなかった (非対角項) ことがわかります。しかし、故障なしの状態は正しく予測されています。故障があっても故障なしの状態が予測された箇所 (1 列目) がいくつかありますが、それ以外には、厳密には正しい故障状態ではないにしても、故障が予測されています。全体的な検証の正確性は 84% で、故障があることを予測する正確性は 98% です。

%计算分类的整体精度sum(诊断接头(confdata)) /笔(confdata (:))
ans = 0.6150
%计算分类器在预测时的精度%是有故障1-sum (confdata(2:最终,1))/笔(confdata (:))
ans = 0.9450

故障なしと予測され,故障が存在したケースについて調べます。まず,検証データで,実際の故障が閉塞故障でありながら,故障なしと予測されたケースを見つけます。

vData =数据(cvp.test (1):);b1 = (actualValue==2) & (predictedValue==0);fData = vData (b1,十五17)
fData =11×3表泄漏故障阻塞故障轴承故障_________ _____________ ____________ 1e-09 0.77 0 1e-09 0.71 0 1e-09 0.77 0 1e-09 0.77 0 1e-09 0.62 0 1e-09 0.77 0 1e-09 0.71 0 8e-07 0.74 0 1e-09 0.74 0

検証データで,実際の故障がベアリング故障でありながら,故障なしとして予測されたケースを見つけます。

b2 = (actualValue==4) & (predictedValue==0);vData (b2,十五17)
Ans = 0×3空表

故障なしと予測されたにもかかわらず故障が存在したケースを調べてみると、これは閉塞故障値の 0.77がそのノミナル値 0.8に近い場合、またはベアリング故障値の 6.6e-5がそのノミナル値 0に近い場合に生じることが明らかになります。閉塞故障値が小さいケースのスペクトルをプロットし、故障なしの状態と比較すると、スペクトルがよく似ているために検出が困難になることがわかります。分類器を再学習させて、閉塞値の 0.77を故障なしの状態として含めると、故障検出器の性能は大幅に改善されます。あるいは、追加のポンプ測定値を使用してさらに多くの情報を提供することにより、小さな閉塞故障を検出できるように機能を改善することができます。

%配置合奏到只读的流动和故障变量值ens.SelectedVariables=[“qOut_meas”“LeakFault”“BlockingFault”“BearingFault”];重置(实体)%将集合成员数据加载到内存中数据=聚集(高(ENS));
使用Parallel Pool 'local'计算tall表达式
查找被错误预测的成员,并且%计算其功率谱idx=...数据。BlockingFault == fData.BlockingFault(1) &...data.LeakFault==fData.LeakFault(1)&...数据。BearingFault = = fData.BearingFault (1);flow1 =数据(idx, 1);flow1 = flow1.qOut_meas {1};[flow1P, flow1F] = pspectrum (flow1);%查找一个没有任何错误的成员idx=...数据。BlockingFault == 0.8 &...数据。LeakFault == 1e-9 &...数据。BearingFault = = 0;flow2 =数据(idx, 1);flow2 = flow2.qOut_meas {1};[flow2P, flow2F] = pspectrum (flow2);%绘制功率谱semilogx (...flow1F pow2db (flow1P),...flow2F,pow2db(flow2P));xlabel(“赫兹”)传奇(“小阻塞故障”“没有错”

まとめ

この例では仿金宝app真软件モデルを使用して,往復ポンプの故障をモデル化し,さまざまな故障の組み合わせと重大度の下でモデルをシミュレートして,ポンプの出流量から状態インジケーターを抽出し,その状態インジケーターを使用してポンプの故障を検出するための分類器を学習させる方法を示しました。ここでは分類器を使用した故障検出の性能を調べ,小さな閉塞故障は故障なしの状態によく似ているため正確に検出できないことを確認しました。

サポート関数

功能(流、flowSpectrum flowFrequencies faultValues] =预处理(数据)%辅助功能,对记录的往复泵数据进行预处理。%移除流量信号的前0.8秒tMin=seconds(0.8);flow=data.qOut_meas{1};flow=flow(flow.Time>=tMin,:);flow.Time=flow.Time-flow.Time(1);%确保以统一的采样率进行流量采样流=调整时间(流,“普通”“线性”“步伐”秒(1 e - 3));%从流量中去除平均值并计算流量谱fA =流;足总。Data =。数据——意味着(fA.Data);[flowSpectrum, flowFrequencies] = pspectrum(足总,“FrequencyLimits”[250]);%从SimulationInput中找到故障变量的值simin=data.simulationput{1};vars={simin.Variables.Name};idx=strcmp(vars,“leak_cyl_area_WKSP”);LeakFault = simin.Variables (idx) value;idx = strcmp (var,“块系数中的块系数”);BlockingFault = simin.Variables (idx) value;idx = strcmp (var,“轴承故障摩擦WKSP”);BearingFault = simin.Variables (idx) value;%收集单元格数组中的故障值faultValues = {...“泄漏故障”,LeakFault,...“堵塞故障”,BlockingFault,...'BearingFault'BearingFault};结束功能CI = extractCI(流量,flowP,flowF)%助手函数从流量信号提取条件指示符%和光谱。%查找功率谱峰值幅度的频率。pMax = max (flowP);fPeak = flowF (flowP = = pMax);%计算10-20 Hz低频范围内的功率。>= 10 & > <= 20;犁=总和(flowP(纤毛刷));%计算中频范围40hz ~ 60hz的功率。FRANGE = flowF> = 40&flowF <= 60;PMID =总和(flowP(FRANGE));%计算高频范围> 100hz的功率。fRange=flowF>=100;pHigh=sum(flowP(fRange));找出谱峰的频率[pKur,FKUR] = pkurtosis(流);pKur = FKUR(pKur == MAX(pKur));%计算流量累积和范围。csFlow = cumsum (flow.Data);csFlowRange = max (csFlow)分钟(csFlow);%收集单元格数组中的特征和特征值。%增加流量统计量(平均值、方差等)和公共信号%单元阵列的特征(rms、峰值等)。ci = {...'qMean',平均(flow.Data),...“qVar”var (flow.Data),...“qSkewness”偏态(flow.Data),...“qKurtosis”峰度(flow.Data),...“qPeak2Peak”peak2peak (flow.Data),...查收我们的,peak2rms(flow.Data),...“则”rms (flow.Data),...'qMAD',狂(flow.Data),...“qCSRange”csFlowRange,...“fPeak”fPeak,...“犁”...“pMid”pMid,...'PHIGH'pHigh,...“pKurtosis”,pKur(1)};结束

参考

关连するトピック