My BLOG
TopPage
18. MBDの原点となった仕事 if Xint<Kmin then Xint=Kmin
わたしが新入社員1年目、最初のとんでもない仕事(前述:並列処理コンピュータの開発)が終わった1984年2月ころだったろうか、次の開発テーマをいただいた。
「油圧シリンダを用いた、バイワイヤ式スロットルコントロールシステムの開発」

休日に本屋に行って、制御技術の実用書を買った。そこにはベーシック言語を使って、プラントモデルと制御モデルをつかった演習事例が書かれてあった。これがつかえる!と思った。

もし、この時のテーマが、電気モータであったならば、こんな苦労もなく、MBDのありがたみを感じる機会もなかったであろう。 上司からは、MBDを使えとは言われてないので、その意図まではなかったものと思う。
瓢箪からとんでもないコマが出てきたテーマであった。これが私の人生の方向性を決めることになる。一生のテーマになるとはねえ。
後日談:
この自慢の安定的な制御、これがその後とんでもない事件を起こした。1984年初夏にはシステム完成し、夏からはさまざまなテストコース、一般道での走行テストをした、夏には首都高速も走った。
スロットルの開け方を、定常特性でも過渡特性でも自由に扱えるようにして、意のままの走り感を作り上げていった、おまけで、クルーズコントロールシステムにまで仕上げた。その年の晩秋、とても寒い夜だった。テストコースでの仕事を終えようとしていた、最後、もう一周山岳サーキット走行してみるな、と先輩がドライビング、私が助手席で計測解析。
あるきついコーナーを曲がり始めた時、それは起こった! アクセルを全閉にしているにも関わらず、アクセル全開でエンジン回転が吹き上がり車は唸って加速を始めた! あわやコースアウト、A級ライセンスを持っていた先輩は、車のキーを切って止めてくださった。普通のドライバーでは、その適切な対応は即座には無理だったろう。ガードレールはあるが、その向こうは崖だった。アクセル全開で突き進めば落ちていた。
血の気が引いた。
翌日、解析してわかったことは、
寒い夜、制御モデルの積分項が、 作動油が粘性上がって偏差収束しない事態でマイナス方向に積分され続け限界の最小値に至り、符号反転して暴走に至ったと判明。インテジャー計算では、マイナスの限界を超えると、反転してプラスの最大値となるのだ。春、夏、には粘性低く、いくら走行テストしても、目標収束が早いので積分値はそこまで至らない問題であった。開発後のなかで一番寒い夜、それは起こった。
わたしは、車の開発における、プログラムの怖さと責任を 思い知った。
これを防ぐのは、たった1行のプログラム追加でよかったのだが、1行を書き忘れて、死にかけたのだ。
if Xint<Kmin then Xint=Kmin
〜 ミスター・モデルベース開発 と呼ばれた男の独言 〜
ヘンジニア