7

Lookup Tableとは?

 3 years ago
source link: https://blogs.mathworks.com/japan-community/2020/12/09/lookup-table%e3%81%a8%e3%81%af%ef%bc%9f/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Lookup Tableとは?

こんにちは。MathWorksで学生競技会をサポートさせていただいている飯島です。

MathWorksでは様々なトピックに関するHow-toビデオを用意しています。その中で、本日はLookup Tableの動画を取り上げます。5分程度でLookup Table(日本語版英語版)の用途、メリット、活用方法を紹介しています。この記事ではその詳細について紹介します。

Wikipediaを見るとLookup Tableとは”複雑な計算処理を単純な配列の参照処理で置き換えて効率化を図るために作られた、配列や連想配列などのデータ構造のことをいう。”というふうに定義されています[1]。

これだけ見ると何のことを言っているのかさっぱりわかりませんね。

Lookup Tableとは?

仮想世界でモノを作ってテストする時に計算モデルが必要になってきます。(Aの値を入れるとBの答えが出てくるというふうに)
本来であれば、計算というだけあって学校で習った公式や数式を使う必要があります。
しかし、実験データさえあれば、その複雑な公式を使わずに、実験データで仮想世界でモノを作ることができるようになります。これを手助けしてくれるのがLookup Tableです!!

まだピンときていない方のために具体的にみていきましょう。

例えば、皆さんが自動車の ブレーキ会社で働き始めたとしましょう。

ブレーキの原理を見ると、最初にブレーキペダルを踏み込んで、倍力装置を通過して液圧が強くなって出てきます。その力がピストンとブレーキパッドを押し付けて、タイヤと一緒に回転しているローターを挟み込むようにして、摩擦力を加えてその力が自動車のブレーキをかけるトルクとして発生するという仕組みになっています。ちょうど下にある動画のような流れになっています。

図1:

Input_Output-3.gif

Lookup Tableを使わない場合:
まずは倍力装置を見て、踏み込んだ量から液圧を求めないといけません。その数式を自分で作ったり探したりしてくる必要があります。次にピストンの中では液圧を力に変えていますね。そしてブレーキパッドでは力を摩擦力にという風にAの値をBの値に変換していく必要があり、そのための計算式を自分で探して見つけないといけないということが非常に厄介になってきます。

図2:

AtoB.gif

Lookup Tableを使う場合:
Aの値がこの時はBの値がこうなるという実験データさえあれば、そのデータだけでモデルを作ることができます。

*一つ一つの部品(倍力装置、ピストン、ブレーキパッドなど)に分けて実験データを取得する方がより正確なのですが、今回はわかりやすいように一番最初の踏み込み量から最後のブレーキトルクまでの実験データを持っているとしましょう。

図3:

Pic1.png

SimulinkでLookup Tableを使用する方法?
今回は以下の実験データのサンプルを使います。踏み込み量はどれだけ踏み込んだのかをパーセンテージ[%]で表します。全開まで踏み込んだら100[%]、全く触れていない状態を0[%]とします。踏み込んだ量に対応するようにブレーキトルク[Nm]のデータがあるとしましょう。

Pic2.png

そしてSimulinkの中には以下のようなLookup Tableというブロックがあります。

図5:

Pic3.png

このLookup Tableに先程の実験データを設定をしてあげると!なんとモデルが完成します!イメージはこんな感じです。

図6:

DatatoLookupTable.gif

入れ方は簡単です。Lookup Tableのブロックをダブルクリックすると以下のようなウィンドウが出てきます。

lookuptable_dialog.png

ここのTable DataとBreak Points1に先程の実験データの値をいれるだけ!

図8:

HowtoInput.gif

これで完成です!

それでは仮想世界でブレーキを完成させることができたので、次は使ってみましょう!まずは100[%]の値を入れると答えが出てきます。表通りの結果が出てますね。そのまま50[%]の力に変えてもしっかり答えが出てきます。以下参照

図9:

Use.gif
Simulinkは無単位系のシミュレーターなので特に単位系を意識することなくモデリングできますが、逆を言えば単位系を揃えなくともモデリングできてしまうリスクもあります。そこで、本記事ではLookupテーブルの入出力で単位系が変化していることから、入出力ブロックに単位属性を指定しています。

Lookup Tableが使われる理由:

  • 計算時間が短縮される!
  • 面倒な数式モデルを作らなくて良い!
  • 複雑な計算式を見つける必要がない!
  • 実験データはこれまで溜まってるものがいっぱいある!

上記のような理由で多くのアプリケーションでよく使われています。

Lookup Tableは覚えておくといろんなことができるようになるので、自分だけのモデルを作ってみてはいかがでしょうか。

参考文献:
1. 2020年12月4日現在 Wikipedia Lookup Table:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK