説明

ディジタル制御器の設計方法及びディジタル制御器及びプログラム

【課題】従来よりも少ない処理負荷で、制御対象を制御できるようにする。
【解決手段】制御プログラムを生成するに際しては、まず採用する伝達関数を、部分分数分解して、当該伝達関数を、分解前における伝達関数を構成する分母の次数よりも、小さい次数の分母で表される分数式(部分分数)の和に変換する(S110)。そして、伝達関数を構成する部分分数の内、ゲインの小さい部分分数を、演算周期を長くする部分分数に決定する(S130)。また、演算周期を長くする部分分数の係数を、新たに設定する演算周期に合わせて修正する(S150)。そして、演算周期に合わせて各部分分数に対応する演算プログラムを設計し、これらの演算プログラムを組み合わせて、制御対象を制御するための制御プログラムを生成する(S170)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディジタル制御器の設計方法及びディジタル制御器に関する。
【背景技術】
【0002】
従来、制御対象を制御する方法としては、制御対象に対する操作量と制御量(制御出力)との関係から、入力値(例えば、ユーザ指令値や制御量と目標値との誤差量)に対する操作量を算出するための伝達関数を導出し、この伝達関数に対応する制御器を設計して、制御対象を制御する方法が知られている(例えば、特許文献1参照)。
【0003】
また、ディジタル制御器の設計方法としては、制御すべきアナログの制御対象に対し、入力値に対応する操作量を算出するための連続時間系の伝達関数W(s)を導出し、これを入力値のサンプリング周期Tを考慮して、離散時間系の伝達関数W(z)に置換し、ディジタル制御器を設計する方法が知られている。
【0004】
この他、従来技術としては、ディジタル制御器として、入力値に対する操作量を算出するための演算手順を記述した制御プログラムを設計し、これをマイクロコンピュータ(以下、「マイコン」と称する。)に搭載することで、ディジタル制御器をソフトウェア的に実現する方法が知られている。このようにして、マイコンに制御プログラムを実装する場合には、マイコンの処理負荷が小さくなるよう演算手順を工夫することが行われている。
【0005】
例えば、伝達関数W(z)が、遅延演算子zを変数とする2次以上の多項式で表される分母を有する分数式で表される場合には、伝達関数W(z)を部分分数分解して、当該伝達関数W(z)を、部分分数分解前における伝達関数の分母の次数よりも、小さい次数の分母で表される分数式(以下、「部分分数」と表現する。)の和に変換する。そして、各部分分数に対応する演算プログラムを設計し、これらの演算プログラムを組み合わせて、制御対象に対応する制御プログラムを生成し、これをマイコンに搭載する。
【0006】
例えば、入力値Xに対する出力値Yを、伝達関数W(z)を用いて式
【0007】
【数1】

で算出するプログラムを、制御プログラムとしてマイコンに搭載する場合には、図8(a)に示す手順で値Y(例えば、操作量)を算出するように、プログラムを設計すると、四則演算動作を7回、前回値保持動作を3回行わなければならないことになる。
【0008】
従って、四則演算動作に1.0ミリ秒、前回値保持動作に0.5ミリ秒を要する場合には、入力値Xから出力値Yを算出するのに、1.0×7+0.5×3=8.5ミリ秒を要することになる。尚、図8(a)及び図8(b)の夫々は、式(1)に対応する演算手順の例を示したブロック線図である。
【0009】
一方、伝達関数W(z)を、次のように、部分分数分解し、
【0010】
【数2】

