日曜日, 7月 10, 2016

すべてはBOMになる。ハードウエアエンジニアに大切なこと。

BOMとは、いわゆる部品表のことだ。

ハードウエアエンジニアの最重要アウトプットとは何か。
この問いにはそれぞれ色々な答えがあると思う。
仕様書、回路図、図面、あるいはCAD上の構想図かもしれない。
だが僕は、BOMこそが最も大切なアウトプットだと思う。

製造も、購買も、営業も、すべてはBOMをベースに動く。
BOMはあらゆることを管理することができる。
価格(コスト)、数量、リードタイム、などなど、
リストの項目に何を載せるかは、設計者のセンスだ。

マスターとなるBOMに網羅的に情報を載せることで、
あらゆることが検索、フィルタリング、可視化できるようになるのだ。
製品に対して横断的に分析するにはまずBOMから始まるといっていい。

この時、重要なことがある。

  1. できるかぎりMECE(漏れなく重複なく)にリストを作ること
  2. 極力機械的に自動的に生成すること(手打ちしない)
  3. それと徹底した一元管理だ。

ここでいう一元管理とは、
マスターとなる情報に仕上げることを徹底的に意識し、
複数のリストを作らないことである。
止むを得ず複数のリストになってしまう場合は
リレーショナルデータベースとして機能するように配慮しなければ、実用的なBOMとはならない。

BOMはいくらでも拡張できる。
設計にBOMを徹底的に生かすと、設計の品位は圧倒的に卓越したものとなる。
僕はここで仕様・構想段階の、上流でのBOMの活用を提案する。
一方エンジニアは往々にしてBOMは下流に対して作るものという思い込みがある。
僕の主張は、上流、主に検討段階でBOMがものすごく役に立つ、
だから極力、上流の段階でBOMに落とし込み、開発中も常にメンテしろ
ということだ。

僕は機械設計技師なのでメカトロ系を例にして説明する。

設計で使うBOMそのものはCSVでもエクセルでもCAD組み込みの表でもいい。
リッチなリレーショナルデータベースを使っても良い。
僕はエクセルで十分に満足している。スプレッドシートで十分だ。
検索、ソート、フィルタリング、ができ、合計が分かればそれでいい。
ポイントは合計だ。エクセルでいうところのSUM()さえ使えればいい。

BOMの項目に設計パラメタを入れるとき、重要なことがある。
足し算に意味のある項目を入れることだ。
大学で微分積分やら複雑な代数学を学んだ技術者に取って
たかが足し算にどれほどの意味があるのか、疑問に思うかもしれない。
だが複雑かつ非線形でマルチパラメタな設計を
足し算に落とし込むその過程こそが
本質を見極める上で、最も大切な思考過程であり、
大学で学んだ数学や物理の知識を駆使せざるをえない、
クリエイティブな工程だ。

あらゆる最適化テクニックにおいて、パラメタを削って式を閉じる際に
評価関数を立てるが、
加重和、要するに線形結合の形をとる場合が多々有る。
また大学で線形代数を学ぶ意味の一面も、ここにあると言っていい。
本質となるパラメタは、往々にして足し算で表現できるのだ。
大学で学んだ各種数学は、そのパラメタにたどり着くために重要となる。
幾何学、写像、変換を駆使すれば、たいていのパラメタは
足し算可能なパラメタに変換できるのだ。

まず、一般的にBOMに乗る項目を眺めていこう。
コスト、利益、価格など、貨幣価値に換算できるものはもちろんBOMに乗る。
議論の余地もなくこれらは足し算可能な項目だから、
BOMに乗せるのが合理的だ。
リードタイムや納期、工期などの時間の変数もBOMに載せることは多い。
この場合、並列化できないものを抽出できるようにBOMを組み、
ボトルネックや積み上げ工期をフィルタリングでアウトプットできるように組む必要がある。
設計の面では、重量や体積は足し算可能な、BOMに乗せても自然なパラメタだ。

もう少し設計や開発に踏み込んでBOMを眺めてみよう。
僕は機械設計技術者なので例は機械関係となる。

