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はフリツプフロツプ
The present invention relates to an ignition timing control method that performs feedback control of ignition timing in order to improve engine output and fuel consumption. Unless there are special reasons such as knocking or problems with exhaust gas characteristics, the engine's ignition timing should be adjusted to the operating conditions of the engine so that the engine's output can be maximized and fuel consumption can be minimized at the same time. It is adjusted by the rotation speed, intake pipe pressure, etc. Generally, when controlling engine ignition timing with a microcomputer, engine speed, intake pipe pressure, intake air amount, throttle opening, etc. are expressed as digital quantities and calculated by arithmetic operations according to algebraic functions. The optimal ignition timing corresponding to the engine speed, intake pipe pressure, intake air amount, etc. is determined by interpolation and synthesis from stored maps. However, these conventional methods have limitations and some loss in power and fuel consumption. For example, problems such as variations in individual engines, changes in environmental conditions, variations in sensors such as intake pipe pressure sensors or intake air amount sensors, and deterioration cannot be addressed by this method alone. In order to eliminate these losses and maximize engine output, methods have been devised to feedback control the ignition timing.
It is known from the specification of No. 3142967. According to this, the engine was operated at two different ignition timing points near the target ignition timing, and among these two points, the rotation speed Nr when operating at the delayed ignition timing, and then the engine speed Nr when operating at the advanced ignition timing. Detects the rotational speed Na at the time, compares the magnitude of both rotational speeds, and when Nr<Na, the target ignition timing is advanced by a predetermined value, and when Nr<Na, it is corrected to be delayed by a predetermined value. Then,
The engine is controlled to the optimum ignition timing to provide maximum torque. However, when determining changes in output based on rotational speed, this method determines whether the change in rotational speed is due to ignition timing or whether it is due to external factors (acceleration, Because there is no ability to determine whether the cause is due to accelerator operation during deceleration, etc., the ignition timing is corrected in the opposite direction to the ignition timing that provides maximum torque during acceleration/deceleration or when going up or down a slope, resulting in a decrease in rotation speed and output. In some cases, this caused deterioration of fuel efficiency. In addition, corrective control is always required in response to changes in engine operating conditions (rotational speed and intake pipe pressure).
Even when returning to the same operating conditions, the feedback control had to be restarted from the beginning. The present invention has been made in view of the above problems, and uses a two-dimensional map that calculates the target ignition timing based on the first operating state (rotational speed, etc.) and the second operating state (intake pipe pressure, etc.) of the engine. at least two different ignition timings near the target ignition timing and different from each other.
The engine is operated alternately for a predetermined period at at least two selected ignition timing points, and the engine rotation speed signal and torque signal are obtained when operating at each of these ignition timing points. Detect signals or operating status signals related to these,
The target ignition timing is determined to maximize the engine output by comparing the operating state signals of at least three consecutive points among the operating state signals obtained when the engine is operated with the at least two ignition timing points. It is characterized by determining whether the ignition timing is advanced or delayed from the optimum ignition timing, and corrects the value of the two-dimensional map according to the result of this determination. Identify whether the engine speed, torque, etc. have changed, or whether the engine speed, torque, etc. have changed due to changes in the ignition timing at at least two different points, and correct the target ignition timing to the optimal ignition timing to maximize engine output. The aim is to maximize fuel efficiency while minimizing fuel consumption. Further, the present invention provides a means for using the two-dimensional map when the frequency of use of the most frequently used area of the two-dimensional map is equal to or higher than a predetermined ratio during the period for determining whether or not the ignition timing is at the optimum ignition timing. By correcting the area with the highest frequency or its vicinity, errors can be avoided when the usage area of the 2D map spans a wide range and the main usage area cannot be determined while detecting the three-point driving status signal. Prevents modification of ivy areas,
Furthermore, if the value used in the two-dimensional map deviates from a predetermined area, detection of the driving status signal is interrupted and new detection is started from the deviated area, thereby preventing erroneous corrections in transient conditions. The purpose is to make it possible. The method of the present invention will be explained below with reference to examples shown in the drawings. FIG. 1 is a block diagram of a control system in which the present invention is applied to a 4-cylinder engine, where 1 is a 4-cylinder, 4-cycle engine, and 2 is a water temperature sensor that detects the temperature of the engine's cooling water. 3 is a starter, and 31 is a starter switch. 5 is a rotation sensor that measures the rotation angle position of the engine 1, which generates a top dead center signal when the engine 1 rotates and reaches the top dead center position, and equally divides one revolution of the engine from the top dead center position. A rotation angle signal is generated each time the motor rotates by a certain angle (in this embodiment, the crank angle is 30 degrees; all angle units hereinafter are crank rotation angles). 10 is a carburetor, and 8 is a pressure sensor built into the control computer 6. Pressure is transmitted from the intake manifold 9 of the engine 1 to a pressure input port through a pipe 11, and measures the intake manifold pressure. 4 and 7 are ignition actuators of this system. In this embodiment, a dayless double coil system using two coils is adopted, where 4 is an ignition coil and 7 is an igniter. The control computer 6 determines the engine speed from the time interval of the rotation angle signal generated by the rotation sensor 5, calculates the intake manifold pressure from the output voltage of the pressure sensor 8, measures the engine operating state, and starts the ignition. Control the timing. Furthermore, in order to control the ignition timing to a specific value when starting the engine, the voltage supplied from the starter switch 31 to the starter 3 is inputted to the control computer 6 as a starter signal. Further, in order to change the energization time of the ignition coil 4 in accordance with the battery voltage, the battery voltage is taken into the control computer 6 as a battery voltage signal. Reference numeral 12 denotes a power source that generates the voltage required by the control computer 5 from the voltage of a battery 13 mounted on the vehicle. FIG. 2 shows a block diagram for explaining the control computer 6 in detail. 60 is a central processing unit (CPU) that calculates ignition timing and is made by Texas Instruments (TI) with a 16-bit configuration.
TMS9900 is used. Reference numeral 70 indicates a read-only memory unit (ROM) that stores control programs and control constants, and 69 indicates a temporary memory unit (RAM) that is used to store control data while the CPU 60 is operating according to the control program. Reference numeral 71 is a non-volatile RAM that stores a two-dimensional map of the optimal ignition timing that provides maximum torque, and has an auxiliary power source so that the contents of the RAM remain even after the ignition switch is turned off. 61 is an interrupt control unit which notifies the CPU 60 of the occurrence of an interrupt with three levels of priority. The interrupt factors in this embodiment include an interrupt caused by the generation of a rotation angle signal from the engine rotation sensor 5, and an interrupt caused by the CPU
There are three types of interrupts: a program interrupt which is caused by the program interrupt output port 60 itself setting the level of the program interrupt output port of the digital input/output port 64 to "0", and a timer interrupt which is caused by the timer every 8 ms. The timer section 62 is composed of a 16-bit counter that counts an 8 μs clock signal and a latch that stores and holds the counter value every time the rotation angle signal of the rotation sensor 5 is generated. Therefore, in the interrupt processing for generating the rotation angle signal, the CPU 60 reads the value of the crank angle counter section 63 to know the rotation angle position of the engine, reads the latch value of the timer section 62, and performs this operation for two rotations. By determining the difference between the latch values at each angular position, it is possible to measure the time it takes the engine to rotate between two rotational angular positions, and also to measure the engine speed. The crank angle counter section 63 has a lower digit in hexadecimal.
This is a high-order digit 4-digit counter, which counts up based on the rotation angle signal of the rotation sensor 5. When the rotation angle signal next to the top dead center signal is generated, this counter is reset to the value "0" and the engine rotation is increased. can be synchronized with. Therefore, the value of the crank angle counter is
By reading it out by the CPU 60, the engine rotational angular position can be known in units of 30 degrees crank angle. The digital input/output port 64 is a port used for inputting and outputting logic signals, and inputs a signal from the starter switch 31 indicating that the starter 3 for starting the engine is in operation, and also inputs a program interrupt signal to the interrupt control section. 61. Signals from the engine coolant temperature sensor 2, intake pipe pressure sensor 8, and battery 13 are converted into analog-to-digital (A/D) signals at the analog input port 65, and then stored in the RAM 69 by the DMA control unit 66.
DMA transfer is performed. Therefore, in this example, CPU6
0 is not directly involved in A/D conversion, and the latest A/D conversion data required can be used by accessing a predetermined address in the RAM 69 when necessary for calculation. In addition, in this system
By connecting the operation panel 67 as necessary using the DMA control unit 66, data can be written to the RAM 69, ROM 70, RAM 69, non-volatile
Data in the RAM 71 can now be read. Further, the state (RUN, HOLD) of the CPU 60 can be controlled from the operation panel 67. More detailed contents of each of the above circuit sections will be sequentially explained below. A detailed circuit diagram of the crank angle counter section 63 is shown in FIG. The crank angle counter section 63 includes two sensors 50 and 51 of the rotation sensor 5 attached to the shaft of a normal distributor that rotates once every two revolutions of the engine crankshaft.
This signal indicates the current position of the crankshaft in decimal notation. Sensor 51 of rotation sensor 5
The crank angle signal 5b (FIG. 3b) is passed through low-pass filters 106, 107 and transistors 109,
A D-type flip-flop 114 (for example, manufactured by TI
SN74LS74). flipflop 1
14 is for preventing the contents of the counter 125 from changing due to count-up during data transfer by the crank angle READ command from the CPU 60. During the crank angle READ (signal terminal 401 is logic "0"), the crank angle signal is 5b's input clock 400 is stopped by the AND element 113. The Q output of the flip-flop 114 is a synchronous 4-bit counter 125 (for example, manufactured by RCA).
CD4520B) is input to the CK (clock) terminal. This counter 125 is a 2-bit counter in the ternary part and a 2-bit counter in the quaternary part by the NAND gate 1.
28 and 124 are connected in series, and the whole operates as a (3×4=) decimal counter.
The contents of the counter 125 correspond to the position of the crankshaft and are counted up at every trailing edge of the crank angle signal 5b. The counter 125 is set by the crank angle READ command from the CPU 60.
The contents of Batsuhua 126 (for example, manufactured by TI)
SN74LS244) is output to the data bus 404. The TDC signal 5a (Fig. 3a) of the sensor 50 of the rotation sensor 5 is transmitted to #1 and #4 of the crankshaft.
This is a signal that indicates the TDC position of the cylinder, and every time the crankshaft passes the top dead center of #1 and #4 cylinders, 1
Outputting pulses. Similar to the crank angle signal 5b, this TDC signal 5a is waveform-shaped by a resistor 100, a capacitor 101, a transistor 103, and a Schmitt input NAND element 105.
CD4013B) is input to the D (data input) terminal. A crank angle signal is input to the CK terminal of the flip-flop 118, and the Q output is connected to the D terminal of the D-type flip-flop 119. Therefore, at the trailing edge of the first crank angle signal after the TDC signal 5a is inverted to logic "1", the flip-flops 119, 120 and the NAND element 121 generate one pulse (the pulse width is determined by the frequency of the CK2 signal 407). generate the counter 125.
RESET (counter contents = “0000”). In other words, TDC corresponds to “0000” and crank angle is 90°.
CA corresponds to “0100”. counter 125
RESET is the T.RESET signal 402, which is the system initialization signal, and the T.RESET signal 402 from the CPU 60.
It is also performed from the RESET instruction 406. Furthermore, the fourth
The circuit diagrams from Figure to Figure 12 are marked with 〓.
The TTL logic element and other logic elements use C-MOS logic elements. This is because the CPU 60 operates at high speed, so it is impossible to use a C-MOS interface in terms of time. Next, the timer section 62 will be explained with reference to FIG. A clock CKI having a frequency of 3 MHz supplied from the CPU 60 via a terminal 400 is divided by three by D-type flip-flops 200 and 201.
This clock (CK2) also has a 4-bit counter of 20
2, and after being divided by 8, the 8bit counter 2
08 as a clock. The 8-bit counters 207 and 208 constitute a 16-bit real-time timer, and count the time from 0 to 524280 μs. This timer is activated by the 8-bit latch 209, 21 by the leading edge of the crank angle pulse of the crank angle counter section 63 through the terminal 403.
The current time is latched to 0 (for example, CD4508B manufactured by RCA). The latched time is
In response to the timer READ command sent from the CPU 60 through the terminal 408, the buffers 211 and 212 are further transferred to the CPU 60 through the data bus 404. Flip-flops 204 and 205 output a 2 μs wide latch strobe pulse at the leading edge of the signal at terminal 403. 3 inputs
AND206 is to prevent the count up time of the 16bit timers 207 and 208 from overlapping with the time latch time, and when the LSB output of the counter 202 is "0", the latch timing is set to a maximum of 1 μs.
It's delayed. Next, the interrupt control section 61 will be explained with reference to FIG. First, every time a crank angle signal is input from terminal 403, a gear interrupt flag (D-type flip-flop)
302 is set to "1", and an interrupt request signal is sent to the CPU 60 via the inverter buffer 306 and the terminal 444. When this interrupt is accepted, the gear interrupt flag is sent from the CPU 60 through the terminal 440 by the gear interrupt processing program described later.
will be reset. Similarly, when the program interrupt port is set to "1" during the gear interrupt program, the program interrupt flag (D flip-flop) 301 is set through the terminal 441, and an interrupt request is sent to the CPU 60. This flag is also reset through the terminal 442 by a command from the CPU 60.
Furthermore, the 16-bit timer (20 bits) of the timer section 62
7,208) through terminal 415.
8.192ms clock causes 8ms interrupt flag (D
(type flip-flop) is set, and an interrupt request is transmitted to the CPU 60 via a terminal 446. That is, this interrupt occurs every 8.192ms and is used as a time base for the software. This interrupt is also reset by an instruction from the CPU 60. Next, the DMA control unit 66 is shown in FIGS.
Shown in Figure 0. Terminals 409, 410, 411, 41
Reference numeral 2,413 is for generating a HOLD request signal (terminal 437) for causing the CPU 60 to temporarily stop the execution of the program, and the output signal from the timer unit 62 in FIG. 5 is input thereto. Timer section 6
2 16bit real time timer 207,208
bit 2 (terminal 413) and bit 3 (terminal 4)
12) are both “1”, AND gate 603
The output of is "1". In other words, the waveform is as shown in FIG. 8o. Similarly, the output of the 3-input AND 605 is as shown in FIG. 8P. In addition, 61
8 to 622 and 644 to 646 are resistors for CMOS input protection. The DMA shown in this example has 8 channels, and all channels are connected every 1 ms.
Transfers data between RAM69. The first 7 channels out of 8 channels (CHO in Figure 8 o)
-6) are for transferring A/D converted data, and the last channel CH7 is used for data transfer with the operation panel 67. In the case of A/D converted data, as shown in FIG. AND gate 608
When becomes "1", if there is no external HOLD request signal from the operation panel 67 to the computer (terminal 427 is "1"), the output of AND gate 605 becomes "0" (therefore, the output of 608 becomes "1"). ”), register 624 (for example, 74LS175 manufactured by TI)
The D input of becomes "1". CK of register 624
For input, 3MHz clock from CPU60 is connected to terminal 4.
26. (Figure 8r). Immediately after the D input of the register 624 changes to “1”, the Q output of the register 624 is “0”, so the AND
Output of gate 642 is “0”, NAND gate 60
1 becomes “1” and the CK of register 624
The 3MHz clock is directly applied to the input, and at the next clock after the D input of the register 624 changes to "1", "1" is taken into the register 624, and the Q output becomes "1" as shown in FIG. 8q. When the Q output of 624 becomes "1", the output of AND gate 642 changes to "1", and the tri-state output
The output of the NAND gate 643 (for example, 74LS38 manufactured by TI) becomes "0", and a HOLD request signal ("0") for starting DMA is output to the CPU 60 (see t in FIG. 8). The CPU 60 receives this HOLD request signal from the terminal 431 and sends it to the receiving terminal 425 after the currently executing machine cycle ends.
FIG. 8 u which outputs the HOLDA signal "1". terminal 4
37 is “0” and the HOLD request signal is output.
Since the output of the NAND gate 601 is “0” until the HOLDA (terminal 425) signal becomes “1”, 3M
The Hz clock (terminal 426) is connected to register 625.
Not supplied to CK pin. When HOLDA becomes “1”, a clock is input to the CK terminal of register 625, “1” is taken into register 625, and Q
The output becomes "1". Further, at the next clock, the Q output of the register 626 becomes "1", and at the next clock, the output of the register 627 becomes "0". When the output of the register 627 becomes “0”, the output of the NAND gate 643 becomes high impedance.
The HOLD request is released and the DMA cycle is completed. When the HOLDA signal becomes "1", the AND gate 638 becomes "1" and the tri-state output
The output of the NAND gate 641 becomes "0" only during the period when the HOLD request signal () is "0" and the HOLDA signal is "1", and the RAM 6
9 is a memory use selection signal (,436)
issue. Furthermore, only when the Q output of the register 625 is "1" and the output of the register 626 is "1", the AND gate 639 becomes "1", and CHO~
While CH6 is selected, 3-input AND gate 6
Since the output of 05 is "0", the inverter 61
The output of 2 is “1”, and the tri-state NAND
The gate 640 has a memory as shown in FIG.
WRITE signal to RAM69 (, terminal 435)
is output. Furthermore, while the memory use selection signal is “0”, the output of the NAND gate 628, that is, the READ signal to the memory (DBiN, terminal 4
31) is “0”. While the HOLDA signal is “1” (during a DMA cycle), the CPU 60 is stopped, and the control lines such as , DBiN, , etc.
Drives from the CPU side of the address bus and data bus are in a "high impedance" state. Therefore, during this period, data is transferred directly from the DMA control unit 66 to the RAM 69. In the case of transferring A/D conversion data of CH0 to CH6, the inverter 60
The output of 6 is "1", and the output of terminal 420, i.e.
The NAND gate 629 outputs a signal similar to that shown in FIG.
A/D conversion address registers 530, 53 in Figure 0
1 strobe input. In other words, during the period when CH0 is "0", A/D converted data is output on the data bus 404, and CH0
The address corresponding to .about.6 is output on address bus 440. The data output on these buses is written into the RAM 69 by signals.
When there is an external HOLD request signal (terminal 427) from the operation panel 67 (“1”), the A/D conversion DMA cycle of CH0 to CH6 is not performed. In other words, the output of the NAND gate 607 becomes "0",
Even if the output of the AND gate 603 becomes "1", the D input of the register 624 remains in the "0" state, so the DMA cycle is not started. Next, the DMA cycle of CH7, which transfers data between the operation panel 67 and the RAM 69, will be explained. terminal 428
The terminal 429 receives the R/ signal from the operation panel, the terminal 430 receives the continuous READ signal, and the terminal 414 receives the approximately 128 ms clock signal supplied from the timer section 62. First, when a data write request is issued from the operation panel 67 to the RAM 69, the terminals 428, 429, and 430 become "0". The outputs of AND gates 605 and 603 become “1” (o, p in Figure 8) and the DMA of CH7
The cycle begins. Registers 615, 616
As a result, when the terminal 429 falls from “1” to “0”, a positive pulse with a width of 1.0 ms is sent to the AND gate 6.
One occurs at the output of 17. This pulse becomes a 128 μs negative polarity pulse at the NAND gate 609,
It passes through the NAND gate 608 and the AND gate 604 and is input to the D input of the register 624 as a 32 μs positive pulse. RAM6 from operation panel 67
For a WRITE request to 9, ,HOLDA,
, , DBiN control lines are driven in exactly the same way as in the DMA data transfer of the A/D conversion data. (FIG. 8 t to w) Furthermore, the signal terminals 434 and 432 that cause the operation panel 67 to output the address to be transferred to the RAM 69 and the contents of the register storing the data onto the address bus and the data bus, respectively, are set to "0'' period, a positive pulse is output as shown in FIG. 8x. RAM69, ROM70 from operation panel 67
When a data read request is made to the terminal, terminals 429 and 430 become "0" and terminal 428 becomes "1". In this case, in the DMA cycle, the signal (terminal 435) on the computer control line remains "1" even during the period when the memory use selection signal (terminal 436) is "0", but the output of the AND gate 611 is Since it is "1", the DBiN signal (terminal 431) is "1".
Other control lines HOLD, HOLDA,
This is the same as the A/D conversion data transfer cycle and the data write cycle from the operation panel 67. When the continuous READ signal (terminal 430) is "1", the output of the NAND 613 generates a 128 ms clock. This is caused by the NAND gate 614, and the RAN6 is sent from the operation panel 67 every 128ms.
9. Since this is equivalent to a data read request to the ROM 70, a DMA data transfer cycle occurs once every 128 ms from the RAM 69 and ROM 70 to the operation panel 67 as described above. In addition, from the operation panel 67
The DMA cycle is triggered by an external HOLD request signal (terminal 42).
7) will be executed even if there is. Next, the analog input port 65 will be explained with reference to FIG. Filters 500 to 506 of resistors and capacitors connected immediately after the input terminal of each sensor are for removing noise components superimposed on the signal line. Three sensor inputs are 8 channel multiplexer 514
(for example, CD4051B), and one of the inputs is selected by the level of address inputs A, B, and C. That is, for example, when A, B, and C are "0", "0", "0", the CO input is selected, and when they are "1", "0", "0", the CO input is selected.
C1 input is selected. Address inputs A, B, and C of the multiplexer 514 are connected to real-time timers 207 and 208 of the timer section 62 via a level converter (for example, CD40109B) 515. Therefore, CO→C1→C2 every 128μs
The channels to be selected are switched as →...→C0, and one channel is selected once every 1 ms.
Terminal 412 also has real time timer 207, 20
8 and generates a 64μs clock. That is, at the same time as the address of multiplexer 514 is switched, terminal 412 rises from "0" to "1". At that time, the inverter 52
0,524,NANO523, resistor 521, and capacitor 522 generate an A/D start pulse of several μs, and successive approximation type A/D converter 517
(e.g. Bur Brown ADC80AG) CONV,
It is input to the CMD terminal and A/D conversion starts. The output of multiplexer 514 is address input A,
One input selected according to the values of B and C is output as is, and after current amplification by an operational amplifier 516 (for example, μPC151A manufactured by NEC Corporation), is input to an analog input terminal of an A/D converter 517.
After the conversion start signal is applied to the CONV and CMD terminals, the A/D converter 517 converts the analog input into 12-bit digital data in about 40 μs and outputs it to B0 to B11. The converted digital data is written by the DMA control unit 66 as 12-bit data B0 to B11 through buffers 518 and 519 to the address corresponding to the selected channel of the RAM 69 in a DMA data transfer cycle that starts 96 μs after application of the conversion start signal. It can be done. Next, the energization ignition control section 68 will be explained in detail with reference to FIGS. 11, 12, and 3. The CPU 60 calculates the current position of the crankshaft by 360÷12=30 using information from the crank angle counter section 63 and an interrupt (gear interrupt) that occurs every time a crank angle signal is input.
It is recognized with an accuracy of (℃A). How to achieve the optimum energization timing and ignition timing calculated by the program will be explained for cylinders #1 and 4. The same explanation can be given for #2 and #3 cylinders. First, regarding energization, the optimum energization angle θ is decomposed as shown in the following equation. θ = θ 1 + θ 2 τ = τ (θ 2 , N) (1) θ: Current conduction angle θ 1 : Current conduction start crank angle that can be recognized by the CPU in 30℃A units (0 to 11 × 30℃A), that is, rotation angle Corresponding to each gear position of sensor 5 θ 2 : Fraction below 30°C τ : Fraction below 30°C θ 2 is converted into time in units of 8 μs based on the rotational speed N at that time. Then, in the gear interrupt that occurs at a gear position (θ 1 -1) one position before the gear position θ 1 calculated by the above formula, the CPU 60 issues a #1 and 4 coil energization command (terminal 453) as shown in FIG. 3c. ) and an energization down counter value set command (terminal 450). Further, by the pulse applied to the terminal 450, the contents of τ output from the CPU to the data bus 404 at the same time are set in the 16-bit energization down counters 900 and 901. 900,90
1 is an 8-bit down counter (for example, RCA
A 16-bit down counter is constructed by connecting them in series with CD40103B (manufactured by MITSUMI CORPORATION). This 16-bit down count value can have a value of 0 to 0.52428 seconds with an accuracy of 8 μs. Therefore, it is possible to down-count down to a rotation speed of about 3 rpm without overflow. When the flip-flop 909 is set, the output becomes "0" and the output of the NAND gate 910, that is, the D of the D-type flip-flop 911.
The input becomes "1". flipflop 911
Since the CK (clock) input is connected to the crank angle signal through the terminal 403, the flip-flop 911 is set at the next crank angle pulse after the #1 and #4 coil energization command and the energization down counter value set command are output. FIG. 3d shows the signal waveform of the Q output of flip-flop 911. When the flip-flop 911 is set, the output becomes "0", so the down counters 900 and 901
becomes capable of down-counting, and the reset input of the 4-bit frequency divider 925 is released, so that the down-counting clock is supplied to the CK inputs of the down counters 900 and 901, and down-counting is started.
The frequency divider 925 (for example, CD4520B manufactured by RCA) receives a 2 μs clock from the 4-bit down counter 202 of the timer section 62 through the terminal 455.
This frequency is divided by 4 to generate an 8 μs down count clock. real time timer 20
The reason why the 8 .mu.s clock is not used directly from the 7,208 is to ensure accuracy, especially when .tau.=0,1. Now, when the 16-bit down counters 900 and 901 finish counting down, the end signal is "0" and the down counter 90
Output from CO/ZD terminal of 0 and inverter 90
4, AND gate 906, NAND gate 907,
Through NAND gate 915, flip-flop 9
09, 911 (see FIG. 3d), and further passes through the inverter 914 to the down counter 90.
Since 0,901 is reset, the CO/ZD terminal returns to "1" again. Therefore, AND gate 90
6, that is, to the terminal 456, a pulse as shown in FIG. 3e is outputted. Also, since the Q output of the flip-flop 911 becomes "1", the down counters 900 and 901 stop counting, and the supply of the count down clock is also stopped.
Note that the down count clock inverted by the inverter 905 is applied to the other input of the AND gate 906.
The output becomes "1" with a delay of 4 μs from the down count end signal. This is to prevent malfunction due to a negative pulse (about 200 ns) that may occur at the CO/ZD terminal of the down count 900 immediately after the count down clock is applied.
The output pulse of AND gate 906 is applied through terminal 456 to AND gates 933 and 935 in FIG. Now, the output of flip-flop 909 in FIG. 11 is "1" until the R (reset) input is inverted to "1", and the output of flip-flop 909 in FIG.
Since the input of No. 3 is connected to the Q output of the flip-flop 909 through the terminal 457, the pulse applied to the terminal 456 is directly generated at the output of the AND gate 933, and the pulses applied to the #1 and #4 coils (coil B)
Control flip-flop 938 is set. When the Q output of flip-flop 938 changes to "1", the output of inverter buffer 939 becomes "0", so transistors 942 and 947 change to "1".
OFF, the transistor 952 turns ON, current flows between the input terminal of the first igniter 80 and the GND terminal 82, and the coils for the #1 and #4 cylinders start energizing. Note that diodes 948 and 953 are for transistor protection, and resistors 940, 941, 943 to 9
46,949 to 951,954 are solid resistors for damping ignition noise. Figure 11
One input of NAND gate 907 is frequency divider 925
It is connected to a terminal that supplies a 2 μs clock. Therefore, even if the output of the AND gate 906 changes to "1", the down counters 900, 9
01, flip-flops 909 and 911 are reset with a delay of 2 μs. This is to ensure the pulse width of the set pulse of flip-flop 938. Ignition angle (timing) θBX is also decomposed in the same way as equation (1). θBX = θBX 1 + θBX 2 τx = τx (θBX 2 , N) θBX: Ignition angle of #1 and 4 coils (coil B) θBX 1 : Ignition crank angle that can be recognized by the CPU in 30℃A units, (0 to 11× 30℃A) θBX 2 : Fraction below 30℃ τx : Fraction below 30℃ A θBX 2 is converted into time in units of 8 μs based on the rotational speed N at that time. Rotation sensor 5 that occurs when the engine crankshaft reaches the gear position (θBX 1 -1) one position before the gear position (θBX 1 ) calculated by equation (2)
When the gear interrupt occurs due to the rise of the crank angle signal 5b of the sensor 51, the CPU 60 outputs an ignition command (terminal 454, f in Figure 3) and sets τx in the 16-bit ignition down counters 902 and 903.When the crankshaft position is θBX 1 When the count reaches , the flip-flop 922 is set.The 16-bit down counters 902 and 903 start counting down with an 8 μs clock, and at the same time as the down counting ends, a positive pulse as shown in FIG. 3h is generated at the terminal 459. .Figure 3g is a flip-flop
【表】【table】
【表】
以下、各プログラム処理について順次説明す
る。第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次元マツプの使用される値が
所定の領域より外れた場合は回転数,トルク等の
信号の検出を中断し、その外れた領域より新たに
検出を開始しているので、エンジンの過渡状態に
おける誤修正を防止できるという優れた効果があ
る。[Table] Each program process will be explained in sequence below. FIG. 13 shows a flowchart of the gear interrupt processing routine. Gear interrupts have the highest priority and are processed with the highest priority. Activation of this gear interrupt is performed by the interrupt control unit 6 shown in FIG.
This is done by a crank angle pulse from terminal 444 of 1. Therefore, a gear interrupt occurs every 30 degrees of crank angle, with the top dead center position of #1 cylinder or #4 cylinder being 0 degrees. When activated, the gear interrupt is reset in step 1100 (resetting the flip-flop 302 in FIG. 6), and the crank angle counter section 6 shown in FIG. 4 is reset in step 1200.
3, the CPU 60 reads the current crank position and learns the rotational angular position of the engine. Step 1
In the energization ignition process 300, data is set in the energization ignition control section 68 to perform energization ignition control in accordance with energization ignition control data calculated at step 2140 of the program interrupt described later. Next step 1
In the fixed position processing 400, processing is performed at a determined fixed crank position. FIG. 14 shows a detailed flowchart of the energization ignition processing step 1300. In step 1305, of the two ignition coils, the angle at which to start the down count for starting energization of coil A, determined in step 2140 of the program interrupt described later, is compared with the current crank angle position determined in step 1200, and it is determined that they match. If so, in step 1310 the first
At the same time as setting an initial value to the down counter 900 for energizing coil A shown in FIG. 1, a command for energizing coil A is output. This down counter counts down with a clock signal of 8 .mu.sec, and when it reaches "0", the energization signal of the coil A is set to "0" to start energization. In step 1315, the angle at which to start counting down for ignition of coil A and step 1 are determined.
The current crank angle position determined in step 200 is compared, and if they match, the 11th position is determined in step 1320.
At the same time as the initial value is set in the coil A ignition down counter 902 shown in the figure, a coil A ignition command is output. This down counter 902 counts down with an 8 μsec clock signal and when it reaches "0", stopping the energization of the ignition coil corresponds to ignition, so the coil A energization signal is set to logic "1" and the coil A energization is stopped. Note that steps 1325, 1330, and 13 are also performed for coil B.
35, 1340, energization ignition control is similarly performed. Next, FIG. 15 shows at which rotational angular position the fixed position processing step 1400 is performed. In contrast to the angular position at which the process is effectively performed in the energization ignition processing step 1300, which varies depending on the value calculated at the program interrupt, the fixed position processing step 14
00, processing is performed at a predetermined angular position. At crank angles of 0 degrees and 180 degrees, measure the rotation time required to rotate the crank angle 180 degrees, measure the intake pipe pressure, and generate a program interrupt, and at other angles, complete the process without doing anything. . To explain this process in detail, the rotation angle is determined in step 1410, and when it is 0 degrees or 180 degrees, the rotation angle is determined in step 141.
Proceed to step 1 and measure the 180 degree rotation time. In step 1411, the real-time timer value latched using the timer section 62 in FIG .
Tm=Tp 2 −Tp 1 ...(3). Step 1
In step 413, the value of Tp 2 is transferred to Tp 1 . In step 1414, an A/D converted value of intake pipe pressure is taken in order to prevent intake pulsation. Also, step 141
5, the program interrupt output port of the digital input/output port 64 is set to level "0" and then set to level "1" again to generate a program interrupt signal and start a program interrupt processing routine. Next, FIG. 16 shows a program interrupt processing routine. First, in step 2100, a reset signal is applied to the terminal 442 of the interrupt control section 61 shown in FIG. 6 to reset the flip-flop 301.
The program interrupt request signal terminal 445 is returned to "1". Next, the process advances to step 2111, where the 180 degree rotation time stopped in the gear interrupt processing routine is
Convert to rotation speed N using equation (4). N (rpm) = 10 7 × 3 / Tm (μs) ... (4) In step 2112, the A/D conversion value Vpm of the intake pipe pressure taken in at crank angles of 0 degrees and 180 degrees in the gear interrupt processing routine is calculated. Using formula (5), intake pipe pressure Pm (in mmHg) Pm = A 1 × Vpm + A 2 ... (5) A 1 , A 2 : Convert to conversion coefficient. In step 2120, the signal from the starter switch 31 shown in FIG. conduct. If the starter is not operating, the process proceeds to step 2130 to obtain the final ignition timing θx, and similarly proceeds to step 214.
0, the output value to the energization ignition timing control section 68 is calculated. Here, FIG. 17 shows the relationship between the ignition timing and engine speed at a certain accelerator opening degree. Ignition timing is expressed as the angle before top dead center (・BTDC), and the larger the value, the more advanced it is. The accelerator opening degree α 1 indicates a state close to the fully open accelerator, and θ M1 is the optimum ignition timing (MBT) that maximizes the engine output at the accelerator opening degree α 1 . This optimal ignition timing is the best in terms of torque and fuel consumption. α 2
is a graph when the accelerator opening is small. FIG. 18 shows a two-dimensional map (MBT advance angle map;
Tmap) has the following configuration. The horizontal axis is the engine speed N, and in the low speed range below 1000r.pm, the increment of the engine speed N is small with respect to the column number I haven't gotten used to it. The vertical axis of Tmap is the intake pipe pressure Pm, which is proportional to the row number Y corresponding to the vertical axis. This Tmap is constantly rewritten by the feedback learning process described below.
The ignition timing is the lowest for fuel consumption from maximum torque. First, the details of the ignition timing calculation in step 2130 will be explained with reference to FIG. Step 2131
Now convert from rotation speed N to column number X according to equation (6). Here, Nxi is the maximum rotation number specified on the map horizontal axis that does not exceed N, Xi is an integer column number corresponding to Nxi, and the decimal point part of Indicates the number of rotations. Further, in step 2132, the intake pipe pressure Pm is converted into the row number Y according to equation (7). Here, Pm Y i is the intake pipe pressure specified on the maximum vertical axis of the map that does not exceed Pm, Yi is the line number corresponding to Pm Y i and is an integer, Y
The decimal point indicates the pressure in the middle of the intake pipe pressure specified on the vertical axis of the map. In step 2133, MBT is set corresponding to X and Y.
Find the MBT advance angle θmap from the advance angle map (Tmap) by interpolating four points using equation (8). In step 2134, the delay in the ignition signal caused by the igniter or the like is converted into a crank angle, which is defined as the ignition delay angle (θ DLY ). The relational expression is as shown in equation (9). θ DLY = t DLY × 180 (degrees CA) / Tm (μs) (9) t DLY : Delay time of ignition signal by igniter (40 to 100 μs) Tm: 180 degree rotation time (μs) Next, in step 2135, MBT feedback is Take control. First, control of MBT feedback will be explained. In this example, optimum ignition timing (MBT)
If the vehicle is operated in the vicinity of
Point ignition timing (base, advance, retard)
The engine speed is compared to control the engine speed to bring it closer to the optimal ignition timing. Here, among the three ignition timing points, the base is the ignition timing determined in step 2133, and the ignition timing has a difference of Δθ (usually 2° to 3°).
Advance is when the angle is advanced by ゜), and retard is when it is retarded by Δθ. The use of base, advance, retard, and lead angle values is called dither. At each of these three points, the rotation speed when operating at a constant ignition (for example, 40 to 60 ignitions) is N B
Let A , NAD , NRT (expressed in number of clock pulses). That is, a/N BA , a/N AD , a/
N RT (a is a constant) is the rotation speed. For example, the second
When the target ignition timing θ 0 is on the retarded side of the optimum ignition timing (MBT) that can maximize the engine torque, as in state I in Figure 0, N AD <N BA.
<N RT holds true, and it becomes necessary to control the ignition timing toward the advance side. Also, like the state
When existing on the advance side of MBT, N RT <N BA
<N AD Since the relationship holds true, it becomes necessary to control to the retarded side. One cycle of base ignition timing, advance ignition timing, and retard ignition timing each having a fixed number of ignitions is one feedback cycle. A part of the MBT advance angle map in Figure 18 is shown in Figure 21.
As shown in the figure. For example, a certain operating condition (2000r.pm,
400mmHg) point rotation speed from 1750r.pm to 2250r.pm, intake pipe pressure
Defined as 377.5mmHg to 422.5mmHg. In this embodiment, it is assumed that the operating state during one feedback period begins at point A and ends at point B. During this time, eight feedback areas (revolutions
1250r.pm to 2750r.pm, intake pipe pressure
If there is a change in operating conditions within the range of 332.5mmHg to 467.5mmHg), it is considered steady. In addition, if the operating state (point C) deviates from the feedback area even once, it is determined to be unsteady. , intake pipe pressure
232.5mmHg to 377.5mmHg) is the new steady range and the control is restarted from the beginning (base). If the operating condition is steady during one feedback cycle,
The feedback area that is operated the most (most frequently used) is calculated, and the ignition timing of these eight areas is advanced or retarded to be corrected during feedback, which will be described later. Also, if the frequency of use of the most frequently operated feedback area is not greater than 60% in one feedback cycle, no correction will be made.
The optimum ignition timing for the maximum shaft output of a certain engine with respect to the rotational speed and intake pipe pressure has the characteristics as shown in Fig. 22, and there are 8 points around the ignition timing of the determined representative point E (for example, 2000r in Fig. 23). pm, 400mmHg
Assuming that is the representative point, a 1 (1500r.pm, 355mmHg), a 2 (1500r.p,
m, 400mmHg), A 3 (1500r.pm), A 4 (2000r.p.
m, 355mmHg), a 5 (2000r.pm, 445mmHg),
a 6 (2500r.pm, 355mmHg), a 7 (2500r.pm,
400mmHg), a 8 (2500r.pm, 445mmHg) 8 each
point} is modified and brought closer using equation (10). In this way, the ignition timing for each operating state can be quickly corrected to the optimum value. In addition, in the idle range, misfires may occur if the ignition timing is controlled to the optimal level, and in the high load range, knocking may occur, which may have a negative effect on the engine, or the knocking noise may cause noise to the driver and make him or her feel uncomfortable. , feedback control is not performed in these areas. Next, a detailed explanation of step 2135 of MBT feedback in FIG. 19 is shown in FIG. In step 2141, the column number X corresponding to the rotational speed N and the intake pipe pressure are used to determine which feedback area corresponds to the map in FIG. 18, as explained in FIG. 21.
Calculate the line number Y corresponding to Pm. Step 2
142, step 42 of the main routine, which will be described later.
If the water temperature determined by 00 is higher than 70°C, proceed to step 2143; if it is low, proceed to step 2180. In step 2143, it is determined whether the area of the map determined in step 2141 is within the feedback range. For example, if the advance angle is set to match MBT, it may cause a misfire in the idle range, and in the high load range, the engine may enter the knock zone and have a negative impact on the engine. In order to prevent this, first
Prepare a feedback judgment table with the same increments as the map in Figure 8, and set the areas for feedback to 0 and the areas for non-feedback to a number other than 0. Feedback will be performed in areas with 0, and feedback will be stopped in areas that are not 0. controlled to do so. In step 2143, it is determined whether or not the X and Y areas found in step 2141 are feedback areas. If they are, the process branches to step 2144, and if not, the process branches to step 2180. Step 2144 is a step for determining whether the state is stationary or unsteady as described above. If it is determined that it is within the steady range as explained in FIG. 21, steps 2145 to 2148 are skipped and the process moves to step 2149. If it is determined to be unsteady, steps 2145 to 214 are performed.
It is initialized to 8. In step 2145, the values of column number X and row number Y at that time are transferred to Xi and Yi, respectively. From next time onwards, Xi and Yi will play a central role in determining whether the situation is steady or unsteady. In step 2146, the number of ignitions is counted. Counter n1 is set to 0, and in step 2147, the dither flag F DSR is set.
F DSR = -1, dither advance angle θ DSR is 0° CA
(θ DSR = 0), and control starts again from the base ignition timing. In step 2148, the timer count values N BA , N AD , and N RT for base, advance, and retard are set to 0, respectively.
Next, in step 2149, step 2, which will be described later, is executed.
In order to detect the most frequently used region of the two-dimensional map during one feedback period at step 190,
Count the number of times X and Y are used.
Counting is around 8 around Xi and Yi.
Area {(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 )}. In steps 2180 to 2182, which are branched from steps 2142 and 2143, initialization is performed based on control, as in steps 2146 to 2148. Then, this MBT feedback processing is ended without performing any feedback. Next, steps after step 2149 are shown in FIG.
In step 2150, it is determined whether the current state is base, advance, or retard, and the clock pulses in each state are counted. First, when F DSR =-1, that is, base, the process goes to step 2151; when F DSR = 0, that is, advance, go to step 2161 ;
1, that is, when it is in retard, step 2171
Proceed to. First, the base from step 2151 will be explained. Add the 180° rotation time Tm and the base K ignition timer count value N BA to N BA . In step 2152, the dither advance angle is set to 0°.
Set CA (θ DSR = 0) and step 2153
The counter counts up until the specified number of ignitions K is reached. In other words, the formula n 1 =n 1 +1 is executed. This is for K ignitions (for example, 40 to 60 ignitions)
repeat. In step 2154, n 1 =K, that is,
Once the clock pulses for K ignitions have been counted, the counter value is returned to 0 in step 2155, and in step 2156, F DSR is set to 0 (advance) in order to transfer control to the next advance, and the dither advance angle θ DSR is set. In order to advance the angle by Δθ, set θ DSR =Δθ. In other cases, steps 2155 and 2156 are skipped. If it is determined in step 2150 that F DSR =0, the process advances to step 2161. Step 216
In step 1, as in step 2151, the 180° rotation time Tm is added to the advance K ignition timer count value N AD and set to N AD again. Step 2162
Now, in order to advance the dither advance angle by Δθ, θ DS
Set R = △θ. In step 2163, as in step 2153, n1 is counted up,
In step 2164, it is determined whether n 1 =K, that is, clock pulses for K ignitions have been counted.
In step 2165, the counter value is returned to 0.
In step 2166, F DSR is set to 1 (retard) in order to transfer control to the next retard state, and θ DSR =-Δθ is set to retard the dither advance angle θ DSR by Δθ. In other cases, the processing in steps 2165 and 2166 is skipped. If the retard is F DSR =1 in step 2150, the process advances to step 2171. In step 2171, as in step 2151, the 180° rotation time Tm
is added to the retard K ignition timer count value N RT and set as N RT . In step 2172, θ DSR =-Δθ is set to retard the dither advance angle by Δθ. In step 2173, step 21
63, count up n1 . If n 1 =K, that is, clock pulses for K ignitions have been counted in step 2174, the counter value is returned to 0 in step 2175. Step 2176
Now, in order to transfer control to the next base state, F DSR
= -1 (base) and dither advance angle θ
DSR is also set to 0. At other times, step 2
Processes 175 and 2176 are skipped. The process then proceeds to step 2190 in FIG. 26, and calculates the area of the two-dimensional map that is most frequently used in one feedback cycle (base, advance, retard) based on step 2149, and sets the column number to X M . Let the line number be YM . Step 219
In step 1, it is determined whether this most frequently used area exists for, for example, 60% or more of one feedback cycle, and if it does exist, the process advances to step 2192.
If it is less than 60%, proceed to step 2198 and do not make any corrections. For example, as in state I in Fig. 20, when the ignition timing is on the retarded side of the optimum ignition timing that can maximize the torque in the engine state at that time, and when there is no change in the engine operating state, As described above, when ignition is first performed with dither advance angle θ DSR = 0, the number of revolutions per K ignition number is a/N BA (where a is a constant), and then the ignition timing on the advance side from the base is The rotation speed when ignited at θ DSR = Δθ is a/N A
D , then the retard side ignition timing θ DSR = -Δ
The rotation speed when igniting at θ is a/N RT , and comparing the rotation speeds, a/N RT < a/N BA < a/N AD
In other words, N AD < N BA < N RT . Therefore, N AD <N
When the relationship BA <N RT is established, this is determined in step 2192, and the process proceeds to step 2193, where the corrected advance angle T=ΔT (for example, 1° to 2° C.A.) is established. Note that if N AD <N BA <N RT does not hold, the process advances to step 2194. For example, when the ignition timing is advanced from the optimum ignition timing that can maximize torque, as in the situation shown in Fig. 20, conversely, a/N AD < a/N BA < a/N RT , that is, N RT <N
BA < N AD . Therefore, when N RT <N BA <N AD is established, it is determined in step 2194 and the process proceeds to step 2195, where the corrected advance angle T is set to -ΔT.
If the relationships N AD < N BA < N RT and N RT < N BA < N AD do not hold, the process advances to step 2198 and no correction is made. N AD <N BA <N RT or N RT <N BA <
When the relationship N AD is established, step 2196
Then, the X M and Y M lead angle values of the most frequently used map area obtained in step 2190 are set as N.
When AD <N BA <N RT , advance the angle by ΔT, and when N RT <N BA
<N AD, as shown in Figure 18, to retard ΔT.
Rewrite Tmap. In step 2197, eight points around this area (points a1 to a in FIG. 23) are corrected as follows. Amount of correction for a 1 ΔT 1 =0.15×ΔT a 2 〃 ΔT 2 =0.10×ΔT a 3 〃 ΔT 3 =0.05×ΔT a 4 〃 ΔT 4 =0.20×ΔT a 5 〃 ΔT 5 =0.10×ΔT a 6 〃 ΔT 6 =0.40×ΔT a 7 〃 ΔT 7 =0.20×ΔT a 8 〃 ΔT 8 =0.15×ΔT Next, in step 2198, each clock pulse number (N BA , N AD , N RT ) is set to 0. This completes the MBT feedback calculation in step 2135 in FIG. And step 2 in Figure 19
At step 136, the final ignition timing θx is calculated using equation (11). θx = θmap + θ DLY + θ DSR ...(11) The calculation of the ignition timing is completed above, and in step 2140 of Fig. 16, the coil energization time T Calculate the energization angle. Also, find the energization start angle θ ON from the final ignition timing θx,
For the coils A and B, a down count value of the energization start crank angle and a down count value of the ignition crank angle are determined and used for the energization and ignition processing in step 1300 of the gear interrupt routine described above.
The steps when the starter is activated are also processed in a similar manner. This completes the program interrupt processing. FIG. 27 shows a flowchart of the 8ms interrupt processing routine. At step 3100, a reset signal is applied to the terminal 443 of the interrupt control section 61 shown in FIG. 6 to reset the flip-flop 300.
Return the 8ms interrupt request signal terminal 446 to "1". In step 3110, analog input port 6
5, and calculate the coil energization time T ON using the energization time characteristics shown in FIG. 29. FIG. 28 shows a flowchart of the main routine. In step 4100, initialization processing is performed.
Clears the RAM area, inputs various initial parameters, and enables interrupts. Step 4200 is a process of calculating an A/D converted value of water temperature. This step is executed whenever there is no interrupt processing. As explained in detail above, the present invention identifies whether the rotational speed, torque, etc. have changed due to external factors, or whether the rotational speed, torque, etc. have changed due to changes in the ignition timing at at least two different points. This has the excellent effect of correcting the target ignition timing to the optimum ignition timing, maximizing engine output, and minimizing fuel consumption. Furthermore, if the most frequently used area of the 2D map is used more than a predetermined percentage, the most frequently used area or its vicinity is corrected, so the 2D map's used area can be expanded over a wide range. This has an excellent effect in that the two-dimensional map can be corrected with high precision even if the map is jagged. Furthermore, according to the present invention, when the values used in the two-dimensional map deviate from a predetermined area, detection of signals such as rotation speed and torque is interrupted, and new detection is started from the deviated area. This has the excellent effect of preventing erroneous corrections during engine transient conditions.
第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。
Fig. 1 is a block diagram of a control system showing an embodiment of the present invention, Fig. 2 is a block diagram of a control computer in Fig. 1, and Figs. 3 and 8 are diagrams for explaining each part of Fig. 2. The waveform diagrams, Figures 4 to 7, and Figures 9 to 12 are electrical circuit diagrams of various parts in Figure 2, and Figure 1.
Figures 3 to 16, Figure 19, Figure 24 to 2
Figure 8 is a flowchart showing the arithmetic processing procedure of the control computer shown in Figure 1, Figures 17 and 20.
22 and 29 are characteristic diagrams for explaining the operation of the present invention, and FIGS. 18, 21, and 23 are two-dimensional map schematic diagrams for explaining the operation of the present invention. 1... Engine, 2... Water temperature sensor, 3... Starter, 4... Ignition coil, 5... Rotation sensor,
6...Control computer, 7...Igniter, 8
...Pressure sensor, 60 ...Central processing unit, 7
1...Nonvolatile RAM that makes up a two-dimensional map.
Claims (1)
の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次元マツプの値が所定の領域より外れた
場合は前記運転状態の信号の検出を中断しその外
れた領域より新たに検出を開始することを特徴と
する点火時期制御方法。[Claims] 1. Construct a two-dimensional map for calculating the target ignition timing based on two states of the engine, a first operating state and a second operating state, and at least two points near the target ignition timing and different from each other. select an ignition timing, operate the engine alternately for a predetermined period at at least two selected ignition timings, and generate a signal of the engine rotational speed when operating at each of these ignition timings;
Torque signals or operating state signals related thereto are detected, and at least three of the operating state signals when operating at the at least two ignition timing points are operated continuously. By comparing the signals, it is determined whether the target ignition timing is ahead or behind the optimal ignition timing that maximizes the engine output, and the value of the two-dimensional map is determined according to the result of this determination. An ignition timing control method characterized by correcting. 2. The value of the two-dimensional map is corrected when the frequency of use of the most frequently used area of the two-dimensional map is at least a predetermined percentage during the period for determining whether the ignition timing is at the optimum ignition timing. In this case, the above 2
2. The ignition timing control method according to claim 1, wherein the most frequently used region of the dimensional map or its vicinity is corrected. 3. According to claim 2, the amount of correction in the vicinity of the most frequently used area in the two-dimensional map is smaller than that of the most frequently used area and is not uniform. ignition timing control method. 4. Constructing a two-dimensional map for calculating a target ignition timing based on two states, a first operating state and a second operating state, of the engine, and selecting at least two ignition timing points near the target ignition timing and different from each other; The engine is operated alternately for a predetermined period at the selected at least two ignition timing points, and the engine rotation speed signal, torque signal, or operating state related to these when the engine is operated at each of these ignition timing points. The target ignition timing is determined by detecting a signal of the operating state at at least three consecutive points among the signals of the operating state when operating at the at least two points of ignition timing. It is determined whether the ignition timing is on the advanced or delayed side of the optimal ignition timing that maximizes the engine output, and the most When the frequency of use of the frequently used area is equal to or higher than a predetermined ratio, the most frequently used area of the two-dimensional map or its vicinity is modified, and the target ignition timing and at least two ignition timings are further adjusted. An ignition timing control method characterized in that when the corresponding value of the two-dimensional map deviates from a predetermined range, detection of the operating state signal is interrupted and new detection is started from the deviated range.
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 (en) | 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 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS59188057A (en) * | 1983-04-08 | 1984-10-25 | Toyota Motor Corp | Method and device for controlling air-fuel ratio and ignition timing in internal-combustion engine |
-
1980
- 1980-02-01 JP JP1178580A patent/JPS56110564A/en 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 (en) | ||
| JPS6248066B2 (en) | ||
| JPH0350100B2 (en) | ||
| US4873958A (en) | Engine ignition timing control system | |
| JPS61272470A (en) | Ignition timing controlling method for internal-combustion engine | |
| JPH034746B2 (en) | ||
| JP4375685B2 (en) | Engine control device | |
| JPS61275572A (en) | Ignition timing control method of internal combustion engine | |
| JPS6126082B2 (en) | ||
| JPS5833394B2 (en) | Ignition system for internal combustion engines | |
| JPS6231189B2 (en) | ||
| US5093793A (en) | Method of transferring signals within electronic control system for internal combustion engines | |
| JPS6248065B2 (en) | ||
| JPH0223268A (en) | Ignition timing control device for internal combustion engine | |
| US4552110A (en) | Electronic ignition control system | |
| US5193516A (en) | Method of and device for controlling an internal combustion engine | |
| JPH0826838B2 (en) | Ignition timing control method for internal combustion engine | |
| JP2625763B2 (en) | Ignition timing control device for internal combustion engine | |
| JP2627153B2 (en) | Ignition timing control device | |
| JP3480145B2 (en) | Control device for internal combustion engine | |
| JPH0784861B2 (en) | Ignition timing control method for internal combustion engine | |
| JPH067083B2 (en) | Intake air amount detector for internal combustion engine |