部分分数分解後の伝達関数W(z)を構成する各部分分数に対応する演算プログラムを設計し、これらの演算プログラムを組み合わせて、制御プログラムを生成し、これををマイコンに搭載する場合には、図8(b)に示すように、前回値保持動作が2回に減るため、結果として、入力値Xから出力値Yを算出する動作を、1.0×7+0.5×2=8.0ミリ秒で実現できる。
【0011】
このように、伝達関数W(z)に対応する演算をマイコンに実現させる場合には、その演算手順を工夫することで、マイコンの処理負荷を低減することができる。
【特許文献1】特開2002−229604号公報
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、従来の処理負荷低減方法では、動作をいくつか省略できる程度で、マイコンの処理負荷をさほど大きく低減できないため、安価なマイコンを用いて、低コストに制御システムを構築するにも、一定度の限界があった。
【0013】
本発明は、こうした問題に鑑みなされたものであり、従来よりも少ない処理負荷で、制御対象を制御可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
かかる目的を達成するためになされた請求項1記載の発明は、分数式で表現可能な離散時間系の伝達関数を用いて、制御対象に対する操作量を算出し、制御対象をディジタル制御するディジタル制御器の設計方法であり、次の手順にてディジタル制御器を設計するものである。
【0015】
まず、上記伝達関数を分解して、当該伝達関数を、分解前における伝達関数の分母の次数よりも、小さい次数の分母で表される分数式(以下、「部分分数」と表現する。)の和、に変換する(手順(a))。
【0016】
伝達関数W(z)を部分分数の和に分解(部分分数分解)する場合には、例えば、式(1)に示す伝達関数W(z)を式(2)に示すように分解する。
そして、分解後の伝達関数を構成する各部分分数に対応する演算器を設計する(手順(b))。この際には、伝達関数を構成する部分分数の内、一部の部分分数に対応する演算器の演算周期を、他の部分分数に対応する演算器の演算周期よりも長く設定して、各部分分数に対応する演算器を設計する。
【0017】
また、これらの演算器を組み合わせて、制御対象を制御するディジタル制御器を設計する(手順(c))。
従来技術としては、伝達関数を部分分数分解して演算器を設計し、これらの演算器を組み合わせて、制御対象を制御する制御器を設計する方法が知られているが、従来では、各演算器での演算周期を一律にしていたので、上述したように、前回値保持動作などを低減できる程度で、大幅に処理負荷を低減することができなかった。
【0018】
これに対し、本発明では、一部の演算器の演算周期を、他の部分制御周期の演算周期よりも低く設定する。従って、本発明によれば、単位時間当たりの演算回数を、従来と比較して、大きく減らすことができる。
【0019】
例えば、図8(a)に示すブロックB100に対応する演算を、周期T0で、マイコンに実行させると、制御目的を達成することができる場合を考える。この場合に、図8(b)に示す各ブロックB101,B102,B103に対応する演算を、マイコンに実行させれば、ブロックB100と等価な演算を、マイコンに実行させることができると共に、前回値記憶保持動作を、1サイクル当たり、1回減らすことができる。
【0020】
ここまでの技術は、従来知られた技術である。但し、従来技術では、全てのブロックB101,B102,B103の演算を、周期T0でマイコンに実行させる。
一方、本発明では、設計時に、ブロックB101,ブロックB102のいずれか一方のブロックに対応する演算処理の実行周期を、周期T0より長い周期T1に設定する。例えば、いずれか一方のブロックの実行周期T1を、周期T0の整数A倍(但しA>1)に設定する(T1=A・T0)。
【0021】
従来技術では、全てのブロックB101,B102,B103の演算を、周期T0で実行するので、時間T1当たりに、各ブロックの演算をA回実行しなければならないが、上記方法では、実行周期T1としたブロックの演算回数を時間T1当たり1回に減少させることができるので、このブロックの演算回数を(A−1)回分減らすことができる。
【0022】
従って、本発明によれば、制御器をプログラムとして設計し、これをマイコンに実装して、制御を実現する場合に、操作量算出に係るマイコンの処理負荷を大幅に低減することができて、安価なマイコンを用いて、制御システムを構築することができるのである。
【0023】
尚、この方法は、ディジタル制御器を構成する演算器の全てが、ディジタル制御器全体の特性に大きく寄与するものではなく、各演算器の寄与度が異なることを利用したものである。即ち、寄与度の低い演算器の演算周期を低くしても、ディジタル制御器の性能は、それによって大きく低下することはない。従って、本発明によれば、一部の演算器の演算周期を低くしても、制御目的を十分に達成することができて、安価に制御システムを構築することができるのである。
【0024】
具体的に、上記ディジタル制御器の設計に当たっては、伝達関数を構成する各部分分数の周波数応答に基づいて、演算器の演算周期を、他の部分分数に対応する演算器の演算周期よりも長く設定する部分分数を決定すればよい(請求項2)。
【0025】
例えば、伝達関数を構成する各部分分数の所定周波数帯域のゲイン特性に基づき、ゲインの小さい部分分数に対応する演算器から優先的に、演算器の演算周期を、他の部分分数の演算周期よりも長く設定する部分分数に決定すればよい(請求項3)。
【0026】
ゲインの小さい部分分数については、対応する演算器の演算周期を長くしても、それがディジタル制御器全体の出力に及ぼす影響は小さいので、このように演算周期を長くする部分分数を決定すれば、効率的に制御に係る処理負荷を低減することができる。
【0027】
特に、ゲインがピークとなる共振周波数の周辺帯域のゲイン特性に基づき、演算器の演算周期を、他の部分分数に対応する演算器の演算周期よりも長く設定する部分分数を決定すれば、一層、良好に制御に係る処理負荷を低減することができる。
【0028】
尚、請求項4記載のディジタル制御器は、上述の思想を適用したディジタル制御器の発明である。このディジタル制御器は、分数式で表現可能な離散時間系の伝達関数を用いて、制御対象を制御するディジタル制御器であって、伝達関数を、当該伝達関数の分母の次数よりも、小さい次数の分母で表される分数式(部分分数)の和、に変換して得られる各部分分数毎に、当該部分分数に対応する演算を行う演算器を備えると共に、各演算器から演算結果として出力される値の和を、伝達関数の出力として算出する出力器を備え、複数の演算器の内、一部の演算器が、他の演算器及び出力器よりも低周期で、演算を行う構成にされたものである。従って、このディジタル制御器の構成によれば、少ない負荷で制御対象を制御することができる。
【0029】
また、このディジタル制御器としての機能は、プログラムによりコンピュータに実現させることができる(請求項5)。このプログラムをマイコンに搭載してディジタル制御器を構成すれば、従来よりもマイコンの処理負荷を低減でき、安価なマイコンを用いて、制御目的を達成することができる。
【発明を実施するための最良の形態】
【0030】
以下に本発明の実施例について、図面と共に説明する。
図1は、本発明が適用された制御システム1の構成を表す説明図である。図1に示す制御システム1は、制御対象10と、センサ20と、マイコン30と、からなり、センサ20からの入力に基づき、マイコン30にて操作量Uを算出し、当該操作量Uに対応した制御信号を制御対象10に入力することにより、制御対象10を、ディジタル制御するものである。
【0031】
この制御システム1を、車両制御システムに適用する場合には、例えば、運転者の車両操作を検知するセンサ(ステアリングセンサ等)を、センサ20に用いて、運転者の操作に合わせ、車両制御することになる。
【0032】
マイコン30は、センサ20及び制御対象10に接続される入出力回路37と、各種演算処理を実行するCPU31と、制御プログラム等を記憶するフラッシュメモリ33と、プログラム実行時に作業領域として使用されるRAM35と、を備え、フラッシュメモリ33に記憶された制御プログラムを、CPU31にて実行することにより、制御対象10を制御する。
【0033】
ここで、センサ20からの入力値Xに基づき、次の伝達関数W(z)
【0034】
【数3】

