(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。ここでは、先ず、実施の形態1として、対象モジュールをポジショナ内のEPMとし、このEPMの異常診断を行う例を説明し、次に、実施の形態2として、対象モジュールをポジショナ内のパイロットリレーとし、このパイロットリレーの異常診断を行う例を説明する。そして、最後に、調節弁の異常診断を行う例を参考例として説明する。
【0026】
〔実施の形態1:EMP(対象モジュール)〕
図1にEPM2の異常診断を行う異常診断装置300の要部の構成を示す。この異常診断装置300は、CPU4と、ROMやRAMなどの記憶部5と、インタフェース6および7とを備えている。なお、この異常診断装置300は、ポジショナ100内に設けてもよいし、ポジショナ100の外部に設けるようにしてもよい。
図1はポジショナ100の外部に設けた例を示している。
【0027】
CPU4には、インタフェース6を介してEPM2への入力信号であるEPM駆動信号Dutyが分岐して入力され、インタフェース7を介してEPM2からの出力信号であるノズル背圧Pnが分岐して入力される。また、CPU4は、記憶部5に格納されているプログラムPGに従って動作する。
【0028】
記憶部5には、上述したプログラムPGの他、EPM2の正常時の静的な入出力関係(EPM駆動信号Dutyとノズル背圧Pnとの関係)を示す線形近似式F1、EPM駆動信号Dutyの変化速度とノズル背圧Pnの変化速度との組み合わせに応じた重みを求めるための重み関数G1
1,G1
2などが格納されている。
【0029】
〔線形近似式F1〕
この実施の形態1において、EPM2の正常時の静的な入出力関係を示す線形近似式F1は、EPM2の設計仕様により求められている。この例では、線形近似式F1がPn=a1×Duty+b1として定められ(a1,b1は定数)、記憶部5に格納されている。
【0030】
なお、EPM2の設計仕様がない場合等には、詰まりのない状態で、例えば開度設定信号Iinを25%、50%、75%の状態で一定時間静止させて、EPM駆動信号Dutyとノズル背圧Pnの平均値をとり(
図2参照)、3点から最小二乗法で求めるなどすればよい。この場合、静止させるのは3点でなくともよい。また、線形近似ではなく、非線形近似(多項式近似やサポートベクターマシンなどの非線形回帰式)であってもよい。
【0031】
〔重み関数G1
1,G1
2〕
この実施の形態1において、EPM駆動信号Dutyの変化速度とノズル背圧Pnの変化速度との組み合わせに応じた重みを求めるための重み関数G1
1,G1
2は、EPM駆動信号Dutyの変化速度から第1の重み成分wDutyを得るための重み関数としてG1
1が、ノズル背圧Pnの変化速度から第2の重み成分wPnを得るための重み関数としてG1
2が定められている。この重み関数G1
1,G1
2より得られる重み成分wDuty,wPnから、後述するように、w1=wDuty×wPnとして、EPM駆動信号Dutyの変化速度とノズル背圧Pnの変化速度との組み合わせに応じた重みw1を求める。
【0032】
図3(a)に重み関数G1
1の一例を示す。この実施の形態1では、
図3(a)に示されるように、EPM駆動信号Duty〔%〕の変化速度をvDuty〔%/sec〕とし、この変化速度vDutyの絶対値が閾値Dth以下の範囲のwDutyを1とし、それ以外は0とする。
【0033】
図3(b)に重み関数G1
2の一例を示す。この実施の形態1では、
図3(b)に示されるように、ノズル背圧Pn〔kPa〕の変化速度をvPn〔kPa/sec〕とし、この変化速度vPnの絶対値が閾値Pnth以下の範囲のwPnを1とし、それ以外は0とする。
【0034】
ここで、閾値Dth,Pnthは、EPM駆動信号Dutyの変化速度vDutyの許容値をDthとし、EPM駆動信号DutyをDthまで上昇させた時の遅れて生じるノズル背圧Pnの変化速度vPnをPnthとして定めている。なお、EPM駆動信号Dutyの変化速度vDutyの許容値Dthは、遅れによってEPMの異常と誤判断されてしまう虞のない変化速度vDutyの許容値を示している。この許容値Dthは実験を繰り返すことによって求められている。
【0035】
〔プロセス運転中の異常診断〕
プロセス運転中、CPU4は、定期的に、EPM2へのEPM駆動信号DutyおよびEPM2からのノズル背圧Pnを取り込んで、EPM2の異常診断を行う。
図4にCPU4が行う異常診断処理のフローチャートを示す。
【0036】
CPU4は、今回のサンプリング周期(k番目のサンプリング周期)で、EPM駆動信号Duty(k)およびノズル背圧Pn(k)を取り込むと(ステップS101,S102)、今回のEPM駆動信号Duty(k)と前回のEPM駆動信号Duty(k−1)とからEPM駆動信号Duty(k)の変化速度をvDuty(k)として求める(ステップS103)。また、今回のノズル背圧Pn(k)と前回のノズル背圧Pn(k−1)とからノズル背圧Pn(k)の変化速度をvPn(k)として求める(ステップS104)。
【0037】
この場合、サンプリング周期をT〔sec〕とすると、vDuty(k)〔%/sec 〕は下記(1)式によって計算でき、vPn(k)〔kPa/sec〕は下記(2)式によって計算できる。
vDuty(k)=(Duty(k)−Duty(k−1))/T ・・・・(1)
vPn(k)=(Pn(k)−Pn(k−1))/T ・・・・(2)
【0038】
次に、CPU4は、EPM駆動信号Duty(k)の変化速度vDuty(k)から、記憶部5に格納されている重み関数G1
1(
図3(a))に従って、その変化速度vDuty(k)に応じた重み成分wDuty(k)を求める(ステップS105)。この場合、変化速度vDuty(k)の絶対値が閾値Dth以下であれば、wDuty(k)=1とし、変化速度vDuty(k)の絶対値が閾値Dthを超えていれば、wDuty(k)=0とする。
【0039】
また、CPU4は、ノズル背圧Pn(k)の変化速度vPn(k)から、記憶部5に格納されている重み関数G1
2(
図3(b))に従って、その変化速度vPn(k)に応じた重み成分wPn(k)を求める(ステップS106)。この場合、変化速度vPn(k)の絶対値がPnth以下であれば、wPn(k)=1とし、変化速度vPn(k)の絶対値がPnthを超えていれば、wPn(k)=0とする。
【0040】
そして、CPU4は、ステップS105で求めた重み成分wDuty(k)とステップS106で求めた重み成分wPn(k)とから、w1(k)=wDuty(k)×wPn(k)として、EPM駆動信号Duty(k)の変化速度vDuty(k)とノズル背圧Pn(k)の変化速度vPn(k)との組み合わせに応じた重みw1(k)を求める(ステップS107)。
【0041】
この場合、w1(k)をw1(k)=wDuty(k)×wPn(k)として求めることから、下記の条件式(3)を満たす場合にのみ、重みw1(k)が1となり、それ以外では重みw1(k)が0となる。
If(|vDuty(k)|≦Dth)AND(|vPn(k)|≦Pnth) ・・・・(3)
【0042】
すなわち、EPM駆動信号Duty(k)の変化速度vDuty(k)の絶対値がDth以下で、かつノズル背圧Pn(k)の変化速度vPn(k)の絶対値がPnth以下である場合にのみ、重みw1(k)が1となり、それ以外では重みw1(k)が0となる。
【0043】
そして、CPU4は、ステップS101で取得したEPM駆動信号Duty(k)とステップS102で取得したノズル背圧Pn(k)とステップS107で求めた重みw1(k)とを下記(4)式に代入して、今回のサンプリング周期でのEPM2の異常診断指標値e1(k)を求める(ステップS108)。
e1(k)={Duty(k)−(Pn(k)−b1)/a1}×w1(k) ・・・・(4)
【0044】
上記(4)式において、「Duty(k)−(Pn(k)−b1)/a1」は、記憶部5に格納されている線形近似式F1で示されるEPM2の正常時の静的な入出力関係と、今回取得された入出力関係を示すデータとの間のDuty軸での差異を示している。すなわち、
図5において、線形近似式F1で示されるEPM2の正常時の静的な入出力関係を特性I、今回取得された入出力関係を示すデータをD(Duty(k),Pn(k))とした場合、特性Iにおけるノズル背圧がPn(k)である場合のEPM駆動信号Duty=(Pn(k)−b1)/a1と今回取得されたEPM駆動信号Duty(k)との差異ΔDuty(k)を示している。
【0045】
そして、上記(4)式において、「Duty(k)−(Pn(k)−b1)/a1」にw1(k)を乗じることによって、すなわちDuty軸での差異ΔDuty(k)にw1(k)を乗じることによって、EPM駆動信号Duty(k)の変化速度vDuty(k)の絶対値がDth以下で、かつノズル背圧Pn(k)の変化速度vPn(k)の絶対値がPnth以下である場合にのみ、ΔDuty(k)にw1(k)=1が乗じられる。それ以外の場合には、ΔDuty(k)にw1(k)=0が乗じられるので、異常診断指標値e1(k)は0となる。
【0046】
これにより、例えば、
図5に示した濃い丸印でプロットされたデータについては、EPM駆動信号Dutyあるいはノズル背圧Pnの変化速度が速いので、異常診断指標値e1(k)が0となり、異常診断の対象から除外されることになる。
【0047】
CPU4は、このようにして異常診断指標値e1(k)を求めた後、この求めた異常診断指標値e1(k)と予め定められている第1の異常診断閾値+e1
th1と比較する(ステップS109)。ここで、異常診断指標値e1(k)が第1の異常診断閾値+e1
th1以下であれば(ステップS109のNO)、第2の異常診断閾値−e1
th2と比較する(ステップS110)。
【0048】
図6に第1の異常診断閾値+e1
th1と第2の異常診断閾値−e1
th2との関係を示す。第1の異常診断閾値+e1
th1は正方向への閾値として定められ、第2の異常診断閾値−e1
th2は負方向への閾値として定められている。
【0049】
CPU4は、異常診断指標値e1(k)が第1の異常診断閾値+e1
th1を上回っていれば(ステップS109のYES)、固定絞りに詰まりが発生したと判断し(ステップS111)、その旨の異常報知を行う(ステップS113)。異常診断指標値e1(k)が第2の異常診断閾値−e1
th2を下回っていれば(ステップS110のYES)、ノズル・フラッパ間に詰まりが発生したと判断し(ステップS112)、その旨の異常報知を行う(ステップS113)。
【0050】
以下同様にして、CPU4は、EPM駆動信号Dutyおよびノズル背圧Pnをサンプリングする毎に、異常診断指標値e1(k)を求め、異常診断指標値e1(k)が異常診断閾値+e1
th1あるいは−e1
th2から外れていれば異常報知を行ってステップS101へ戻り、異常診断指標値e1(k)が異常診断閾値+e1
th1,−e1
th2の範囲内にあれば直ちにステップS101へ戻るという処理動作を繰り返す。
【0051】
このようにして、この実施の形態1では、プロセス運転中、正常時の静的な入出力関係を示す特性Iから大きく外れるデータを除外するようにして、簡易な静的モデルを用いて、正確に、EPM2の異常診断が行われるものとなる。
【0052】
なお、この実施の形態1では、異常診断指標値e1が1回でも異常診断閾値+e1
th1や異常診断閾値−e1
th2から外れると異常と判断するようにしたが、例えば連続して所定回数外れた場合に異常と判断するようにしたり、異常診断指標値e1が異常診断閾値+e1
th1や異常診断閾値−e1
th2の範囲内に戻ったら異常報知を中断するようにしてもよい。また、必ずしも異常診断閾値+e1
th1や異常診断閾値−e1
th2を用いなくてもよく、異常診断指標値e1の変化スピードなどからEPM2の異常を判断するようにしてもよい。
【0053】
また、この実施の形態1では、EPM駆動信号Dutyの変化速度とノズル背圧Pnの変化速度との組み合わせに応じた重みを求めるための重み関数G1
1,G1
2として、
図3(a),(b)に示すような矩形状の重み関数を用いたが、
図7(a),(b)に示すような三角形状の重み関数を用いるようにしてもよい。
【0054】
図7(a)に示した重み関数G1
1’では、vDutyが0の場合のwDutyを1とし、vDutyの絶対値が閾値Dth以下の範囲のwDutyをvDuty=0に向かって徐々に大きくし、それ以外のwDutyを0としている。
図7(b)に示した重み関数G1
2’では、vPnが0の場合のwPnを1とし、vPnの絶対値が閾値Pnth以下の範囲のwPnをvPn=0に向かって徐々に大きくし、それ以外のwPnを0としている。
【0055】
また、例えば、
図7(a)に示した重み関数G1
1’において、vDutyの正方向および負方向のさらに離れた位置から徐々にvDuty=0に向かってwDutyを大きくしたり、
図7(b)に示した重み関数G1
2’において、vPnの正方向および負方向のさらに離れた位置から徐々にvPn=0に向かってwPnを大きくしたりするようにしてもよい。このような重み関数G1
1’,G1
2’を用いることにより、変化速度が小さい(ゆっくり動いているときの)EPM駆動信号Dutyおよびノズル背圧Pnを優先的に利用して、EPM2の異常診断が行われるものとなる。
【0056】
また、EPM駆動信号Dutyの変化速度とノズル背圧Pnの変化速度との組み合わせに応じた重みを求めるための重み関数は、必ずしも重み関数G1
1とG1
2とに分けなくてもよく、G1
1とG1
2とを合成した1つの重み関数(3次元の関数)としてもよい。三角形状の重み関数G1
1’とG1
2’についても同様であり、G1
1’とG1
2’とを合成した1つの重み関数(3次元の関数)としてもよい。
【0057】
また、この実施の形態1では、EPM駆動信号Dutyおよびノズル背圧Pnをサンプリングする毎に異常診断指標値e1を求め、その求めた異常診断指標値e1に基づいて毎回異常の判断を行うようにしたが、所定期間内の異常診断指標値e1を集め、その集めた異常診断指標値e1から総合的に異常の判断を行うようにしてもよい。
【0058】
この実施の形態1の異常診断装置300において、EPM2の異常診断はプログラムPGに従うCPU4の処理動作として行われるが、このCPU4での処理動作を行う機能をブロック化して表した場合、CPU4は、EPM2へのEPM駆動信号Dutyを定期的にサンプリングするEPM駆動信号サンプリング部41
1と、EPM2からのノズル背圧Pnを定期的にサンプリングするノズル背圧サンプリング部42
1と、EPM駆動信号サンプリング部41
1によってサンプリングされた今回のEPM駆動信号Duty(k)と前回のEPM駆動信号Duty(k−1)とからEPM駆動信号Duty(k)の変化速度vDuty(k)を求めるEPM駆動信号変化速度算出部43
1と、ノズル背圧サンプリング部42
1によってサンプリングされた今回のノズル背圧Pn(k)と前回のノズル背圧Pn(k−1)とからノズル背圧Pn(k)の変化速度vPn(k)を求めるノズル背圧変化速度算出部44
1と、記憶部5に格納されている重み関数G1
1,G1
2に基づいてEPM駆動信号Duty(k)の変化速度vDuty(k)とノズル背圧Pn(k)の変化速度vPn(k)との組み合わせに応じた重みw1(k)を求める重み算出部45
1と、EPM駆動信号サンプリング部41
1によってサンプリングされたEPM駆動信号Duty(k)とノズル背圧サンプリング部42
1によってサンプリングされたノズル背圧Pn(k)と重み算出部45
1で求められた重みw1(k)と記憶部5に格納されている線形近似式F1とからEPM2の異常診断指標e1(k)を求める異常診断指標値算出部46
1とで表される。
【0059】
なお、この実施の形態1では、今回のEPM駆動信号Duty(k)と前回のEPM駆動信号Duty(k−1)とからEPM駆動信号Duty(k)の変化速度vDuty(k)を求めるようにし、今回のノズル背圧Pn(k)と前回のノズル背圧Pn(k−1)とからノズル背圧Pn(k)の変化速度vPn(k)を求めるようにしたが、過去の一定時間の信号を用いて最小二乗法で線形近似計算を行い、近似式の傾きを変化速度とすることも可能である。
【0060】
〔実施の形態2:パイロットリレー(対象モジュール)〕
図8にパイロットリレー3の異常診断を行う異常診断装置400の要部の構成を示す。この異常診断装置400も、実施の形態1と同様、CPU4と、ROMやRAMなどの記憶部5と、インタフェース6および7とを備えている。なお、この異常診断装置400についても、ポジショナ100内に設けてもよいし、ポジショナ100の外部に設けるようにしてもよい。
図8はポジショナ100の外部に設けた例を示している。
【0061】
CPU4には、インタフェース6を介してパイロットリレー3への入力信号であるノズル背圧Pnが分岐して入力され、インタフェース7を介してパイロットリレー3からの出力信号である操作器圧Poが分岐して入力される。また、CPU4は、記憶部5に格納されているプログラムPGに従って動作する。
【0062】
記憶部5には、上述したプログラムPGの他、パイロットリレー3の正常時の静的な入出力関係(ノズル背圧Pnと操作器圧Poとの関係)を示す線形近似式F2、ノズル背圧Pnの変化速度と操作器圧Poの変化速度との組み合わせに応じた重みを求めるための重み関数G2
1,G2
2などが格納されている。
【0063】
〔線形近似式F2〕
この実施の形態2において、パイロットリレー3の正常時の静的な入出力関係を示す線形近似式F2は、パイロットリレー3の設計仕様により求められている。この例では、線形近似式F2がPo=a2×Pn+b2として定められ(a2,b2は定数)、記憶部5に格納されている。
【0064】
なお、パイロットリレー3の設計仕様がない場合等には、漏れのない状態で、例えば開度設定信号Iinを25%、50%、75%の状態で一定時間静止させて、ノズル背圧Pnと操作器圧Poの平均値をとり(
図9参照)、3点から最小二乗法で求めるなどすればよい。この場合、静止させるのは3点でなくともよい。また、線形近似ではなく、非線形近似(多項式近似やサポートベクターマシンなどの非線形回帰式)であってもよい。
【0065】
〔重み関数G2
1,G2
2〕
この実施の形態2において、ノズル背圧Pnの変化速度と操作器圧Poの変化速度との組み合わせに応じた重みを求めるための重み関数G2
1,G2
2は、ノズル背圧Pnの変化速度から第1の重み成分wPnを得るための重み関数としてG2
1が、操作器圧Poの変化速度から第2の重み成分wPoを得るための重み関数としてG2
2が定められている。この重み関数G2
1,G2
2より得られる重み成分wPn,wPoから、後述するように、w2=wPn×wPoとして、ノズル背圧Pnの変化速度と操作器圧Poの変化速度との組み合わせに応じた重みw2を求める。
【0066】
図10(a)に重み関数G2
1の一例を示す。この実施の形態2では、
図10(a)に示されるように、ノズル背圧Pn〔kPa〕の変化速度をvPn〔kPa/sec〕とし、この変化速度vPnの絶対値が閾値Pnth以下の範囲のwPnを1とし、それ以外は0とする。
【0067】
図10(b)に重み関数G2
2の一例を示す。この実施の形態2では、
図10(b)に示されるように、操作器圧Po〔kPa〕の変化速度をvPo〔kPa/sec〕とし、この変化速度vPoの絶対値が閾値Poth以下の範囲のwPoを1とし、それ以外は0とする。
【0068】
ここで、閾値Pnth,Pothは、ノズル背圧Pnの変化速度vPnの許容値をPnthとし、ノズル背圧PnをPnthまで上昇させた時の遅れて生じる操作器圧Poの変化速度vPoをPothとして定めている。なお、ノズル背圧Pnの変化速度vPnの許容値Pnthは、遅れによってパイロットリレーの異常と誤判断されてしまう虞のない変化速度vPnの許容値を示している。この許容値Pnthは実験を繰り返すことによって求められている。
【0069】
〔プロセス運転中の異常診断〕
プロセス運転中、CPU4は、定期的に、パイロットリレー3へのノズル背圧Pnおよびパイロットリレー3からの操作器圧Poを取り込んで、パイロットリレー3の異常診断を行う。
図11にCPU4が行う異常診断処理のフローチャートを示す。
【0070】
CPU4は、今回のサンプリング周期(k番目のサンプリング周期)で、ノズル背圧Pn(k)および操作器圧Po(k)を取り込むと(ステップS201,S202)、今回のノズル背圧Pn(k)と前回のノズル背圧Pn(k−1)とからノズル背圧Pn(k)の変化速度をvPn(k)として求める(ステップS203)。また、今回の操作器圧Po(k)と前回の操作器圧Po(k−1)とから操作器圧Po(k)の変化速度をvPo(k)として求める(ステップS204)。
【0071】
この場合、サンプリング周期をT〔sec〕とすると、vPn(k)〔kPa/sec 〕は下記(5)式によって計算でき、vPo(k)〔kPa/sec〕は下記(6)式によって計算できる。
vPn(k)=(Pn(k)−Pn(k−1))/T ・・・・(5)
vPo(k)=(Po(k)−Po(k−1))/T ・・・・(6)
【0072】
次に、CPU4は、ノズル背圧Pn(k)の変化速度vPn(k)から、記憶部5に格納されている重み関数G2
1(
図10(a))に従って、その変化速度vPn(k)に応じた重み成分wPn(k)を求める(ステップS205)。この場合、変化速度vPn(k)の絶対値が閾値Pnth以下であれば、wPn(k)=1とし、変化速度vPn(k)の絶対値が閾値Pnthを超えていれば、wPn(k)=0とする。
【0073】
また、CPU4は、操作器圧Po(k)の変化速度vPo(k)から、記憶部5に格納されている重み関数G2
2(
図10(b))に従って、その変化速度vPo(k)に応じた重み成分wPo(k)を求める(ステップS206)。この場合、変化速度vPo(k)の絶対値がPoth以下であれば、wPo(k)=1とし、変化速度vPo(k)の絶対値がPothを超えていれば、wPo(k)=0とする。
【0074】
そして、CPU4は、ステップS205で求めた重み成分wPn(k)とステップS206で求めた重み成分wPo(k)とから、w2(k)=wPn(k)×wPo(k)として、ノズル背圧Pn(k)の変化速度vPn(k)と操作器圧Po(k)の変化速度vPo(k)との組み合わせに応じた重みw2(k)を求める(ステップS207)。
【0075】
この場合、w2(k)をw2(k)=wPn(k)×wPo(k)として求めることから、下記の条件式(7)を満たす場合にのみ、重みw2(k)が1となり、それ以外では重みw2(k)が0となる。
If(|vPn(k)|≦Pnth)AND(|vPo(k)|≦Poth) ・・・・(7)
【0076】
すなわち、ノズル背圧Pn(k)の変化速度vPn(k)の絶対値がPnth以下で、かつ操作器圧Po(k)の変化速度vPo(k)の絶対値がPoth以下である場合にのみ、重みw2(k)が1となり、それ以外では重みw2(k)が0となる。
【0077】
そして、CPU4は、ステップS201で取得したノズル背圧Pn(k)とステップS202で取得した操作器圧Po(k)とステップS207で求めた重みw2(k)とを下記(8)式に代入して、今回のサンプリング周期でのパイロットリレー3の異常診断指標値e2(k)を求める(ステップS208)。
e2(k)={Pn(k)−(Po(k)−b2)/a2}×w2(k) ・・・・(8)
【0078】
上記(8)式において、「Pn(k)−(Po(k)−b2)/a2」は、記憶部5に格納されている線形近似式F2で示されるパイロットリレー3の正常時の静的な入出力関係と、今回取得された入出力関係を示すデータとの間のPn軸での差異を示している。すなわち、
図12において、線形近似式F2で示されるパイロットリレー3の正常時の静的な入出力関係を特性II、今回取得された入出力関係を示すデータをD(Pn(k),Po(k))とした場合、特性IIにおけるノズル背圧がPo(k)である場合のノズル背圧Pn=(Po(k)−b2)/a2と今回取得されたノズル背圧Pn(k)との差異ΔPn(k)を示している。
【0079】
そして、上記(8)式において、「Pn(k)−(Po(k)−b2)/a2」にw2(k)を乗じることによって、すなわちPn軸での差異ΔPn(k)にw2(k)を乗じることによって、ノズル背圧Pn(k)の変化速度vPn(k)の絶対値がPnth以下で、かつ操作器圧Po(k)の変化速度vPo(k)の絶対値がPoth以下である場合にのみ、ΔPn(k)にw2(k)=1が乗じられる。それ以外の場合には、ΔPn(k)にw2(k)=0が乗じられるので、異常診断指標値e2(k)は0となる。
【0080】
これにより、例えば、
図12に示した濃い丸印でプロットされたデータについては、ノズル背圧Pnあるいは操作器圧Poの変化速度が速いので、異常診断指標値e2(k)が0となり、異常診断の対象から除外されることになる。
【0081】
CPU4は、このようにして異常診断指標値e2(k)を求めた後、この求めた異常診断指標値e2(k)と予め定められている第1の異常診断閾値+e2
th1と比較する(ステップS209)。ここで、異常診断指標値e2(k)が第1の異常診断閾値+e2
th1以下であれば(ステップS209のNO)、第2の異常診断閾値−e2
th2と比較する(ステップS210)。
【0082】
図13に第1の異常診断閾値+e2
th1と第2の異常診断閾値−e2
th2との関係を示す。第1の異常診断閾値+e2
th1は正方向への閾値として定められ、第2の異常診断閾値−e2
th2は負方向への閾値として定められている。
【0083】
CPU4は、異常診断指標値e2(k)が第1の異常診断閾値+e2
th1を上回っていれば(ステップS209のYES)、出力エア漏れが発生したと判断し(ステップS211)、その旨の異常報知を行う(ステップS213)。異常診断指標値e2(k)が第2の異常診断閾値−e2
th2を下回っていれば(ステップS210のYES)、出力エア排気異常(出力エアが抜けない)が発生したと判断し(ステップS212)、その旨の異常報知を行う(ステップS213)。
【0084】
以下同様にして、CPU4は、ノズル背圧Pnおよび操作器圧Poをサンプリングする毎に、異常診断指標値e2(k)を求め、異常診断指標値e2(k)が異常診断閾値+e2
th1あるいは−e2
th2から外れていれば異常報知を行ってステップS201へ戻り、異常診断指標値e2(k)が異常診断閾値+e2
th1,−e2
th2の範囲内にあれば直ちにステップS201へ戻るという処理動作を繰り返す。
【0085】
このようにして、この実施の形態2では、プロセス運転中、正常時の静的な入出力関係を示す特性IIから大きく外れるデータを除外するようにして、簡易な静的モデルを用いて、正確に、パイロットリレー3の異常診断が行われるものとなる。
【0086】
なお、この実施の形態2では、異常診断指標値e2が1回でも異常診断閾値+e2
th1や異常診断閾値−e2
th2から外れると異常と判断するようにしたが、例えば連続して所定回数外れた場合に異常と判断するようにしたり、異常診断指標値e2が異常診断閾値+e2
th1や異常診断閾値−e2
th2の範囲内に戻ったら異常報知を中断するようにしてもよい。また、必ずしも異常診断閾値+e2
th1や異常診断閾値−e2
th2を用いなくてもよく、異常診断指標値e2の変化スピードなどからパイロットリレー3の異常を判断するようにしてもよい。
【0087】
また、この実施の形態2では、ノズル背圧Pnの変化速度と操作器圧Poの変化速度との組み合わせに応じた重みを求めるための重み関数G2
1,G2
2として、
図10(a),(b)に示すような矩形状の重み関数を用いたが、
図14(a),(b)に示すような三角形状の重み関数を用いるようにしてもよい。
【0088】
図14(a)に示した重み関数G2
1’では、vPnが0の場合のwPnを1とし、vPnの絶対値が閾値Pnth以下の範囲のwPnをvPn=0に向かって徐々に大きくし、それ以外のwPnを0としている。
図14(b)に示した重み関数G2
2’では、vPoが0の場合のwPoを1とし、vPoの絶対値が閾値Poth以下の範囲のwPoをvPo=0に向かって徐々に大きくし、それ以外のwPoを0としている。
【0089】
また、例えば、
図14(a)に示した重み関数G2
1’において、vPnの正方向および負方向のさらに離れた位置から徐々にvPn=0に向かってwPnを大きくしたり、
図14(b)に示した重み関数G2
2’において、vPoの正方向および負方向のさらに離れた位置から徐々にvPo=0に向かってwPoを大きくしたりするようにしてもよい。このような重み関数G2
1’,G2
2’を用いることにより、変化速度が小さい(ゆっくり動いているときの)ノズル背圧Pnおよび操作器圧Poを優先的に利用して、パイロットリレー3の異常診断が行われるものとなる。
【0090】
また、ノズル背圧Pnの変化速度と操作器圧Poの変化速度との組み合わせに応じた重みを求めるための重み関数は、必ずしも重み関数G2
1とG2
2とに分けなくてもよく、G2
1とG2
2とを合成した1つの重み関数(3次元の関数)としてもよい。三角形状の重み関数G2
1’とG2
2’についても同様であり、G2
1’とG2
2’とを合成した1つの重み関数(3次元の関数)としてもよい。
【0091】
また、この実施の形態2では、ノズル背圧Pnおよび操作器圧Poをサンプリングする毎に異常診断指標値e2を求め、その求めた異常診断指標値e2に基づいて毎回異常の判断を行うようにしたが、所定期間内の異常診断指標値e2を集め、その集めた異常診断指標値e2から総合的に異常の判断を行うようにしてもよい。
【0092】
この実施の形態2の異常診断装置400において、パイロットリレー3の異常診断はプログラムPGに従うCPU4の処理動作として行われるが、このCPU4での処理動作を行う機能をブロック化して表した場合、CPU4は、パイロットリレー3へのノズル背圧Pnを定期的にサンプリングするノズル背圧サンプリング部41
2と、パイロットリレー3からの操作器圧Poを定期的にサンプリングする操作器圧サンプリング部42
2と、ノズル背圧サンプリング部41
2によってサンプリングされた今回のノズル背圧Pn(k)と前回のノズル背圧Pn(k−1)とからノズル背圧Pn(k)の変化速度vPn(k)を求めるノズル背圧変化速度算出部43
2と、操作器圧サンプリング部42
2によってサンプリングされた今回の操作器圧Po(k)と前回の操作器圧Po(k−1)とから操作器圧Po(k)の変化速度vPo(k)を求める操作器圧変化速度算出部44
2と、記憶部5に格納されている重み関数G2
1,G2
2に基づいてノズル背圧Pn(k)の変化速度vPn(k)と操作器圧Po(k)の変化速度vPo(k)との組み合わせに応じた重みw2(k)を求める重み算出部45
2と、ノズル背圧サンプリング部41
2によってサンプリングされたノズル背圧Pn(k)と操作器圧サンプリング部42
2によってサンプリングされた操作器圧Po(k)と重み算出部45
2で求められた重みw2(k)と記憶部5に格納されている線形近似式F2とからパイロットリレー3の異常診断指標e2(k)を求める異常診断指標値算出部46
2とで表される。
【0093】
なお、この実施の形態2では、今回のノズル背圧Pn(k)と前回のノズル背圧Pn(k−1)とからノズル背圧Pn(k)の変化速度vPn(k)を求め、今回の操作器圧Po(k)と前回の操作器圧Po(k−1)とから操作器圧Po(k)の変化速度vPo(k)を求めるようにしたが、過去の一定時間の信号を用いて最小二乗法で線形近似計算を行い、近似式の傾きを変化速度とすることも可能である。
【0094】
〔参考例〕
次に、参考例1として、調節弁の入出力信号(操作器圧力Po,開度X)から流体反力を異常診断指標値として求めて異常診断を行う例を説明し、参考例2として、調節弁の入出力信号(操作器圧力Po,開度X)からヒステリシスの幅を異常診断指標値として求めて異常診断を行う例を説明する。
【0095】
〔調節弁の異常診断〕
調節弁200では、操作器圧力Poと開度Xとの関係から、弁軸にかかる流体反力(プロセス流体による力)を検知することができる。
図15に流体反力発生時の調節弁200の入出力関係の変化を示す。同図において、IIIは正常時の静的な入出力関係を示す特性(無負荷時の特性)であり、流体反力発生によってその入出力関係が特性III’で示すように変化する。
【0096】
無負荷時は、操作器圧Poと開度Xの関係は、スプリング力、空気圧による力のバランスを表している。流体反力が発生することでそのバランスに差異が生じる。したがって、流体反力の発生していない状態(無負荷時)と比較することで、操作器圧Poの差異を検知することができる。この差異をモニタリングすることにより、使用範囲外の流体圧力の検知が可能となる。
【0097】
また、操作器圧Poと開度Xとの関係から、弁軸にかかる摩擦力の異常を検知することができる(例えば、特許文献4、特許文献5参照)。
図16(a)に正常時の操作器圧Poと開度Xとの入出力関係のヒステリシス特性を示す。操作器圧Poを上昇方向へ変化させた場合と下降方向へ変化させた場合とで入出力関係が異なり、上昇方向の特性と下降方向の特性との間にヒステリシスの幅Wが生じる。このヒステリシスの幅Wが、
図16(b)に示すように、摩擦力によって変化する。したがって、このヒステリシスの幅Wを正常時と比較することによって、異常と判断できる。なお、ヒステリシスの幅Wの1/2に操作器ダイアフラム面積を乗じれば静摩擦力となり、この静摩擦力を異常判断の指標値としてもよい。
【0098】
しかしながら、プロセス運転中、そのプロセス運転中のデータを利用して調節弁の異常診断を行おうとした場合、調節弁の異常をうまく診断することができない場合がある。
【0099】
例えば、
図15に示した調節弁の異常(流体反力大)の場合を考える。この場合、プロセス運転中、調節弁を速く動かすと、遅れのせいで、その入出力関係が正常時の静的な入出力関係を示す特性III(静的モデル)から大きく外れてしまう(
図17参照)。このため、調節弁の異常と誤診断してしまうことがある。
【0100】
また、
図16の調節弁の異常(摩擦力大)を考える。この場合、特許文献4や特許文献5で示された技術では、開度Xと操作器圧Poのどちらか、あるいは両方が速く動いているときのデータも利用する。そのようなデータが増えると、実際には摩擦力は変化していなくても、算出されるヒステリシスの幅Wが大きくなってしまう(
図18参照)。このため、調節弁の異常と誤診断してしまうことがある。
【0101】
なお、調節弁の遅れを含んだ動的なモデルを作成し、この作成した動的なモデルに基づいて異常診断を行うことが考えられる。しかし、この方法では、運動方程式を作成するなど(例えば、特許文献3参照)、精度の高い動的なモデルの作成に過大な労力を要し、運用時の計算量も多くなって、簡易に異常診断を行うことができない。以下に説明する参考例1,2では、上述した調節弁での異常診断に際しての問題を解決している。
【0102】
〔参考例1〕
図19に流体反力を異常診断指標値として調節弁200の異常診断を行う異常診断装置500の要部の構成を示す。この異常診断装置500は、CPU4と、ROMやRAMなどの記憶部5と、インタフェース6および7とを備えている。
【0103】
CPU4には、インタフェース6を介して調節弁200への入力信号である操作器圧Poが分岐して入力され、インタフェース7を介して調節弁200からの出力である開度Xが分岐して入力される。また、CPU4は、記憶部5に格納されているプログラムPGに従って動作する。
【0104】
記憶部5には、上述したプログラムPGの他、調節弁200の正常時の静的な入出力関係(操作器圧Poと開度Xとの関係(無負荷時))を示す線形近似式F3、操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みを求めるための重み関数G3
1,G3
2が格納されている。
【0105】
〔線形近似式F3〕
この参考例1において、調節弁200の正常時の静的な入出力関係を示す線形近似式F3は、調節弁200の設計仕様により求められている。この例では、スプリングレンジ80〜240kPaで開度0〜100%とした場合の線形近似式F3をX=a3×Po+b3として定め(a3=0.625,b3=−50)、記憶部5に格納している。
【0106】
なお、調節弁200の設計仕様がない場合等には、メンテナンス直後等の正常状態において、例えば開度設定信号Iinを25%、50%、75%の状態で一定時間静止させて、操作器圧Poと開度Xの平均値をとり(
図20参照)、3点から最小二乗法で求めるなどすればよい。この場合、静止させるのは3点でなくともよい。また、線形近似ではなく、非線形近似(多項式近似やサポートベクターマシンなどの非線形回帰式)であってもよい。
【0107】
〔重み関数G3
1,G3
2〕
この参考例1において、操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みを求めるための重み関数G3
1,G3
2は、操作器圧Poの変化速度から第1の重み成分wPoを得るための重み関数としてG3
1が、開度Xの変化速度から第2の重み成分wXを得るための重み関数としてG3
2が定められている。この重み関数G3
1,G3
2より得られる重み成分wPo,wXから、後述するように、w3=wPo×wXとして、操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みw3を求める。
【0108】
図21(a)に重み関数G3
1の一例を示す。この参考例1では、
図21(a)に示されるように、操作器圧Po〔kPa〕の変化速度をvPo〔kPa/sec〕とし、この変化速度vPoの絶対値が閾値Poth以下の範囲のwPoを1とし、それ以外は0とする。
【0109】
図21(b)に重み関数G3
2の一例を示す。この参考例1では、
図21(b)に示されるように、開度X〔%〕の変化速度をvX〔%/sec〕とし、この変化速度vXの絶対値が閾値Xth以下の範囲のwXを1とし、それ以外は0とする。
【0110】
ここで、閾値Poth,Xthは、操作器圧Poの変化速度vPoの許容値をPothとし、操作器圧PoをPothまで上昇させた時の遅れて生じる開度Xの変化速度vXをXthとして定めている。なお、操作器圧Poの変化速度vPoの許容値Pothは、遅れによって調節弁の異常と誤判断されてしまう虞のない変化速度vPoの許容値を示している。この許容値Pothは実験を繰り返すことによって求められている。
【0111】
〔プロセス運転中の異常診断〕
プロセス運転中、CPU4は、調節弁200への操作器圧Poおよび調節弁200からの開度Xを定期的に取り込んで、調節弁200の異常診断を行う。
図22にCPU4が行う異常診断処理のメインのフローチャートを示す。
【0112】
CPU4は、操作器圧Po(k)および開度X(k)を取り込むと、その取り込んだ操作器圧Poの変化速度と開度Xの変化速度とを求め、その求めた操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みw3(k)を求める(ステップS301)。
図23にステップS301で行われる処理のサブルーチンを示す。
【0113】
CPU4は、今回のサンプリング周期(k番目のサンプリング周期)で、操作器圧Po(k)および開度X(k)を取り込むと(ステップS401,S402)、今回の操作器圧Po(k)と前回の操作器圧Po(k−1)とから操作器圧Po(k)の変化速度をvPo(k)として求める(ステップS403)。また、今回の開度X(k)と前回の開度X(k−1)とから開度X(k)の変化速度をvX(k)として求める(ステップS404)。
【0114】
この場合、サンプリング周期をT〔sec〕とすると、vPo(k)〔kPa/sec 〕は下記(9)式によって計算でき、vX(k)〔%/sec〕は下記(10)式によって計算できる。
vPo(k)=(Po(k)−Po(k−1))/T ・・・・(9)
vX(k)=(X(k)−X(k−1))/T ・・・・(10)
【0115】
次に、CPU4は、操作器圧Po(k)の変化速度vPo(k)から、記憶部5に格納されている重み関数G3
1(
図21(a))に従って、その変化速度vPo(k)に応じた重み成分wPo(k)を求める(ステップS405)。この場合、変化速度vPo(k)の絶対値が閾値Poth以下であれば、wPo(k)=1とし、変化速度vPo(k)の絶対値が閾値Pothを超えていれば、wPo(k)=0とする。
【0116】
また、開度X(k)の変化速度vX(k)から、記憶部5に格納されている重み関数G3
2(
図21(b))に従って、その変化速度vX(k)に応じた重み成分wX(k)を求める(ステップS406)。この場合、変化速度vX(k)の絶対値が閾値Xth以下であれば、wX(k)=1とし、変化速度vX(k)の絶対値が閾値Xthを超えていれば、wX(k)=0とする。
【0117】
そして、CPU4は、ステップS405で求めた重み成分wPo(k)とステップS406で求めた重み成分wX(k)とから、w3(k)=wPo(k)×wX(k)として、操作器圧Po(k)の変化速度vPo(k)と開度X(k)の変化速度vX(k)との組み合わせに応じた重みw3(k)を求める(ステップS407)。
【0118】
この場合、w3(k)をw3(k)=wPo(k)×wX(k)として求めることから、下記の条件式(11)を満たす場合にのみ、重みw3(k)が1となり、それ以外では重みw3(k)が0となる。
If(|vPo(k)|≦Poth)AND(|vX(k)|≦Xth) ・・・・(11)
【0119】
すなわち、操作器圧Po(k)の変化速度vPo(k)の絶対値がPoth以下で、かつ開度X(k)の変化速度vX(k)の絶対値がXth以下である場合にのみ、重みw3(k)が1となり、それ以外では重みw3(k)が0となる。
【0120】
〔w3(k)=0の場合〕
次に、CPU4は、重みw3(k)が1であるか否かをチェックし(ステップS302(
図22))、重みw3(k)が1でなければ(ステップS302のNO)、kをインクリメントして(ステップS305)、予め定められている算出単位期間(異常診断判断期間)にまだ到達していないことを確認のうえ(ステップS306のNO)、ステップS301に戻る。なお、この例では、ステップS306での異常診断判断期間を1日としている。
【0121】
〔w3(k)=1の場合〕
重みw3(k)が1であれば(ステップS302のYES)、CPU4は、開度X(k)が属するカテゴリiを定める(ステップS303)。
図24にステップS303で行われる処理のサブルーチンを示す。
【0122】
CPU4は、先ず、開度X(k)がX(k)≧100%であるか否かをチェックする(ステップS501)。ここで、開度X(k)が100%以上であれば(ステップS501のYES)、カテゴリiをi=20とする(ステップS502)。開度X(k)が100%以上でなければ(ステップS501のNO)、カテゴリiをi=X(k)/5+1とする(ステップS503)。但し、i=X(k)/5+1の算出値において、小数点以下は切り捨てる。これにより、開度X(k)が0〜100%の値を取ると仮定すると、0〜100%が5%の開度幅で20のカテゴリに分けられる。
【0123】
次に、CPU4は、開度X(k)が属するカテゴリiにおいて、操作器圧Poの最大値と最小値を更新する(ステップS304(
図22))。
図25にステップS304で行われる処理のサブルーチンを示す。なお、このサブルーチンにおいて、Max_p〔i〕はカテゴリi内の操作器圧Poの最大値、Min_p〔i〕はカテゴリi内の操作器圧Poの最小値を示す。Max_p〔i〕およびMin_p〔i〕の初期値については後述する。
【0124】
CPU4は、先ず、操作器圧Po(k)がPo(k)>Max_p〔i〕か否かをチェックする(ステップS601)。ここで、Po(k)がMax_p〔i〕よりも大きければ(ステップS601のYES)、Po(k)を新たなMax_p〔i〕とする(ステップS603)。Po(k)がMax_p〔i〕以下であれば(ステップS601のNO)、Po(k)<Min_p〔i〕か否かをチェックする(ステップS602)。ここで、Po(k)がMin_p〔i〕よりも小さければ(ステップS602のYES)、Po(k)を新たなMin_p〔i〕とする(ステップS604)。Po(k)がMax_p〔i〕以下でかつMin_p〔i〕以上であれば(ステップS602のNO)、Max_p〔i〕およびMin_p〔i〕の更新は行わない。
【0125】
そして、CPU4は、このMax_p〔i〕およびMin_p〔i〕の更新処理後、kをインクリメントして(ステップS305(
図22))、異常診断判断期間にまだ到達していないことを確認のうえ(ステップS306のNO)、ステップS301に戻る。
【0126】
このステップS301〜S306の繰り返しによって、重みw3(k)が0の時の操作器圧Po(k)および開度X(k)が除外され、重みw3(k)が1の時の操作器圧Po(k)および開度X(k)のみが抽出され(
図28参照)、この抽出されたデータを有効なデータ(抽出対象データ)として、カテゴリi毎に、そのカテゴリi内の操作器圧Poの最大値Max_p〔i〕および最小値Min_p〔i〕が求められるものとなる。
【0127】
〔異常診断判断期間に達した場合〕
CPU4は、異常診断判断期間に達すると(ステップS306のYES)、すなわちステップS305でのkのインクリメント値が異常診断判断期間に到達したことを示すと、カテゴリi毎に流体反力を異常診断指標値として求める(ステップS307)。
図26にステップS307で行われる処理のサブルーチンを示す。
【0128】
CPU4は、先ず、i=1とする(ステップS701)。そして、Fq〔i〕をi=1番目のカテゴリの流体反力とし、そのカテゴリiにおける操作器圧Poの最大値Max_p〔i〕および最小値Min_p〔i〕を下記の(12)式に代入して、i=1番目のカテゴリの流体反力Fq〔i〕を算出する(ステップS702)。但し、Xi=2.5+(i−1)×5。
Fq〔i〕=(Xi−b3)/a3−(Max_p〔i〕+Min_p〔i〕)/2 ・・・・(12)
【0129】
上記(12)式は、記憶部5に格納されている線形近似式F3で示される調節弁200の正常時の静的な入出力関係と、カテゴリiにおける収集された入出力関係を示すデータ(代表値)との間のPo軸での差異を示している。すなわち、カテゴリiにおける操作器圧Poの最大値Max_p〔i〕と最小値Min_p〔i〕との間の中央値((Max_p〔i〕+Min_p〔i〕)/2)をカテゴリi内の操作器圧Poの代表値とし、カテゴリiの開度範囲の中央値(Xi)をカテゴリi内の開度Xの代表値とし、この代表値と正常時のデータとの間のPo軸での差異を示している(
図29参照)。この差異をカテゴリiの流体反力Fq〔i〕として算出する。なお、Fq〔i〕は圧力〔kPa〕であるが、操作器ダイアフラム面積〔m
2〕×10
-3を乗ずることで、単位を圧力〔kPa〕から力〔N〕に変換できる。
【0130】
CPU4は、i=1番目のカテゴリの流体反力Fq〔i〕を算出した後、i=20となるまで(ステップS703のYES)、iをインクリメントしながら(ステップS704)、ステップS701〜S704の処理動作を繰り返す。これにより、全てのカテゴリiについて、そのカテゴリiの流体反力Fq〔i〕が算出される(
図30参照)。
【0131】
そして、CPU4は、このカテゴリi毎の流体反力Fq〔i〕を算出した後、この求めたカテゴリi毎の流体反力Fq〔i〕を異常診断指標値とし、その流体反力Fq〔i〕と予め定められている閾値とを比較し(ステップS308(
図22))、1つでもその流体反力Fq〔i〕が閾値を超えていれば(ステップS308のYES)、異常報知を行う(ステップS309)。
【0132】
CPU4は、ステップS309での異常報知後、あるいはステップS308でのNOに応じて、全てのカテゴリiの操作器圧Poの最大値Max_p〔i〕と最小値Min_p〔i〕を初期値にリセットし(ステップS310)、ステップS301の処理へと戻り、同様の処理動作を繰り返す。
【0133】
図27にステップS310で行われる処理のサブルーチンを示す。CPU4は、先ず、i=1とする(ステップS801)。そして、Max_p〔i〕=−INF、Min_p〔i〕=INFとする。なお、INFは操作器圧Poが通常取り得る範囲を超える非常に大きな値(正の値)とする。これにより、Min_p〔i〕は操作器圧Poが通常取り得る範囲を超える正の値(初期値)とされ、Max_p〔i〕はMin_p〔i〕とは逆の負の値(初期値)とされる。
【0134】
CPU4は、i=1番目のカテゴリのMax_p〔i〕および最小値Min_p〔i〕を初期値とした後、i=20となるまで(ステップS803のYES)、iをインクリメントしながら(ステップS804)、ステップS801〜S804の処理動作を繰り返す。これにより、全てのカテゴリiについて、そのカテゴリiのMax_p〔i〕および最小値Min_p〔i〕が初期値とされる。
【0135】
ステップS309において、全てのカテゴリiについて、そのカテゴリiのMax_p〔i〕を−INF(負の値)とし、最小値Min_p〔i〕をINF(正の値)とすることによって、次のステップS304においてMax_p〔i〕および最小値Min_p〔i〕の更新処理が行われる場合に、操作器圧Po(k)にどのような値が来たとしてもMax_p〔i〕,Min_p〔i〕がPo(k)に更新されるものとなる。
【0136】
なお、異常診断判断期間に達した時点で、i番目のカテゴリのMax_p〔i〕,Min_p〔i〕が一度も更新されていなかった場合、すなわち初期化時の値が残っていた場合には、ステップS307での流体反力の計算は行わず、i番目のカテゴリの流体反力は算出不能とみなして閾値判定を行わないようにする。
【0137】
このようにして、この参考例1では、プロセス運転中、正常時の静的な入出力関係を示す特性IIIから大きく外れるデータを除外するようにして、簡易な静的モデルを用いて、正確に、調節弁200の異常診断が行われるものとなる。
【0138】
なお、この参考例1では、操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みを求めるための重み関数G3
1,G3
2として、
図21(a),(b)に示すような矩形状の重み関数を用いたが、
図31(a),(b)に示すような三角形状の重み関数を用いるようにしてもよい。
【0139】
図31(a)に示した重み関数G3
1’では、vPoが0の場合のwPoを1とし、vPoの絶対値が閾値Poth以下の範囲のwPoをvPo=0に向かって徐々に大きくし、それ以外のwPoを0としている。
図31(b)に示した重み関数G3
2’では、vXが0の場合のwXを1とし、vXの絶対値が閾値Xth以下の範囲のwXをvX=0に向かって徐々に大きくし、それ以外のwXを0としている。
【0140】
また、例えば、
図31(a)に示した重み関数G3
1’において、vPoの正方向および負方向のさらに離れた位置から徐々にvPo=0に向かってwPoを大きくしたり、
図31(b)に示した重み関数G3
2’において、vXの正方向および負方向のさらに離れた位置から徐々にvX=0に向かってwXを大きくしたりするようにしてもよい。
【0141】
また、操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みを求めるための重み関数は、必ずしも重み関数G3
1とG3
2とに分けなくてもよく、G3
1とG3
2とを合成した1つの重み関数(3次元の関数)としてもよい。三角形状の重み関数G3
1’とG3
2’についても同様であり、G3
1’とG3
2’とを合成した1つの重み関数(3次元の関数)としてもよい。
【0142】
〔参考例2〕
図32にヒステリシスの幅を異常診断指標値として調節弁200の異常診断を行う異常診断装置600の要部の構成を示す。この異常診断装置600も、参考例1と同様、CPU4と、ROMやRAMなどの記憶部5と、インタフェース6および7とを備えている。
【0143】
CPU4には、インタフェース6を介して調節弁200への入力信号である操作器圧Poが分岐して入力され、インタフェース7を介して調節弁200からの出力である開度Xが分岐して入力される。また、CPU4は、記憶部5に格納されているプログラムPGに従って動作する。
【0144】
記憶部5には、上述したプログラムPGの他、調節弁200の正常時の入出力関係を示す特性(操作器圧Poと開度Xとのヒステリシス特性)におけるヒステリシスの幅W1、操作器圧Poの変化速度と開度Xの変化速度との組み合わせに応じた重みを求めるための重み関数G4
1,G4
2が格納されている。
【0145】
〔ヒステリシスの幅W1〕
この参考例2において、調節弁200の正常時のヒステリシスの幅W1は、調節弁200の設計仕様により求められ、記憶部5に格納されている。なお、調節弁200の設計仕様がない場合には、メンテナンス直後等の正常状態において、
図33(a)に示すように、ポジショナ100に全開度領域で低速ランプ入力を往復で与え、
図33(b)に示すように、操作器圧Poと開度Xのデータを取得し、その結果から正常時のヒステリシスの幅W1を求めるようにしてもよい。
【0146】
〔重み関数G4
1,G4
2〕
この実施の形態において、重み関数G4
1,G4
2は、
図34(a),(b)に示すように、参考例1で示した重み関数G3
1,G3
2(
図21(a),(b))と同じものを使用するので、ここでの説明は省略する。
【0147】
〔プロセス運転中の異常診断〕
プロセス運転中、CPU4は、調節弁200への操作器圧Poおよび調節弁200からの開度Xを定期的に取り込んで、調節弁200の異常診断を行う。
図35にCPU4が行う異常診断処理のメインのフローチャートを示す。
【0148】
このフローチャートにおいて、ステップS311〜S316の処理は、参考例1で説明したステップS301〜S306(
図22)の処理と同じなので、省略する。
【0149】
〔異常診断判断期間に達した場合〕
CPU4は、異常診断判断期間に達すると(ステップS316のYES)、カテゴリi毎にヒステリシスの幅を異常診断指標値として求める(ステップS317)。
図36にステップS317で行われる処理のサブルーチンを示す。
【0150】
CPU4は、先ず、i=1とする(ステップS711)。そして、Ft〔i〕をi=1番目のカテゴリのヒステリシスの幅とし、そのカテゴリiにおける操作器圧Poの最大値Max_p〔i〕および最小値Min_p〔i〕を下記の(13)式に代入して、i=1番目のカテゴリのヒステリシスの幅Ft〔i〕を算出する(ステップS712、
図37参照)。
Ft〔i〕=Max_p〔i〕−Min_p〔i〕 ・・・・(13)
【0151】
CPU4は、i=1番目のカテゴリのヒステリシスの幅Ft〔i〕を算出した後、i=20となるまで(ステップS713のYES)、iをインクリメントしながら(ステップS714)、ステップS711〜S714の処理動作を繰り返す。これにより、全てのカテゴリiについて、そのカテゴリiのヒステリシスの幅Ft〔i〕が算出される(
図38参照)。
【0152】
そして、CPU4は、このカテゴリi毎のヒステリシスの幅Ft〔i〕を算出した後、記憶部5に格納されている正常時のヒステリシスの幅W1を読み出し、このヒステリシスの幅W1に所定値αを加算した値を閾値とし、この閾値とカテゴリi毎のヒステリシスの幅Ft〔i〕とを比較し(ステップS318(
図35))、1つでもそのヒステリシスの幅Ft〔i〕が閾値を超えていれば(ステップS318のYES)、異常報知を行う(ステップS319)。
【0153】
CPU4は、ステップS319での異常報知後、あるいはステップS318でのNOに応じて、全てのカテゴリiの操作器圧Poの最大値Max_p〔i〕と最小値Min_p〔i〕を初期値にリセットし(ステップS320)、ステップS301の処理へと戻り、同様の処理動作を繰り返す。ステップS320での初期値へのリセットは、参考例1におけるステップS310(
図22(
図27))での処理動作と同じであるので、ここでの説明は省略する。
【0154】
このようにして、この参考例2では、プロセス運転中、正常時のヒステリシスの幅から大きく外れるデータを除去するようにして、ヒステリシスの幅を用いて、正確に、調節弁200の異常診断が行われるものとなる。
【0155】
なお、参考例1に示した通り、運転中に、弁軸が流体反力を受けることで、操作器圧Poと開度Xとの関係は変化する。しかし、ヒステリシスの幅Wは摩擦力に依存しており、
図40に示すように、流体反力によって大きく変わることはない。そのため、流体圧力の影響下でも、参考例2の有効性は失われない。
【0156】
また、この参考例2では、ステップS317において、Ft〔i〕=Max_p〔i〕−Min_p〔i〕としてカテゴリi毎のヒステリシスの幅を求めるようにしたが、Ft〔i〕=(Max_p〔i〕−Min_p〔i〕)/2としてカテゴリi毎の摩擦力を求めるようにしてもよい(
図39参照)。
【0157】
Ft〔i〕を摩擦力とする場合、ステップS318では、記憶部5に格納されている正常時のヒステリシスの幅W1を読み出し、このヒステリシスの幅W1の半値(W1/2)を求め、このヒステリシスの幅W1の半値(W1/2)に所定値βを加算した値を閾値とし、その閾値と摩擦力Ft〔i〕と比較するようにすればよい。或いは、記憶部5に正常時のヒステリシスの幅W1の半値(W1/2)を格納しておき、この正常時のヒステリシスの幅W1の半値(W1/2)に所定値βを加算した値を閾値とし、この閾値と摩擦力Ft〔i〕と比較するようにすればよい。この場合のFt〔i〕は圧力〔kPa〕であるが、操作器ダイアフラム面積〔m
2〕×10
-3を乗ずることで、単位を圧力〔kPa〕から力〔N〕に変換できる。
【0158】
また、上述した参考例では、調節弁200の異常診断を行う場合について説明したが、ポジショナ100と調節弁200とを組み合わせたシステム全体を1つの調節弁とみなし、上述と同様にして異常診断を行うようにしてもよい。この場合、ポジショナ100への入力信号である開度設定信号Iinが調節弁への入力信号に相当するものとなり、この開度設定信号Iinと弁開度Xとを用いてシステム全体(調節弁)の異常診断を行うようにする。
【0159】
また、上述した実施の形態1,2においても、参考例2と同様にして、ヒステリシスの幅Wを求め、このヒステリシスの幅Wを異常診断指標値としてEPM2やパイロットリレー3の異常診断を行うようにしてもよい。