今回は懺悔。そのためには自省。私のルーツは制御理論。そして,制御理論のルーツは機械工学,電気工学,そして数学。モットーは,メカニズムも電子回路も数式で書けば皆同じ。それで横断的と吹聴してきた。やってきたのはメカニズムのソフト化。バイメタルやリンクカム機構など人類の偉大な発明であるメカニズムを数式化してマイコン上のソフトウエアで表現してきた。もちろん,メカニズムよりは精密に高速に,そして大規模に動作する。

 これが電子制御と呼ばれる私の糧である。ベルヌーイの法則を起点とするキャブレターは単なる表引き。精緻な機構であるLSD(Limited Slip Deferential)はクラッチ制御。プーリーや油圧で駆動されていた複雑なメカニズムをモータ制御に堕落させた犯人の一人である。

 蒸気機関車には溢れるばかりのパワーを感じた。新幹線はその5倍以上の馬力であるが,ジェントルなインバータ制御にパワーは隠蔽されている。自動車の運転でいえば,ダブルクラッチも中吹しも,そしてヒールアンドトウもコンピュータが自動で操作してくれる。便利と言えば便利であるが,プロの技を無用にしてしまった。電子化は運転のプロを堕落させただけでなく,ものづくりのプロも堕落させた。メカの改良ではなく,ソフトの改良で差別化する時代になった。

 ソフトとは言語である。つまり,言葉である。メカニズムから言葉の言い回しにエンジニアの仕事を変えてしまった.たとえば,ガソリンエンジンの燃料噴射量の制御なら,

(1)空気量を測定せよ
(2)測定した空気量を最適空燃比で割り算をして燃料噴射量を求めよ
(3)求めた燃料噴射量に基づいて噴射せよ

となる。言葉の羅列がソフトウエア。微妙な言い回しの間違いがバグとなる。これがエンジン制御で数十万行,高級車全体では1千万行程度となる。

 このコラムがA4で1枚程度。行数にして40行弱。それでは問題です。

(1)このコラムにバグ(言い間違い)がいくつあるでしょう?
(2)このコラムをまとめて書籍にすると約1万行。それではバグはいくらぐらいになるでしょう?
(3)10万行は書籍10冊分.バグは全部でいくつ程度になるでしょう?

 私を含め完璧な人間はいない。そして,数十万行のソフトは読むだけで大変。ましてバグ無しは期待できない。そこで,ソフトを理解しやすくする必要がある。一つはオブジェクト指向のモデリング言語であるUMLや信号処理システム開発支援ツール「Simulink」(米The MathWorks社)などで使われているファンクションブロック化であろう。これは数学モデル化と同一で効果的である。しかし,ソフト屋の中には数学というだけで身の毛が逆立つ人がいる。制御屋も,数学嫌いな人がいる。明らかに数学モデル化だけでは問題が解決しない。

 そこで自省である。制御屋がやってきたことはメカや電子回路を数式モデル化し,その数式モデルに基づいた制御アルゴリズム導出である。これが分かりにくいということなら,逆にも挑戦すべきである。つまり,導出された数式をメカや電子回路で実現するということである。電子制御が精緻なら,それに対応するメカによる制御も精緻となる。それを現状のメカと比べれば,電子制御の有難さも,バグも明らかになるだろう。

 考えてみれば,日本の自動車屋は20万円のインドTata Motors社の「Nano」に対応していかなくてはならない。同じ視点では適わない。明らかに,高度な電子制御の実績をベースにしなければならない。それなら,ソフトウエアのメカ化を視野に入れなければならない。

 電子制御はメカで行ってきたことをソフト化してきた。21世紀になって大きな転換点を迎えているようだ。それが,ソフトのメカ化である。