に従って、値Yを算出し、この値Yを、操作量U=Yとして、制御対象10を制御する制御システム1を考える。但し、伝達関数W(z)は、離散時間系の伝達関数であり、変数zは、遅延演算子を表すものとする。
【0035】
この場合、本実施例では、次のようにして制御プログラムを設計し、この制御プログラムを、フラッシュメモリ33に登録して、マイコン30を、制御対象10に対応するディジタル制御器として機能させる。これにより、式(3)に示す伝達関数W(z)を用いて、制御対象10に対する操作量Uを算出し、制御対象10を制御する制御システム1を実現する。
【0036】
図2は、本実施例における制御プログラム(ディジタル制御器)の設計手順を示したフローチャートである。
まず、本実施例では、操作量U=Yの演算周期Tを、制御目的を達成可能な範囲で、最大の演算周期T0に決定し、演算周期T0に合わせて、伝達関数W(z)の係数(a1,a2,a3,a4,a5,b1,b2,b3,b4,b5)を決定する。例えば、演算周期T0=1/1250=0.0008(秒)に設定し、伝達関数W(z)を、次のように設定する。
【0037】
【数4】

続いて、制御システム1に採用する、伝達関数W(z)を部分分数分解し、伝達関数W(z)を、分解前における伝達関数の分母の次数よりも、小さい次数の分母で表される分数式(部分分数)の和に変換する(S110)。式(5)は、式(4)に示す伝達関数W(z)を部分分数分解したときの、当該部分分数分解後の伝達関数W(z)を表す。
【0038】
【数5】

