文系が理系職場で学んだことっていうはなし。


文系だけど開発
これまで幾度か書いてきたが、自分は文系(事務系)入社ながら理系職場に配属された。しかも生産職場ではなく、どっぷりさまざまな検討をしていく必要のある開発職場。開発の前線でやってきた中で「あー仕事ってこういうことが大事なんだな」と感じたところを備忘がてら記載しておこうと思う。

●●
理系仕事の特徴
理系に限った話かは分からないが、開発職場にいたからこそ身に着いたのだろうなと思える考え方を列記してみようと思う。

  • ファクターと感度への分解
  • 切り分け評価
  • 伝達関数

パッと思いつくところでは上記の3つ。どういうことなのか、それぞれの詳細を下記する。

●●●
ファクターと感度への分解
開発となるととにかく何が起こるのか、その原理さえも不明なことがとにかく沢山ある。その際、闇雲に実験計画を立てるのではなく、原理モデルを(仮説でもいいから)立て、既存の式があればそれを使ってどういうパラメーターが最終結果にどの程度影響するのか?を見ていくというプロセスを経る。個人的にいいなと思っているのは、"計算式"という形で表現している点。高校時代、数学は200点満点で3点とか取ってしまう程にダメダメな人間であり、"計算式"というモノに余り肯定的なイメージは持っていなかった(=苦手意識があった)のだが、開発職場で仕事をしていく中でその素晴らしさを心から感じられるようになった。文系にはとっつきにくいイメージはあるが、"計算式"というものを身近に感じて、使いこなせるようになるとモノゴトの見方がガラッと変わると思う。

では具体的にどのように計算式を見ているのか?その辺を少し記載してみようと思う。例として熱伝達率で見てみる。

Wikipediaによると、熱伝達は以下のような式で表される。

熱伝達率h は次で定義される:
f:id:mken123:20170901005235p:plain
ここで

  • Q :熱移動量 (W) 
  • J :熱流束密度 (W/m2) 
  • A :伝熱面積 (m2) 
  • Tw :物体表面の温度 (K) 
  • Ta :流体の温度 (K)、ただしTw > Taとする。 

である。

 
こうした式が出てきた時に最初に見るのはそれぞれのアルファベット(項)の意味。
「ふむふむ。hは熱伝達率、Qは熱移動量、Aが伝熱面積、Twが物体表面の温度、Taが流体の温度なんだな。Tw=表面温度っていうのは熱を持っていかれる側のことで、Ta:=流体の温度ってのは熱を持っていく媒介者の温度のことね。じゃあ(Tw-Ta)ってのは物体と媒体の温度差を指しているということか。」

その次に見るのは関係性。
「熱移動量 Q を面積 A と温度差 (Tw-Ta) の掛け算で割ったのが熱伝達率 h か。つまりこれは1平方メートル当たりの温度差を実際の熱移動量で割り算したのが熱伝達率ということか。」

最後に影響と対策ポイントを見る。
「熱伝達率 h を上げるには分子の Q を大きくするか、分母 の A (Tw-TA) を小さくするかしかないのね。熱移動量 Q はどちらかというと他の要因からの結果だからいじりにくいし、A は単位換算しているだけだからいじれない。であれば 温度差 (Tw-Ta) を変える他ない。表面温度 Tw を上げるか、流体温度 Ta を下げるかすれば熱伝達率はあがるということね。」

こんな感じで事象の原理モデルを計算式から読み解き、どこをどうコントロールすれば最終結果をコントロールできるのか?の方針を決めたりしている。また、今回の式では倍数等が出てこなかったが、ここに倍数や乗数が出てくれば当然そのパラメータが最終結果に及ぼす影響が大きいので優先的に対策が打たれる場所になっていく。

ちなみに、実際の設計検討上では熱伝達率 h は使う材質によってほぼ決まってしまうので『熱移動量 Q = 熱伝達率 h × 面積 A × 温度差 Tw-Ta』という形に式変換して使う場合が多い。熱移動量 Q を抑えるのに接地面積 A を小さくしたり、温度差 Tw-Ta をなるべく小さくしたりするという形の方が一般的ではあるのを補記しておく。

●●●●
切り分け評価
2つ目はこれかな。これは特別理系職場だからという訳ではないのかも知れないが、つまるところ要因分析実験手法の話。主に何か想定外の事象が起こった際に特定パラメーターのみを変更して他の条件は固定して実験を行うということをする。上記のような理論モデルの確認時や、理論モデルそのものを作っていく時にも行われる。

