JPS6231189B2 - - Google Patents
Info
- Publication number
- JPS6231189B2 JPS6231189B2 JP55011785A JP1178580A JPS6231189B2 JP S6231189 B2 JPS6231189 B2 JP S6231189B2 JP 55011785 A JP55011785 A JP 55011785A JP 1178580 A JP1178580 A JP 1178580A JP S6231189 B2 JPS6231189 B2 JP S6231189B2
- Authority
- JP
- Japan
- Prior art keywords
- ignition timing
- engine
- signal
- operating state
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000012937 correction Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 6
- 230000003111 delayed effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000007858 starting material Substances 0.000 description 11
- 239000000446 fuel Substances 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000012884 algebraic function Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000002826 coolant Substances 0.000 description 1
- 239000000498 cooling water Substances 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000010349 pulsation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Electrical Control Of Ignition Timing (AREA)
Description
本発明はエンジンの出力の向上及び燃料消費率
を向上させるべく点火時期を帰還制御する点火時
期制御方法に関するものである。 エンジンの点火時期は、ノツキング,排出ガス
特性の問題等の特別の理由のない限り、エンジン
の出力を最大限に発揮でき、同時に燃料消費率を
最小に抑え得る様に、エンジンの運転状態に合わ
せて回転数や吸気管圧力等で調節を行なつてい
る。 また、一般にマイクロコンピユータでエンジン
の点火時期を制御する場合は、エンジンの回転
数,吸気管圧力,吸入空気量,スロツトル開度等
をデイジタル量で表わし、代数関数に従い算術演
算して求めたり、また回転数と吸気管圧力または
吸入空気量等に対応した最適点火時期を記憶され
たマツプから補間合成して求めたりしている。 しかしながら、これらの従来の方法ではどうし
ても限界があり、ある程度の出力及び燃料消費率
の損失がある。たとえば、個々のエンジンのバラ
ツキ,環境条件の変化,吸気管圧力センサまたは
吸入空気量センサ等のセンサのバラツキ,劣化等
の問題にはこれだけでは対応できなかつた。これ
らの損失をなくして、エンジンの出力を最大限に
発揮させるべく、点火時期を帰還制御する方法が
考え出されており、たとえば、米国特許第
3142967号明細書等により公知である。これによ
ると、目標点火時期近傍の異なる2点の点火時期
で運転し、この2点のうちまず遅れ側の点火時期
で運転したときの回転数Nrと、次に進み側の点
火時期で運転した時の回転数Naを検出し、両回
転数の大小を比較し、Nr<Naのときは目標点火
時期を更に所定値だけ進め、Nr<Naのときは所
定値だけ遅らせるように修正することによつて、
エンジンを最大トルクを与える最適点火時期に制
御するようになつている。 しかしながら、出力の変化を回転数によつて判
別する場合、その回転数が種々の要因で変化する
にもかかわらず、この方法では回転数の変化が点
火時期によるものか、外的要因(加速,減速のア
クセル操作等)によるものか判別能力がないた
め、加減速時、登降坂等では、最大トルクを与え
る点火時期とは逆方向に点火時期を修正制御して
しまい、回転数が低下し出力および燃費の悪化を
ひきおこす場合があつた。 またエンジンの運転条件の変化(回転数と吸気
管圧力)に対しては常に修正制御が必要であり、
再び同じ運転条件にもどしたときも最初から帰還
制御をやり直さなければならなかつた。 本発明は上記問題に鑑みてなされたもので、エ
ンジンの第1動作状態(回転数等)および第2動
作状態(吸気管圧力等)の2状態に基づき目標点
火時期を算出する2次元マツプを構成し、この目
標点火時期近傍でかつ互いに異なる少なくとも2
点の点火時期を選択し、この選択した少なくとも
2点の点火時期にて交互に所定の期間づつエンジ
ンを運転し、これらの各点火時期にて運転したと
きのエンジンの回転数の信号,トルクの信号,ま
たはこれらに関連する運転状態の信号を検出し、
前記少なくとも2点の点火時期で運転した時の前
記運転状態の信号のうちの少なくとも連続して運
転した3点の運転状態の信号を比較することによ
つて、目標点火時期がエンジン出力を最大限に発
揮させる最適点火時期より進み側にあるか、遅れ
側にあるかを判定し、この判定結果に応じて前記
2次元マツプの値を修正することを特徴としてお
り、外的要因によつて回転数,トルク等が変化し
たのか、少なくとも異なる2点での点火時期の変
更によつて回転数,トルク等が変化したのか識別
し、目標点火時期を最適点火時期に修正してエン
ジン出力を最大限発揮させると共に燃料消費率を
最小に抑えるようにすることを目的としている。 また本発明は、点火時期が最適点火時期にある
か否かを判定する期間中に2次元マツプの最も使
用頻度の高い領域の使用頻度が所定の割合以上で
ある場合に、2次元マツプの使用頻度の最も高い
領域またはその近傍を修正することにより、3点
の運転状態の信号を検出中に2次元マツプの使用
領域が広範囲にまたがつて、主となる使用領域を
決めかねる場合での誤つた領域の修正を防止し、
さらに2次元マツプの使用される値が所定の領域
より外れた場合は前記運転状態の信号の検出を中
断し、その外れた領域より新たに検出を開始する
ことにより、過渡状態における誤修正を防止でき
るようにすることを目的としている。 以下本発明になる方法を図に示す実施例により
説明する。第1図は4気筒エンジンに本発明を適
用した制御システムの構成図であり、1は4気筒
4サイクルエンジン、2はエンジンの冷却水の温
度を検出する水温センサである。3はスタータで
あり、31はスタータスイツチである。5はエン
ジン1の回転角度位置を測定する回転センサであ
り、エンジン1が回転して上死点位置になつた時
に上死点信号を発生し、上死点位置からエンジン
の1回転を等分した一定角度(本実施例では30度
クランク角度、以下すべて角度単位はクランク回
転角度とする)回転する毎に回転角度信号を発生
する。10は気化器、8は制御コンピユータ6に
内蔵された圧力センサであり、エンジン1の吸気
マニホールド9から配管11により圧力が圧力入
力口に伝達され、吸気マニホールド圧力を測定す
る。4,7は本システムの点火アクチユエータで
ある。本実施例では、コイルを2個用いたデイス
レスダブルコイル方式を採用しており、4が点火
コイル、7がイグナイタである。 制御コンピユータ6は、回転センサ5で発生さ
れる回転角度信号の時間間隔からエンジン回転数
を求め、又圧力センサ8の出力電圧から吸気マニ
ホールド圧力を計算して、エンジンの運転状態を
測定し、点火時期を制御する。又、エンジン始動
時は特定の点火時期に制御するため、スタータス
イツチ31からスタータ3へ供給される電圧がス
タータ信号として制御コンピユータ6へ入力され
る。又、点火コイル4の通電時間をバツテリー電
圧に応じて変えるため、バツテリー電圧がバツテ
リー電圧信号として制御コンピユータ6に取込ま
れる。12は制御コンピユータ5の必要とする電
圧を車両が搭載するバツテリー13の電圧から生
成する電源である。 第2図は上記制御コンピユータ6を詳細に説明
するためのブロツク図を示す。60は点火時期を
算出する中央処理ユニツト(CPU)で16ビツト
構成のテキサスインスツルメント(TI)社製
TMS9900を用いている。70は制御プログラ
ム、制御定数を記憶している読出し専用記記憶ユ
ニツト(ROM)、69はCPU60が制御プログラ
ムに従つて動作中、制御データの記憶に使用され
る一時記憶ユニツト(RAM)を示す。71は最
大トルクを与える最適点火時期の2次元マツプを
記憶しておく不揮発性RAMで、イグニツシヨン
スイツチを切つてもRAMの内容が残るように補
助電源を持つRAMである。 61は割込み制御部であり、3レベルの優先順
位をつけてCPU60に割込みの発生を知らせ
る。本実施例の割込み要因は、エンジンの回転セ
ンサ5の回転角度信号発生による割込み、CPU
60自身がデイジタル入出力ポート64のプログ
ラム割込み出力ポートのレベルを“0”にして起
すプログラム割込み、およびタイマーが8ms経過
するごとに起すタイマー割込みの3種類がある。 タイマー部62は8μsのクロツク信号をカウ
ントする16ビツトのカウンタと回転センサ5の回
転角度信号が発生する毎にカウンタの値を格納保
持するラツチから構成される。従つて、回転角度
信号発生の割込み処理にて、CPU60がクラン
ク角カウンタ部63の値を読み出してエンジンの
回転角度位置を知るとともに、タイマー部62の
ラツチの値を読出し、この操作を2つの回転角度
位置にて行ない、ラツチの値の差を求めることに
より、2つの回転角度位置の間をエンジンが回転
する時間が測定でき、又エンジン回転数を測定で
きる。クランク角カウンタ部63は下位桁12進、
上位桁4進のカウンタであり、回転センサ5の回
転角度信号でカウントアツプし、上死点信号の発
生の次の回転角度信号が発生した時このカウンタ
は値「0」にリセツトされ、エンジン回転と同期
がとれる。従つて、クランク角カウンタの値を
CPU60が読出すことによりエンジン回転角度
位置を30度クランク角度単位で知ることができ
る。 デイジタル入出力ポート64は論理信号の入出
力に使用されるポートであり、エンジン始動用の
スタータ3が作動中であることを示すスタータス
イツチ31の信号を入力し、またプログラム割込
み信号を割込み制御部61へ発生するのに使用さ
れる。エンジン冷却水温センサ2,吸気管圧力セ
ンサ8,バツテリ13よりの各信号はアナログ入
力ポート65でアナログデイジタル(A/D)変
換され、DMA制御部66によりRAM69に
DMA転送される。したがつて本例では、CPU6
0はA/D変換に直接関与せず、計算上必要とな
つた時点でRAM69のあらかじめ定められたア
ドレスをアクセスすれば、必要な最新A/D変換
データを利用できる。なお、このシステムでは
DMA制御部66を用いて必要に応じ操作パネル
67を接続することにより、RAM69へのデー
タの書き込み、ROM70,RAM69,不揮発
RAM71のデータの読み出しが可能となる。ま
たCPU60の状態(RUN,HOLD)を操作パネ
ル67から制御できるようになつている。 以下上記各回路部のより詳細な内容を順次説明
していく。クランク角カウンタ部63の詳細回路
図を第4図に示す。クランク角カウンタ部63は
エンジンのクランクシヤフトの2回転に1回転す
る通常のデイストリビユータのシヤフトに取り付
けられた回転センサ5の2つのセンサ50,51
の信号によりクランクシヤフトの現在位置を12進
数で示すものである。回転センサ5のセンサ51
のクランク角信号5b(第3図b)はローパスフ
イルタ106,107及びトランジスタ109,
シユミツト入力NAND素子111により整形され
D型フリツプフロツプ114(例えばTI社製
SN74LS74)に入力される。フリツプフロツプ1
14はCPU60からのクランク角READ命令に
よるデータ転送中にカウンタ125の内容がカウ
ントアツプにより変化するのを防ぐためのもの
で、クランク角READ中(信号端子401が論理
“0”)はクランク角信号5bの取り込みクロツク
400の供給をAND素子113により停止して
いる。フリツプフロツプ114のQ出力は同期式
4bitカウンタ125(例えばRCA社製
CD4520B)のCK(クロツク)端子に入力されて
いる。このカウンタ125は3進部の2bitカウ
ンタと4進部の2bitカウンタをNANDゲート1
28,124と直列接続したもので全体として
(3×4=)12進数のカウンタとして動作する。
カウンタ125の内容はクランクシヤフトの位置
に対応し、クランク角信号5bのトレーリングエ
ツジ毎にカウントアツプされる。CPU60から
のクランク角READ命令により、カウンタ125
の内容がバツフア126(例えばTI社製
SN74LS244)を通してデータバス404に出力
される。回転センサ5のセンサ50のTDC信号
5a(第3図a)はクランクシヤフトの#1,4
気筒のTDC位置を示す信号であり、クランクシ
ヤフトが#1,4気筒上死点を通過する毎に、1
パルスを出力している。このTDC信号5aはク
ランク角信号5bと同様に、抵抗100、コンデ
ンサ101、トランジスタ103、シユミツト入
力NAND素子105により波形整形され、D型フ
リツプフロツプ118(例えばRCA社製
CD4013B)のD(データ入力)端子に入力され
る。フリツプフロツプ118のCK端子はクラン
ク角信号が入力され、Q出力はD型フリツプフロ
ツプ119のD端子に接続されている。したがつ
てTDC信号5aが論理“1”に反転後の最初の
クランク角信号のトレーリングエツジでフリツプ
フロツプ119,120,NAND素子121によ
り、1パルス(パルス幅はCK2信号407の周波
数で決まる)を発生させカウンタ125を
RESET(カウンタの内容=“0000”)する。すな
わちTDCが“0000”に対応し、クランク角90゜
CAは“0100”に対応する。カウンタ125の
RESETは、システムのイニシヤライズ信号であ
るT.RESET信号402、及びCPU60からの
RESET命令406からも行なわれる。尚、第4
図〜第12図までの回路図で〓印のついたものは
TTL論理素子、その他の論理素子はC−MOS論
理素子を使用している。これはCPU60が高速
で動作するため、インタフエースがC−MOSで
は時間的に無理がある為である。 次にタイマー部62について第5図により説明
する。CPU60から端子400を介して供給さ
れる周波数3MHzのクロツクCKIはD型フリツプ
フロツプ200,201によつて3分周される。
このクロツク(CK2)はさらに4bitカウンタ20
2に供給され、8分周された後、8bitカウンタ2
08にクロツクとして供給される。8bitカウンタ
207,208は16bitリアルタイムタイマーを
構成しており、0〜524280μsまでの時間をカウ
ントする。このタイマーは端子403を通してク
ランク角カウンタ部63のクランク角パルスのリ
ーデイングエツジにより8bitラツチ209,21
0(例えばRCA社製CD4508B)にそのときの時
間(時刻)がラツチされる。ラツチされた時間は
CPU60から端子408を通して送られるタイ
マーREAD命令によりバツフア211,212さ
らにデータバス404を通じてCPU60に転送
される。フリツプフロツプ204,205は端子
403の信号のリーデイングエツジで2μsの幅
のラツチ用ストローブパルスを出力する。3入力
AND206は16bitタイマー207,208のカ
ウントアツプ時とタイムラツチ時が重なるのを防
ぐためのもので、カウンタ202のLSB出力が
“0”のときはラツチのタイミングを最大1μs
遅らせている。 次に第6図を参考にして割込み制御部61を説
明する。まず端子403よりクランク角信号が入
る度にギア割込フラグ(D型フリツプフロツプ)
302が“1”にsetされ、インバータバツフア
306をへて端子444を通してCPU60に割
込み要求信号を出す。この割込みが受けつけられ
ると後述するギア割込処理プログラムにより端子
440を通してCPU60からギア割込フラグは
resetされる。同様にギア割込プログラム中にプ
ログラム割込ポートが“1”にsetされると端子
441を通じてプログラム割込みフラグ(D型フ
リツプフロツプ)301がsetされ、CPU60に
割込み要求を送る。このフラグもCPU60から
の命令により端子442を通じてresetされる。
さらにタイマー部62の16bitタイマー(20
7,208)から端子415を通じて供給された
8.192msのクロツクにより8ms割込みフラグ(D
型フリツプフロツプ)がsetされ端子446によ
りCPU60に割込み要求が伝えられる。すなわ
ちこの割込みは8.192msごとに生じ、ソフトウエ
アのタイムベースとして使用される。この割込み
もCPU60からの命令によりresetされる。 次にDMA制御部66を第7図,第8図,第1
0図に示す。端子409,410,411,41
2,413はCPU60に対してプログラムの実
行を一時停止させるためのHOLD要求信号(端子
437)を作るためのもので第5図のタイマー部
62からの出力信号が入力される。タイマー部6
2の16bitリアルタイムタイマー207,208
のビツト2(端子413)及びビツト3(端子4
12)がともに“1”のときANDゲート603
の出力は“1”となる。すなわち第8図oに示す
ような波形となる。同様に3入力AND605の
出力は第8図Pに示される通りである。尚、61
8〜622,644〜646はCMOS入力保護用
の抵抗である。本例に示すDMAは8チヤンネル
をもつており、約1msごとに全てのチヤンネルと
RAM69間のデータ転送を行なう。8チヤンネ
ルのうち最初の7チヤンネル(第8図oでCHO
〜6)はA/D変換されたデータの転送用であり
最後の1チヤンネルCH7は操作パネル67との
データ転送に用いられる。A/D変換データの場
合第8図oで、最初の96μsecでA/D変換し次
の32μsecでデータ転送する。ANDゲート608
が“1”になると、操作パネル67から、コンピ
ユータへの外部HOLD要求信号がない場合(端子
427が“1”)、ANDゲート605の出力は
“0”(したがつて608の出力が“1”)となる
ため、レジスタ624(例えばTI社製74LS175)
のD入力が“1”となる。レジスタ624のCK
入力にはCPU60から3MHzのクロツクが端子4
26を通して供給されている。(第8図r)。レジ
スタ624のD入力が“1”に変化した直後はレ
ジスタ624のQ出力が“0”であるためAND
ゲート642の出力が“0”、NANDゲート60
1の出力が“1”となり、レジスタ624のCK
入力に3MHzクロツクがそのまま加わり、レジス
タ624のD入力が“1”に変化した次のクロツ
クで“1”がレジスタ624にとりこまれQ出力
は第8図qに示すごとく“1”となる。624の
Q出力が“1”になると、ANDゲート642の
出力が“1”に変化し、トライステート出力の
NANDゲート643(例えばTI社製74LS38)の
出力が“0”となり、CPU60に対し、DMA開
始のためのHOLD要求信号(“0”)を出力する
(第8図t参照)。CPU60は端子431からの
このHOLD要求信号をそのとき実行しているマシ
ンサイクルの終了後、受けつけ端子425に
HOLDA信号“1”を出力する第8図u。端子4
37が“0”でHOLD要求信号が出力されていて
HOLDA(端子425)信号が“1”になるまで
はNANDゲート601の出力が“0”の為、3M
Hzクロツク(端子426)はレジスタ625の
CK端子に供給されない。HOLDAが“1”にな
るとレジスタ625のCK端子にクロツクが入力
され、“1”がレジスタ625に取りこまれ、Q
出力は“1”となる。さらに次のクロツクでレジ
スタ626のQ出力が“1”、その次のクロツク
でレジスタ627の出力が“0”となる。レジ
スタ627の出力が“0”になるとNANDゲー
ト643の出力はハイインピーダンスとなり、
HOLD要求が解除され、DMAサイクルが完了す
る。HOLDA信号が“1”になると、ANDゲート
638が“1”となり、トライステート出力
NANDゲート641の出力が、HOLD要求信号
()が“0”、HOLDA信号が“1”期間中
だけ“0”となり第8図vに示すようにRAM6
9にメモリー使用選択信号(、436)
を出す。さらにレジスタ625のQ出力が
“1”、レジスタ626の出力が“1”の時だ
け、ANDゲート639が“1”となり、CHO〜
CH6が選択されている間は3入力ANDゲート6
05の出力は“0”であるから、インバータ61
2の出力は“1”であり、トライステートNAND
ゲート640には第8図wに示すようにメモリの
RAM69へのWRITE信号(、端子435)
が出力される。またメモリ使用選択信号
が“0”の間は、NANDゲート628の出力、す
なわちメモリーへのREAD信号(DBiN、端子4
31)は“0”である。HOLDA信号が“1”の
間(DMAサイクル中)は、CPU60は停止して
おり、、,DBiN、,等の制御ライン、
アドレスバス、データバスのCPU側からのドラ
イブは“ハイインピーダンス”状態にある。した
がつてこの間はDMA制御部66からRAM69に
対して直接データ転送を行なう。CH0〜CH6の
A/D変換データの転送の場合、インバータ60
6の出力は“1”であり、端子420、すなわち
NANDゲート629出力には第8図vの
と同様な信号が出力され、その信号は第9図の
A/D変換データレジスタ518,519、第1
0図のA/D変換アドレスレジスタ530,53
1のストローブ入力に加えられている。つまり
が“0”の期間、A/D変換されたデー
タはデータバス404上に出力され、またCH0
〜6に対応するアドレスがアドレスバス440上
に出力される。これらバス上に出力されたデータ
は信号により、RAM69に書き込まれる。
操作パネル67からの外部HOLD要求信号(端子
427)がある(“1”)場合にはCH0〜CH6の
A/D変換DMAサイクルは行なわない。すなわ
ち、NANDゲート607の出力が“0”となり、
ANDゲート603の出力が“1”となつてもレ
ジスタ624のD入力は“0”の状態のままであ
るため、DMAサイクルは開始されない。次に操
作パネル67とRAM69とのデータ転送を行な
うCH7のDMAサイクルを説明する。端子428
は操作パネルからのR/信号,端子429はデ
ータ転送要求信号、端子430は連続READ信
号、端子414はタイマー部62から供給される
約128msのクロツク信号が入力される。まず操作
パネル67からRAM69へデータ書込み要求が
生じた場合、端子428,429,430は
“0”となる。ANDゲート605及び603の出
力が“1”(第8図o,p)となりCH7のDMA
サイクルが開始される。レジスタ615,616
により、端子429の“1”から“0”への立ち
下がりで幅1.0msの正極性パルスがANDゲート6
17の出力に一つ生じる。このパルスはNANDゲ
ート609で128μsの負極性パルスとなり、
NANDゲート608、ANDゲート604をへて
レジスタ624のD入力に32μsの正極性パルス
として入力される。操作パネル67からRAM6
9へのWRITE要求の場合、、HOLDA、
、、DBiNの各制御ラインは、前記
A/D変換データのDMAデータ転送とまつたく
同様に駆動される。(第8図t〜w)さらに操作
パネル67に対し、RAM69に転送すべきアド
レス、データを格納しているレジスタの内容をそ
れぞれアドレスバス、データバス上に出力させる
信号端子434,432にが“0”の期
間、第8図xに示すように正極性のパルスを出力
する。操作パネル67からRAM69、ROM70
に対するデータ読込み要求があつたときは、端子
429,430が“0”,428が“1”とな
る。この場合のDMAサイクルでは、コンピユー
タ制御ラインのうち信号(端子435)はメ
モリ使用選択信号(端子436)が
“0”である期間も“1”のままであるかわり
に、ANDゲート611の出力は“1”であるた
め、DBiN信号(端子431)が“1”である。
その他の制御ラインHOLD、HOLDA、
については、前記A/D変換データの転送サイク
ル、操作パネル67からのデータ書込みサイクル
と同様である。連続READ信号(端子430)が
“1”のときはNAND613の出力は128msのク
ロツクが発生する。これはNANDゲート614に
より、128msごとの操作パネル67からRAN6
9,ROM70に対するデータ読込み要求と等価
なので、128msに1回、RAM69,ROM70か
ら操作パネル67へDMAデータ転送サイクルが
前記のごとく生じる。尚、操作パネル67よりの
DMAサイクルは外部HOLD要求信号(端子42
7)があつても実行される。 次にアナログ入力ポート65について第9図を
参照しながら説明する。各センサーの入力端子の
すぐ後に接続された抵抗とコンデンサのフイルタ
ー500〜506は、信号ラインに重畳している
雑音成分を除去するためのものである。3つのセ
ンサ入力は8チヤンネルのマルチブレクサ514
(例えば、CD4051B)の入力(C0〜C2)にそれ
ぞれ接続され、そのうちの1つの入力がアドレス
入力A,B,Cのレベルにより選択される。すな
わち例えばA,B,Cが“0”,“0”,“0”のと
きCO入力が選ばれ、“1”,“0”,“0”のとき
C1入力が選ばれる。マルチブレクサ514のア
ドレス入力A,B,Cはレベルコンバータ(例え
ばCD40109B)515をへて、タイマー部62の
リアルタイムタイマー207,208に接続され
ている。したがつて128μsごとにCO→C1→C2
→…→C0と選択されるチヤンネルがスイツチさ
れ、1つのチヤンネルは1msに1回選択される。
端子412もリアルタイムタイマー207,20
8に接続されており、64μsのクロツクを発生す
る。すなわちマルチプレクサ514のアドレスが
スイツチされると同時に端子412は“0”から
“1”に立ち上がる。そのときインバータ52
0,524,NANO523、抵抗521、コンデ
ンサ522により数μsのA/Dスタートパルス
が発生し、逐次比較型A/Dコンバータ517
(例えばBur Brown社製ADC80AG)のCONV,
CMD端子に入力され、A/D変換が始まる。マ
ルチプレクサ514の出力はアドレス入力A,
B,Cの値に応じて選択された1つの入力がその
まま出力されオペアンプ516(例えば日本電気
製μPC151A)による電流増幅後、A/Dコンバ
ータ517のアナログ入力端子に入力される。
A/Dコンバータ517はCONV,CMD端子に
変換スタート信号が印加された後、約40μsかけ
て前記アナログ入力を12bitデイジタルデータに
変換し、B0〜B11に出力する。変換されたデイジ
タルデータは前記DMA制御部66により、変換
スタート信号印加後96μs後に始まるDMAデー
タ転送サイクルでRAM69の選択されたチヤン
ネルに対応するアドレスにB0〜B11の12bitデー
タがバツフア518,519を通じて書き込まれ
る。 次に通電点火制御部68を第11図,第12図
及び第3図により詳述する。CPU60はクラン
ク角カウンタ部63からの情報及びクランク角信
号が入る度に生じる割込み(ギア割込み)によ
り、クランクシヤフトの現在位置を360÷12=30
(℃A)の精度で認識している。プログラムによ
り計算された最適な通電時期、点火時期をどのよ
うにして実現するかを#1,4気筒について説明
する。#2,3気筒についても同様に説明でき
る。まず通電については最適通電角θを次式に示
すように分解する。 θ=θ1+θ2 τ=τ(θ2,N) (1) θ:通電角 θ1:30℃A単位でCPUの認識できる通電開
始クランク角(0〜11×30℃A)すなわち
回転角センサー5の各ギア位置と対応 θ2:30℃A以下の端数 τ:30℃A以下の端数θ2をそのときの回転数
Nに基づき8μsの単位で時間に換算した
もの。 そして、上式により算出されたギア位置θ1よ
り1つ手前のギア位置(θ1−1)で生じた前記
ギア割込みにおいてCPU60は第3図cの如く
#1,4コイル通電命令(端子453)及び通電
ダウンカウンタ値セツト命令(端子450)を出
力する。また端子450に印加されたパルスによ
り、そのとき同時にデータバス404にCPUか
ら出力されたτの内容が16bit通電ダウンカウン
タ900,901にセツトされる。900,90
1はそれぞれ8bitのダウンカウンタ(例えばRCA
社製CD40103B)で直列に接続して16bitダウンカ
ウンタを構成している。この16bitのダウンカウ
ント値は8μsの精度で0〜0.52428secの値が可
能である。したがつて3rpm程度の回転数までオ
ーバーフローなしに1義的にダウンカウントが可
能である。フリツプフロツプ909がセツトされ
ると出力は“0”となりNANDゲート910の
出力、すなわちD型フリツプフロツプ911のD
入力は“1”となる。フリツプフロツプ911の
CK(クロツク)入力は端子403を通してクラ
ンク角信号に接続されているので、#1,4コイ
ル通電命令及び通電ダウンカウンタ値セツト命令
の出力後、次のクランク角パルスでフリツプフロ
ツプ911はセツトされる。第3図dはフリツプ
フロツプ911のQ出力の信号波形を示す。フリ
ツプフロツプ911がセツトされると出力は
“0”となるのでダウンカウンタ900,901
はダウンカウント可能となり又、4ビツト分周器
925のリセツト入力を解除するのでダウンカウ
ンタ900,901のCK入力にダウンカウント
用クロツクが供給され、ダウントが開始される。
分周器925(例えばRCA社製CD4520B)はタ
イマー部62の4bitダウンカウンタ202から端
子455により2μsのクロツクの供給を受け、
これを4分周して8μsのダウンカウントクロツ
クを発生させている。リアルタイムタイマー20
7,208から直接8μsのクロツクを利用して
いないのは、精度、特にτ=0,1のときの精度
を確実にするためである。さて16bitダウンカウ
ンタ900,901がダウンカウントを終了する
と、その終了信号が“0”がダウンカウンタ90
0のCO/ZD端子から出力されインバータ90
4、ANDゲート906、NANDゲート907、
NANDゲート915をへて、フリツプフロツプ9
09,911をリセツトし(第3図d参照)、さ
らにインバータ914をへてダウンカウンタ90
0,901をリセツトするのでCO/ZD端子は再
び“1”にもどる。したがつてANDゲート90
6の出力、すなわち端子456には第3図eに示
すようなパルスを出力する。又、フリツプフロツ
プ911のQ出力は“1”となるのでダウンカウ
ンタ900,901のカウントはストツプし、カ
ウントダウンクロツクの供給もストツプする。
尚、ANDゲート906のもう一方の入力にはダ
ウンカウントクロツクをインバータ905で反転
したものが印加されており、ANDゲート906
の出力はダウンカウント終了信号より4μs遅れ
で“1”となる。これはカウントダウンクロツク
印加直後、ダウンカウント900のCO/ZD端子
に生じる可能性のある負極性のパルス(200ns程
度)による誤動作を防止するためのものである。
ANDゲート906の出力パルスは端子456を
通して第12図のANDゲート933,935に
加わる。今第11図のフリツプフロツプ909の
出力はR(リセツト)入力が“1”に反転する
まで“1”であり、第12図のANDゲート93
3の入力は端子457により、フリツプフロツプ
909のQ出力に接続されているのでANDゲー
ト933の出力には端子456に印加されたパル
スがそのまま生じ、#1,4コイル(コイルB)
制御フリツプフロツプ938がセツトされる。フ
リツプフロツプ938のQ出力が“1”に変化す
ると、インバータバツフア939の出力は
“0”、したがつてトランジスタ942,947は
OFF、トランジスタ952はONとなり第1イグ
ナイタ80の入力端子とGND端子82間に電流
が流れ、#1,4気筒用のコイルは通電を開始す
る。尚ダイオード948,953はトランジスタ
保護用であり、抵抗940,941,943〜9
46,949〜951,954は点火ノイズの減
衰のためのソリツド抵抗である。第11図の
NANDゲート907の一方の入力は分周器925
の2μsのクロツクを供給する端子に接続されて
いる。したがつてANDゲート906の出力が
“1”に変化しても、ダウンカウンタ900,9
01、フリツプフロツプ909,911のリセツ
トは2μsだけ遅れて実施される。これはフリツ
プフロツプ938のセツトパルスのパルス幅を確
保するためである。点火角(時期)θBXについ
ても(1)式と同様に分解する。 θBX=θBX1+θBX2 τx=τx(θBX2,N) θBX:#1,4コイル(コイルB)の点火角 θBX1:30℃A単位でCPUの認識できる点火ク
ランク角、(0〜11×30℃A) θBX2:30℃A以下の端数 τx:30℃A以下の端数θBX2をそのときの回
転数Nに基づき8μsの単位で時間に換
算したもの。 (2)式で算出されたギア位置(θBX1)より1つ
手前のギア位置(θBX1−1)にエンジンのクラ
ンクシヤフトが到達したとき生じる回転センサ5
(センサ51)のクランク角信号5bの立ち上が
りによるギア割込みでCPU60は点火命令(端
子454,第3図fを出力し、16bit点火ダウン
カウンタ902,903にτxを設定する。クラ
ンクシヤフト位置がθBX1に倒達するとフリツプ
フロツプ922がセツトされる。16bitダウンカ
ウンタ902,903は8μsのクロツクでダウ
ンカウントを開始し、ダウンカウントが終了する
と同時に第3図hに示すような正極性パルスが端
子459に生じる。第3図gはフリツプフロツプ
を向上させるべく点火時期を帰還制御する点火時
期制御方法に関するものである。 エンジンの点火時期は、ノツキング,排出ガス
特性の問題等の特別の理由のない限り、エンジン
の出力を最大限に発揮でき、同時に燃料消費率を
最小に抑え得る様に、エンジンの運転状態に合わ
せて回転数や吸気管圧力等で調節を行なつてい
る。 また、一般にマイクロコンピユータでエンジン
の点火時期を制御する場合は、エンジンの回転
数,吸気管圧力,吸入空気量,スロツトル開度等
をデイジタル量で表わし、代数関数に従い算術演
算して求めたり、また回転数と吸気管圧力または
吸入空気量等に対応した最適点火時期を記憶され
たマツプから補間合成して求めたりしている。 しかしながら、これらの従来の方法ではどうし
ても限界があり、ある程度の出力及び燃料消費率
の損失がある。たとえば、個々のエンジンのバラ
ツキ,環境条件の変化,吸気管圧力センサまたは
吸入空気量センサ等のセンサのバラツキ,劣化等
の問題にはこれだけでは対応できなかつた。これ
らの損失をなくして、エンジンの出力を最大限に
発揮させるべく、点火時期を帰還制御する方法が
考え出されており、たとえば、米国特許第
3142967号明細書等により公知である。これによ
ると、目標点火時期近傍の異なる2点の点火時期
で運転し、この2点のうちまず遅れ側の点火時期
で運転したときの回転数Nrと、次に進み側の点
火時期で運転した時の回転数Naを検出し、両回
転数の大小を比較し、Nr<Naのときは目標点火
時期を更に所定値だけ進め、Nr<Naのときは所
定値だけ遅らせるように修正することによつて、
エンジンを最大トルクを与える最適点火時期に制
御するようになつている。 しかしながら、出力の変化を回転数によつて判
別する場合、その回転数が種々の要因で変化する
にもかかわらず、この方法では回転数の変化が点
火時期によるものか、外的要因(加速,減速のア
クセル操作等)によるものか判別能力がないた
め、加減速時、登降坂等では、最大トルクを与え
る点火時期とは逆方向に点火時期を修正制御して
しまい、回転数が低下し出力および燃費の悪化を
ひきおこす場合があつた。 またエンジンの運転条件の変化(回転数と吸気
管圧力)に対しては常に修正制御が必要であり、
再び同じ運転条件にもどしたときも最初から帰還
制御をやり直さなければならなかつた。 本発明は上記問題に鑑みてなされたもので、エ
ンジンの第1動作状態(回転数等)および第2動
作状態(吸気管圧力等)の2状態に基づき目標点
火時期を算出する2次元マツプを構成し、この目
標点火時期近傍でかつ互いに異なる少なくとも2
点の点火時期を選択し、この選択した少なくとも
2点の点火時期にて交互に所定の期間づつエンジ
ンを運転し、これらの各点火時期にて運転したと
きのエンジンの回転数の信号,トルクの信号,ま
たはこれらに関連する運転状態の信号を検出し、
前記少なくとも2点の点火時期で運転した時の前
記運転状態の信号のうちの少なくとも連続して運
転した3点の運転状態の信号を比較することによ
つて、目標点火時期がエンジン出力を最大限に発
揮させる最適点火時期より進み側にあるか、遅れ
側にあるかを判定し、この判定結果に応じて前記
2次元マツプの値を修正することを特徴としてお
り、外的要因によつて回転数,トルク等が変化し
たのか、少なくとも異なる2点での点火時期の変
更によつて回転数,トルク等が変化したのか識別
し、目標点火時期を最適点火時期に修正してエン
ジン出力を最大限発揮させると共に燃料消費率を
最小に抑えるようにすることを目的としている。 また本発明は、点火時期が最適点火時期にある
か否かを判定する期間中に2次元マツプの最も使
用頻度の高い領域の使用頻度が所定の割合以上で
ある場合に、2次元マツプの使用頻度の最も高い
領域またはその近傍を修正することにより、3点
の運転状態の信号を検出中に2次元マツプの使用
領域が広範囲にまたがつて、主となる使用領域を
決めかねる場合での誤つた領域の修正を防止し、
さらに2次元マツプの使用される値が所定の領域
より外れた場合は前記運転状態の信号の検出を中
断し、その外れた領域より新たに検出を開始する
ことにより、過渡状態における誤修正を防止でき
るようにすることを目的としている。 以下本発明になる方法を図に示す実施例により
説明する。第1図は4気筒エンジンに本発明を適
用した制御システムの構成図であり、1は4気筒
4サイクルエンジン、2はエンジンの冷却水の温
度を検出する水温センサである。3はスタータで
あり、31はスタータスイツチである。5はエン
ジン1の回転角度位置を測定する回転センサであ
り、エンジン1が回転して上死点位置になつた時
に上死点信号を発生し、上死点位置からエンジン
の1回転を等分した一定角度(本実施例では30度
クランク角度、以下すべて角度単位はクランク回
転角度とする)回転する毎に回転角度信号を発生
する。10は気化器、8は制御コンピユータ6に
内蔵された圧力センサであり、エンジン1の吸気
マニホールド9から配管11により圧力が圧力入
力口に伝達され、吸気マニホールド圧力を測定す
る。4,7は本システムの点火アクチユエータで
ある。本実施例では、コイルを2個用いたデイス
レスダブルコイル方式を採用しており、4が点火
コイル、7がイグナイタである。 制御コンピユータ6は、回転センサ5で発生さ
れる回転角度信号の時間間隔からエンジン回転数
を求め、又圧力センサ8の出力電圧から吸気マニ
ホールド圧力を計算して、エンジンの運転状態を
測定し、点火時期を制御する。又、エンジン始動
時は特定の点火時期に制御するため、スタータス
イツチ31からスタータ3へ供給される電圧がス
タータ信号として制御コンピユータ6へ入力され
る。又、点火コイル4の通電時間をバツテリー電
圧に応じて変えるため、バツテリー電圧がバツテ
リー電圧信号として制御コンピユータ6に取込ま
れる。12は制御コンピユータ5の必要とする電
圧を車両が搭載するバツテリー13の電圧から生
成する電源である。 第2図は上記制御コンピユータ6を詳細に説明
するためのブロツク図を示す。60は点火時期を
算出する中央処理ユニツト(CPU)で16ビツト
構成のテキサスインスツルメント(TI)社製
TMS9900を用いている。70は制御プログラ
ム、制御定数を記憶している読出し専用記記憶ユ
ニツト(ROM)、69はCPU60が制御プログラ
ムに従つて動作中、制御データの記憶に使用され
る一時記憶ユニツト(RAM)を示す。71は最
大トルクを与える最適点火時期の2次元マツプを
記憶しておく不揮発性RAMで、イグニツシヨン
スイツチを切つてもRAMの内容が残るように補
助電源を持つRAMである。 61は割込み制御部であり、3レベルの優先順
位をつけてCPU60に割込みの発生を知らせ
る。本実施例の割込み要因は、エンジンの回転セ
ンサ5の回転角度信号発生による割込み、CPU
60自身がデイジタル入出力ポート64のプログ
ラム割込み出力ポートのレベルを“0”にして起
すプログラム割込み、およびタイマーが8ms経過
するごとに起すタイマー割込みの3種類がある。 タイマー部62は8μsのクロツク信号をカウ
ントする16ビツトのカウンタと回転センサ5の回
転角度信号が発生する毎にカウンタの値を格納保
持するラツチから構成される。従つて、回転角度
信号発生の割込み処理にて、CPU60がクラン
ク角カウンタ部63の値を読み出してエンジンの
回転角度位置を知るとともに、タイマー部62の
ラツチの値を読出し、この操作を2つの回転角度
位置にて行ない、ラツチの値の差を求めることに
より、2つの回転角度位置の間をエンジンが回転
する時間が測定でき、又エンジン回転数を測定で
きる。クランク角カウンタ部63は下位桁12進、
上位桁4進のカウンタであり、回転センサ5の回
転角度信号でカウントアツプし、上死点信号の発
生の次の回転角度信号が発生した時このカウンタ
は値「0」にリセツトされ、エンジン回転と同期
がとれる。従つて、クランク角カウンタの値を
CPU60が読出すことによりエンジン回転角度
位置を30度クランク角度単位で知ることができ
る。 デイジタル入出力ポート64は論理信号の入出
力に使用されるポートであり、エンジン始動用の
スタータ3が作動中であることを示すスタータス
イツチ31の信号を入力し、またプログラム割込
み信号を割込み制御部61へ発生するのに使用さ
れる。エンジン冷却水温センサ2,吸気管圧力セ
ンサ8,バツテリ13よりの各信号はアナログ入
力ポート65でアナログデイジタル(A/D)変
換され、DMA制御部66によりRAM69に
DMA転送される。したがつて本例では、CPU6
0はA/D変換に直接関与せず、計算上必要とな
つた時点でRAM69のあらかじめ定められたア
ドレスをアクセスすれば、必要な最新A/D変換
データを利用できる。なお、このシステムでは
DMA制御部66を用いて必要に応じ操作パネル
67を接続することにより、RAM69へのデー
タの書き込み、ROM70,RAM69,不揮発
RAM71のデータの読み出しが可能となる。ま
たCPU60の状態(RUN,HOLD)を操作パネ
ル67から制御できるようになつている。 以下上記各回路部のより詳細な内容を順次説明
していく。クランク角カウンタ部63の詳細回路
図を第4図に示す。クランク角カウンタ部63は
エンジンのクランクシヤフトの2回転に1回転す
る通常のデイストリビユータのシヤフトに取り付
けられた回転センサ5の2つのセンサ50,51
の信号によりクランクシヤフトの現在位置を12進
数で示すものである。回転センサ5のセンサ51
のクランク角信号5b(第3図b)はローパスフ
イルタ106,107及びトランジスタ109,
シユミツト入力NAND素子111により整形され
D型フリツプフロツプ114(例えばTI社製
SN74LS74)に入力される。フリツプフロツプ1
14はCPU60からのクランク角READ命令に
よるデータ転送中にカウンタ125の内容がカウ
ントアツプにより変化するのを防ぐためのもの
で、クランク角READ中(信号端子401が論理
“0”)はクランク角信号5bの取り込みクロツク
400の供給をAND素子113により停止して
いる。フリツプフロツプ114のQ出力は同期式
4bitカウンタ125(例えばRCA社製
CD4520B)のCK(クロツク)端子に入力されて
いる。このカウンタ125は3進部の2bitカウ
ンタと4進部の2bitカウンタをNANDゲート1
28,124と直列接続したもので全体として
(3×4=)12進数のカウンタとして動作する。
カウンタ125の内容はクランクシヤフトの位置
に対応し、クランク角信号5bのトレーリングエ
ツジ毎にカウントアツプされる。CPU60から
のクランク角READ命令により、カウンタ125
の内容がバツフア126(例えばTI社製
SN74LS244)を通してデータバス404に出力
される。回転センサ5のセンサ50のTDC信号
5a(第3図a)はクランクシヤフトの#1,4
気筒のTDC位置を示す信号であり、クランクシ
ヤフトが#1,4気筒上死点を通過する毎に、1
パルスを出力している。このTDC信号5aはク
ランク角信号5bと同様に、抵抗100、コンデ
ンサ101、トランジスタ103、シユミツト入
力NAND素子105により波形整形され、D型フ
リツプフロツプ118(例えばRCA社製
CD4013B)のD(データ入力)端子に入力され
る。フリツプフロツプ118のCK端子はクラン
ク角信号が入力され、Q出力はD型フリツプフロ
ツプ119のD端子に接続されている。したがつ
てTDC信号5aが論理“1”に反転後の最初の
クランク角信号のトレーリングエツジでフリツプ
フロツプ119,120,NAND素子121によ
り、1パルス(パルス幅はCK2信号407の周波
数で決まる)を発生させカウンタ125を
RESET(カウンタの内容=“0000”)する。すな
わちTDCが“0000”に対応し、クランク角90゜
CAは“0100”に対応する。カウンタ125の
RESETは、システムのイニシヤライズ信号であ
るT.RESET信号402、及びCPU60からの
RESET命令406からも行なわれる。尚、第4
図〜第12図までの回路図で〓印のついたものは
TTL論理素子、その他の論理素子はC−MOS論
理素子を使用している。これはCPU60が高速
で動作するため、インタフエースがC−MOSで
は時間的に無理がある為である。 次にタイマー部62について第5図により説明
する。CPU60から端子400を介して供給さ
れる周波数3MHzのクロツクCKIはD型フリツプ
フロツプ200,201によつて3分周される。
このクロツク(CK2)はさらに4bitカウンタ20
2に供給され、8分周された後、8bitカウンタ2
08にクロツクとして供給される。8bitカウンタ
207,208は16bitリアルタイムタイマーを
構成しており、0〜524280μsまでの時間をカウ
ントする。このタイマーは端子403を通してク
ランク角カウンタ部63のクランク角パルスのリ
ーデイングエツジにより8bitラツチ209,21
0(例えばRCA社製CD4508B)にそのときの時
間(時刻)がラツチされる。ラツチされた時間は
CPU60から端子408を通して送られるタイ
マーREAD命令によりバツフア211,212さ
らにデータバス404を通じてCPU60に転送
される。フリツプフロツプ204,205は端子
403の信号のリーデイングエツジで2μsの幅
のラツチ用ストローブパルスを出力する。3入力
AND206は16bitタイマー207,208のカ
ウントアツプ時とタイムラツチ時が重なるのを防
ぐためのもので、カウンタ202のLSB出力が
“0”のときはラツチのタイミングを最大1μs
遅らせている。 次に第6図を参考にして割込み制御部61を説
明する。まず端子403よりクランク角信号が入
る度にギア割込フラグ(D型フリツプフロツプ)
302が“1”にsetされ、インバータバツフア
306をへて端子444を通してCPU60に割
込み要求信号を出す。この割込みが受けつけられ
ると後述するギア割込処理プログラムにより端子
440を通してCPU60からギア割込フラグは
resetされる。同様にギア割込プログラム中にプ
ログラム割込ポートが“1”にsetされると端子
441を通じてプログラム割込みフラグ(D型フ
リツプフロツプ)301がsetされ、CPU60に
割込み要求を送る。このフラグもCPU60から
の命令により端子442を通じてresetされる。
さらにタイマー部62の16bitタイマー(20
7,208)から端子415を通じて供給された
8.192msのクロツクにより8ms割込みフラグ(D
型フリツプフロツプ)がsetされ端子446によ
りCPU60に割込み要求が伝えられる。すなわ
ちこの割込みは8.192msごとに生じ、ソフトウエ
アのタイムベースとして使用される。この割込み
もCPU60からの命令によりresetされる。 次にDMA制御部66を第7図,第8図,第1
0図に示す。端子409,410,411,41
2,413はCPU60に対してプログラムの実
行を一時停止させるためのHOLD要求信号(端子
437)を作るためのもので第5図のタイマー部
62からの出力信号が入力される。タイマー部6
2の16bitリアルタイムタイマー207,208
のビツト2(端子413)及びビツト3(端子4
12)がともに“1”のときANDゲート603
の出力は“1”となる。すなわち第8図oに示す
ような波形となる。同様に3入力AND605の
出力は第8図Pに示される通りである。尚、61
8〜622,644〜646はCMOS入力保護用
の抵抗である。本例に示すDMAは8チヤンネル
をもつており、約1msごとに全てのチヤンネルと
RAM69間のデータ転送を行なう。8チヤンネ
ルのうち最初の7チヤンネル(第8図oでCHO
〜6)はA/D変換されたデータの転送用であり
最後の1チヤンネルCH7は操作パネル67との
データ転送に用いられる。A/D変換データの場
合第8図oで、最初の96μsecでA/D変換し次
の32μsecでデータ転送する。ANDゲート608
が“1”になると、操作パネル67から、コンピ
ユータへの外部HOLD要求信号がない場合(端子
427が“1”)、ANDゲート605の出力は
“0”(したがつて608の出力が“1”)となる
ため、レジスタ624(例えばTI社製74LS175)
のD入力が“1”となる。レジスタ624のCK
入力にはCPU60から3MHzのクロツクが端子4
26を通して供給されている。(第8図r)。レジ
スタ624のD入力が“1”に変化した直後はレ
ジスタ624のQ出力が“0”であるためAND
ゲート642の出力が“0”、NANDゲート60
1の出力が“1”となり、レジスタ624のCK
入力に3MHzクロツクがそのまま加わり、レジス
タ624のD入力が“1”に変化した次のクロツ
クで“1”がレジスタ624にとりこまれQ出力
は第8図qに示すごとく“1”となる。624の
Q出力が“1”になると、ANDゲート642の
出力が“1”に変化し、トライステート出力の
NANDゲート643(例えばTI社製74LS38)の
出力が“0”となり、CPU60に対し、DMA開
始のためのHOLD要求信号(“0”)を出力する
(第8図t参照)。CPU60は端子431からの
このHOLD要求信号をそのとき実行しているマシ
ンサイクルの終了後、受けつけ端子425に
HOLDA信号“1”を出力する第8図u。端子4
37が“0”でHOLD要求信号が出力されていて
HOLDA(端子425)信号が“1”になるまで
はNANDゲート601の出力が“0”の為、3M
Hzクロツク(端子426)はレジスタ625の
CK端子に供給されない。HOLDAが“1”にな
るとレジスタ625のCK端子にクロツクが入力
され、“1”がレジスタ625に取りこまれ、Q
出力は“1”となる。さらに次のクロツクでレジ
スタ626のQ出力が“1”、その次のクロツク
でレジスタ627の出力が“0”となる。レジ
スタ627の出力が“0”になるとNANDゲー
ト643の出力はハイインピーダンスとなり、
HOLD要求が解除され、DMAサイクルが完了す
る。HOLDA信号が“1”になると、ANDゲート
638が“1”となり、トライステート出力
NANDゲート641の出力が、HOLD要求信号
()が“0”、HOLDA信号が“1”期間中
だけ“0”となり第8図vに示すようにRAM6
9にメモリー使用選択信号(、436)
を出す。さらにレジスタ625のQ出力が
“1”、レジスタ626の出力が“1”の時だ
け、ANDゲート639が“1”となり、CHO〜
CH6が選択されている間は3入力ANDゲート6
05の出力は“0”であるから、インバータ61
2の出力は“1”であり、トライステートNAND
ゲート640には第8図wに示すようにメモリの
RAM69へのWRITE信号(、端子435)
が出力される。またメモリ使用選択信号
が“0”の間は、NANDゲート628の出力、す
なわちメモリーへのREAD信号(DBiN、端子4
31)は“0”である。HOLDA信号が“1”の
間(DMAサイクル中)は、CPU60は停止して
おり、、,DBiN、,等の制御ライン、
アドレスバス、データバスのCPU側からのドラ
イブは“ハイインピーダンス”状態にある。した
がつてこの間はDMA制御部66からRAM69に
対して直接データ転送を行なう。CH0〜CH6の
A/D変換データの転送の場合、インバータ60
6の出力は“1”であり、端子420、すなわち
NANDゲート629出力には第8図vの
と同様な信号が出力され、その信号は第9図の
A/D変換データレジスタ518,519、第1
0図のA/D変換アドレスレジスタ530,53
1のストローブ入力に加えられている。つまり
が“0”の期間、A/D変換されたデー
タはデータバス404上に出力され、またCH0
〜6に対応するアドレスがアドレスバス440上
に出力される。これらバス上に出力されたデータ
は信号により、RAM69に書き込まれる。
操作パネル67からの外部HOLD要求信号(端子
427)がある(“1”)場合にはCH0〜CH6の
A/D変換DMAサイクルは行なわない。すなわ
ち、NANDゲート607の出力が“0”となり、
ANDゲート603の出力が“1”となつてもレ
ジスタ624のD入力は“0”の状態のままであ
るため、DMAサイクルは開始されない。次に操
作パネル67とRAM69とのデータ転送を行な
うCH7のDMAサイクルを説明する。端子428
は操作パネルからのR/信号,端子429はデ
ータ転送要求信号、端子430は連続READ信
号、端子414はタイマー部62から供給される
約128msのクロツク信号が入力される。まず操作
パネル67からRAM69へデータ書込み要求が
生じた場合、端子428,429,430は
“0”となる。ANDゲート605及び603の出
力が“1”(第8図o,p)となりCH7のDMA
サイクルが開始される。レジスタ615,616
により、端子429の“1”から“0”への立ち
下がりで幅1.0msの正極性パルスがANDゲート6
17の出力に一つ生じる。このパルスはNANDゲ
ート609で128μsの負極性パルスとなり、
NANDゲート608、ANDゲート604をへて
レジスタ624のD入力に32μsの正極性パルス
として入力される。操作パネル67からRAM6
9へのWRITE要求の場合、、HOLDA、
、、DBiNの各制御ラインは、前記
A/D変換データのDMAデータ転送とまつたく
同様に駆動される。(第8図t〜w)さらに操作
パネル67に対し、RAM69に転送すべきアド
レス、データを格納しているレジスタの内容をそ
れぞれアドレスバス、データバス上に出力させる
信号端子434,432にが“0”の期
間、第8図xに示すように正極性のパルスを出力
する。操作パネル67からRAM69、ROM70
に対するデータ読込み要求があつたときは、端子
429,430が“0”,428が“1”とな
る。この場合のDMAサイクルでは、コンピユー
タ制御ラインのうち信号(端子435)はメ
モリ使用選択信号(端子436)が
“0”である期間も“1”のままであるかわり
に、ANDゲート611の出力は“1”であるた
め、DBiN信号(端子431)が“1”である。
その他の制御ラインHOLD、HOLDA、
については、前記A/D変換データの転送サイク
ル、操作パネル67からのデータ書込みサイクル
と同様である。連続READ信号(端子430)が
“1”のときはNAND613の出力は128msのク
ロツクが発生する。これはNANDゲート614に
より、128msごとの操作パネル67からRAN6
9,ROM70に対するデータ読込み要求と等価
なので、128msに1回、RAM69,ROM70か
ら操作パネル67へDMAデータ転送サイクルが
前記のごとく生じる。尚、操作パネル67よりの
DMAサイクルは外部HOLD要求信号(端子42
7)があつても実行される。 次にアナログ入力ポート65について第9図を
参照しながら説明する。各センサーの入力端子の
すぐ後に接続された抵抗とコンデンサのフイルタ
ー500〜506は、信号ラインに重畳している
雑音成分を除去するためのものである。3つのセ
ンサ入力は8チヤンネルのマルチブレクサ514
(例えば、CD4051B)の入力(C0〜C2)にそれ
ぞれ接続され、そのうちの1つの入力がアドレス
入力A,B,Cのレベルにより選択される。すな
わち例えばA,B,Cが“0”,“0”,“0”のと
きCO入力が選ばれ、“1”,“0”,“0”のとき
C1入力が選ばれる。マルチブレクサ514のア
ドレス入力A,B,Cはレベルコンバータ(例え
ばCD40109B)515をへて、タイマー部62の
リアルタイムタイマー207,208に接続され
ている。したがつて128μsごとにCO→C1→C2
→…→C0と選択されるチヤンネルがスイツチさ
れ、1つのチヤンネルは1msに1回選択される。
端子412もリアルタイムタイマー207,20
8に接続されており、64μsのクロツクを発生す
る。すなわちマルチプレクサ514のアドレスが
スイツチされると同時に端子412は“0”から
“1”に立ち上がる。そのときインバータ52
0,524,NANO523、抵抗521、コンデ
ンサ522により数μsのA/Dスタートパルス
が発生し、逐次比較型A/Dコンバータ517
(例えばBur Brown社製ADC80AG)のCONV,
CMD端子に入力され、A/D変換が始まる。マ
ルチプレクサ514の出力はアドレス入力A,
B,Cの値に応じて選択された1つの入力がその
まま出力されオペアンプ516(例えば日本電気
製μPC151A)による電流増幅後、A/Dコンバ
ータ517のアナログ入力端子に入力される。
A/Dコンバータ517はCONV,CMD端子に
変換スタート信号が印加された後、約40μsかけ
て前記アナログ入力を12bitデイジタルデータに
変換し、B0〜B11に出力する。変換されたデイジ
タルデータは前記DMA制御部66により、変換
スタート信号印加後96μs後に始まるDMAデー
タ転送サイクルでRAM69の選択されたチヤン
ネルに対応するアドレスにB0〜B11の12bitデー
タがバツフア518,519を通じて書き込まれ
る。 次に通電点火制御部68を第11図,第12図
及び第3図により詳述する。CPU60はクラン
ク角カウンタ部63からの情報及びクランク角信
号が入る度に生じる割込み(ギア割込み)によ
り、クランクシヤフトの現在位置を360÷12=30
(℃A)の精度で認識している。プログラムによ
り計算された最適な通電時期、点火時期をどのよ
うにして実現するかを#1,4気筒について説明
する。#2,3気筒についても同様に説明でき
る。まず通電については最適通電角θを次式に示
すように分解する。 θ=θ1+θ2 τ=τ(θ2,N) (1) θ:通電角 θ1:30℃A単位でCPUの認識できる通電開
始クランク角(0〜11×30℃A)すなわち
回転角センサー5の各ギア位置と対応 θ2:30℃A以下の端数 τ:30℃A以下の端数θ2をそのときの回転数
Nに基づき8μsの単位で時間に換算した
もの。 そして、上式により算出されたギア位置θ1よ
り1つ手前のギア位置(θ1−1)で生じた前記
ギア割込みにおいてCPU60は第3図cの如く
#1,4コイル通電命令(端子453)及び通電
ダウンカウンタ値セツト命令(端子450)を出
力する。また端子450に印加されたパルスによ
り、そのとき同時にデータバス404にCPUか
ら出力されたτの内容が16bit通電ダウンカウン
タ900,901にセツトされる。900,90
1はそれぞれ8bitのダウンカウンタ(例えばRCA
社製CD40103B)で直列に接続して16bitダウンカ
ウンタを構成している。この16bitのダウンカウ
ント値は8μsの精度で0〜0.52428secの値が可
能である。したがつて3rpm程度の回転数までオ
ーバーフローなしに1義的にダウンカウントが可
能である。フリツプフロツプ909がセツトされ
ると出力は“0”となりNANDゲート910の
出力、すなわちD型フリツプフロツプ911のD
入力は“1”となる。フリツプフロツプ911の
CK(クロツク)入力は端子403を通してクラ
ンク角信号に接続されているので、#1,4コイ
ル通電命令及び通電ダウンカウンタ値セツト命令
の出力後、次のクランク角パルスでフリツプフロ
ツプ911はセツトされる。第3図dはフリツプ
フロツプ911のQ出力の信号波形を示す。フリ
ツプフロツプ911がセツトされると出力は
“0”となるのでダウンカウンタ900,901
はダウンカウント可能となり又、4ビツト分周器
925のリセツト入力を解除するのでダウンカウ
ンタ900,901のCK入力にダウンカウント
用クロツクが供給され、ダウントが開始される。
分周器925(例えばRCA社製CD4520B)はタ
イマー部62の4bitダウンカウンタ202から端
子455により2μsのクロツクの供給を受け、
これを4分周して8μsのダウンカウントクロツ
クを発生させている。リアルタイムタイマー20
7,208から直接8μsのクロツクを利用して
いないのは、精度、特にτ=0,1のときの精度
を確実にするためである。さて16bitダウンカウ
ンタ900,901がダウンカウントを終了する
と、その終了信号が“0”がダウンカウンタ90
0のCO/ZD端子から出力されインバータ90
4、ANDゲート906、NANDゲート907、
NANDゲート915をへて、フリツプフロツプ9
09,911をリセツトし(第3図d参照)、さ
らにインバータ914をへてダウンカウンタ90
0,901をリセツトするのでCO/ZD端子は再
び“1”にもどる。したがつてANDゲート90
6の出力、すなわち端子456には第3図eに示
すようなパルスを出力する。又、フリツプフロツ
プ911のQ出力は“1”となるのでダウンカウ
ンタ900,901のカウントはストツプし、カ
ウントダウンクロツクの供給もストツプする。
尚、ANDゲート906のもう一方の入力にはダ
ウンカウントクロツクをインバータ905で反転
したものが印加されており、ANDゲート906
の出力はダウンカウント終了信号より4μs遅れ
で“1”となる。これはカウントダウンクロツク
印加直後、ダウンカウント900のCO/ZD端子
に生じる可能性のある負極性のパルス(200ns程
度)による誤動作を防止するためのものである。
ANDゲート906の出力パルスは端子456を
通して第12図のANDゲート933,935に
加わる。今第11図のフリツプフロツプ909の
出力はR(リセツト)入力が“1”に反転する
まで“1”であり、第12図のANDゲート93
3の入力は端子457により、フリツプフロツプ
909のQ出力に接続されているのでANDゲー
ト933の出力には端子456に印加されたパル
スがそのまま生じ、#1,4コイル(コイルB)
制御フリツプフロツプ938がセツトされる。フ
リツプフロツプ938のQ出力が“1”に変化す
ると、インバータバツフア939の出力は
“0”、したがつてトランジスタ942,947は
OFF、トランジスタ952はONとなり第1イグ
ナイタ80の入力端子とGND端子82間に電流
が流れ、#1,4気筒用のコイルは通電を開始す
る。尚ダイオード948,953はトランジスタ
保護用であり、抵抗940,941,943〜9
46,949〜951,954は点火ノイズの減
衰のためのソリツド抵抗である。第11図の
NANDゲート907の一方の入力は分周器925
の2μsのクロツクを供給する端子に接続されて
いる。したがつてANDゲート906の出力が
“1”に変化しても、ダウンカウンタ900,9
01、フリツプフロツプ909,911のリセツ
トは2μsだけ遅れて実施される。これはフリツ
プフロツプ938のセツトパルスのパルス幅を確
保するためである。点火角(時期)θBXについ
ても(1)式と同様に分解する。 θBX=θBX1+θBX2 τx=τx(θBX2,N) θBX:#1,4コイル(コイルB)の点火角 θBX1:30℃A単位でCPUの認識できる点火ク
ランク角、(0〜11×30℃A) θBX2:30℃A以下の端数 τx:30℃A以下の端数θBX2をそのときの回
転数Nに基づき8μsの単位で時間に換
算したもの。 (2)式で算出されたギア位置(θBX1)より1つ
手前のギア位置(θBX1−1)にエンジンのクラ
ンクシヤフトが到達したとき生じる回転センサ5
(センサ51)のクランク角信号5bの立ち上が
りによるギア割込みでCPU60は点火命令(端
子454,第3図fを出力し、16bit点火ダウン
カウンタ902,903にτxを設定する。クラ
ンクシヤフト位置がθBX1に倒達するとフリツプ
フロツプ922がセツトされる。16bitダウンカ
ウンタ902,903は8μsのクロツクでダウ
ンカウントを開始し、ダウンカウントが終了する
と同時に第3図hに示すような正極性パルスが端
子459に生じる。第3図gはフリツプフロツプ
【表】
【表】
以下、各プログラム処理について順次説明す
る。第13図にギア割込み処理ルーチンのフロー
チヤートを示す。ギア割込みは最も優先順位の高
い割込みで、最優先に処理される。このギア割込
みの起動は、前記の第6図に示す割込み制御部6
1の端子444からのクランク角パルスによつて
行なわれる。したがつてギア割込みは、#1気
筒,又は4気筒の上死点位置を0度として、30度
クランク角度毎に発生する。起動されるとステツ
プ1100でギア割込みをリセツト(第6図のフ
リツプフロツプ302のリセツト)し、ステツプ
1200で第4図に示すクランク角カウンタ部6
3のクランク角カウンタ125のREAD操作によ
り、CPU60は現在のクランク位置を読み取
り、エンジンの回転角度位置を知る。ステツプ1
300の通電点火処理では後述するプログラム割
込みのステツプ2140で計算された通電点火制
御データに従つて、通電点火制御部68にデータ
を設定して通電点火制御をする。次にステツプ1
400の固定位置処理では決められた固定のクラ
ンク位置での処理を行う。 第14図に通電点火処理ステツプ1300の詳
細なフローチヤートを示す。ステツプ1305で
2つの点火コイルのうち、後述のプログラム割込
みのステツプ2140で求まるコイルAの通電開
始用ダウンカウントを開始する角度と、ステツプ
1200で求めた現在のクランク角度位置とを比
較して、一致したならばステツプ1310で第1
1図のコイルA通電用のダウンカウンタ900に
初期値を設定すると同時に、コイルA通電命令が
出力される。このダウンカウンタは8μsecのク
ロツク信号でダウンカウントして「0」になつた
ときコイルAの通電信号を“0”にして通電を開
始させる。ステツプ1315ではコイルAの点火
用ダウンカウントを開始する角度と、ステツプ1
200で求めた現在のクランク角度位置とを比較
して、一致したならばステツプ1320で第11
図のコイルA点火用ダウンカウンタ902に初期
値を設定すると同時に、コイルA点火命令が出力
される。このダウンカウンタ902は8μsecの
クロツク信号でダウンカウントして「0」になつ
た時、点火コイルの通電を停止することが点火に
相当するので、コイルA通電信号を論理“1”に
してコイルAの通電が停止される。なお、コイル
Bについてもステツプ1325,1330,13
35,1340で同様に通電点火制御が行われ
る。 次に固定位置処理ステツプ1400がどの回転
角度位置で行われるかを第15図に示す。通電点
火処理ステツプ1300がプログラム割込みで計
算した値によつて実効的に処理が働く角度位置が
変動するのに対して、固定位置処理ステツプ14
00は定められた角度位置で処理が行われる。ク
ランク角度0度,180度にて、180度クランク角度
を回転するのに要する回転時間の計測、吸気管圧
力の計測、プログラム割込みの発生を行い、その
他の角度では何もせずに処理を終了する。この処
理を詳細に説明するとステツプ1410で回転角
度を判断し、0度,180度の時はステツプ141
1に進み180度回転時間の計測を行う。第5図の
タイマー部62を使用してラツチされているリア
ルタイムタイマー値をステツプ1411で取込
み、ステツプ1412で前回取込まれた(180度
前)タイマー値Tp1として180度回転時間Tmは
Tm=Tp2−Tp1…(3)で求められる。ステツプ1
413ではTp2の値をTp1に移しておく。ステツ
プ1414では吸気脈動対策のために、吸気管圧
力のA/D変換値を取込む。又、ステツプ141
5ではデイジタル入出力ポート64のプログラム
割込み出力ポートをレベル“0”にした後再びレ
ベル“1”にしてプログラム割込み信号を発生さ
せ、プログラム割込み処理ルーチンを起動する。 次に第16図にプログラム割込み処理ルーチン
を示す。まずステツプ2100では第6図に示す
割込み制御部61の端子442にリセツト信号を
印加してフリツプフロツプ301をリセツトし、
プログラム割込み要求信号端子445を“1”に
もどす。次にステツプ2111に進み、前記ギア
割込み処理ルーチンでもとめた180度回転時間を
(4)式により回転数Nに変換する。 N(r.p.m)=107×3/Tm(μs) …(4) ステツプ2112では前記ギア割込み処理ルー
チンでクランク角度0度,180度にて取込んだ吸
気管圧力のA/D変換値Vpmを(5)式により吸気
管圧力Pm(mmHg単位) Pm=A1×Vpm+A2…(5) A1,A2:変換係数
に変換する。ステツプ2120では第1図に示す
スタータスイツチ31からの信号を調べ、ONな
らばステツプ2150で固定進角10度を最終点火
角θxとしてステツプ2140に移り、通電点火
制御部68への出力値計算を行う。またスタータ
作動時でない時は、ステツプ2130に進み、最
終点火時期θxをもとめ、同様にステツプ214
0で通電点火時期制御部68への出力値計算を行
う。 ここで第17図に、あるアクセル開度の点火時
期とエンジン回転数の関係を示す。点火時期は上
死点前角度(・BTDC)で表現されており、値が
大きい程進角している。アクセル開度α1はアク
セル全開に近い状態を示し、θM1はアクセル開度
α1におけるエンジン出力を最大限に発揮させる
最適点火時期(MBT)である。この最適点火時
期がトルク,燃料消費率の点で最良である。α2
はアクセル開度の少ない場合のグラフである。 第18図は第2図の不揮発RAM71に位置さ
れている2次元マツプ(MBT進角マツプ;
Tmap)で以下の様な構成になつている。横軸は
エンジン回転数Nであり、1000r.p.m以下の低回
転域では横軸に対応する欄番号Xに対して、エン
ジン回転数Nの増分は小さく、全体に単一の1次
開数型にはなつていない。またTmapの縦軸は吸
気管圧力Pmであり、縦軸に対応する行番号Yに
対して比例関係になつている。このTmapは後述
のフイードバツク学習処理で常に書き換えられ、
最大トルクから燃料消費率の最低の点火時期にな
つている。まずステツプ2130の点火時期計算
の詳細を第19図で説明する。ステツプ2131
では回転数Nから欄番号Xへ(6)式に従つて変換す
る。 ここで、NxiはNを越えない最大のマツプ横軸
に指定された回転数、 XiはNxiに対応する欄番号で整数、Xの
小数点部は、マツプ横軸に指定された回
転数の中間の回転数であることを示す。 またステツプ2132で吸気管圧力Pmから行
番号Yへ(7)式に従つて変換される。 ここで、PmYiはPmを越えない最大のマツプ縦
軸に指定された吸気管圧力、 YiはPmYiに対応する行番号で整数、Y
の小数点部はマツプの縦軸に指定された
吸気管圧力の中間の圧力であることを示
す。 ステツプ2133ではX,Yに対応してMBT
進角マツプ(Tmap)よりMBT進角θmapを(8)式
により4点補間して求める。 ステツプ2134ではイグナイタ等による点火
信号の遅れをクランク角度に換算し、点火遅延角
(θDLY)とする。関係式は(9)式の通りである。 θDLY=tDLY×180(度CA)/Tm(μs) (9) tDLY:イグナイタによる点火信号の遅れ時間
(40〜100μs) Tm:180度回転時間(μs) 次にステツプ2135ではMBTフイードバツ
ク制御を行う。まずMBTフイードバツクの制御
を説明する。本実施例は最適点火時期(MBT)
の近傍で運転させた場合、連続して運転された3
点の点火時期(ベース,アドバンス,リタード)
での回転数を比較して、さらに最適点火時期に近
づけるように制御している。ここで3点の点火時
期でベースとは前記ステツプ2133で求まる点
火時期で、その点火時期にΔθ(通常2゜〜3
゜)だけ進角させたのがアドバンス、Δθだけ遅
角させたのがリタードである。このようなベー
ス,アドバンス,リタードと進角値をふることを
デイザーと呼ぶ。これら各々3点で、一定点火
(例えば40〜60点火)運転させた時の回転数をNB
A,NAD,NRT(クロツクパルス数で表わしたも
の)とする。つまり、a/NBA,a/NAD,a/
NRT(aは定数)が回転数である。例えば、第2
0図の状態Iのように目標点火時期θ0がエンジ
ンのトルクを最大限に発揮させ得る最適点火時期
(MBT)より遅角側に存在する時は、NAD<NBA
<NRTの関係が成り立ち進角側に点火時期を制御
する必要がでてくる。また、状態のように
MBTより進角側に存在するときは、NRT<NBA
<NADの関係が成り立ち遅角側に制御する必要が
でてくる。一定点火回数ずつのベースの点火時
期、アドバンスの点火時期、リタードの点火時期
の1周期を1フイードバツク周期とする。 第18図のMBT進角マツプの一部分を第21
図に示す。例えばある運転状態(2000r.p.m,
400mmHg)の点のフイードバツクエリアを回転
数1750r.p.mから2250r.p.m、吸気管圧力
377.5mmHgから422.5mmHgまでと定める。この
実施例では、1フイードバツク周期中の運転状態
がA点から始まつてB点で終ると仮定する。この
間に始点であるA点を含むフイードバツクエリア
のまわり8つのフイードバツクエリア(回転数
1250r.p.mから2750r.p.m、吸気管圧力
332.5mmHgから467.5mmHg)の範囲で運転状態
の変化があれば、定常と判断する。また、フイー
ドバツクエリアからはずれた運転状態(C点)が
一度でもあれば非定常と判定し、この場合はC点
を中心として8つのフイードバツクエリア(回転
数1750r.p.mから3250r.p.m、吸気管圧力
232.5mmHgから377.5mmHg)を新たに定常範囲
として始め(ベース)から制御をやり直す。1フ
イードバツク周期中、運転状態が定常であれば、
最も多く運転した(最も使用頻度が高い)フイー
ドバツクエリアを算出し、後述のフイードバツク
時にこの8つのエリアの点の点火時期を進角また
は遅角させて修正する。また最も多く運転したフ
イードバツクエリアの使用頻度が1フイードバツ
ク周期中の60%以上存在しなければ修正しない。
回転数と吸気管圧力に対するあるエンジンの軸出
力最大の最適点火時期は第22図に示すような特
性であり、求まつた代表点Eの点火時期のまわり
8点{例えば第23図で2000r.p.m、400mmHg
が代表点であるとすると、低圧力,低回転から順
にa1(1500r.p.m,355mmHg)、a2(1500r.p,
m,400mmHg)、a3(1500r.p.m)、a4(2000r.p.
m,355mmHg)、a5(2000r.p.m,445mmHg)、
a6(2500r.p.m,355mmHg)、a7(2500r.p.m,
400mmHg)、a8(2500r.p.m,445mmHg)の各8
点}は、(10)式により修正して近づける。 このようにしてすみやかに各運転状態の点火時
期を最適値に修正することができる。 また、アイドル域では最適点火時期まで制御す
ると失火が発生することがあり、高負荷域ではノ
ツキングが発生しエンジンに悪影響を与えたりノ
ツキング音が運転者に騒音となつて不快を感じる
ことがあるので、これらの領域ではフイードバツ
ク制御をしないようにしている。 次に第19図のMBTフイードバツクのステツ
プ2135の詳細な説明を第24図に示す。ステ
ツプ2141では第18図のマツプのどのフイー
ドバツクエリアに対応するかを第21図で説明し
た様に回転数Nに対応する欄番号Xと吸気管圧力
Pmに対応する行番号Yを算出する。ステツプ2
142では後述のメインルーチンのステツプ42
00で求まる水温が70℃より高温だつたら、ステ
ツプ2143へ低温なら2180に進む。ステツ
プ2143ではステツプ2141で求まつたマツ
プのエリアがフイードバツクする範囲であるか否
かを判断する。例えば進角をMBTに合致させる
とアイドル域では失火したりし、高負荷域ではノ
ツクゾーンに入りかえつてエンジンに悪影響を与
えたりする。それを防ぐために、あらかじめ第1
8図のマツプと同じきざみのフイードバツク判断
テーブルを用意して、フイードバツクするエリア
は0、フイードバツクしないエリアは0以外の数
をセツトしておき、0のエリアではフイードバツ
クし、0でないエリアではフイードバツクを中止
するように制御している。 ステツプ2143では前述ステツプ2141で
求まつたX,Yのエリアがフイードバツクエリア
かどうか判断し、フイードバツクエリアならばス
テツプ2144へ、フイードバツクエリアでない
時はステツプ2180にそれぞれ分岐される。 ステツプ2144は前述した定常か非定常かを
判断するステツプである。第21図で説明したよ
うに定常範囲であると判断されたならば、ステツ
プ2145からステツプ2148はスキツプさ
れ、ステツプ2149に移る。非定常と判断され
た場合は、ステツプ2145乃至ステツプ214
8で初期化される。ステツプ2145ではその時
の欄番号Xと行番号Yの値をおのおのXi,Yiに
移す。次回からはこのXiとYiが中心となつて定
常,非定常の判断をする。ステツプ2146では
点火回数を数える。 カウンタn1 を0にセツトし、 ステツプ2147ではデイザーフラツグFDSR
をFDSR=−1、デイザー進角θDSRを0゜CA
(θDSR=0)にセツトし、再びベースの点火時期
より制御を開始する。ステツプ2148ではおの
おのベース,アドバンス,リタードでのタイマー
カウント値NBA,NAD,NRTを0にセツトする。
次にステツプ2149では、後述するステツプ2
190にて1フイードバツク周期中の最も使用頻
度の高い2次元マツプの領域を検出するために、
前記X,Yの使用回数をおのおのカウントする。
カウントするのはXi,Yiを中心としたまわり8
領域{(Xi−1,Yi−1)、(Xi−1,Yi)、(Xi−
1,Yi+1)、(Xi,Yi−1)、(Xi,Yi+1)、
(Xi+1,Yi−1)、(Xi+1,Yi)、(Xi+1,Yi
+1)}である。ステツプ2142と2143で
分岐したステツプ2180から2182では、前
記ステツプ2146から2148までと同様、制
御をベースにして初期化する。そしてフイードバ
ツクをせずに、このMBTフイードバツク処理を
終了する。 次にステツプ2149以後は第25図に示す。
ステツプ2150では現在、ベース,アドバン
ス,リタードのどの状態にあるかを判断し、おの
おのその状態中のクロツクパルスをカウントす
る。まず、FDSR=−1すなわちベースである時
はステツプ2151に、FDSR=0すなわちアド
バンスである時はステツプ2161に、FDSR=
1すなわちリタードにある時はステツプ2171
に進む。最初にステツプ2151からのベースに
ついて説明する。180゜回転時間Tmとベースの
K点火分タイマーカウント値NBAをNBAに加算す
る。ステツプ2152ではデイザー進角を0゜
CA(θDSR=0)にセツトし、ステツプ2153
で指定点火数Kになるまでをカウントするカウン
タをカウントアツプする。つまりn1=n1+1式を
実行する。これをK点火分(例えば40〜60点火)
繰り返す。ステツプ2154でn1=Kすなわち、
K点火分のクロツクパルスをカウントしたなら
ば、ステツプ2155でそのカウンタ値を0に戻
し、ステツプ2156で次のアドバンスに制御を
移すためにFDSR=0(アドバンス)にセツト
し、デイザー進角θDSRをΔθ進角させるために
θDSR=Δθにセツトする。その他の時はステツ
プ2155,2156の処理はスキツプする。 ステツプ2150でFDSR=0のアドバンスの
ときはステツプ2161に進む。ステツプ216
1ではステツプ2151と同様に、180゜回転時
間TmをアドバンスのK点火タイマーカウント値
NADに加算し再びNADとする。ステツプ2162
ではデイザー進角をΔθ進角させるために、θDS
R=△θにセツトする。ステツプ2163ではス
テツプ2153と同様にn1をカウントアツプし、
ステツプ2164ではn1=KすなわちK点火分の
クロツクパルスをカウントしたか否かを判別し、
ステツプ2165でそのカウンタ値を0に戻す。
ステツプ2166では次のリタードの状態に制御
を移すためにFDSR=1(リタード)にセツト
し、デイザー進角θDSRをΔθ遅角させるために
θDSR=−Δθにセツトする。その他の時はステ
ツプ2165,2166の処理はスキツプする。 ステツプ2150でFDSR=1のリタードの時
はステツプ2171に進む。ステツプ2171で
はステツプ2151と同様に180゜回転時間Tm
をリタードのK点火分タイマーカウント値NRTに
加算しNRTとする。ステツプ2172ではデイザ
ー進角をΔθ遅角させるためにθDSR=−Δθに
セツトする。ステツプ2173ではステツプ21
63と同様にn1をカウントアツプする。ステツプ
2174でn1=KすなわちK点火分のクロツクパ
ルスをカウントしたならば、ステツプ2175で
はそのカウンタ値を0に戻す。ステツプ2176
では次のベース状態に制御を移すために、FDSR
=−1(ベース)にセツトしまたデイザー進角θ
DSRも0にセツトする。その他の時はステツプ2
175,2176の処理はスキツプする。 ここで第26図のステツプ2190に進み前記
ステツプ2149をもとに1フイードバツク周期
(ベース,アドバンス,リタード)中で最も使用
頻度の高い2次元マツプの領域を算出し、その欄
番号をXM、行番号をYMとする。ステツプ219
1ではこの最も使用頻度の高い領域が1フイード
バツク周期の例えば60%以上存在したか否かを判
定し、存在したならばステツプ2192に進む。
60%以下の場合はステツプ2198に進み修正は
行わない。例えば第20図の状態Iのように、点
火時期がその時のエンジン状態におけるトルクを
最大限に発揮させ得る最適点火時期より遅角側に
存在するときで、かつエンジン運転状態に変化が
ない場合において、上述の処理のごとく、まずデ
イザー進角θDSR=0で点火したときは、K点火
回数あたりの回転数はa/NBA(ただしaは定
数)となり、次にベースよりアドバンス側の点火
時期θDSR=Δθで点火した時の回転数はa/NA
Dとなり、次にリタード側の点火時期θDSR=−Δ
θで点火した時の回転数はa/NRTとなつて、回
転数を比較するとa/NRT<a/NBA<a/NAD
つまりNAD<NBA<NRTとなる。従つてNAD<N
BA<NRTなる関係が成立するときは、これをステ
ツプ2192にて判別して、ステツプ2193に
進み修正進角T=ΔT(例えば1゜〜2℃A)と
する。なおNAD<NBA<NRTが成立しないときは
ステツプ2194に進む。また例えば第20図の
状態のように点火時期がトルクを最大限に発揮
させ得る最適点火時期より進み側にある時は、逆
にa/NAD<a/NBA<a/NRTつまりNRT<N
BA<NADとなる。従つて、NRT<NBA<NADが成
立した時はステツプ2194にて判別してステツ
プ2195に進み、修正進角T=−ΔTとする。
NAD<NBA<NRTおよびNRT<NBA<NADの関係
が成立しない時はステツプ2198に進み修正は
行わない。NAD<NBA<NRTまたはNRT<NBA<
NADなる関係が成り立つた時はステツプ2196
に進み、前記ステツプ2190で求めた最も使用
頻度の高いマツプの領域のXM,YM進角値を、N
AD<NBA<NRTの時はΔT進角させ、NRT<NBA
<NADの時はΔT遅角させるように第18図の
Tmapを書き換える。ステツプ2197ではこの
領域のまわり8点(第23図a1〜a8点)を以下の
様に補正する。 a1の修正量 ΔT1=0.15×ΔT a2 〃 ΔT2=0.10×ΔT a3 〃 ΔT3=0.05×ΔT a4 〃 ΔT4=0.20×ΔT a5 〃 ΔT5=0.10×ΔT a6 〃 ΔT6=0.40×ΔT a7 〃 ΔT7=0.20×ΔT a8 〃 ΔT8=0.15×ΔT 次にステツプ2198でおのおのクロツクパル
ス数(NBA,NAD,NRT)を0にする。以上で第
19図のステツプ2135のMBTフイードバツ
ク計算を終了する。そして第19図のステツプ2
136で最終点火時期θxを(11)式により計算
する。 θx=θmap+θDLY+θDSR ……(11) 以上で点火時期の算出は終了し、第16図のス
テツプ2140では後述する8ms割込み処理ルー
チンで計算するコイル通電時間TONとエンジン回
転数Nにより、コイル通電角度を計算する。また
最終点火時期θxから通電開始角度θONを求め、
前記コイルA,Bについて通電開始クランク角度
のダウンカウント値、点火クランク角度のダウン
カウント値を求め、前述のギア割込みルーチンの
ステツプ1300の通電,点火処理に使用する。
スタータ作動時のステツプも同様の処理である。 以上でプログラム割込み処理を終了する。 第27図に8ms割込み処理ルーチンのフローチ
ヤートを示す。ステツプ3100で第6図に示す
割込み制御部61の端子443にリセツト信号を
印加しフリツプフロツプ300をリセツトして、
8ms割込み要求信号端子446を“1”にもど
す。ステツプ3110ではアナログ入力ポート6
5からバツテリー電圧VBを取り込み、第29図
に示す通電時間特性によりコイル通電時間TONを
計算する。 第28図はメインルーチンのフローチヤートを
示す。ステツプ4100では初期化処理を行い、
RAM領域のクリア、各種初期パラメータの入
力、割込みの許可を行う。ステツプ4200は水
温のA/D変換値を算出する処理である。このス
テツプは割込み処理のない時は常に実行される。 以上詳細に説明したように本発明は、外的要因
によつて回転数,トルク等が変化したのか、少な
くとも異なる2点での点火時期の変更によつて回
転数,トルク等が変化したのか識別でき、目標点
火時期を最適点火時期に修正してエンジン出力を
最大限発揮させると共に燃料消費率を最小に抑え
ることができるという優れた効果がある。さらに
2次元マツプを最も使用頻度の高い領域の使用頻
度が所定の割合以上である場合にこの使用頻度の
最も高い領域またはその近傍を修正しているの
で、2次元マツプの使用領域が広範囲にまたがつ
たとしても精度よく2次元マツプの修正を行うこ
とができるという優れた効果がある。 また本発明は、2次元マツプの使用される値が
所定の領域より外れた場合は回転数,トルク等の
信号の検出を中断し、その外れた領域より新たに
検出を開始しているので、エンジンの過渡状態に
おける誤修正を防止できるという優れた効果があ
る。
る。第13図にギア割込み処理ルーチンのフロー
チヤートを示す。ギア割込みは最も優先順位の高
い割込みで、最優先に処理される。このギア割込
みの起動は、前記の第6図に示す割込み制御部6
1の端子444からのクランク角パルスによつて
行なわれる。したがつてギア割込みは、#1気
筒,又は4気筒の上死点位置を0度として、30度
クランク角度毎に発生する。起動されるとステツ
プ1100でギア割込みをリセツト(第6図のフ
リツプフロツプ302のリセツト)し、ステツプ
1200で第4図に示すクランク角カウンタ部6
3のクランク角カウンタ125のREAD操作によ
り、CPU60は現在のクランク位置を読み取
り、エンジンの回転角度位置を知る。ステツプ1
300の通電点火処理では後述するプログラム割
込みのステツプ2140で計算された通電点火制
御データに従つて、通電点火制御部68にデータ
を設定して通電点火制御をする。次にステツプ1
400の固定位置処理では決められた固定のクラ
ンク位置での処理を行う。 第14図に通電点火処理ステツプ1300の詳
細なフローチヤートを示す。ステツプ1305で
2つの点火コイルのうち、後述のプログラム割込
みのステツプ2140で求まるコイルAの通電開
始用ダウンカウントを開始する角度と、ステツプ
1200で求めた現在のクランク角度位置とを比
較して、一致したならばステツプ1310で第1
1図のコイルA通電用のダウンカウンタ900に
初期値を設定すると同時に、コイルA通電命令が
出力される。このダウンカウンタは8μsecのク
ロツク信号でダウンカウントして「0」になつた
ときコイルAの通電信号を“0”にして通電を開
始させる。ステツプ1315ではコイルAの点火
用ダウンカウントを開始する角度と、ステツプ1
200で求めた現在のクランク角度位置とを比較
して、一致したならばステツプ1320で第11
図のコイルA点火用ダウンカウンタ902に初期
値を設定すると同時に、コイルA点火命令が出力
される。このダウンカウンタ902は8μsecの
クロツク信号でダウンカウントして「0」になつ
た時、点火コイルの通電を停止することが点火に
相当するので、コイルA通電信号を論理“1”に
してコイルAの通電が停止される。なお、コイル
Bについてもステツプ1325,1330,13
35,1340で同様に通電点火制御が行われ
る。 次に固定位置処理ステツプ1400がどの回転
角度位置で行われるかを第15図に示す。通電点
火処理ステツプ1300がプログラム割込みで計
算した値によつて実効的に処理が働く角度位置が
変動するのに対して、固定位置処理ステツプ14
00は定められた角度位置で処理が行われる。ク
ランク角度0度,180度にて、180度クランク角度
を回転するのに要する回転時間の計測、吸気管圧
力の計測、プログラム割込みの発生を行い、その
他の角度では何もせずに処理を終了する。この処
理を詳細に説明するとステツプ1410で回転角
度を判断し、0度,180度の時はステツプ141
1に進み180度回転時間の計測を行う。第5図の
タイマー部62を使用してラツチされているリア
ルタイムタイマー値をステツプ1411で取込
み、ステツプ1412で前回取込まれた(180度
前)タイマー値Tp1として180度回転時間Tmは
Tm=Tp2−Tp1…(3)で求められる。ステツプ1
413ではTp2の値をTp1に移しておく。ステツ
プ1414では吸気脈動対策のために、吸気管圧
力のA/D変換値を取込む。又、ステツプ141
5ではデイジタル入出力ポート64のプログラム
割込み出力ポートをレベル“0”にした後再びレ
ベル“1”にしてプログラム割込み信号を発生さ
せ、プログラム割込み処理ルーチンを起動する。 次に第16図にプログラム割込み処理ルーチン
を示す。まずステツプ2100では第6図に示す
割込み制御部61の端子442にリセツト信号を
印加してフリツプフロツプ301をリセツトし、
プログラム割込み要求信号端子445を“1”に
もどす。次にステツプ2111に進み、前記ギア
割込み処理ルーチンでもとめた180度回転時間を
(4)式により回転数Nに変換する。 N(r.p.m)=107×3/Tm(μs) …(4) ステツプ2112では前記ギア割込み処理ルー
チンでクランク角度0度,180度にて取込んだ吸
気管圧力のA/D変換値Vpmを(5)式により吸気
管圧力Pm(mmHg単位) Pm=A1×Vpm+A2…(5) A1,A2:変換係数
に変換する。ステツプ2120では第1図に示す
スタータスイツチ31からの信号を調べ、ONな
らばステツプ2150で固定進角10度を最終点火
角θxとしてステツプ2140に移り、通電点火
制御部68への出力値計算を行う。またスタータ
作動時でない時は、ステツプ2130に進み、最
終点火時期θxをもとめ、同様にステツプ214
0で通電点火時期制御部68への出力値計算を行
う。 ここで第17図に、あるアクセル開度の点火時
期とエンジン回転数の関係を示す。点火時期は上
死点前角度(・BTDC)で表現されており、値が
大きい程進角している。アクセル開度α1はアク
セル全開に近い状態を示し、θM1はアクセル開度
α1におけるエンジン出力を最大限に発揮させる
最適点火時期(MBT)である。この最適点火時
期がトルク,燃料消費率の点で最良である。α2
はアクセル開度の少ない場合のグラフである。 第18図は第2図の不揮発RAM71に位置さ
れている2次元マツプ(MBT進角マツプ;
Tmap)で以下の様な構成になつている。横軸は
エンジン回転数Nであり、1000r.p.m以下の低回
転域では横軸に対応する欄番号Xに対して、エン
ジン回転数Nの増分は小さく、全体に単一の1次
開数型にはなつていない。またTmapの縦軸は吸
気管圧力Pmであり、縦軸に対応する行番号Yに
対して比例関係になつている。このTmapは後述
のフイードバツク学習処理で常に書き換えられ、
最大トルクから燃料消費率の最低の点火時期にな
つている。まずステツプ2130の点火時期計算
の詳細を第19図で説明する。ステツプ2131
では回転数Nから欄番号Xへ(6)式に従つて変換す
る。 ここで、NxiはNを越えない最大のマツプ横軸
に指定された回転数、 XiはNxiに対応する欄番号で整数、Xの
小数点部は、マツプ横軸に指定された回
転数の中間の回転数であることを示す。 またステツプ2132で吸気管圧力Pmから行
番号Yへ(7)式に従つて変換される。 ここで、PmYiはPmを越えない最大のマツプ縦
軸に指定された吸気管圧力、 YiはPmYiに対応する行番号で整数、Y
の小数点部はマツプの縦軸に指定された
吸気管圧力の中間の圧力であることを示
す。 ステツプ2133ではX,Yに対応してMBT
進角マツプ(Tmap)よりMBT進角θmapを(8)式
により4点補間して求める。 ステツプ2134ではイグナイタ等による点火
信号の遅れをクランク角度に換算し、点火遅延角
(θDLY)とする。関係式は(9)式の通りである。 θDLY=tDLY×180(度CA)/Tm(μs) (9) tDLY:イグナイタによる点火信号の遅れ時間
(40〜100μs) Tm:180度回転時間(μs) 次にステツプ2135ではMBTフイードバツ
ク制御を行う。まずMBTフイードバツクの制御
を説明する。本実施例は最適点火時期(MBT)
の近傍で運転させた場合、連続して運転された3
点の点火時期(ベース,アドバンス,リタード)
での回転数を比較して、さらに最適点火時期に近
づけるように制御している。ここで3点の点火時
期でベースとは前記ステツプ2133で求まる点
火時期で、その点火時期にΔθ(通常2゜〜3
゜)だけ進角させたのがアドバンス、Δθだけ遅
角させたのがリタードである。このようなベー
ス,アドバンス,リタードと進角値をふることを
デイザーと呼ぶ。これら各々3点で、一定点火
(例えば40〜60点火)運転させた時の回転数をNB
A,NAD,NRT(クロツクパルス数で表わしたも
の)とする。つまり、a/NBA,a/NAD,a/
NRT(aは定数)が回転数である。例えば、第2
0図の状態Iのように目標点火時期θ0がエンジ
ンのトルクを最大限に発揮させ得る最適点火時期
(MBT)より遅角側に存在する時は、NAD<NBA
<NRTの関係が成り立ち進角側に点火時期を制御
する必要がでてくる。また、状態のように
MBTより進角側に存在するときは、NRT<NBA
<NADの関係が成り立ち遅角側に制御する必要が
でてくる。一定点火回数ずつのベースの点火時
期、アドバンスの点火時期、リタードの点火時期
の1周期を1フイードバツク周期とする。 第18図のMBT進角マツプの一部分を第21
図に示す。例えばある運転状態(2000r.p.m,
400mmHg)の点のフイードバツクエリアを回転
数1750r.p.mから2250r.p.m、吸気管圧力
377.5mmHgから422.5mmHgまでと定める。この
実施例では、1フイードバツク周期中の運転状態
がA点から始まつてB点で終ると仮定する。この
間に始点であるA点を含むフイードバツクエリア
のまわり8つのフイードバツクエリア(回転数
1250r.p.mから2750r.p.m、吸気管圧力
332.5mmHgから467.5mmHg)の範囲で運転状態
の変化があれば、定常と判断する。また、フイー
ドバツクエリアからはずれた運転状態(C点)が
一度でもあれば非定常と判定し、この場合はC点
を中心として8つのフイードバツクエリア(回転
数1750r.p.mから3250r.p.m、吸気管圧力
232.5mmHgから377.5mmHg)を新たに定常範囲
として始め(ベース)から制御をやり直す。1フ
イードバツク周期中、運転状態が定常であれば、
最も多く運転した(最も使用頻度が高い)フイー
ドバツクエリアを算出し、後述のフイードバツク
時にこの8つのエリアの点の点火時期を進角また
は遅角させて修正する。また最も多く運転したフ
イードバツクエリアの使用頻度が1フイードバツ
ク周期中の60%以上存在しなければ修正しない。
回転数と吸気管圧力に対するあるエンジンの軸出
力最大の最適点火時期は第22図に示すような特
性であり、求まつた代表点Eの点火時期のまわり
8点{例えば第23図で2000r.p.m、400mmHg
が代表点であるとすると、低圧力,低回転から順
にa1(1500r.p.m,355mmHg)、a2(1500r.p,
m,400mmHg)、a3(1500r.p.m)、a4(2000r.p.
m,355mmHg)、a5(2000r.p.m,445mmHg)、
a6(2500r.p.m,355mmHg)、a7(2500r.p.m,
400mmHg)、a8(2500r.p.m,445mmHg)の各8
点}は、(10)式により修正して近づける。 このようにしてすみやかに各運転状態の点火時
期を最適値に修正することができる。 また、アイドル域では最適点火時期まで制御す
ると失火が発生することがあり、高負荷域ではノ
ツキングが発生しエンジンに悪影響を与えたりノ
ツキング音が運転者に騒音となつて不快を感じる
ことがあるので、これらの領域ではフイードバツ
ク制御をしないようにしている。 次に第19図のMBTフイードバツクのステツ
プ2135の詳細な説明を第24図に示す。ステ
ツプ2141では第18図のマツプのどのフイー
ドバツクエリアに対応するかを第21図で説明し
た様に回転数Nに対応する欄番号Xと吸気管圧力
Pmに対応する行番号Yを算出する。ステツプ2
142では後述のメインルーチンのステツプ42
00で求まる水温が70℃より高温だつたら、ステ
ツプ2143へ低温なら2180に進む。ステツ
プ2143ではステツプ2141で求まつたマツ
プのエリアがフイードバツクする範囲であるか否
かを判断する。例えば進角をMBTに合致させる
とアイドル域では失火したりし、高負荷域ではノ
ツクゾーンに入りかえつてエンジンに悪影響を与
えたりする。それを防ぐために、あらかじめ第1
8図のマツプと同じきざみのフイードバツク判断
テーブルを用意して、フイードバツクするエリア
は0、フイードバツクしないエリアは0以外の数
をセツトしておき、0のエリアではフイードバツ
クし、0でないエリアではフイードバツクを中止
するように制御している。 ステツプ2143では前述ステツプ2141で
求まつたX,Yのエリアがフイードバツクエリア
かどうか判断し、フイードバツクエリアならばス
テツプ2144へ、フイードバツクエリアでない
時はステツプ2180にそれぞれ分岐される。 ステツプ2144は前述した定常か非定常かを
判断するステツプである。第21図で説明したよ
うに定常範囲であると判断されたならば、ステツ
プ2145からステツプ2148はスキツプさ
れ、ステツプ2149に移る。非定常と判断され
た場合は、ステツプ2145乃至ステツプ214
8で初期化される。ステツプ2145ではその時
の欄番号Xと行番号Yの値をおのおのXi,Yiに
移す。次回からはこのXiとYiが中心となつて定
常,非定常の判断をする。ステツプ2146では
点火回数を数える。 カウンタn1 を0にセツトし、 ステツプ2147ではデイザーフラツグFDSR
をFDSR=−1、デイザー進角θDSRを0゜CA
(θDSR=0)にセツトし、再びベースの点火時期
より制御を開始する。ステツプ2148ではおの
おのベース,アドバンス,リタードでのタイマー
カウント値NBA,NAD,NRTを0にセツトする。
次にステツプ2149では、後述するステツプ2
190にて1フイードバツク周期中の最も使用頻
度の高い2次元マツプの領域を検出するために、
前記X,Yの使用回数をおのおのカウントする。
カウントするのはXi,Yiを中心としたまわり8
領域{(Xi−1,Yi−1)、(Xi−1,Yi)、(Xi−
1,Yi+1)、(Xi,Yi−1)、(Xi,Yi+1)、
(Xi+1,Yi−1)、(Xi+1,Yi)、(Xi+1,Yi
+1)}である。ステツプ2142と2143で
分岐したステツプ2180から2182では、前
記ステツプ2146から2148までと同様、制
御をベースにして初期化する。そしてフイードバ
ツクをせずに、このMBTフイードバツク処理を
終了する。 次にステツプ2149以後は第25図に示す。
ステツプ2150では現在、ベース,アドバン
ス,リタードのどの状態にあるかを判断し、おの
おのその状態中のクロツクパルスをカウントす
る。まず、FDSR=−1すなわちベースである時
はステツプ2151に、FDSR=0すなわちアド
バンスである時はステツプ2161に、FDSR=
1すなわちリタードにある時はステツプ2171
に進む。最初にステツプ2151からのベースに
ついて説明する。180゜回転時間Tmとベースの
K点火分タイマーカウント値NBAをNBAに加算す
る。ステツプ2152ではデイザー進角を0゜
CA(θDSR=0)にセツトし、ステツプ2153
で指定点火数Kになるまでをカウントするカウン
タをカウントアツプする。つまりn1=n1+1式を
実行する。これをK点火分(例えば40〜60点火)
繰り返す。ステツプ2154でn1=Kすなわち、
K点火分のクロツクパルスをカウントしたなら
ば、ステツプ2155でそのカウンタ値を0に戻
し、ステツプ2156で次のアドバンスに制御を
移すためにFDSR=0(アドバンス)にセツト
し、デイザー進角θDSRをΔθ進角させるために
θDSR=Δθにセツトする。その他の時はステツ
プ2155,2156の処理はスキツプする。 ステツプ2150でFDSR=0のアドバンスの
ときはステツプ2161に進む。ステツプ216
1ではステツプ2151と同様に、180゜回転時
間TmをアドバンスのK点火タイマーカウント値
NADに加算し再びNADとする。ステツプ2162
ではデイザー進角をΔθ進角させるために、θDS
R=△θにセツトする。ステツプ2163ではス
テツプ2153と同様にn1をカウントアツプし、
ステツプ2164ではn1=KすなわちK点火分の
クロツクパルスをカウントしたか否かを判別し、
ステツプ2165でそのカウンタ値を0に戻す。
ステツプ2166では次のリタードの状態に制御
を移すためにFDSR=1(リタード)にセツト
し、デイザー進角θDSRをΔθ遅角させるために
θDSR=−Δθにセツトする。その他の時はステ
ツプ2165,2166の処理はスキツプする。 ステツプ2150でFDSR=1のリタードの時
はステツプ2171に進む。ステツプ2171で
はステツプ2151と同様に180゜回転時間Tm
をリタードのK点火分タイマーカウント値NRTに
加算しNRTとする。ステツプ2172ではデイザ
ー進角をΔθ遅角させるためにθDSR=−Δθに
セツトする。ステツプ2173ではステツプ21
63と同様にn1をカウントアツプする。ステツプ
2174でn1=KすなわちK点火分のクロツクパ
ルスをカウントしたならば、ステツプ2175で
はそのカウンタ値を0に戻す。ステツプ2176
では次のベース状態に制御を移すために、FDSR
=−1(ベース)にセツトしまたデイザー進角θ
DSRも0にセツトする。その他の時はステツプ2
175,2176の処理はスキツプする。 ここで第26図のステツプ2190に進み前記
ステツプ2149をもとに1フイードバツク周期
(ベース,アドバンス,リタード)中で最も使用
頻度の高い2次元マツプの領域を算出し、その欄
番号をXM、行番号をYMとする。ステツプ219
1ではこの最も使用頻度の高い領域が1フイード
バツク周期の例えば60%以上存在したか否かを判
定し、存在したならばステツプ2192に進む。
60%以下の場合はステツプ2198に進み修正は
行わない。例えば第20図の状態Iのように、点
火時期がその時のエンジン状態におけるトルクを
最大限に発揮させ得る最適点火時期より遅角側に
存在するときで、かつエンジン運転状態に変化が
ない場合において、上述の処理のごとく、まずデ
イザー進角θDSR=0で点火したときは、K点火
回数あたりの回転数はa/NBA(ただしaは定
数)となり、次にベースよりアドバンス側の点火
時期θDSR=Δθで点火した時の回転数はa/NA
Dとなり、次にリタード側の点火時期θDSR=−Δ
θで点火した時の回転数はa/NRTとなつて、回
転数を比較するとa/NRT<a/NBA<a/NAD
つまりNAD<NBA<NRTとなる。従つてNAD<N
BA<NRTなる関係が成立するときは、これをステ
ツプ2192にて判別して、ステツプ2193に
進み修正進角T=ΔT(例えば1゜〜2℃A)と
する。なおNAD<NBA<NRTが成立しないときは
ステツプ2194に進む。また例えば第20図の
状態のように点火時期がトルクを最大限に発揮
させ得る最適点火時期より進み側にある時は、逆
にa/NAD<a/NBA<a/NRTつまりNRT<N
BA<NADとなる。従つて、NRT<NBA<NADが成
立した時はステツプ2194にて判別してステツ
プ2195に進み、修正進角T=−ΔTとする。
NAD<NBA<NRTおよびNRT<NBA<NADの関係
が成立しない時はステツプ2198に進み修正は
行わない。NAD<NBA<NRTまたはNRT<NBA<
NADなる関係が成り立つた時はステツプ2196
に進み、前記ステツプ2190で求めた最も使用
頻度の高いマツプの領域のXM,YM進角値を、N
AD<NBA<NRTの時はΔT進角させ、NRT<NBA
<NADの時はΔT遅角させるように第18図の
Tmapを書き換える。ステツプ2197ではこの
領域のまわり8点(第23図a1〜a8点)を以下の
様に補正する。 a1の修正量 ΔT1=0.15×ΔT a2 〃 ΔT2=0.10×ΔT a3 〃 ΔT3=0.05×ΔT a4 〃 ΔT4=0.20×ΔT a5 〃 ΔT5=0.10×ΔT a6 〃 ΔT6=0.40×ΔT a7 〃 ΔT7=0.20×ΔT a8 〃 ΔT8=0.15×ΔT 次にステツプ2198でおのおのクロツクパル
ス数(NBA,NAD,NRT)を0にする。以上で第
19図のステツプ2135のMBTフイードバツ
ク計算を終了する。そして第19図のステツプ2
136で最終点火時期θxを(11)式により計算
する。 θx=θmap+θDLY+θDSR ……(11) 以上で点火時期の算出は終了し、第16図のス
テツプ2140では後述する8ms割込み処理ルー
チンで計算するコイル通電時間TONとエンジン回
転数Nにより、コイル通電角度を計算する。また
最終点火時期θxから通電開始角度θONを求め、
前記コイルA,Bについて通電開始クランク角度
のダウンカウント値、点火クランク角度のダウン
カウント値を求め、前述のギア割込みルーチンの
ステツプ1300の通電,点火処理に使用する。
スタータ作動時のステツプも同様の処理である。 以上でプログラム割込み処理を終了する。 第27図に8ms割込み処理ルーチンのフローチ
ヤートを示す。ステツプ3100で第6図に示す
割込み制御部61の端子443にリセツト信号を
印加しフリツプフロツプ300をリセツトして、
8ms割込み要求信号端子446を“1”にもど
す。ステツプ3110ではアナログ入力ポート6
5からバツテリー電圧VBを取り込み、第29図
に示す通電時間特性によりコイル通電時間TONを
計算する。 第28図はメインルーチンのフローチヤートを
示す。ステツプ4100では初期化処理を行い、
RAM領域のクリア、各種初期パラメータの入
力、割込みの許可を行う。ステツプ4200は水
温のA/D変換値を算出する処理である。このス
テツプは割込み処理のない時は常に実行される。 以上詳細に説明したように本発明は、外的要因
によつて回転数,トルク等が変化したのか、少な
くとも異なる2点での点火時期の変更によつて回
転数,トルク等が変化したのか識別でき、目標点
火時期を最適点火時期に修正してエンジン出力を
最大限発揮させると共に燃料消費率を最小に抑え
ることができるという優れた効果がある。さらに
2次元マツプを最も使用頻度の高い領域の使用頻
度が所定の割合以上である場合にこの使用頻度の
最も高い領域またはその近傍を修正しているの
で、2次元マツプの使用領域が広範囲にまたがつ
たとしても精度よく2次元マツプの修正を行うこ
とができるという優れた効果がある。 また本発明は、2次元マツプの使用される値が
所定の領域より外れた場合は回転数,トルク等の
信号の検出を中断し、その外れた領域より新たに
検出を開始しているので、エンジンの過渡状態に
おける誤修正を防止できるという優れた効果があ
る。
第1図は本発明の一実施例を示す制御システム
の構成図、第2図は第1図中の制御コンピユータ
の構成図、第3図,第8図は第2図各部の説明の
ための波形図、第4図乃至第7図、第9図乃至第
12図はそれぞれ第2図各部の電気回路図、第1
3図乃至第16図、第19図,第24図乃至第2
8図は第1図に示す制御コンピユータの演算処理
手順を示すフローチヤート、第17図,第20
図,第22図,第29図は本発明の作動説明に供
する特性図、第18図,第21図,第23図は本
発明の作動説明に供する2次元マツプ模式図であ
る。 1……エンジン、2……水温センサ、3……ス
タータ、4……点火コイル、5……回転センサ、
6……制御コンピユータ、7……イグナイタ、8
……圧力センサ、60……中央処理ユニツト、7
1……2次元マツプを構成する不揮発性RAM。
の構成図、第2図は第1図中の制御コンピユータ
の構成図、第3図,第8図は第2図各部の説明の
ための波形図、第4図乃至第7図、第9図乃至第
12図はそれぞれ第2図各部の電気回路図、第1
3図乃至第16図、第19図,第24図乃至第2
8図は第1図に示す制御コンピユータの演算処理
手順を示すフローチヤート、第17図,第20
図,第22図,第29図は本発明の作動説明に供
する特性図、第18図,第21図,第23図は本
発明の作動説明に供する2次元マツプ模式図であ
る。 1……エンジン、2……水温センサ、3……ス
タータ、4……点火コイル、5……回転センサ、
6……制御コンピユータ、7……イグナイタ、8
……圧力センサ、60……中央処理ユニツト、7
1……2次元マツプを構成する不揮発性RAM。
Claims (1)
- 【特許請求の範囲】 1 エンジンの第1動作状態および第2動作状態
の2状態に基づき目標点火時期を算出する2次元
マツプを構成し、この目標点火時期近傍でかつ互
いに異る少くとも2点の点火時期を選択し、この
選択した少くとも2点の点火時期にて交互に所定
の期間ずつエンジンを運転し、これらの各点火時
期にて運転したときのエンジンの回転数の信号、
トルクの信号またはこれらに関連する運転状態の
信号を検出し、前記少くとも2点の点火時期で運
転したときの前記運転状態の信号のうちで少くと
も連続して運転した3点の前記運転状態の信号を
比較することにより前記目標点火時期がエンジン
出力を最大限に発揮させる最適点火時期より進み
側にあるか遅れ側にあるかを判定し、この判定結
果に応じて前記2次元マツプの値を修正すること
を特徴とする点火時期制御方法。 2 前記2次元マツプの値の修正は、点火時期が
前記最適点火時期にあるか否かを判定する期間中
に前記2次元マツプの最も使用頻度の高い領域の
使用頻度が所定の割合以上である場合に、前記2
次元マツプの前記使用頻度の最も高い領域または
その近傍を修正することを特徴とする特許請求の
範囲第1項記載の点火時期制御方法。 3 前記2次元マツプにおける前記使用頻度が最
も高い領域の近傍の修正量は、前記使用頻度が最
も高い領域より少なくてかつ一率でないようにす
ることを特徴とする特許請求の範囲第2項記載の
点火時期制御方法。 4 エンジンの第1動作状態および第2動作状態
の2状態に基づき目標点火時期を算出する2次元
マツプを構成し、この目標点火時期近傍でかつ互
いに異る少なくとも2点の点火時期を選択し、こ
の選択した少なくとも2点の点火時期にて交互に
所定の期間ずつエンジンを運転し、これらの各点
火時期にて運転したときのエンジンの回転数の信
号、トルクの信号またはこれらに関連する運転状
態の信号を検出し、前記少なくとも2点の点火時
期で運転したときの前記運転状態の信号のうちで
少なくとも連続して運転した3点の前記運転状態
の信号を比較することにより前記目標点火時期が
エンジン出力を最大限に発揮させる最適点火時期
より進み側にあるか遅れ側にあるかを判定し、点
火時期が前記最適点火時期にあるか否かを判定す
る期間中に前記2次元マツプの最も使用頻度の高
い領域の使用頻度が所定の割合以上である場合
に、前記2次元マツプの前記使用頻度の最も高い
領域またはその近傍を修正し、さらに前記目標点
火時期および少なくとも2点の点火時期に対応す
る前記2次元マツプの値が所定の領域より外れた
場合は前記運転状態の信号の検出を中断しその外
れた領域より新たに検出を開始することを特徴と
する点火時期制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1178580A JPS56110564A (en) | 1980-02-01 | 1980-02-01 | Controlling method of ignition time |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1178580A JPS56110564A (en) | 1980-02-01 | 1980-02-01 | Controlling method of ignition time |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS56110564A JPS56110564A (en) | 1981-09-01 |
| JPS6231189B2 true JPS6231189B2 (ja) | 1987-07-07 |
Family
ID=11787588
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1178580A Granted JPS56110564A (en) | 1980-02-01 | 1980-02-01 | Controlling method of ignition time |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS56110564A (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59188057A (ja) * | 1983-04-08 | 1984-10-25 | Toyota Motor Corp | 内燃機関の空燃比及び点火時期制御方法並びに装置 |
-
1980
- 1980-02-01 JP JP1178580A patent/JPS56110564A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS56110564A (en) | 1981-09-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4476532A (en) | Method and apparatus for controlling the duty cycle of an off-on type valve by monitoring the history of the state of the valve | |
| US4791569A (en) | Electronic control system for internal combustion engines | |
| US4379333A (en) | Method and system for operating a power-producing machine at maximum torque under varying operating conditions | |
| JPS639093B2 (ja) | ||
| JPH0350100B2 (ja) | ||
| US4873958A (en) | Engine ignition timing control system | |
| JPS61272470A (ja) | 内燃エンジンの点火時期制御方法 | |
| JPH034746B2 (ja) | ||
| JPS61275585A (ja) | 内燃機関の点火時期制御装置 | |
| JP4375685B2 (ja) | エンジン制御装置 | |
| JPS61275572A (ja) | 内燃エンジンの点火時期制御方法 | |
| JPS6126082B2 (ja) | ||
| JPS5833394B2 (ja) | 内燃機関用点火装置 | |
| JPS6231189B2 (ja) | ||
| US4706196A (en) | Apparatus and method for injecting fuel into engine according to group injection system | |
| US5093793A (en) | Method of transferring signals within electronic control system for internal combustion engines | |
| JPS6248065B2 (ja) | ||
| JPH0223268A (ja) | 内燃機関用点火時期制御装置 | |
| US4552110A (en) | Electronic ignition control system | |
| US5193516A (en) | Method of and device for controlling an internal combustion engine | |
| JP2625763B2 (ja) | 内燃機関の点火時期制御装置 | |
| JPS60162065A (ja) | 内燃機関の制御装置 | |
| JP2627153B2 (ja) | 点火時期制御装置 | |
| JP3480145B2 (ja) | 内燃機関用制御装置 | |
| JPH0784861B2 (ja) | 内燃機関の点火時期制御方法 |