部分分数分解に際しては、基本的に、部分分数の分母が変数zの1次式となるようにするが、分母に虚数が現れる場合には、分母が複素共役の関係にある部分分数をまとめ、分母に虚数が現れないようにする。尚、本実施例では、S110における部分分数分解後の伝達関数W(z)を構成する、第k(k=1,2,…,K)番目の部分分数を、特に部分分数Wp[k]と表現する。但し、値Kは、部分分数分解後の部分分数の総数を表す。
【0039】
このようにして、伝達関数W(z)を部分分数分解した後には、部分分数分解後の伝達関数W(z)を構成する部分分数Wp[k](k=1,2,…,K)の内、演算周期Tを、予め設定した演算周期T0よりも長くする部分分数を決定する。
【0040】
具体的には、まず、部分分数分解前の伝達関数W(z)の周波数応答から、演算周期Tを長くする部分分数を決定する際に検討すべき周波数帯域(以下、「検討帯域」という。)を決定する(S120)。
【0041】
図3は、式(4)に示す伝達関数W(z)の周波数応答として、縦軸をゲイン(即ち、伝達関数W(z)の入出力比)、横軸を周波数とした伝達関数W(z)のゲイン特性、及び、縦軸を位相遅れ、横軸を周波数とした伝達関数W(z)の位相特性を表すボード(Bode)線図である。
【0042】
本実施例では、周波数応答が特徴的な周波数帯域を、検討帯域に決定する。具体的には、共振周波数を基準として、その前後の周波数帯域を、検討帯域に決定する。図3に示すボード線図の例では、共振周波数を含む帯域20[Hz]〜200[Hz]を、検討帯域に設定する。
【0043】
次に、各部分分数Wp[k](k=1,2,…,K)の検討帯域内の周波数応答に基づき、演算周期Tを長くする部分分数を決定する(S130)。即ち、当該ステップでは、まず、各部分分数Wp[k](k=1,2,…,K)の周波数応答を導出する。
【0044】
式(4)に示す伝達関数W(z)を用いる場合には、その部分分数である各関数W1,W2,関数W3の周波数応答を導出する。但し、ここでは、式(5)における第1番目の部分分数を関数W1、第2番目の部分分数を関数W2、第3番目の部分分数を関数W3と表現する。図4は、これら各関数W1,W2,W3の周波数応答(ゲイン特性及び位相特性)を表すボード線図である。
【0045】
【数6】

そして、導出した各部分分数Wp[k](k=1,2,…,K)の周波数応答から、検討帯域内で、ゲインが最大値を採る部分分数よりも、常に、ゲインが小さい部分分数を、演算周期を長くする部分分数に決定する。
【0046】
以下では、部分分数Wp[k](k=1,2,…,K)の内、演算周期Tを長くする部分分数に決定した部分分数を、特に部分分数Wq[m](m=1,2,…,M)と表現する。但し、値Mは、演算周期を長くする部分分数に決定した部分分数の個数を表す。また、部分分数Wp[k](k=1,2,…,K)の内、演算周期を長くする部分分数に決定した部分分数以外の部分分数を、特に部分分数Wr[n](n=1,2,…,N=K−M)と表現する。
【0047】
図4に示す例では、縦軸をゲイン(各関数W1,W2,W3の入出力比)、横軸を周波数とした各関数W1,W2,W3のゲイン特性を表すグラフから、検討帯域(20[Hz]〜200[Hz])内で、ゲインが最大値を採る関数W1より、常にゲインが小さい関数W2,W3を、演算周期Tを長くする部分分数Wq[1],Wq[2]に決定し、関数W1を、演算周期Tを長くしない部分分数Wr[1]に決定する。
【0048】
一方、各関数W1,W2,W3の周波数特性が、仮に図5に示すようになる場合には、検討帯域内で、ゲインが最大値を採る関数W1より、当該検討帯域内で常にゲインが小さい関数W2を、演算周期Tを長くする部分分数Wq[1]に決定し、関数W1及び検討帯域内でゲインが最大値を採る関数W1より大きくなる領域がある関数W3を、演算周期Tを長くしない部分分数Wr[1],Wr[2]に決定する。
【0049】
このようにして、演算周期Tを長くする部分分数を決定した後には、演算周期Tを長くすると決定した各部分分数Wq[m](m=1,2,…,M)に対し、新たに設定する演算周期Tの候補を設定する(S140)。
【0050】
具体的には、演算周期Tの候補として、部分分数分解前の伝達関数W(z)に設定した演算周期T0の整数倍の周期T[j]=(j+1)・T0(j=1,2,…,J)を設定する。例えば、部分分数分解前の伝達関数W(z)に設定した演算周期T0が、T0=1/1250=0.0008(秒)である場合には、T[j]=(j+1)/1250(j=1,2,…,J)を、演算周期の候補に設定する。
【0051】
但し、値Jは、候補として設定する周期の個数を表す。値Jについては、例えば、演算周期T[j]の逆数(1/T[j])が、伝達関数W(z)の共振周波数の約5倍を下回らないように設定する。
【0052】
この後には、演算周期を長くすると決定した部分分数Wq[m](m=1,2,…,M)毎に、当該部分分数を構成する係数の値を、演算周期の候補T[j]に合わせて修正し、演算周期T[j]に適合する部分分数を導出する。即ち、各部分分数Wq[m](m=1,2,…,M)について、演算周期の候補T[j](j=1,2,…,J)毎に、周期T[j]に適合する部分分数を導出する(S150)。
【0053】
尚、係数の修正は、離散時間系の上記部分分数を、連続時間系の部分分数(伝達関数)に変換し、連続時間系の部分分数を、演算周期T[j](所謂サンプリング周期)に適合する離散時間系の部分分数(伝達関数)に再変換することで行うことができる。以下では、このようにして、演算周期T0で設計された部分分数Wq[m]の係数を修正して、部分分数Wq[m]を、演算周期T[j]に適合する部分分数に変換した場合の、当該変換後の部分分数を、特に部分分数Wq[m,j]と表現する。
【0054】
例えば、演算周期1/1250で設計された式(6b)に示す関数W2を、演算周期1/625に対応する部分分数に変換すると、次のようになる。
【0055】
【数7】

同様に、演算周期1/1250で設計された式(6c)に示す関数W3を、演算周期1/625に対応する部分分数に変換すると、次のようになる。
【0056】
【数8】