まず、剛性はどうだろう。
技術者なら分かると思うが、足し算が成り立つパラメタではない。
部品が増えれば増えるほど、剛性は減るのだ。剛性をBOMに盛り込むのは不自然だ。
また、剛性は基準部品の基準部位に対してどの部品が撓むのか
と言う情報にも辿り着けなくてはいけない。
そこでまず、数学を使って剛性を足し算可能なパラメタに変換しよう。
とは言ってもさして難しい話ではなく、
逆数を取ってコンプライアンス(柔らかさ)で考えるのだ。
電気回路でもよくあるが、逆数を取れば足し算可能になるパラメータは数多い。
インピーダンス(フローとエフォートの割り算)が関係してくる場面だ。
コンプライアンス、要するに柔らかさは足し算可能なパラメタだ。
だから部品表にコンプライアンスの項目を追加し、積算可能な形にすることは意味のあることだ。
次は、製品の中で、どこからどこまでの剛性に興味があるかを抽出する必要がある。
この時、メカループが定義され、リストの項目に明示してあり、
メカループ毎にコンプライアンスが抽出できるようになっている必要がある。
ここまで来たら、フィルタ一発でコンプライアンスを積み上げ計算し、その逆数を取るだけで剛性が一発計算できる環境にたどり着けるというわけだ。

強度もまた足し算していいパラメタでは、ない。
最弱リンク仮説に基づくのでリストに対して意味のある計算はSUM()ではなくMIN()だ。
ちょっとBOM化するのは少し魅力がないが、乗せておいて損はない。

MTBFの逆数は非常に重要な、BOMに載せるべきパラメタの一つだ。
MTBFそのものは足し算に意味は無い。

誤差はどうだろう。
これまた単純に和を取っていいものでは無い。
だがこれもメカループでのフィルタリングができるならば
数学で和に変換できる。
標準偏差の次元では足し算できないが、分散は足し算できるのである。
これを分散の加法性と言う。
分散の加法性は中心極限定理から説明することもできるし、
分散が2次のモーメント量という点からエネルギーに類似したパラメタとして
足し算が可能であるという説明もできる。
BOMに分散を盛り込み、フィルタ積算した値の平方根を取れば
それがユニットの誤差推定値となりうるのだ。

強度、剛性、誤差を例として挙げたがその他幾何学的なこと、要するに寸法関係も
ちゃんとフィルタで抽出できれば意味のある演算と成り得る。
メカ関係の設計パラメタをマスターBOMで管理する際に重要なことは
とにかく興味あることに対してメカループが定義され、
抽出可能な状況になっていることだ。
何がメカループなのかを考え抜くことそのものが
設計であると僕は思っている。

もっと一般化した話をすると
そもそもあらゆる機械は、
基本機能が関数の入出力としてリニアに定義されるべきなのだ。
理由は機械とは基本的にエネルギー変換機構として働く場合が多く
その場合、基本機能がリニアな、線形な関数として入出力を
何らか定義することができる。
これは品質工学的な見地だ。
ここまでたどり着くには対象となる機械の機能とは何かについて
とことん考え抜くことになるのだが、結局はエネルギー変換に行き着く。
すると、その次元だとスカラー足し算可能な境地にたどり着くのだ。
そこまで行くと後は損失関数という概念を使うことで、
すべての機能を金額換算できてしまう。
すると、すべてはBOMでコントロール可能だということだ。

微積分やら各種の変換、写像、線形化、次元削減、
様々なテクニックを大学で学んだと思うがそれらはすべて
現象を足し算に落とし込むための道しるべと言っても過言ではない。
僕は日本の学校教育は良くできていると思う。

まとめる。

  • 複雑な現象は工学的テクニックにより、足し算に落とし込める。
  • 足し算に落とし込めばBOMで一元管理できる。
  • BOMで一元管理すれば、検索、フィルタリング、可視化などの横断的分析が圧倒的に捗る
  • 複雑な現象は大抵はエネルギー変換に落とし込んで足し算で管理できるばかりか
  • 損失関数により金額換算できてしまうのでBOMに落とし込むことは自然である。
  • だから開発の上流で開発用のBOMをさっさと作り込むことこそが究極のフロントローディング開発となる。
  • これらの見地はハードウエア開発で特に有効である。


以上、BOMの重要性でした。



0 件のコメント: