(57)【要約】【課題】  等しい極と零とを持たない伝達関数を一意に設定できるようにすること。【解決手段】  行列Ｃの線形独立な列数が当該行列Ｃの列数と等しくなり、且つ、シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるように、伝達関数Ｇ（ｚ）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定するようにした。そのため、行列解析を行うことで、伝達関数Ｇ（ｚ）に等しい極と零とを持たせない係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定することができる。それゆえ、例えば、行列Ｃの解析等で係数や次数を設定して伝達関数Ｇ（ｚ）を設定した後に、その設定した伝達関数Ｇ（ｚ）の極と零とを複素平面にプロットし、等しいと判断できる極と零とを恣意的に取り除かせる方法とは異なり、等しい極と零とを持たない伝達関数Ｇ（ｚ）を一意に設定することができる。【選択図】    図１
2006053720.tif 000002
【特許請求の範囲】
【請求項１】
対象システムの周波数応答データＨ（ｆk）（ここで、ｋ＝１〜ｍ、ｍは自然数）に基づいて、前記対象システムのモデルを表すｎ次の伝達関数Ｇ（＊）（ここで、＊はラプラス変換の演算子ｓ又はｚ変換の演算子ｚ）を設定する伝達関数設定装置であって、
前記伝達関数Ｇ（＊）を、
【数１】
2006053720.tif 000011
と表現し、
前記伝達関数Ｇ（＊）に前記周波数応答データＨ（ｆk）をそれぞれ代入した連立方程式を
【数２】
2006053720.tif 000012
と表現し、
前記伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnにより構成されるシルベスタ行列Ｄを、
【数３】
2006053720.tif 000013
と表現したときに、
前記行列Ａの線形独立な列数が当該行列Ａの列数と等しくなり、且つ、前記シルベスタ行列Ｄの線形独立な階数が当該シルベスタ行列Ｄの列数と等しくなるように、前記伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定する設定手段を備えたことを特徴とする伝達関数設定装置。
【請求項２】
前記設定手段は、所定の重み係数行列Ｗを乗算した前記行列Ａの線形独立な列数が当該乗算後の行列Ａの列数と等しくなるように前記伝達関数Ｇ（＊）の次数ｎの候補値ｎ’を設定する次数候補値設定手段と、前記所定の重み行例Ｗを両辺に乗算した前記連立方程式に基づいて、前記次数候補値設定手段で設定された候補値ｎ’を次数ｎとする前記伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を算出する係数算出手段と、その係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かを判定する判定手段と、その判定手段で前記シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいと判定されると、当該シルベスタ行列Ｄを構成する係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’及び候補値ｎ’を、前記伝達関数Ｇ（＊）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定する次数係数設定手段と、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて新しい重み係数行列Ｗを
【数４】
2006053720.tif 000014
と設定する重み行列設定手段とを備え、
前記次数候補値設定手段は、前記重み行列設定手段で設定された重み係数行列Ｗを乗算した前記行列Ａの線形独立な列数が当該乗算後の行列Ａの列数と等しくなるように前記伝達関数Ｇ（＊）の次数ｎの新しい候補値ｎ’を設定し、前記係数算出手段は、前記重み行列設定手段で設定された重み係数行列Ｗを両辺に乗算した前記連立方程式に基づいて、前記次数候補値設定手段で設定された候補値ｎ’を次数ｎとする前記伝達関数Ｇ（＊）の新しい係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を算出することを特徴とする請求項１に記載の伝達関数設定装置。
【請求項３】
前記設定手段は、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて前記伝達関数Ｇ（＊）の周波数応答データを算出する周波数応答データ算出手段を備え、前記判定手段は、前記周波数応答データ算出手段で算出された周波数応答データと前記対象システムの周波数応答データＨ（ｆk）との誤差が所定閾値より小さいときにのみ、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かを判定することを特徴とする請求項２に記載の伝達関数設定装置。
【請求項４】
前記設定手段で用いられる周波数応答データＨ（ｆk）から積分要素及び微分要素の影響を除去する除去手段を備え、
前記設定手段は、前記次数係数設定手段で設定された次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに応じた伝達関数Ｇ（＊）に、前記影響が除去された積分要素又は微分要素の関数が乗算されてなる伝達関数の次数及び係数を、前記伝達関数Ｇ（＊）の新しい次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnとする補正手段を備えたことを特徴とする請求項２から３のいずれか１項に記載の伝達関数設定装置。
【請求項５】
前記判定手段は、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に応じた伝達関数Ｇ（＊）に、前記影響が除去された積分要素又は微分要素の関数が乗算されてなる伝達関数の次数及び係数により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かを判定し、前記次数係数設定手段は、その判定手段で前記シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいと判定されると、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’及び候補値ｎ’を、前記伝達関数Ｇ（＊）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定することを特徴とする請求項４に記載の伝達関数設定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、制御系設計等のために、対象システムのモデルを表す伝達関数を設定する伝達関数設定装置に関する。
【背景技術】
【０００２】
従来、この種の伝達関数設定装置としては、対象システムの周波数応答データと対象システムのモデルを表す伝達関数の周波数応答データとの残差の二乗和を評価関数とする線形最小二乗法を用いて当該伝達関数を設定するものがある（例えば、非特許文献１参照。）。また、この非特許文献１にあっては、その線形最小二乗法による反復計算過程において、最小二乗評価される残差に乗じる重みを各段階での残差に応じて適応的に調節することで、対象システムのモデルを表す伝達関数の精度を向上させるようになっている。
【非特許文献１】「周波数領域最小二乗近似による系統の低近似線型モデル同定法」、電気学会論文誌Ｂ、平成１３年１月、１２１巻１号、ｐ５２−５９
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、このような伝達関数設定装置を用いて伝達関数を設定するときには、一般に、その設定された伝達関数の分母多項式の根（以下、「極」と呼ぶ。）と分子多項式の根（以下、「零」と呼ぶ。）とをそれぞれ算出し、それら算出された複数の極と零とを全て複素平面にプロットして作業者に提示し、そのプロットされた極と零とから、互いに近い、つまり、等しい位置或いはほぼ等しい位置にある極と零とを作業者に判断させ、その判断させた極と零とを分母多項式と分子多項式とからそれぞれ取り除かせるようになっている。そのため、取り除かれる極と零とには作業者による恣意性が現れてしまい、等しい或いはほぼ等しい極と零とを持たない伝達関数を一意に設定させることが難しかった。
【０００４】
また、線形最小二乗法による反復計算を行う伝達関数設定装置にあっては、一般に、伝達関数が安定となり且つ最小位相特性となることを当該反復計算の終了条件とするようになっている。そのため、常に、安定で最小位相特性を持つ伝達関数が設定されることになり、例えば、対象システムが不安定要素や非最小位相特性を持つ場合、対象システムの周波数応答データの位相特性と伝達関数の位相特性とが大きく異なってしまう恐れがある。
【０００５】
さらに、対象システムの周波数応答データと伝達関数の周波数応答データとの残差、つまり、有限個である周波数応答データ間の差の二乗和を評価関数とする線形最小二乗法を用いた伝達関数設定装置にあっては、例えば、対象システムが積分要素や微分要素を持つ場合、積分要素や微分要素は一次関数や二次関数で近似されてしまい、対象システムの周波数応答データと伝達関数の周波数応答データとが大きく異なってしまう恐れがあった。
【０００６】
そこで、本発明は、上記従来の伝達関数設定装置の未解決の問題点を解決することを目的とするものであって、等しい或いはほぼ等しい極と零とを持たない伝達関数Ｇ（＊）を一意に設定することができる伝達関数設定装置を提供することを第１の課題とする。
また、本発明は、対象システムが不安定要素や非最小位相特性を持つ場合でも、伝達関数Ｇ（＊）を適切に設定できる伝達関数設定装置を提供することを第２の課題とする。
さらに、本発明は、伝達関数Ｇ（＊）の設定に用いられる周波数応答データＨ（ｆk)が有限個でも、対象システムの入出力特性が持っている積分要素や微分要素を適切に反映した伝達関数Ｇ（＊）を設定できる伝達関数設定装置を提供することを第３の課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、第１の発明である伝達関数設定装置は、対象システムの周波数応答データＨ（ｆk）（ここで、ｋ＝１〜ｍ、ｍは自然数）に基づいて、前記対象システムのモデルを表すｎ次の伝達関数Ｇ（＊）（ここで、＊はラプラス変換の演算子ｓ又はｚ変換の演算子ｚ）を設定する伝達関数設定装置であって、前記伝達関数Ｇ（＊）を、
【０００８】
【数５】
2006053720.tif 000003
【０００９】
と表現し、前記伝達関数Ｇ（＊）に前記周波数応答データＨ（ｆk）をそれぞれ代入した連立方程式を
【００１０】
【数６】
2006053720.tif 000004
【００１１】
と表現し、前記伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnにより構成されるシルベスタ行列Ｄを、
【００１２】
【数７】
2006053720.tif 000005
【００１３】
と表現したときに、前記行列Ａの線形独立な列数が当該行列Ａの列数と等しくなり、且つ、前記シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるように、前記伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定する設定手段を備えたことを特徴とする。なお、シルベスタ行列Ｄは、対象システムのモデルを表す伝達関数Ｇ（＊）の分母多項式と分子多項式との間に、共通解が存在しないときにのみ線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなる行列である。
【００１４】
この第１の発明によれば、行列Ａとシルベスタ行列Ｄとを解析することで、伝達関数Ｇ（＊）に等しい或いはほぼ等しい極と零とを持たせない係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定することができる。そのため、例えば、行列Ａの解析等で係数や次数を設定して伝達関数Ｇ（＊）を設定した後に、その設定した伝達関数Ｇ（＊）の極と零とを複素平面にプロットし、位置が近い、つまり、等しい或いはほぼ等しいと判断できる極と零とを作業者に恣意的に取り除かせる方法に比べ、等しい或いはほぼ等しい極と零とを持たない伝達関数Ｇ（＊）を一意に設定することができる。
【００１５】
また、第２の発明である伝達関数設定装置にあっては、前記設定手段は、所定の重み係数行列Ｗを乗算した前記行列Ａの線形独立な列数が当該乗算後の行列Ａの列数と等しくなるように前記伝達関数Ｇ（＊）の次数ｎの候補値ｎ’を設定する次数候補値設定手段と、前記所定の重み行例Ｗを両辺に乗算した前記連立方程式に基づいて、前記次数候補値設定手段で設定された候補値ｎ’を次数ｎとする前記伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を算出する係数算出手段と、その係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かを判定する判定手段と、その判定手段で前記シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいと判定されると、当該シルベスタ行列Ｄを構成する係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’及び候補値ｎ’を、前記伝達関数Ｇ（＊）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定する次数係数設定手段と、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて新しい重み係数行列Ｗを
【００１６】
【数８】
2006053720.tif 000006
【００１７】
と設定する重み行列設定手段とを備え、前記次数候補値設定手段は、前記重み行列設定手段で設定された重み係数行列Ｗを乗算した前記行列Ａの線形独立な列数が当該乗算後の行列Ａの列数と等しくなるように前記伝達関数Ｇ（＊）の次数ｎの新しい候補値ｎ’を設定し、前記係数算出手段は、前記重み行列設定手段で設定された重み係数行列Ｗを両辺に乗算した前記連立方程式に基づいて、前記次数候補値設定手段で設定された候補値ｎ’を次数ｎとする前記伝達関数Ｇ（＊）の新しい係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を算出することを特徴とする。
【００１８】
この第２の発明によれば、まず、伝達関数Ｇ（＊）の次数ｎの候補値ｎ’が設定され、その設定された候補値ｎ’と所定の重み係数行列Ｗとに基づいて係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が算出される。次いで、その算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて新しい重み係数行列Ｗが設定され、その新しい重み係数行列Ｗを乗算した行列Ａの線形独立な列数が当該乗算後の行列Ａの列数と等しくなるように伝達関数Ｇ（＊）の次数ｎの新しい候補値ｎ’が設定され、それら新しく設定された候補値ｎ’と重み係数行列Ｗとによって、上記フローが最初から繰り返し実行される。
【００１９】
そして、上記フローが繰り返し実行されているときに、係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かが判定され、等しい場合に、上記フローの繰り返しから抜け出して、シルベスタ行列の前記候補値ｎ’及び係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が、前記伝達関数Ｇ（＊）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定される。
【００２０】
さらに、第３の発明である伝達関数装置にあっては、前記次数候補値設定手段は、前記重み行列設定手段で設定された重み係数行列Ｗを乗算した前記行列Ａの線形独立な列数が当該乗算後の行列Ａの列数と等しくなるように前記伝達関数Ｇ（＊）の次数ｎの新しい候補値ｎ’を順次小さく設定し、前記設定手段は、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて前記伝達関数Ｇ（＊）の周波数応答データを算出する周波数応答データ算出手段を備え、前記判定手段は、前記周波数応答データ算出手段で算出された周波数応答データと前記対象システムの周波数応答データＨ（ｆk）との誤差が所定閾値より小さいときにのみ、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かを判定することを特徴とする。
【００２１】
この第３の発明によれば、まず、伝達関数Ｇ（＊）の次数ｎの候補値ｎ’が設定されると、その設定された候補値ｎ’に基づいて係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が算出され、その算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて伝達関数Ｇ（＊）の周波数応答データが算出される。次いで、その算出された伝達関数Ｇ（＊）の周波数応答データと対象システムの周波数応答データＨ（ｆk）との誤差が所定閾値より小さいか否かが判定され、当該誤差が所定閾値以上である場合、つまり、それらの周波数領域での合致度が低い場合（算出された伝達関数Ｇ（＊）の周波数領域での精度が低い場合）には、上記フローが最初から繰り返し実行される。
【００２２】
そして、上記フローが繰り返されるうちに、前記誤差が所定閾値より小さくなった場合、つまり、伝達関数Ｇ（＊）の周波数領域での精度が向上した場合に、上記フローの繰り返しから抜け出して、伝達関数Ｇ（＊）の係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの解析が行われる。すなわち、伝達関数Ｇ（＊）の周波数領域での精度が十分に高められてから、等しい極と零とがないか否か、つまり、次数を小さくすることができるか否かが判定される。そのため、例えば、シルベスタ行列Ｄの解析を行った後に、そのシルベスタ行列Ｄに対応する伝達関数Ｇ（＊）の周波数領域での精度を向上させる方法に比べ、伝達関数Ｇ（＊）を精度よく設定することができる。
【００２３】
また、伝達関数Ｇ（＊）の周波数領域での精度が十分に高められたことを前記繰り返しの終了条件としたため、例えば、前記繰り返しで算出された伝達関数Ｇ（＊）が安定で且つ最小位相特性であることを終了条件とする方法とは異なり、対象システムが不安定要素や非最小位相特性を持つ場合でも、伝達関数Ｇ（＊）を適切に設定することができる。
【００２４】
また、第４の発明である伝達関数設定装置にあっては、前記設定手段で用いられる周波数応答データＨ（ｆk）から積分要素及び微分要素の影響を除去する除去手段を備え、前記設定手段は、前記次数係数設定手段で設定された次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに応じた伝達関数Ｇ（＊）に、前記影響が除去された積分要素又は微分要素の関数が乗算されてなる伝達関数の次数及び係数を、前記伝達関数Ｇ（＊）の新しい次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnとする補正手段を備えたことを特徴とする。なお、積分要素及び微分要素の影響を除去する方法としては、例えば、設定手段で用いられる周波数応答データＨ（ｆk）に基づいて当該周波数応答データＨ（ｆk）との周波数領域での合致度が高い高次の伝達関数を算出し、その高次の伝達関数に前記影響を除去する積分要素及び微分要素の関数を乗算し、さらに、その乗算結果の周波数応答データを算出する方法等を挙げることができる。
【００２５】
さらに、第５の発明である伝達関数設定装置にあっては、前記判定手段は、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に応じた伝達関数Ｇ（＊）に、前記影響が除去された積分要素又は微分要素の関数が乗算されてなる伝達関数の次数及び係数により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいか否かを判定し、前記次数係数設定手段は、その判定手段で前記シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しいと判定されると、前記係数算出手段で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’及び候補値ｎ’を、前記伝達関数Ｇ（＊）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定することを特徴とする。
【００２６】
これら第４及び第５の発明によれば、対象システムの入出力特性が積分要素や微分要素を持っているときには、積分要素や微分要素が除去された伝達関数Ｇ（＊）を設定した後、その設定された伝達関数Ｇ（＊）に前記除去された積分要素や微分要素の関数を乗算することができる。そのため、例えば、伝達関数Ｇ（＊）の設定に用いられる周波数応答データＨ（ｆk)が有限個であっても、対象システムの入出力特性が持っている積分要素や微分要素を適切に反映した伝達関数Ｇ（＊）を設定することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の伝達関数設定装置の実施形態を図面に基づいて説明する。
＜第１実施形態＞
図１は、第１実施形態の伝達関数設定装置の概略構成を示すブロック図である。
この伝達関数設定装置１は、図１に示すように、対象システム７の周波数応答データＨ（ｆk）に基づいて、対象システム７のモデルを表す伝達関数Ｇ（ｚ）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnの候補を順次算出する繰り返し処理を実行する。そして、伝達関数設定装置１は、それら処理の実行中に、伝達関数Ｇ（ｚ）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnの候補により構成されるシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるように、伝達関数Ｇ（ｚ）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定することで、等しい極と零とを持たない伝達関数Ｇ（ｚ）を設定するものである。
【００２８】
＜伝達関数設定装置の構成＞
図２は、第１実施形態の伝達関数設定装置の内部構成を示すブロック図である。この図２に示すように、伝達関数設定装置１は、ＣＰＵ(Central Processing Unit)２、ＲＡＭ(Random Access Memory)３、ＲＯＭ(Read Only Memory)４、Ｉ／Ｆ(InterFace)５を含んで構成され、各部は、バス６で互いに接続されている。
これらのうち、ＣＰＵ２は、図１に示すように、ソフトウェア形態で周波数応答データ演算部８及び伝達関数推定部９を含んで構成される。そして、周波数応答データ演算部８及び伝達関数推定部９（ＣＰＵ２）は、Ｉ／Ｆ５から時系列データｕ（ｉ）及びｙ（ｉ）（後述）が出力されると、ＲＯＭ４に格納された各種プログラム及びデータを読み込み、それら各種プログラムをＲＡＭ３内に設けられるワークエリアに展開することで、時系列データｕ（ｉ）（後述）が入力されると時系列データｙ（ｉ）（後述）を出力する伝達関数、つまり、対象システムのモデルを表す伝達関数Ｇ(ｚ)を算出するための後述する周波数応答データ演算部８及び伝達関数推定部９（図２参照）をそれぞれ実行する。
【００２９】
また、ＲＡＭ３は、ＣＰＵ２で実行される各種プログラムを展開するためのワークエリアを形成すると共に、それら各種プログラムに係るデータを格納するためのメモリ領域を形成する。そして、ＲＡＭ３は、図２に示すように、ＣＰＵ２から読み出し要求が出力されると、その読み出し要求に応じて、格納されているデータをＣＰＵ２に出力する。
さらに、ＲＯＭ４は、ＣＰＵ２で実行される各種プログラム及びデータを格納する。そして、ＲＯＭ４は、ＣＰＵ２から読み出し要求が出力されると、その出力された読み出し要求に応じて、格納されている各種プログラムやデータ等をＣＰＵ２に出力する。
【００３０】
また、Ｉ／Ｆ５は、対象システム７に入力される入力信号ｕ（ｔ）（例えば、多数の周波数成分を含む信号）を検出する入力信号センサ（不図示）と、その入力信号ｕ（ｔ）に応じて対象システム７から出力される出力信号ｙ（ｔ）を検出する出力信号センサ（不図示）とから信号ｕ（ｔ）及びｙ（ｔ）が検出されると、それらの検出された信号ｕ（ｔ）及びｙ（ｔ）を所定のサンプリング時間Δｔ（例えば、２５０μsec.）が経過するたびに読み込んで時系列データｕ（ｉ）及びｙ（ｉ）（ｉは自然数、ｉ＝１、２、…）を設定し、その設定された時系列データｕ（ｉ）及びｙ（ｉ）をＣＰＵ２に出力する。
【００３１】
＜ＣＰＵで実行される処理の内容＞
次に、周波数応答データ演算部８で実行される周波数応答データ演算処理を、図３に従って説明する。この周波数応答データ演算処理は、Ｉ／Ｆ５から時系列データｕ（ｉ）及びｙ（ｉ）が出力されると実行される処理であって、まずそのステップＳ１０１で、Ｉ／Ｆ５から出力される時系列データｕ（ｉ）及びｙ（ｉ）に基づき、予め設定された周波数領域（例えば、制御系設計のために伝達関数Ｇ（ｚ）を設定する場合には、その制御系で制御しようとする周波数領域）内のｍ点（例えば、１０点）の周波数ｆk（ｋ＝１〜ｍ、ｍは自然数）それぞれで、対象システム７の周波数応答データＨ（ｆk）（Ｈ（ｆ1）、Ｈ（ｆ2）、…、Ｈ（ｆm））を算出する。なお、算出される周波数応答データＨ（ｆk）の表現形式としては、例えば、複素形式（例えば、α＋βｊ（ｊは虚数））が挙げられる。
【００３２】
次にステップＳ１０２に移行して、前記ステップＳ１０１で算出されたｍ点の周波数ｆkそれぞれにおける対象システム７の周波数応答データＨ（ｆk）を伝達関数推定部９に出力してから、この演算処理を終了する。
次に、伝達関数推定部９で実行される伝達関数推定処理を、図４のフローチャートに従って説明する。この伝達関数推定処理は、周波数応答データ演算部８からｍ点の周波数ｆkそれぞれにおける対象システム７の周波数応答データＨ（ｆk）が出力されると実行される処理であって、まずそのステップＳ２０１で、周波数応答データ演算部８から出力されたｍ点の周波数ｆkそれぞれにおける周波数応答データＨ（ｆk）を読み込む。
【００３３】
次にステップＳ２０２に移行して、対象システム７のモデルの伝達関数Ｇ(ｚ)を有理関数で表すものとし、その有理関数の分母多項式ｆ(ｚ)（＝１＋ａ１ｚ＋ａ２ｚ2＋…＋ａn1ｚn1）の次数ｎの候補値（以下、「次数候補値」とも呼ぶ。）ｎ’の初期値（例えば、１１）を設定する。
次にステップＳ２０３に移行して、対象システム７のモデルの伝達関数Ｇ(z)の分母多項式ｆ(ｚ)の次数と分子多項式ｇ(ｚ)の次数とが等しくなるように、下記（１）式に示すように、前記ステップＳ２０２又は、後述するステップＳ２０９、Ｓ２１０又はＳ２１８で設定される次数候補値ｎ’を分母多項式ｆ(ｚ)及び式分子多項式ｇ(ｚ)（＝ｂ0＋ｂ１ｚ＋ｂ２ｚ2＋…＋ｂn2ｚn2）両方の次数とし、且つ、係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が未知の伝達関数Ｇ(z)を設定する。
【００３４】
【数９】
2006053720.tif 000007
【００３５】
次にステップＳ２０４に移行して、前記ステップＳ２０３で設定された伝達関数Ｇ(ｚ)に、前記ステップＳ２０１で読み込まれたｍ点の周波数ｆkそれぞれにおける周波数応答データＨ（ｆk）をそれぞれ代入し、下記（２）式に示すように、係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を変数とする連立方程式Ａｘ＝ｄを設定する。
【００３６】
【数１０】
2006053720.tif 000008
【００３７】
次にステップＳ２０５に移行して、前記ステップＳ２０４で設定された連立方程式Ａｘ＝ｄの両辺に、後述するステップＳ２１９で設定されるｍ×ｍの重み係数行列Ｗを左側から乗算し、連立方程式Ｃｘ＝ｇ（Ｃ＝ＷＡ、ｇ＝Ｗｄ）を設定する。なお、この演算処理が開始されてからステップＳ２１９が一度も実行されていないときには、まだ重み係数行列Ｗが算出されていないので、重み係数行列Ｗの代わりにｍ×ｍの単位行列を乗算する。
【００３８】
次にステップＳ２０６に移行して、前記ステップＳ２０５で設定された行列Ｃに含まれる列ベクトルのうち、線形独立な列ベクトルの数（以下、「行列Ｃの階数」とも呼ぶ。）Ｒc（＝ｒａｎｋ（Ｃ））を算出する。
次にステップＳ２０７に移行して、前記ステップＳ２０５で設定された行列Ｃがフルランクであるか否か、つまり、前記ステップＳ２０６で算出された行列Ｃの階数Ｒcが前記ステップＳ２０５で設定された行列Ｃの列数（２ｎ’＋１）と等しいか否かを判定し、等しい場合には（Ｙｅｓ）ステップＳ２１１に移行し、等しくない場合には（Ｎｏ）ステップＳ２０８に移行する。
【００３９】
前記ステップＳ２０８では、前記ステップＳ２０６で算出された行列Ｃの階数Ｒcが偶数であるか否かを判定し、偶数である場合には（Ｙｅｓ）ステップＳ２０９に移行し、偶数でない場合（奇数である場合）には（Ｎｏ）ステップＳ２１０に移行する。
前記ステップＳ２０９では、前記ステップＳ２０６で算出された行列Ｃの階数Ｒcが当該行列Ｃの列数と等しくなるように新しい次数候補値ｎ’を設定する。具体的には、前記ステップＳ２０６で算出された行列Ｃの階数Ｒcを「２」で除算した後、その除算結果から「１」を減算し、その減算結果を新しい次数候補値ｎ’（＝Ｒc／２−１）に設定してから、前記ステップＳ２０３に移行する。
【００４０】
一方、前記ステップＳ２１０では、前記ステップＳ２０６で算出された行列Ｃの階数Ｒcが当該行列Ｃの列数と等しくなるように新しい次数候補値ｎ’を設定する。具体的には、前記ステップＳ２０６で算出された行列Ｃの階数Ｒcに「１」を加算すると共に、その加算結果を「２」で除算した後、その除算結果から「１」を減算し、その減算結果を新しい次数候補値ｎ’（＝（Ｒc＋１）／２−１）に設定してから、前記ステップＳ２０３に移行する。
また一方、前記ステップＳ２１１では、前記ステップＳ２０５で設定された連立方程式Ｃｘ＝ｇの両辺に、行列Ｃの逆行列Ｃ-1を左側から乗算することで、変数ベクトルｘ、つまり、係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を算出する。
【００４１】
次にステップＳ２１２に移行して、前記ステップＳ２１１で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づき、下記（３）式に示すように、分母多項式ｆ(ｚ)及び、分子多項式ｇ(ｚ)のシルベスタ（sylvester）行列Ｄを設定する。なお、シルベスタ行列は、分母多項式ｆ(ｚ)＝０と分子多項式ｇ(ｚ)＝０との間に共通解が存在しないときにのみ線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなる行列である。
【００４２】
【数１１】
2006053720.tif 000009
【００４３】
次にステップＳ２１３に移行して、前記ステップＳ２１２で設定されたシルベスタ行列Ｄに含まれる列ベクトルのうち、線形独立な列ベクトルの数（以下、「行列Ｄの階数」とも呼ぶ。）ＲD（＝ｒａｎｋ（Ｄ））を算出する。
次にステップＳ２１４に移行して、前記ステップＳ２１３で算出された行列Ｄの階数ＲDが偶数であるか否かを判定し、偶数である場合には（Ｙｅｓ）ステップＳ２１５に移行し、偶数でない場合（奇数である場合）には（Ｎｏ）ステップＳ２１６に移行する。
【００４４】
前記ステップＳ２１５では、前記ステップＳ２１３で設定されたシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるように、前記伝達関数Ｇ（ｚ）の新しい次数ｎの候補値（以下、「新次数候補値」とも呼ぶ。）ｎ”を設定する。具体的には、前記ステップＳ２１３で算出された階数ＲDを「２」で除算した後、その除算結果から「１」を減じ、その減算結果を新次数候補値ｎ”（＝ＲD／２−１）としてから、ステップＳ２１７に移行する。
【００４５】
一方、前記ステップＳ２１６では、前記ステップＳ２１３で設定されたシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるように、新次数候補値ｎ”を設定する。具体的には、前記ステップＳ２１３で算出された行列Ｄの階数ＲDに「１」を加算すると共に、その加算結果を「２」で除算した後、その除算結果から「１」を減算し、その減算結果を新次数候補値ｎ”（＝（ＲD＋１）／２−１）としてから、前記ステップＳ２１７に移行する。
【００４６】
前記ステップＳ２１７では、前記ステップＳ２１３で設定されたシルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるか否かを判定する。具体的には、前記ステップＳ２０３で設定された対象システム７のモデルの伝達関数Ｇ(z)の分母多項式ｆ(ｚ)の次数候補値ｎ’と、前記ステップＳ２１５又はＳ２１６で設定された新次数候補値ｎ”とが等しいか否かを判定し、等しい場合には（Ｙｅｓ）ステップＳ２２０に移行し、等しくない場合には（Ｎｏ）ステップＳ２１８に移行する。
【００４７】
前記ステップＳ２１８では、前記ステップＳ２１５又はＳ２１６で設定された新次数候補値ｎ”を新しい次数候補値ｎ’に設定する。
次にステップＳ２１９に移行して、前記ステップＳ２１１で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’と前記ステップＳ２１８で設定された次数候補値ｎ’とに基づき、下記（５）式に従って、新しい重み係数行列Ｗを算出してから、前記ステップＳ２０３に移行する。
【００４８】
【数１２】
2006053720.tif 000010
【００４９】
一方、前記ステップＳ２２０では、前記ステップＳ２０３で設定された伝達関数Ｇ(ｚ)と、前記ステップＳ２１１で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに基づいて、周波数応答データ演算部８で周波数応答データＨ（ｆk)が算出されたｍ点の周波数点ｆkで伝達関数Ｇ(ｚk) （ここで、ｚk＝ｅｘｐ（j2πｆk／ｆs）、ｆs＝１／Δｔ）の周波数応答データを算出する。
【００５０】
次にステップＳ２２１に移行して、前記ステップＳ２０１で読み込んだ周波数応答データＨ（ｆk）と前記ステップＳ２２０で算出された伝達関数Ｇ（ｚk）の周波数応答データとの誤差がしきい値εより小さいか否かを判定する。そして、しきい値εより小さい場合には（Ｙｅｓ）ステップＳ２２２に移行し、しきい値ε以上である場合には（Ｎｏ）前記ステップＳ２１９に移行する。なお、周波数応答データＨ（ｆk）と伝達関数Ｇ（ｚk）の周波数応答データとの誤差の算出方法としては、例えば、Σ｜Ｈ（ｆk）−Ｇ（ｚk）｜2／（ｍ−１）（ここで、Σはｋ＝１〜ｍにおける累積加算値）を挙げることができる。
【００５１】
前記ステップＳ２２２では、前記ステップＳ２０２、Ｓ２０９、Ｓ２１０又はＳ２１８で設定された次数候補値ｎ’と、前記ステップＳ２１１で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とを、前記ステップＳ２０３で設定された伝達関数Ｇ（ｚ）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定してから、この演算処理を終了する。
【００５２】
＜伝達関数設定装置の動作＞
まず、対象システム７に入力信号ｕ（ｔ）が入力され、その入力信号ｕ（ｔ）に応じて対象システム７から出力信号ｙ（ｔ）が出力されたとする。すると、入力信号センサ及び出力信号センサ（不図示）によって、それらの信号ｕ（ｔ）及びｙ（ｔ）が検出され、Ｉ／Ｆ５によって、それらの検出された信号ｕ（ｔ）及びｙ（ｔ）に基づいて時系列データｕ（ｉ）及びｙ（ｉ）が設定され、その設定された時系列データｕ（ｉ）及びｙ（ｉ）が出力される。そして、ＣＰＵ２の周波数応答データ演算部８によって、周波数応答データ演算処理が実行される。この周波数応答データ演算処理は、図３に示すように、まずそのステップＳ１０１で、Ｉ／Ｆ５から出力された時系列データｕ（ｉ）及びｙ（ｉ）に基づき、予め設定された周波数領域内の１０点の周波数ｆ1〜ｆ10それぞれで、対象システム７の周波数応答データＨ（ｆ1）〜Ｈ（ｆ10）が算出される。また、ステップＳ１０２で、その算出された周波数応答データＨ（ｆ1）〜Ｈ（ｆ10）が伝達関数推定部９に出力され、この周波数応答データ演算処理が終了する。
【００５３】
すると、ＣＰＵ２の伝達関数推定部９によって、伝達関数推定処理が実行される。そして、図４に示すように、まずそのステップＳ２０１で、周波数応答データ演算部８から出力された１０点の周波数ｆ1〜ｆ10それぞれにおける周波数応答データＨ（ｆ1) 〜Ｈ（ｆ10)が読み込まれる。また、ステップＳ２０２で、対象システム７のモデルの伝達関数Ｇ(ｚ)の分母多項式ｆ(ｚ)の次数候補値ｎ’に初期値「１１」が設定される。
【００５４】
また、ステップＳ２０３で、その設定された次数候補値ｎ’を分母多項式ｆ(ｚ)（＝１＋ａ１ｚ＋ａ２ｚ2＋…＋ａ11ｚ11）及び式分子多項式ｇ(ｚ)（＝ｂ0＋ｂ１ｚ＋ｂ２ｚ2＋…＋ｂ11ｚ11）両方の次数とし、且つ、係数ａ1、ａ2、…、ａ11、ｂ0、ｂ1、…、ｂ11が未知の伝達関数Ｇ(z)が設定される。さらに、ステップＳ２０４で、その設定された伝達関数Ｇ(ｚ)に前記周波数応答データＨ（ｆ1）〜Ｈ（ｆ10）がそれぞれ代入され、１０個の方程式からなる連立方程式Ａｘ＝ｄが設定される。そして、ステップＳ２０５で、その設定された連立方程式Ａｘ＝ｄの両辺にｍ×ｍの単位行列が乗算され、連立方程式Ｃｘ＝ｇが設定され、ステップＳ２０６で、その設定された行列Ｃの階数Ｒcが算出される。
【００５５】
ここで、前記設定された行列Ｃの階数Ｒcが「１８」であった、つまり、フルランクでなかったとする。すると、ステップＳ２０７の判定が「Ｎｏ」となり、また、ステップＳ２０８の判定が「Ｙｅｓ」となり、ステップＳ２０９で、新しい次数候補値ｎ’が「８」に設定され、前記ステップＳ２０３から上記フローが繰り返し実行される。
【００５６】
上記フローが繰り返し実行されるうちに、次数候補値ｎ’が「５」となったときに、前記ステップＳ２０６で行列Ｃ（又はＡ）の階数Ｒcが「１１」となり、前記ステップＳ２０７の判定が「Ｙｅｓ」となったとする。すると、ステップＳ２１１で、前記設定された連立方程式Ｃｘ＝ｇ（ＡＸ＝ｄ）の両辺に、行列Ｃ（又はＡ）の逆行列Ｃ-1（Ａ-1）が左側から乗算され、変数ベクトルｘ、つまり、係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnが算出される。また、ステップＳ２１２で、その算出された係数ａ1、ａ2、…、ａ5、ｂ0、ｂ1、…、ｂ5に基づき、分母多項式ｆ(ｚ)及び、分子多項式ｇ(ｚ)のシルベスタ行列Ｄが設定され、ステップＳ２１３で、その設定されたシルベスタ行列Ｄの階数ＲDが算出される。
【００５７】
ここで、その算出された階数ＲDが「１０」となり、ステップＳ２１４の判定が「Ｙｅｓ」となり、ステップＳ２１５で、その算出された階数ＲDに基づいて新次数候補値ｎ”が「４」とされ、ステップＳ２１７の判定が「Ｎｏ」となる。そして、ステップＳ２１８で、前記設定された新次数候補値ｎ”「４」が新しい次数候補値ｎ’とされ、ステップＳ２１９で、その設定された次数候補値ｎ’と係数ａ1、ａ2、…、ａ4、ｂ0、ｂ1、…、ｂ4とに基づいて新しい重み係数行列Ｗが算出され、前記ステップＳ２０３から上記フローが繰り返し実行される。
【００５８】
上記フローが繰り返し実行され、次数候補値ｎ’が「３」となったときに、前記ステップＳ２１３で行列Ｄの階数ＲDが「８」となり、前記ステップＳ２１５で新次数候補値ｎ”が「３」となり、前記ステップＳ２１７の判定が「Ｙｅｓ」となった、つまり、シルベスタ行列Ｄの解析によって、伝達関数Ｇ（ｚ）に等しい極と零とを持たせない係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’及び次数候補値ｎ’が設定されたことが検出されたとする。すると、ステップＳ２２０で、次数候補値ｎ’と係数ａ1、ａ2、ａ3、ｂ0、ｂ1、ｂ2、ｂ3とに基づいて、周波数応答データＨ（ｆk)が算出された周波数点ｆ1〜ｆ10で伝達関数Ｇ（ｚk）の周波数応答データが算出される。そして、ステップＳ２２１で、その算出された周波数応答データと前記読み込んだ周波数応答データＨ（ｆ1）〜Ｈ（ｆ10）との誤差が算出され、その算出された誤差がしきい値εより小さいとすると、ステップＳ２２２で、次数候補値ｎ’「３」と係数ａ1、ａ2、ａ3、ｂ0、ｂ1、ｂ2、ｂ3とが、伝達関数Ｇ（ｚ）の次数ｎ及び係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnに設定された後、この演算処理が終了する。
【００５９】
このように、本実施形態の伝達関数設定装置１にあっては、行列Ｃ（又はＡ）の線形独立な列数が当該行列Ｃ（又はＡ）の列数と等しくなり、且つ、シルベスタ行列Ｄの線形独立な列数が当該シルベスタ行列Ｄの列数と等しくなるように、伝達関数Ｇ（ｚ）の係数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂn及び次数ｎを設定するようにした。そのため、行列Ｃ（又はＡ）とシルベスタ行列ＤとをＣＰＵ２に解析させることで、伝達関数Ｇ（ｚ）に等しい或いはほぼ等しい極と零とを持たせない係数ａ1、ａ2、ａ3、ｂ0、ｂ1、ｂ2、ｂ3及び次数ｎを設定することができる。それゆえ、例えば、行列Ｃ（又はＡ）の解析等で係数ｎや次数ａ1、ａ2、…、ａn、ｂ0、ｂ1、…、ｂnを設定して伝達関数Ｇ（ｚ）を設定した後に、その設定した伝達関数Ｇ（ｚ）の極と零とを複素平面にプロットし、位置が近い極と零と、つまり、等しい或いはほぼ等しいと判断できる極と零とを作業者に恣意的に取り除かせる方法とは異なり、等しい或いはほぼ等しい極と零とを持たない伝達関数Ｇ（ｚ）を一意に設定することができる。
【００６０】
なお、本実施形態では、シルベスタ行列Ｄの解析を行ってから、伝達関数Ｇ（ｚ）の周波数応答データと対象システム７の周波数応答データＨ（ｆk）との誤差の判定を行う例を示したが、これに限られるものではない。例えば、それらの順番を入れ替え、前記誤差が十分に小さいか否かを判定してから、シルベスタ行列Ｄの解析を行うようにしてもよい。具体的には、図５に示すように、ステップＳ２１１とＳ２１２との間にＳ２２０及びＳ２２１を移動し、そのステップＳ２２１の判定が「Ｙｅｓ」である場合に前記ステップＳ２１２に移行し、「Ｎｏ」である場合にステップＳ２１９に移行するようにしてもよい。
【００６１】
このように、本実施形態の変形例にあっては、まず、伝達関数Ｇ（ｚ）の次数ｎの候補値ｎ’が設定されると、その設定された候補値ｎ’に基づいて係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が算出され、その算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいて伝達関数Ｇ（ｚ）の周波数応答データが算出される。次いで、その算出された伝達関数Ｇ（ｚ）の周波数応答データと対象システムの周波数応答データＨ（ｆk）との誤差がしきい値εより小さいか否かが判定され、しきい値ε以上である場合、つまり、それらの周波数領域での合致度が低い場合（伝達関数Ｇ（ｚ）の周波数領域での精度が低い場合）には、上記フローが最初から繰り返し実行される。
【００６２】
そして、上記フローが繰り返されるうちに、前記誤差がしきい値εより小さくなった場合、つまり、伝達関数Ｇ（ｚ）の周波数領域での精度が向上した場合に、上記フローの繰り返しから抜け出し、伝達関数Ｇ（ｚ）の係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’により構成されるシルベスタ行列Ｄの解析が行われる。すなわち、伝達関数Ｇ（ｚ）の周波数領域での精度が十分に高められてから、等しい極と零とがないか否かが判定される。そのため、例えば、等しい極と零とがないかシルベスタ行列Ｄの解析を行った後に、シルベスタ行列Ｄに対応する伝達関数Ｇ（ｚ）の周波数領域での精度を向上させる方法に比べ、伝達関数Ｇ（ｚ）を精度よく設定することができる。
【００６３】
また、伝達関数Ｇ（ｚ）の周波数領域での精度が十分に高められたことを前記繰り返しの終了条件としたため、例えば、前記繰り返しで算出された伝達関数Ｇ（ｚ）が安定で且つ最小位相特性であることを終了条件とする方法とは異なり、対象システムが不安定或いは非最小位相特性を有する場合でも、伝達関数Ｇ（ｚ）を適切に設定することができる。
【００６４】
＜第２実施形態＞
次に、本発明の伝達関数設定装置の第２実施形態を図面に基づいて説明する。
この第２実施形態は、伝達関数Ｇ（ｚ）の周波数応答データと対象システム７の周波数応答データＨ（ｆk）との誤差が十分に小さいか否かを判定してから、シルベスタ行列Ｄの解析を行う点と、周波数応答データＨ（ｆk）から微分要素や積分要素の影響を除去し、それらが除去された周波数応答データＨ（ｆk）に基づいて伝達関数Ｇ（ｚ）を設定し、その設定された伝達関数Ｇ（ｚ）に前記除去した微分要素等の関数を乗算するようにした点とが、前記第１実施形態と異なる。具体的には、図６に示すように、ステップＳ２１１とＳ２１２との間にＳ２２０及びＳ２２１を移動し、ステップＳ２０１とステップＳ２０２との間にステップＳ３０１を追加し、ステップＳ２２１とＳ２１２との間にステップＳ３０２を追加し、ステップＳ２２１の判定が「Ｙｅｓ」である場合に前記ステップＳ２１２に移行し、「Ｎｏ」である場合にステップＳ２１９に移行するようになっている。
【００６５】
これらのうち、前記ステップＳ３０１では、利用者によって伝達関数推定部９に出力される指令に基づいて、前記ステップＳ２０１で読み込んだ対象システム７の周波数応答データＨ（ｆk）から積分要素又は微分要素の影響を除去する。具体的には、積分要素を除去する指令が出力されると、周波数応答データＨ（ｆk）に基づいて当該周波数応答データＨ（ｆk）との周波数領域での合致度が高い高次の伝達関数を算出し、その高次の伝達関数に微分要素の関数１／（１−ｚ-1）を乗算する。そして、その乗算結果の周波数応答データを、周波数応答データ演算部８で周波数応答データＨ（ｆk)が算出されたｍ点の周波数点ｆkで算出し、その算出結果を前記積分要素が除去された周波数応答データＨ（ｆk)とする。また、微分要素を除去する指令が出力されると、周波数応答データＨ（ｆk）との周波数領域での合致度が高い高次の伝達関数を算出し、その高次の伝達関数に積分要素の関数（１−ｚ-1）を乗算する。そして、その乗算結果の周波数応答データを、周波数応答データ演算部８で周波数応答データＨ（ｆk)が算出されたｍ点の周波数点ｆkで算出し、その算出結果を前記微分要素が除去された周波数応答データＨ（ｆk)とする。
【００６６】
また、前記ステップＳ３０２では、前記ステップＳ２０２、Ｓ２０９、Ｓ２１０又はＳ２１８で設定された次数候補値ｎ’と、前記ステップＳ２１１で算出された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに応じた伝達関数Ｇ(ｚ)に、前記ステップＳ３０１で影響が除去された積分要素又は微分要素の関数が乗算されてなる伝達関数の次数及び係数を、新しい次数候補値ｎ’と係数候補値ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに設定する。
【００６７】
さらに、前記ステップＳ２１２では、前記ステップＳ３０２で設定された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づき、前記（３）式に示すように、分母多項式ｆ(ｚ)及び、分子多項式ｇ(ｚ)のシルベスタ行列Ｄを設定する。
また、前記ステップＳ２２２では、前記ステップＳ３０２で算出された次数ｎ及び係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’を、新しい次数候補値ｎ’と係数候補値ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに設定してから、この演算処理を終了する。
なお、この第２実施形態は、前記第１実施形態の構成と同等の構成を多く含んでおり、同等の構成には同等の符号を付して、その詳細な説明を省略する。
【００６８】
＜伝達関数設定装置の動作＞
まず、前記第１実施形態と同様に、ＣＰＵ２の周波数応答データ演算部８から、周波数応答データＨ（ｆ1）〜Ｈ（ｆ1 0）が出力されたとする。すると、ＣＰＵ２の伝達関数推定部９によって、伝達関数推定処理が実行され、図６に示すように、まずそのステップＳ２０１で、周波数応答データ演算部８から出力されたｍ点の周波数ｆ1〜ｆmそれぞれにおける周波数応答データＨ（ｆ1) 〜Ｈ（ｆm)が読み込まれる。
【００６９】
ここで、対象システム７が入出力特性に積分要素を持っていることを知っており、利用者が積分要素の除去を要求する指令を出力したとする。すると、ステップＳ３０１で、その読み込まれた対象システム７の周波数応答データＨ（ｆk）から積分要素の影響が除去され、ステップＳ２０２〜Ｓ２２１を経て、伝達関数Ｇ（ｚ）の周波数応答データと対象システム７の周波数応答データＨ（ｆk）との誤差が十分に小さいか否かが判定され、次数候補値ｎ’及び係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が設定される。
【００７０】
また、ステップＳ３０２で、その設定された次数候補値ｎ’と係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに応じた伝達関数Ｇ(ｚ)に、前記影響が除去された積分要素の関数を乗算したときの当該伝達関数Ｇ（ｚ）の次数ｎ及び係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が、新しい次数候補値ｎ’と係数候補値ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに設定される。また、ステップＳ２１２で、その設定された係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’に基づいてシルベスタ行列Ｄが設定され、ステップＳ２２３〜Ｓ２１７で、その設定されたシルベスタ行列Ｄの解析が行われる。そして、ステップＳ２２２で、前記設定された新しい次数候補値ｎ’及び係数ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’が、新しい次数候補値ｎ’と係数候補値ａ1、ａ2、…、ａn ’、ｂ0、ｂ1、…、ｂn ’とに設定され、この演算処理が終了する。
【００７１】
このように、本実施形態の伝達関数装置１によれば、対象システム７が入出力特性に積分要素や微分要素を持っているときには、その積分要素や微分要素が除去された伝達関数Ｇ（ｚ）を設定してから、その設定された伝達関数Ｇ（ｚ）に前記除去された積分要素や微分要素を乗算することができる。そのため、例えば、伝達関数Ｇ（ｚ）の設定に用いられる周波数応答データＨ（ｆk)が有限個であっても、対象システムの入出力特性が持っている積分要素や微分要素を適切に反映した伝達関数Ｇ（ｚ）を設定することができる。
【００７２】
以上、図１の伝達関数推定部９、図２のＣＰＵ２、図４〜図６のステップＳ２０１〜Ｓ２２２、図６のステップＳ３０２が特許請求の範囲に記載の設定手段を構成し、以下同様に、図４〜図６のステップＳ２０２、ステップＳ２０７〜Ｓ２１０が次数候補値設定手段を構成し、図４〜図６のステップＳ２１１が係数算出手段を構成し、図４〜図６のステップＳ２１２〜Ｓ２１７、図６のステップＳ３０２が判定手段を構成し、図４〜図６のステップＳ２２２が次数係数設定手段を構成し、図４〜図６のステップステップＳ２１７、Ｓ２１９が重み行列設定手段を構成し、図４〜図６のステップＳ２２０が周波数応答データ算出手段を構成し、図１の伝達関数推定部９、図２のＣＰＵ２、図６のステップＳ３０１が除去手段を構成し、図６のステップＳ２２２が補正手段を構成する。
【００７３】
なお、本発明の伝達関数設定装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
上記実施形態では、ｚ変換の演算子ｚで表される伝達関数Ｇ（ｚ）を設定する例を示したが、これに限られるものではない。例えば、前記（１）式の演算子ｚに代えて演算子ｓを用い、ラプラス変換の演算子ｓで表される伝達関数Ｇ（ｓ）を設定することもできる。
【図面の簡単な説明】
【００７４】
【図１】第１実施形態の伝達関数設定装置の概略構成を示すブロック図である。
【図２】図１の伝達関数設定装置の内部構成を示すブロック図である。
【図３】図２の周波数応答データ演算部で実行される周波数応答データ演算処理のフローチャートである。
【図４】図２の伝達関数推定処理部で実行される伝達関数推定処理のフローチャートである。
【図５】図２の伝達関数推定処理部で実行される伝達関数推定処理の変形例である。
【図６】第２実施形態における伝達関数推定処理のフローチャートである。
【符号の説明】
【００７５】
１は伝達関数設定装置
２はＣＰＵ
３はＲＡＭ
４はＲＯＭ
５はＩ／Ｆ
６はバス
７は対象システム
８は周波数応答データ演算部
９は伝達関数推定部
【図１】
2006053720.tif 000015
【図２】
2006053720.tif 000016
【図３】
2006053720.tif 000017
【図４】
2006053720.tif 000018
【図５】
2006053720.tif 000019
【図６】
2006053720.tif 000020