この後には、各部分分数Wq[m](m=1,2,…,M)について、各演算周期T[j]に対応した(J+1)個の部分分数Wq[m,j](j=0,1,2,…,J)の内の一つを、評価対象の部分分数として選択し(S160)、選択した評価対象の部分分数を用いて、評価対象の制御プログラムを生成する(S170)。但し、T[j=0]は、演算周期T0であり、Wq[m,0]は、演算周期T0の部分分数Wq[m]であるものとする。
【0057】
図6は、生成する制御プログラムの構成を、ブロック線図の形態で表した説明図である。具体的に、S170では、「演算周期T0で繰返し、入力値Xをサンプリングして、このサンプリング値に基づき、式Yr[n]=Wr[n]・Xに従い、出力値Yr[n]を算出する処理」を、CPU31に実行させるための演算プログラムPr1を、部分分数Wr[n](n=1,2,…,N)毎に設計すると共に、「演算周期T[j]で繰返し、入力値Xをサンプリングして、このサンプリング値に基づき、式Yq[m,j]=Wq[m,j]・Xに従い、出力値Yq[m,j]を算出する処理」を、CPU31に実行させるための演算プログラムPr2を、部分分数Wq[m,j](m=1,2,…,M)毎に設計する。
【0058】
更に、「演算周期T0で、演算プログラムPr1による演算結果としてのN個の出力値Yr[n](n=1,2,…,N)と、演算プログラムPr2による演算結果としてのM個の出力値Yq[m,j](m=1,2,…,M)と、を加算して、この加算値Yを、操作量Uとして出力する処理」を、CPU31に実行させるための演算プログラムPr3を設計する。そして、これらの演算プログラムPr1,Pr2,Pr3を組み合わせて、制御プログラムを生成する。
【0059】
この後、当該制御プログラムを、マイコン30のフラッシュメモリ33に登録し、この制御プログラムを、CPU31に実行させることにより、制御プログラムの定量評価を行う(S180)。
【0060】
ここでは、定量評価として、S170で生成した制御プログラムをCPU31に実行させて、入力値Xに対する制御量(制御出力)のデータを、採りえる入力値Xの範囲について取得し、取得したデータから当該制御プログラムが制御目的を達成しているか否かを判定する。
【0061】
例えば、制御システム1が、車両制御システムであって、運転者の操舵操作に対する車両ヨー速度の応答性を、5%向上させるためのシステムである場合には、定量評価として、S170で生成した制御プログラムをCPU31に実行させて、操舵入力Xに対する制御量(車両ヨー速度)のデータを取得し、車両ヨー速度の応答性が5%向上しているか否かを判定する。
【0062】
また、定量評価にて、制御目的が達成されていると判定された場合には(S185でYes)、必要に応じて、制御プログラムの定性評価を行う(S190)。例えば、制御システム1が、車両制御システムであって、運転者の操舵操作に対する車両ヨー速度の応答性を、5%を向上させるためのシステムである場合には、定性評価として、評価ドライバを複数人用意し、定性的に車両ヨー速度の応答性が向上していること、及び、車両運動に悪影響を与えていないことを官能評価する。そして、評価結果を、例えば、満点を100として、点数化する。尚、このような、制御プログラムの定性評価は、省略してもかまわない。
【0063】
そして、これらの処理を終えると、再度、評価が未完了の部分分数の組み合わせを選択し(S160)、この組み合わせで、制御プログラムを生成する(S170)。その後、この制御プログラムについて、S180で定量評価を行い、S190で、必要に応じて定性評価を行う。即ち、全ての組み合わせについて、評価を行うまで(S200でNo)、S160〜S190の処理を繰返し実行する。換言すれば、((J+1)M−1)回、S160〜S190の処理を繰返し実行する。
【0064】
例えば、図4に示す例では、関数W1を、演算周期を長くしない部分分数Wr[1]に決定し、関数W2を演算周期を長くする部分分数Wq[1]に決定し、関数W3を演算周期を長くする部分分数Wq[2]に決定するが、この場合に、演算周期Tの候補として、2つの候補T[1],T[2]を設定したときには、部分分数の組み合わせとして、{Wr[1],Wq[1,0],Wq[2,1]}{Wr[1],Wq[1,0],Wq[2,2]}{Wr[1],Wq[1,1],Wq[2,0]}{Wr[1],Wq[1,1],Wq[2,1]}{Wr[1],Wq[1,1],Wq[2,2]}{Wr[1],Wq[1,2],Wq[2,0]}{Wr[1],Wq[1,2],Wq[2,1]}{Wr[1],Wq[1,2],Wq[2,2]}の組み合わせが考えられる。
【0065】
従って、この場合には、これら計8つの各組合せについて、対応する演算をCPU31に実行させるための制御プログラムを生成し、これを、S170〜S190で定量評価及び定性評価する。
【0066】
同様に、変更する演算周期Tの候補として、周期T[1]のみを設定したときには、部分分数の組み合わせとして、{Wr[1],Wq[1,0],Wq[2,1]}{Wr[1],Wq[1,1],Wq[2,0]}{Wr[1],Wq[1,1],Wq[2,1]}の組み合わせが考えられる。
【0067】
従って、この場合には、これら計3つの各組合せについて、対応する演算をCPU31に実行させるための制御プログラムを生成し、これを、S170〜S190で定量評価及び定性評価する。尚、図7は、変更する演算周期Tの候補として、周期T[1]のみを設定したときに、評価すべき制御プログラムのパターンを、ブロック線図で表した説明図である。
【0068】
そして、全ての組み合わせについて評価が終了した場合には(S200でYes)、評価した制御プログラムであって、制御目的が達成されていると判定された制御プログラム群の中から、マイコン30の処理負荷が最も低い制御プログラムを、マイコン30に実装する制御プログラムに決定する(S210)。
【0069】
尚、制御プログラムの処理負荷は、具体的に、次のようにして算出することができる。即ち、四則演算動作に要する処理時間がTM1であり、前回値保持動作に要する処理時間がTM2である場合に、制御プログラムで、所定時間内に実行される四則演算動作の平均実行回数がAN1、前回値保持動作の平均実行回数がAN2である場合には、処理負荷値Lとして、L=TM1・AN1+TM2・AN2を算出する。そして、この処理負荷値Lが一番小さい制御プログラムを、マイコン30に実装する制御プログラムに決定する。
【0070】
そして、上記決定した制御プログラムをフラッシュメモリ33に登録し、マイコン30を、ディジタル制御器として完成させ、制御システム1を完成させる(S220)。
尚、定性評価を行っている場合には、制御目的が達成されていると判定された制御プログラムであって、定性評価での評価点が閾値を超える高評価の制御プログラム群の中から、マイコン30の処理負荷が最も低い制御プログラムを、マイコン30に実装する制御プログラムに決定すればよい。
【0071】
以上、本発明の実施例について説明したが、本実施例では、伝達関数W(z)を、複数の部分分数(演算単位)に分解し、各部分分数に対応する演算器(演算プログラム)の実行周期を、各部分分数のゲイン特性に応じて変更するようにした。具体的には、ゲインの小さい部分分数の演算周期を長く設定して、マイコン30の処理負荷を抑えるようにした。
【0072】
従って、本実施例の手法にて、制御プログラムを設計(生成)し、これをマイコン30に搭載して、制御システム1を構築すれば、安価なマイコン30を用いて、制御目的を達成する制御システム1を構成することができ、結果として、当該制御システム1を、安価に消費者に提供することができる。
【0073】
尚、本発明のディジタル制御器が備える演算器としての機能は、本実施例において、CPU31が実行する演算プログラムPr1,Pr2により実現される。また、本発明のディジタル制御器が備える出力器としての機能は、本実施例において、CPU31が実行する演算プログラムPr3により実現される。
【0074】
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、演算周期Tを長くすると決定した各部分分数Wq[m]についても、演算周期を長くしない場合Wq[m,0]の制御プログラムを評価して、最終的に好適な制御プログラムを、マイコン30に実装する制御プログラムとして決定するようにしたが、演算周期を長くしない場合Wq[m,0]については、評価対象とせずに、S160〜S200の処理を実行して、マイコン30に実装する制御プログラムを決定するようにしてもよい。また、演算周期を長くする部分分数の個数を所定個に制限する場合には、ゲインの小さい部分分数から所定個の部分分数を、演算周期を長くする部分分数に決定すればよい。
【図面の簡単な説明】
【0075】
【図1】本発明を適用した制御システム1の構成を表すブロック図である。
【図2】制御プログラムの設計手順を表すフローチャートである。
【図3】検討帯域の設定方法に関する説明図である。
【図4】部分分数の周波数応答の例を表す説明図である。
【図5】部分分数の周波数応答の例を表す説明図である。
【図6】生成する制御プログラムの構成を表すブロック線図である。
【図7】生成する制御プログラムの構成を表すブロック線図である。
【図8】ディジタル制御器の設計方法に関する説明図である。
【符号の説明】
【0076】
1…制御システム、10…制御対象、20…センサ、30…マイコン、31…CPU、33…フラッシュメモリ、35…RAM、37…入出力回路