具体例を挙げるとこんな感じ。先の熱伝達を例にしてみる。
「設計して実験してみたらなぜか熱移動量 Q が小さい。原因を探りたい。3Dモデルでの解析上では所望の温度 Q になるはずなので、材質が所望の熱伝達率 h ではないのかもしれない。同じ設計で材質を変えてみよう。材質変更にはモノづくりのための金も時間もかかるから、並行して温度差 Tw-Ta も見ておこう。同じ設計&材質で流体の温度 Tw だけを低くいじってみたら発熱 Q がどの程度変化するか見てみる。これであまり変わらないようなら組立や面粗さの問題で接地面積 A が設計値通りではないのかもしれないから接地面の状態を観察した方がいい。」

要は仮説要因を洗い出し、その仮説要因を絞り込んでいくということをしているだけ。抜本的に直すにあたり一気に全てを変えてしまう方法もあるが、最初からそれをしていると何の知見も得られないまま行き当たりばったりの設計・開発になってしまう。なので割と地道にこのような切り分け評価を行っている。「イノベーションだー!」とか言って全面的に変更したりするのは一見格好いいが、実情としてはこうした経験の積み重ねを経て「この結果になるってことはきっとこのパラメーターが影響しているはず」と現象からピンと来て言えることの方が実用的であり、それを『勘所』や『職人業』と呼ぶのだと思う。

●●●●●
伝達関数
3つ目。伝達関数とはなんぞや?という人のためにまたまたwikipedia先生に登場して貰おう。

伝達関数(transfer funcion)とはシステムへの入力を出力に変換する関数のことをいう。伝達関数は、すべての初期値を 0 とおいたときの、制御系の出力と入力のラプラス変換(またはZ変換)の比で表される。


うーん、分からん。 超噛み砕いて自分の理解で言うと、要するに「命令(=入力)した内容にどれだけ忠実に動くか(=出力されるか)の関数」である。

例えば、同じ10kgの物体が2つあったとする。物体Aはダイヤモンドのような硬い物体で、物体Bは豆腐のようにふにゃふにゃな物体だとする。これらを手で押した時、その力が同じだったと仮定した場合、最も素早く対象の物体を動かすにはどのようにすれば良いだろうか?答えとしては、次のようになる。

  • 硬い物体A=瞬間的な力で一気に押す。
  • 柔らかい物体B=じわーっとしたゆっくりの力で押す。

このように同じ重さの物体に同じ力を加えたとしても、実際の動き方はその押し方によって変わってくる。この”押し方”に関連する部分が伝達関数ということになる。伝達関数が高いとはつまり、「上手に入力信号(手押し力)が対象に伝わって出力(物体が動く)出来ている」ということになる。

で、その伝達関数が何なのか?という話に戻るのだが、仕事をしている中のあらゆる場面でこの伝達関数という概念が出現するのである。「Aさんに分かってもらうには数式を少なくしてなるべく概念図で説明しよう。」とか「Bさんはロジックで理解するタイプだからきちんと理論式をインプットしよう。」とか、はたまた「Cさんにやる気を出して貰うにはこういう言い回しでお願いしなきゃな。」とか。これを自然とやっている人は沢山いるだろうが、自分は伝達関数という概念を知ってから、それがとても腹落ちし、「伝達関数を出来るだけ高めよう。出力が出ないのは入力方法が不適だからなんだ。」と考えられるようになった。ある程度硬い物でないと早く動かすことが出来ないように、ある程度相手に素養がないとすぐには反応が返ってこないことは人間関係の中にも沢山ある。しかし、そういう人は柔らかい豆腐みたいなものでじっくりじわーっと時間をかけて入力をし続けることで動いてくれるようになるんだと思うと、一律同じスピードでのアウトプットを求めるだけが全てではないよな、と少しは自分のイライラも軽減される(ある意味諦められる)。「最大効果を得るための入力信号を意識する」ということを”伝達関数”という理論体系でもって説明されたことが自分的には革新的で、とても理系的だなと感じたという訳である。

●●●●●●
おわりに。
こうしてまとめてみると理系的というより開発的思考なのかもしれない。まあでも似たようなものかと曖昧にしておくあたりは文系的な(というかただのものぐさな)ワタシ。

っていうはなし。