(57)【特許請求の範囲】
【請求項１】
少なくとも２気筒以下の個数の気筒を備え、スロットルバルブで調量された吸入空気にキャブレタを介してガソリン燃料を噴射し、よって生成された混合気を前記気筒に吸入させて点火・燃焼させる火花点火式の内燃エンジンからなる汎用エンジンの制御装置において、
ａ．前記エンジンの回転数を検出するエンジン回転数検出手段、
ｂ．前記スロットルバルブに接続され、指令値に応じて作動して前記スロットルバルブを開閉するアクチュエータ、
ｃ．前記エンジンの目標回転数を決定する目標回転数決定手段、
ｄ．パラメータ同定機構を備えると共に、前記検出された回転数が前記目標回転数に一致するように、前記パラメータ同定機構で同定された適応パラメータを用いて前記アクチュエータに供給すべき指令値を演算する適応制御器、
ｅ．前記演算された指令値に基づき、前記アクチュエータに供給すべき指令値を決定する指令値決定手段、
および
ｆ．前記適応パラメータの同定速度を決定するゲインを前記検出された回転数と前記目標回転数の偏差に応じて設定するゲイン設定手段、
を備えることを特徴とする汎用エンジンの制御装置。
【請求項２】
前記ゲイン設定手段は、前記目標回転数から前記検出された回転数を減算して前記偏差を算出すると共に、
ｇ．前記算出された偏差を正値からなる第１の規準値と比較し、前記偏差が第１の規準値より大きいとき、前記ゲインを第１の値に設定する第１ゲイン設定手段、
ｈ．前記算出された偏差を負値からなる第２の規準値と比較し、前記偏差が第２の規準値より小さいとき、前記ゲインを第２の値に設定する第２ゲイン設定手段、
および
ｉ．前記偏差が前記第１の規準値以下であると共に、前記第２の規準値以上であるとき、前記ゲインを第３の値に設定する第３ゲイン設定手段、
を備えることを特徴とする請求項１項記載の汎用エンジンの制御装置。
【請求項３】
前記第１の値が前記第２の値より大きいことを特徴とする請求項２項記載の汎用エンジンの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は汎用エンジンの制御装置に関する。
【０００２】
【従来の技術】
汎用エンジン、即ち、単気筒あるいは２気筒以下の気筒数を備え、スロットルバルブで調量された吸入空気をキャブレタを介してガソリン燃料と混合して気筒に吸入させ、点火して燃焼させる火花点火式の内燃エンジンは、良く知られており、携帯発電機、農作業機、土木作業機など種々の機械の動力源として使用されている。
【０００３】
この種の汎用エンジンにあっては堅牢で安価であることが望まれるので、燃料供給系にはキャブレタが用いられると共に、始動もリコイルスタータを介して手動で行われる。さらに、使用回転域も一定していることから、通例、ウエイトとスプリングからなる機械的なガバナを用いて回転数を制御している。
【０００４】
しかしながら、この種の汎用エンジンにあっても、近時、スロットルバルブにリニアソレノイドあるいはステップモータなどのアクチュエータを接続し、マイクロコンピュータからなる電子制御ユニット（ＥＣＵ）を用いてアクチュエータの指令値をＰＩＤ制御することも提案されつつある。
【０００５】
さらに、汎用エンジンではないが、乗用車用の内燃エンジンに関しては、例えば、特開平１０−１０３１３１号公報に記載されるように、適応制御器を用いて空燃比を制御することが提案されている。
【０００６】
【発明が解決しようとする課題】
機械式ガバナは電源が不要で安価であるが、負荷の多寡に関わらず一定回転を保持するのが困難であると共に、機種や使用回転域に応じてスプリング特性などを設定する必要があった。またスロットルバルブにアクチュエータを接続してその指令値をＰＩＤ制御則を介して制御する場合、発電機などの負荷に応じてＰＩＤ制御ゲインを設定する必要があると共に、使用回転域が変更されると、ゲインを設定し直す必要がある。即ち、ＰＩＤ制御則を用いて制御する場合、制御対象の特性が変化したとき、最適な安定性と追従性が保証されない不都合がある。
【０００７】
それに対し、アクチュエータの指令値を適応制御則を用いて設定するようにすると、演算量は増加するものの、負荷を考慮することなくゲインを設定できる点で、制御対象の特性の変化に対してロバストな制御を実現することができると共に、使用回転数を自由に設定できるなどの利点がある。
【０００８】
そのような適応制御を実機に応用するとき、汎用エンジンの回転数の適応制御において、目標回転数への収束性を上げるために収束ゲインを高めに設定すると、外乱を受けた場合に目標値近傍で回転数が不安定となる。他方、安定性を優先して収束ゲインを低めに設定すると、負荷の変動などでプラントの特性が大幅に変化する場合に収束性が低下する。
【０００９】
従って、この発明の目的は上記した課題を解消することにあり、少なくとも２気筒以下の個数の気筒を備え、スロットルバルブで調量された吸入空気をキャブレタを介してガソリン燃料と混合して前記気筒に吸入させ、点火して燃焼させる火花点火式の内燃エンジンからなる汎用エンジンにおいて、前記スロットルバルブにアクチュエータを接続し、アクチュエータの指令値を適応制御器を用いて演算すると共に、目標回転数への収束性と安定性を最適にバランスさせるようにした汎用エンジンの制御装置を提供することにある。
【００１０】
【課題を解決するための手段】
上記の目的を達成するために、請求項１項にあっては、少なくとも２気筒以下の個数の気筒を備え、スロットルバルブで調量された吸入空気にキャブレタを介してガソリン燃料を噴射し、よって生成された混合気を前記気筒に吸入させて点火・燃焼させる火花点火式の内燃エンジンからなる汎用エンジンの制御装置において、前記エンジンの回転数を検出するエンジン回転数検出手段、前記スロットルバルブに接続され、指令値に応じて作動して前記スロットルバルブを開閉するアクチュエータ、前記エンジンの目標回転数を決定する目標回転数決定手段、パラメータ同定機構を備えると共に、前記検出された回転数が前記目標回転数に一致するように、前記パラメータ同定機構で同定された適応パラメータを用いて前記アクチュエータに供給すべき指令値を演算する適応制御器、前記演算された指令値に基づき、前記アクチュエータに供給すべき指令値を決定する指令値決定手段、および前記適応パラメータの同定速度を決定するゲインを前記検出された回転数と前記目標回転数の偏差に応じて設定するゲイン設定手段を備える如く構成した。
【００１１】
適応パラメータの同定速度を決定するゲインを検出された回転数と目標回転数の偏差に応じて設定するように構成したので、例えば、回転数偏差が小さいときは低くする一方、それ以外では高くするように算出（設定）することが可能となり、汎用エンジンの回転数制御において安定性と収束性を最適にバランスさせることができる。
【００１２】
請求項２項においては、前記ゲイン設定手段は、前記目標回転数から前記検出された回転数を減算して前記偏差を算出すると共に、前記算出された偏差を正値からなる第１の規準値と比較し、前記偏差が第１の規準値より大きいとき、前記ゲインを第１の値に設定する第１ゲイン設定手段、前記算出された偏差を負値からなる第２の規準値と比較し、前記偏差が第２の規準値より小さいとき、前記ゲインを第２の値に設定する第２ゲイン設定手段、および前記偏差が前記第１の規準値以下であると共に、前記第２の規準値以上であるとき、前記ゲインを第３の値に設定する第３ゲイン設定手段を備える如く構成した。
【００１３】
このように、収束ゲインを可変とすると共に、偏差が第１の規準値より大きいときは前記ゲインを第１の値に設定し、偏差が第２の規準値より小さいときは第２の値に設定すると共に、前記第１の規準値以下であり、かつ前記第２の規準値以上であるときは第３の値に設定する、換言すれば、回転数偏差が小さいときは低くする一方、それ以外では高くするように算出（設定）するように構成したので、汎用エンジンの回転数制御において安定性と収束性を一層最適にバランスさせることができる。
【００１４】
請求項３項にあっては、前記第１の値が前記第２の値より大きい如く構成した。
【００１５】
前記第１の値が前記第２の値より大きいように構成したので、即ち、収束ゲインを、検出回転数が目標回転数を下回って不足する場合、検出回転数が目標回転数を上回って越える場合に比して高くするように設定したので、検出回転数が目標回転数を上回って越える場合と同様の時間で目標値に収束させることができる。
【００１６】
【発明の実施の形態】
以下、添付図面に即し、この発明の一つの実施の形態に係る汎用エンジンの制御装置を説明する。
【００１７】
図１はその汎用エンジンの制御装置を全体的に示す概略図である。
【００１８】
図１において、符号１０は汎用エンジン（以下「エンジン」という）を示し、エンジン１０は、水冷４サイクルのＯＨＶ型であり、１９６ｃｃの排気量を備える。
【００１９】
エンジン１０は１個の気筒（シリンダ）１２を備え、その内部にピストン１４が往復動自在に収容される。ピストン１４はクランクシャフト１６に連結され、クランクシャフト１６はギヤを介してカムシャフト１８と連結される。
【００２０】
ピストン１４の頭部と気筒壁面の間には燃焼室２０が形成されると共に、気筒壁面には吸気バルブ２４と排気バルブ２６が配置され、燃焼室２０と吸気路２８あるいは排気路３０の間を開閉する。
【００２１】
クランクシャフト１６にはフライホイール３２が取り付けられると共に、フライホイール３２の先端側には操作者がエンジン１０を始動させるための、リコイルスタータ３４が取り付けられる。フライホイール３２の内側には発電コイル（オルタネータ）３６が配置され、交流を発電する。発電された交流は整流回路（図示せず）を介して直流に変換され、点火プラグ（図示せず）などに供給される。
【００２２】
吸気路２８の上流にはキャブレタ３８が配置されると共に、それと一体に構成されたスロットルバルブ４０が配置される（図１においてスロットルバルブ４０はその軸で示す）。キャブレタ３８は燃料タンク（図示せず）に燃料管（図示せず）を介して接続され、そこに貯留されたガソリン燃料を供給され、吸入された空気にノズルからガソリン燃料を噴射して混合気を生成する。生成された混合気は吸気路２８の下流を流れ、吸気バルブ２４を通って気筒１２の燃焼室２０に吸入される。
【００２３】
スロットルバルブ４０はステップモータ（アクチュエータ）４６が接続され、指令値（ステップ（角））を供給されて動作し、指令値に応じてスロットルバルブ４０を開閉する。尚、図１においてステップモータ４６はキャブレタ３８の裏側に配置されるため、想像線で示す。
【００２４】
また、フライホイール３２の付近には電磁ピックアップからなるクランク角センサ（回転数センサ）４８が設けられ、クランク角度１２度ごとにパルスを出力する。このように、クランク角センサ４８はクランクシャフト１回転（クランク角度で３６０度）当たり３０個、即ち、カムシャフト１回転（クランク角度７２０度）当たり６０個のパルスを出力する。
【００２５】
エンジン１０の適宜位置にはケース内に収容されたＥＣＵ（電子制御ユニット）５０が配置され、クランク角センサ４８の出力はＥＣＵ５０に送られる。ＥＣＵ５０はマイクロコンピュータからなり、ＣＰＵ，ＲＯＭ，ＲＡＭおよびカウンタを備える。ＥＣＵ５０においてクランク角センサ４８の出力パルスはカウンタに入力され、そこでカウントされてエンジン回転数（以下「回転数」と略称する）ＮＥが算出（検出）される。
【００２６】
ＥＣＵ５０は検出された回転数などに基づき、後述するように適応制御演算（適応制御器およびパラメータ同定機構からなる適応制御則を用いた演算）を行い、検出された回転数が目標回転数に一致するようにステップモータ（アクチュエータ）４６の指令値を算出し、前記したケース内に隣接して配置されたモータドライバ５４を通じて指令値をステップモータ４６に出力して作動させる。尚、エンジン１０には、発電機（図示せず）が負荷として接続される。また、図１において符号５８は冷却ファンを、符号６０はヘッドカバーを示す。
【００２７】
図２はそのＥＣＵ５０の動作を機能的に示すブロック図である。
【００２８】
図示の如く、ＥＣＵ５０は、回転数検出部１００（クランク角センサ４８、カウンタ）で検出される回転数ＮＥと、目標回転数入力部１０２で入力された目標回転数ＮＥＭなどに基づいて適応制御演算部１０４において適応制御演算を行って指令値（スロットル開度指示値）を算出し、モータドライバ５４を介してステップモータ４６を作動させ、スロットルバルブ４０を開閉する。
【００２９】
また、回転数検出部１００の出力は点火処理・過回転検出部１０６にも入力され、そこで点火処理と過回転検出が行われる。点火処理は、メインＳＷ（スイッチ）がオンされた状態で、所定のクランク角度で前記した整流回路の出力を点火コイル（図示せず）の１次側に供給して通電を開始し、所定のクランク角度（例えばＢＴＤＣ１０度）で通電を遮断して２次側に高電圧を生じさせ、点火プラグを通じて気筒１２の燃焼室内の混合気が着火されて燃焼する。尚、メインＳＷは、ＥＣＵ５０に動作電源を供給するためのスイッチであるが、図１で図示を省略した。
【００３０】
このように、点火は固定点火であり、またエンジン１０はバッテリを備えない。尚、点火処理・過回転検出部１０６は、検出された回転数ＮＥを上限値と比較し、検出回転数が上限値を超えるときは過回転数と判断し、点火をカット（中止）し、エンジン１０を停止させる。
【００３１】
尚、図１においてエンジン１０として単気筒のエンジンを示したが、この実施の形態に係る汎用エンジンの制御装置は、２気筒の汎用エンジンについても同様に妥当する。逆に言えば、この実施の形態に係る汎用エンジンの制御装置にあっては、２気筒以下の汎用エンジンを前提とする。
【００３２】
ここで、上記した適応制御演算部１０４が行う適応制御演算について説明する。
【００３３】
図１に示すような、スロットル開度ＴＨを入力とするエンジン１０を簡略にモデル化して示すと、図３に示す如くとなる。適応制御を行うに際し、図３で破線で囲まれている部分をＥＮＧＩＮＥ（エンジン）モデルとみなし、１つのブロックとして扱うことにした。尚、図３で、Ｇａは吸入空気質量、Ｇｆはガソリン燃焼質量、Ｐｍｉはピストン１４が生じる、その質量ｍとイナーシャｉの積からなる出力を意味する。
【００３４】
制御の目標は、制御対象（ＥＮＧＩＮＥモデル）の出力である回転数ＮＥが目標値（目標回転数ＮＥＭ）と等しくなるように、入力であるスロットル開度ＴＨを演算して調整することにある。ここでは、負荷変動が主な未知パラメータとなり、負荷（発電機）を含めたエンジン１０の燃焼モデルのパラメータを逐次演算で求めることなる。
【００３５】
具体的には、図４に示す構成のＳＴＲ（セルフチューニングレギュレータ）を用い、図３の破線で囲まれたＥＮＧＩＮＥモデルを制御対象とする制御モデルを構築する。図４において（パラメータ）同定機構１１０は、制御対象の入力であるスロットル開度ＴＨと回転数ＮＥを用い、負荷変動までも含めたＥＮＧＩＮＥモデルのパラメータ（適応パラメータ）θハットを同定する（ハットは推定値を示す）。
【００３６】
次いで、同定されたパラメータを用い、目標回転数ＮＥＭと検出回転数ＮＥの差が零となるように、コントローラ（適応制御器）１１２でスロットル開度ＴＨを修正する。それを逐次繰り返すことにより、検出回転数ＮＥが目標回転数ＮＥＭと一致するようなスロットル開度ＴＨを決定することができる。
【００３７】
図４を参照してこの実施の形態に係る適応制御をより具体的に説明する。尚、この適応制御自体は、公知なものである。
【００３８】
図示のプラントは、一般的には、数１のような１入力１出力の線形離散時間系で示される。
【００３９】
【数１】
0004417597.tif 000002
【００４０】
数１で、Ａ，Ｂ：プラントの伝達関数を示す係数行列、ｙ(k):時刻ｋにおけるプラント出力（回転数）、ｕ(k):時刻ｋにおけるプラント入力（スロットル開度ＴＨ。より具体的にはステップモータへの指令値（ステップ（角））、ｗ(k):時刻(k) における白色雑音である。
【００４１】
これによって、目標の回転数を得るためには、スロットル開度をどのような値に調整すれば良いか計算することができる筈である。しかしながら、実際には負荷が大きく変動すると共に、エンジンが異なれば、特性も異なる。従って、特性の変化を推測することが必要となる。
【００４２】
そこで、目標回転数ＮＥＭをｙｍ（ｋ）、既知パラメータ（適応パラメータ）をθ、既知信号をζ(k) とおくと共に、プラントのパラメータを未知としてθを可調整パラメータθハットＴ(k) で置き換え、プラントの入力ｕ(k) 、即ち、コントローラ出力を数２のように算出するようにした。尚、Ｔは転置行列であることを示す。
【００４３】
【数２】
0004417597.tif 000003
【００４４】
数２でｂ０は、ゲインを決定するスカラ量である。尚、θとζ(k) は、それぞれ、数３のように示される。
【００４５】
【数３】
0004417597.tif 000004
【００４６】
これによって、汎用エンジン１０において負荷が変動したり、機種が相違しても、特性の変化を推測することができる。尚、図示の構成において、パラメータ調整則は数４あるいは数５のようになる。
【００４７】
【数４】
0004417597.tif 000005
【００４８】
【数５】
0004417597.tif 000006
【００４９】
数５に示すパラメータ調整則を用いると、可変ゲインλ１(k) ，λ２(k) の選び方によって固定ゲイン、漸減ゲイン、最小二乗法および固定トレースからなる４種のアルゴリズムを選択することができる。
【００５０】
この実施の形態においては、数４に示すパラメータ調整則を選び、後述するように適応パラメータθの同定速度（収束性）を決定する収束ゲインγの値を回転数偏差に応じて可変に設定するようにした。尚、数４でεは同定誤差を示す信号である。
【００５１】
上記を前提とし、図５フロー・チャートを参照してこの実施の形態に係る汎用エンジンの制御装置の動作を説明する。
【００５２】
図示のプログラムは、リコイルスタータ３４を介してエンジン１０が手動で始動されると、前記したＥＣＵ５０において実行され、１０ｍｓｅｃごとにループされる。
【００５３】
先ず、Ｓ１０において発電コイル（オルタネータ）３６の出力電圧がエンジン１０の完爆回転数相当値まで立ち上がったか否か、換言すれば、エンジン１０が始動されたか否か判断する。尚、ＥＣＵ５０は、その完爆回転数相当値未満の電圧で起動され、図示のプログラムが実行されて１０ｍｓｅｃごとにループされる。
【００５４】
Ｓ１０で否定されるときは以降の処理をスキップすると共に、肯定されるときはＳ１２に進み、スロットル位置初期化処理を行う。これは具体的には、ステップモータ４６に指令値（ステップ（角））を出力し、スロットルバルブ４０を全閉開度相当位置、より具体的には全閉開度を０度、全開開度を９０度とするとき、スロットルバルブ４０の固着を考慮して２度程度の開度位置に駆動する。
【００５５】
続いてＳ１４に進み、検出回転数ＮＥの算出を行う。
【００５６】
図６はその処理を示すサブルーチン・フロー・チャートである。
【００５７】
以下説明すると、Ｓ１００においてクランク角センサ４８の出力パルスの経過時間を測定して順次加算する。経過時間は、図７に示すように、パルスの立ち上がりから次の立ち上がりまでの時間を示す。次いでＳ１０２に進み、規定個数（具体的には６０個）のパルスについて経過時間の加算が終了したか否か判断し、肯定されるときはＳ１０４に進み、出力パルスの経過時間の平滑化を行う。
【００５８】
具体的には、経過時間の合計値を規定個数６０で除算し、パルス間隔の移動平均値（時間）を求めることで、回転数ＮＥを検出（算出）する。これについて説明すると、エンジン１０が単気筒であることから、回転数制御に前記したような適応制御則を用いる場合、観測パラメータである回転数が吸気、圧縮、膨張、排気行程からなる燃焼サイクルの影響を受けて大幅に変動するため、安定な制御系の構築が困難となる。
【００５９】
そこで、出力パルス間隔（立ち上がりから次の立ち上がりまでの時間間隔）をクランクシャフト２回転（クランク角度７２０）、即ち、燃焼サイクルの整数倍、より具体的には１倍に相当する期間ごとに区切って移動平均値を求めることで、観測パラメータである回転数の平滑化を行うようにした。
【００６０】
これによって、吸気、圧縮、膨張、排気行程による変動を相殺することができ、瞬時値を用いて回転数を観測する場合に比し、安定な制御系を構築することができる。尚、燃焼サイクルの整数倍の例として１倍を示したが、ｎ倍（ｎ≧２）であっても良い。
【００６１】
尚、図６フロー・チャートにおいてＳ１０２で否定されるときはＳ１０４をスキップすると共に、平均値は前回値を使用する。
【００６２】
図５フロー・チャートの説明に戻ると、次いでＳ１６に進み、目標回転数ＮＥＭのサンプリング処理をすべきか否か判断する。
【００６３】
これは、このプログラムを１０ｍｓｅｃごとにループさせると共に、１００ｍｓｅｃごとに、換言すれば、プログラムループ１０回に１回ごとに目標回転数の読み込み（サンプリング）を行い、目標回転数が変更されるときは、それに応じて目標回転数ＮＥＭを決定（修正）するようにしたためである。従って、Ｓ１６ではその処理を行うべきループか否か判断する。
【００６４】
Ｓ１６で肯定されるときはＳ１８に進み、目標回転数ＮＥＭの算出を行う。尚、Ｓ１６で否定されるときはＳ１８をスキップする。
【００６５】
図８はその処理を示すサブルーチン・フロー・チャートである。
【００６６】
以下説明すると、Ｓ２００において目標回転数ＮＥＭを入力する。入力した目標回転数ＮＥＭをＮＥＭ(k) とする。尚、この目標回転数ＮＥＭは、図２に示す目標回転数入力部１０２で入力される値である。具体的には、目標回転数ＮＥＭの入力は、ボリューム（図１で図示省略）を介して入力される操作者の指示値を読み取ることで行う。尚、目標回転数ＮＥＭをＥＣＵ５０のＲＯＭに格納しておき、このステップで読み出すようにしても良い。
【００６７】
次いでＳ２０２に進み、入力した目標回転数ＮＥＭ(k) から前回の目標回転数ＮＥＭ(k-1) （図５フロー・チャートの前回ループ時の値）を減算して差ΔＮＥＭを算出し、Ｓ２０４に進み、算出した差ΔＮＥＭが所定値ＮＥ１（具体的には３００ｒｐｍ。正値）以上か否か判断する。即ち、所定値ＮＥ１以上の上昇要求がなされたか否か判断し、肯定されるときはＳ２０６に進み、前回の目標回転数ＮＥＭ(k-1) に所定値ＮＥ１を加算して得た和を今回の目標回転数ＮＥＭ(k) とする。
【００６８】
Ｓ２０４で否定されるときはＳ２０８に進み、算出した差ΔＮＥＭが第２の所定値ＮＥ２（具体的には−１００ｒｐｍ。負値）以下か否か判断する。即ち、第２の所定値ＮＥ２（負値）を超える下降要求がなされたか否か判断し、肯定されるときはＳ２１０に進み、前回の目標回転数ＮＥＭ(k-1) から第２の所定値ＮＥ２（負値）を加算、より正確には減算して得た差を今回の目標回転数ＮＥＭ(k) とする。
【００６９】
このように、目標回転数の単位時間当たりの変化を所定値以下に決定するようにした。具体的には、回転数の上昇要求に対しては１００ｍｓｅｃ当たりの上昇分を最大３００ｒｐｍ以下に決定すると共に、下降要求に対しては１００ｍｓｅｃ当たりの下降分を最大１００ｒｐｍ以下に決定するようにした。
【００７０】
尚、上昇方向の値ＮＥ１を下降値の値ＮＥ２より（絶対値において）大きくしたのは、図示の汎用エンジン１０にあっては、同一回転数だけ変化させるとき、上昇側の方が時間がかかるためであり、従って目標回転数の変化分も、下降側に比して大きくした。また、ＮＥ１およびＮＥ２は、エンジンの機種や負荷の種類に応じて実験結果を通じて決定するものとする。
【００７１】
図８の処理について説明すると、適応制御を実機（エンジン１０）に応用するとき、スロットル開度に限界があるために入力値に制限があることから、急激なステップ状の目標値の変化に対応できず、さらにキャブレタ３８の動作遅れによる燃料制御の応答性が低いこともあって、目標回転数に対してオーバーシュートや制御ハンチングが生じる恐れがある。
【００７２】
そこで、単位時間（１００ｍｓｅｃ）当たりの回転数変更を制限し、徐々に変更させるようにした。即ち、図９に示す如く、目標回転数については、１点鎖線で示すような急激なステップ状に変化させず、実線で示すように徐々に変化させるようにした。これにより、キャブレタ３８を用いるために燃焼制御の応答性が低いにも関わらず、目標回転数の変化に対してオーバーシュートや制御ハンチングを生じることがない。
【００７３】
図５フロー・チャートの説明に戻ると、次いでＳ２０に進み、制御周期を算出する。
【００７４】
図１０はその処理を示すサブルーチン・フロー・チャートである。
【００７５】
同図の説明に入る前に、かかる処理を行う理由を説明すると、エンジン１０の回転数制御に適応制御則を用いる場合、制御周期が固定されると、制御系が安定しない場合が生じ得る。即ち、前記したように、単気筒の汎用エンジンにあっては、回転変動の周期は、吸気、圧縮、膨張、排気行程からなる燃焼サイクルに大きく依存する。従って、スロットルバルブ４０を駆動するタイミングは吸気行程前が望ましく、また少なくとも燃焼サイクルに同期させるのが望ましい。
【００７６】
そこで、この実施の形態においては、回転数に応じて最適な制御周期を予め実験を通じて求めておき、検出された回転数ＮＥに応じて制御周期を変えるようにした。
【００７７】
以下、図１０フロー・チャートを参照して説明すると、Ｓ３００において制御周期を計算する。制御周期は、具体的には、６００００〔ｍｓｅｃ〕を検出回転数ＮＥで除算して商を求めることで行う。即ち、１分間を回転数で割ることで制御周期を演算する。
【００７８】
次いでＳ３０２に進み、計算値が所定値Ｔ１（具体的には６０ｍｓｅｃ）より大きいか否か判断し、肯定されるときはＳ３０４に進み、制御周期を所定値Ｔ１とする。他方、Ｓ３０２で否定されるときはＳ３０６に進み、計算値が第２の所定値Ｔ２（具体的には１０ｍｓｅｃ）より小さいか否か判断し、肯定されるときはＳ３０８に進み、制御周期を第２の所定値Ｔ２とする。尚、Ｓ３０６で否定されるときは、Ｓ３０８をスキップする。
【００７９】
このように、検出された回転数ＮＥに応じて制御周期を可変とするように構成したので、図示の汎用エンジン１０において低回転から高回転にわたり、その回転数に最適な制御周期とすることができ、安定した制御系を実現することができる。
【００８０】
図５フロー・チャートの説明に戻ると、次いでＳ２２に進み、適応制御の収束ゲインを算出する。尚、収束ゲインは、数４にγで示す値である。
【００８１】
図１１はその処理を示すサブルーチン・フロー・チャートである。
【００８２】
同図の処理を説明する前に、かかる処理を行う理由を説明すると、図示のような汎用エンジンの回転数の適応制御において、前記したように、目標回転数への収束性を上げるために収束ゲインを高めに設定すると、外乱を受けた場合に目標値近傍で回転数が不安定となる。
【００８３】
他方、安定性を優先して収束ゲインを低めに設定すると、負荷の変動などでプラントの特性が大幅に変化する場合に収束性が低下する。そこで、この実施の形態においては、収束ゲインを可変とすると共に、回転数偏差が小さいときは低く、それ以外では高く設定（算出）するように構成した。
【００８４】
図１１フロー・チャートを参照して以下説明すると、Ｓ４００において目標回転数ＮＥＭ(k) から検出回転数ＮＥ(k) を減算して偏差ΔＮＥを算出し、Ｓ４０２に進み、算出した偏差ΔＮＥが所定値ＮＥ３（具体的には３００ｒｐｍ。正値）より大きいか否か判断する。
【００８５】
Ｓ４０２で肯定されるときはＳ４０４に進み、収束ゲインを変更する。具体的には、検出回転数ＮＥが目標回転数ＮＥＭ近傍にあるときを定常状態とし、そのときの収束ゲインを０．９とするとき、Ｓ４０２の示す状態では、検出回転数が目標回転数を大きく下回ってその近傍にないことから、収束ゲインを定常状態のそれより大きい１．５とする。
【００８６】
他方、Ｓ４０２で否定されるときはＳ４０６に進み、算出した偏差ΔＮＥが第２の所定値ＮＥ４（具体的には−５００ｒｐｍ。負値）より小さいか、換言すれば偏差ΔＮＥが第２の所定ＮＥ４を負方向に超えているか否か判断し、肯定されるときはＳ４０８に進み、収束ゲインを変更する。具体的には、検出回転数が目標回転数を大きく上回って同様にその近傍にないことから、収束ゲインを定常状態のそれより大きい１．２とする。尚、Ｓ４０６で否定されるときはＳ４１０に進み、収束ゲインを定常（状態）の値０．９に戻す（即ち、算出あるいは設定する）。
【００８７】
上記において、Ｓ４０８のゲインをＳ４０４のゲインより小さくしたのは、前記したように、回転数を下降させる方が、要する時間が短いからである。
【００８８】
このように、この実施の形態にあっては、収束ゲインを可変とすると共に、回転数偏差が小さいときは低くする一方、それ以外では高くするように算出（設定）する、換言すれば、回転数偏差に応じて可変となるように構成したので、汎用エンジンの回転数制御において安定性と収束性を最適にバランスさせることができる。
【００８９】
さらに、収束ゲインを、検出回転数が目標回転数を下回って不足する場合、検出回転数が目標回転数を上回って越える場合に比して高くするように設定したので、検出回転数が目標回転数を上回って越える場合と同様の時間で目標値に収束させることができる。
【００９０】
図５フロー・チャートの説明に戻ると、次いでＳ２４に進み、適応制御演算処理を行う。これは具体的には、前記した数２の式に従ってコントローラ出力（プラント入力）ｕ(k) をステップ（角）数で演算することで行う。
【００９１】
次いでＳ２６に進み、開度指示処理、即ち、ステップモータ４６へ供給すべき指令値の決定を行う。
【００９２】
図１２はその処理を示すサブルーチン・フロー・チャートである。
【００９３】
以下説明すると、Ｓ５００において演算された開度指示値（ステップ（角））をスロットルバルブ４０の物理的上限値（具体的には１００ステップ（角））と比較し、演算された開度指示値が物理的上限値より大きいか否か判断し、肯定されるときはＳ５０２に進み、開度指示値を物理的上限値に置換する。
【００９４】
また、Ｓ５００で否定されるときはＳ５０４に進み、演算された開度指示値をスロットルバルブ４０の物理的下限値（具体的には０ステップ（角）と比較し、演算された開度指示値が物理的下限値より小さいか否か判断し（角）と比較し、肯定されるときはＳ５０６に進み、開度指示値を物理的下限値に置換する。
【００９５】
これについて説明すると、実際の汎用エンジン１０のスロットルバルブ４０には物理的な上下限値があり、演算された開度指示値がそれを超えた場合、制御系が成り立たなくなる。
【００９６】
即ち、前記したようにステップモータ４６は全閉開度相当位置を示す０ステップ（角）から全開開度相当位置を示す１００ステップ（角）の間で動作するが、全閉開度相当位置は、スロットル位置初期化処理に関して述べたように、固着防止のために、所定量、例えば２度程度だけ開放方向に設定された値を下限開度とするのが望ましい。また、全開開度相当位置も、エンジン１０の出力が最大となる開度以上に開放するのは意味がないので、エンジン１０の出力が最大となる開度を上限開度とするのが望ましい。
【００９７】
尚、一般の汎用エンジンにあっては、全閉開度相当位置は機械的なストッパでこの程度の値だけ開くように構成されると共に、全閉開度相当開度は調整されず、放置されている。
【００９８】
従って、この実施の形態に係る汎用エンジンの制御装置にあっては、スロットルバルブ４０にステップモータ４６を接続して開度を調整できるように構成したことから、全開開度相当開度についてもエンジン出力が最大となる開度を実験により求め、その開度をステップ角で１００とすると共に、全閉方向は２度を０とし、演算された開度指示値がその範囲内にあるか否か判断するようにした。
【００９９】
このように、この実施の形態においては適応制御演算で決定されたステップモータ４６に供給すべき開度指示値を物理的な限界値で規制するように構成したので、制御対象の特性の変化に対してロバストな適応制御系を構築することができる。
【０１００】
次いで、ＥＣＵ５０が行う残余の制御について説明する。
【０１０１】
図１３は、ＥＣＵ５０が行う点火制御を示すフロー・チャートである。尚、図示のプログラムも、図５フロー・チャートのプログラムの同様に、１０ｍｓｅｃごとに実行される。
【０１０２】
以下説明すると、Ｓ６００においてメインＳＷ（スイッチ）がオンしているか否か判断し、肯定されるときはＳ６０２に進み、点火処理を行う。これは前記したように、ＢＴＤＣ１０度などの固定クランク角度において点火することで行う。
【０１０３】
次いでＳ６０４に進み、異常か否か判断する。これは具体的には、前記した点火処理・過回転検出部１０６の出力から判断する。即ち、ＥＣＵ５０は図示しない別ルーチンにおいて検出回転数ＮＥを許容値と比較し、検出回転数ＮＥが許容値を超えているときは過回転と判断し、出力を生じる。Ｓ６０４ではその出力から判断する。
【０１０４】
Ｓ６０４で肯定されるときはＳ６０６に進み、点火をカット（停止）する。これによってエンジン１０は直ちに停止し、過回転が防止される。尚、Ｓ６０４で否定されるときは以降の処理をスキップする。
【０１０５】
上記の如く、この実施の形態においては、少なくとも２気筒以下の個数の気筒１２を備え、スロットルバルブ４０で調量された吸入空気にキャブレタ３８を介してガソリン燃料を噴射し、よって生成された混合気を前記気筒に吸入させて点火・燃焼させる火花点火式の内燃エンジン１０からなる汎用エンジンの制御装置において、前記エンジンの回転数ＮＥを検出するエンジン回転数検出手段（クランク角センサ４８，ＥＣＵ５０、回転数検出部１００，Ｓ１４，Ｓ１００からＳ１０４）、前記スロットルバルブに接続され、指令値に応じて作動して前記スロットルバルブを開閉するアクチュエータ（ステップモータ４６）、前記エンジンの目標回転数ＮＥＭを決定する目標回転数決定手段（ＥＣＵ５０、目標回転数入力部１０２，Ｓ１８，Ｓ２００からＳ２１０）、パラメータ同定機構１１０を備えると共に、前記検出された回転数が前記目標回転数に一致するように、前記パラメータ同定機構で同定された適応パラメータθハットを用いて前記アクチュエータに供給すべき指令値を演算する適応制御器（ＥＣＵ５０、コントローラ１１２、適応制御演算部１０４，Ｓ２４）、前記演算された指令値に基づき、前記アクチュエータに供給すべき指令値を決定する指令値決定手段（ＥＣＵ５０，Ｓ２６，Ｓ５００からＳ５０６）、および前記適応パラメータの同定速度を決定するゲインγを前記検出された回転数と前記目標回転数の偏差に応じて設定するゲイン設定手段（ＥＣＵ５０，Ｓ２２，Ｓ４００からＳ４１０）を備える如く構成した。
【０１０６】
また、前記ゲイン設定手段は、前記目標回転数から前記検出された回転数を減算して前記偏差ΔＮＥを算出すると共に、前記算出された偏差を正値からなる第１の規準値ＮＥ３と比較し、前記偏差が第１の規準値より大きいとき、前記ゲインを第１の値に設定する第１ゲイン設定手段（Ｓ４０２，Ｓ４０４）、前記算出された偏差を負値からなる第２の規準値ＮＥ４と比較し、前記偏差が第２の規準値より小さいとき、前記ゲインを第２の値に設定する第２ゲイン設定手段（Ｓ４０６，Ｓ４０８）、および前記偏差が前記第１の規準値以下であると共に、前記第２の規準値以上であるとき、前記ゲインを第３の値に設定する第３ゲイン設定手段（Ｓ４１０）を備える如く構成した。
【０１０７】
また、前記第１の値（具体的には１．５）が前記第２の値（具体的には１．２）より大きい如く構成した。
【０１０８】
尚、上記において、アクチュエータの例としてステップモータを使用したが、それに限られるものではなく、リニアソレノイド、ＤＣモータなど、スロットルバルブの開閉を調節できるものであれば、どのようなものでも良い。
【０１０９】
【発明の効果】
請求項１項にあっては、適応パラメータの同定速度を決定するゲインを検出された回転数と目標回転数の偏差に応じて設定するように構成したので、例えば、回転数偏差が小さいときは低くする一方、それ以外では高くするように算出（設定）することが可能となり、汎用エンジンの回転数制御において安定性と収束性を最適にバランスさせることができる。
【０１１０】
請求項２項においては、収束ゲインを可変とすると共に、偏差が第１の規準値より大きいときは前記ゲインを第１の値に設定し、偏差が第２の規準値より小さいときは第２の値に設定すると共に、前記第１の規準値以下であり、かつ前記第２の規準値以上であるときは第３の値に設定する、換言すれば、回転数偏差が小さいときは低くする一方、それ以外では高くするように算出（設定）するように構成したので、汎用エンジンの回転数制御において安定性と収束性を一層最適にバランスさせることができる。
【０１１１】
請求項３項にあっては、前記第１の値が前記第２の値より大きい如く構成したので、即ち、収束ゲインを、検出回転数が目標回転数を下回って不足する場合、検出回転数が目標回転数を上回って越える場合に比して高くするように設定したので、検出回転数が目標回転数を上回って越える場合と同様の時間で目標値に収束させることができる。
【図面の簡単な説明】
【図１】この発明の一つの実施の形態に係る汎用エンジンの制御装置を全体的に示す概略図である。
【図２】図１装置のＥＣＵの動作を機能的に示すブロック図である。
【図３】図１に示すエンジンを簡略にモデル化して示したブロック図である。
【図４】図１装置が用いるＳＴＲ（セルフチューニングレギュレータ）の構成を示すブロックである。
【図５】図１装置の動作を示すフロー・チャートである。
【図６】図５フロー・チャートの検出回転数の算出処理を示すサブルーチン・フロー・チャートである。
【図７】図６フロー・チャートで加算される経過時間を説明する説明図である。
【図８】図５フロー・チャートの目標回転数の算出処理を示すサブルーチン・フロー・チャートである。
【図９】図８フロー・チャートの処理を説明するタイム・チャートである。
【図１０】図５フロー・チャートの制御周期の算出処理を示すサブルーチン・フロー・チャートである。
【図１１】図５フロー・チャートの適応制御の収束ゲインγの算出処理を示すサブルーチン・フロー・チャートである。
【図１２】図５フロー・チャートの開度指示処理を示すサブルーチン・フロー・チャートである。
【図１３】図１装置のＥＣＵが行う残余の制御である点火制御を示すフロー・チャートである。
【符号の説明】
１０      エンジン（汎用エンジン）
１２      気筒
３４      リコイルスタータ
３８      キャブレタ
４０      スロットルバルブ
４６      ステップモータ（アクチュエータ）
５０      ＥＣＵ
５４      モータドライバ
１１０    同定機構（パラメータ同定機構）
１１２    コントローラ（適応制御器）
【図１】
0004417597.tif 000007
【図２】
0004417597.tif 000008
【図３】
0004417597.tif 000009
【図４】
0004417597.tif 000010
【図５】
0004417597.tif 000011
【図６】
0004417597.tif 000012
【図７】
0004417597.tif 000013
【図８】
0004417597.tif 000014
【図９】
0004417597.tif 000015
【図１０】
0004417597.tif 000016
【図１１】
0004417597.tif 000017
【図１２】
0004417597.tif 000018
【図１３】
0004417597.tif 000019