【特許請求の範囲】
【請求項1】
分数式で表現可能な離散時間系の伝達関数を用いて、制御対象を制御するディジタル制御器の設計方法であって、
前記伝達関数を分解して、当該伝達関数を、分解前における前記伝達関数を構成する分母の次数よりも、小さい次数の分母で表される分数式(以下、「部分分数」と表現する。)の和、に変換する手順(a)と、
前記手順(a)による分解後の前記伝達関数を構成する各部分分数に対応する演算器を設計する手順(b)と、
前記手順(b)にて設計された演算器を組み合わせて、前記制御対象を制御するディジタル制御器を設計する手順(c)と、
を含み、
前記手順(b)では、前記伝達関数を構成する複数の部分分数の内、一部の部分分数に対応する演算器の演算周期を、他の部分分数に対応する演算器の演算周期よりも長く設定して、前記各部分分数に対応する演算器を設計する
ことを特徴とするディジタル制御器の設計方法。
【請求項2】
前記手順(b)では、前記伝達関数を構成する各部分分数の周波数応答に基づき、演算器の演算周期を、前記他の部分分数に対応する演算器の演算周期よりも長く設定する部分分数を決定する
ことを特徴とする請求項1記載のディジタル制御器の設計方法。
【請求項3】
前記手順(b)では、前記伝達関数を構成する各部分分数の周波数応答として、前記各部分分数の所定周波数帯域のゲイン特性に基づき、ゲインの小さい部分分数から優先的に、前記演算器の演算周期を、前記他の部分分数の演算周期よりも長く設定する部分分数に決定する
ことを特徴とする請求項2記載のディジタル制御器の設計方法。
【請求項4】
分数式で表現可能な離散時間系の伝達関数を用いて、制御対象を制御するディジタル制御器であって、
前記伝達関数を、当該伝達関数の分母の次数よりも、小さい次数の分母で表される分数式(以下、「部分分数」と表現する。)の和、に変換して得られる各部分分数毎に、当該部分分数に対応する演算を行う演算器を備えると共に、
前記各演算器から演算結果として出力される値の和を、前記伝達関数の出力として算出する出力器を備え、
前記複数の演算器の内、一部の演算器は、他の前記演算器及び前記出力器よりも低周期で、演算を行う構成にされていることを特徴とするディジタル制御器。
【請求項5】
請求項4記載のディジタル制御器としての機能を、コンピュータに実現させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−110376(P2009−110376A)
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願番号】特願2007−283359(P2007−283359)
【出願日】平成19年10月31日(2007.10.31)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】