MATLABの紹介

2020 年 8 月 11 日 by takemotok

業務でMATLABを実装及び評価ツールとして使用していました。
「MATLABって何?」と聞かれることが多くあります。
そんなMATLABについて紹介いたします。

  • MATLABとは、
    MATLAB(開発元:MathWorks社)とは、80以上ものオプション製品を含むMATLABプロダクトファミリ全体のことでもあり、MATLABプロダクトファミリ内で使用できるプログラミング言語のことでもあります。統合開発環境とプログラミング言語の両方を指す言葉になります。
    以下MathWorks社及びMATLABのアイコンです。

    起動直後の画面が以下になります。

業務ではMATLABのSimulinkを使用してブロック線図を用いたモデルベース開発をしていました。MATLAB言語は変数に値を入れる程度しか利用しませんでした。(例:xxx = 5;)

  • Simulinkとは、
    MATLABのオプションの一つで、ブロック線図を描いて時間軸でのシミュレーションを行う環境です。ブロック線図とは構成要素や機能をブロックで表し、それらを線で繋いで何らかのシステムをグラフィカルに表示するものです。またSimulinkも含めてMATLABと呼んでいました。
  • モデルベース開発とは、
    “動く仕様書”となる「モデル」を作成し、シミュレーション機能を活用する開発手法です。実機の試作回数を減らすことができ、実機検証だけでは網羅しきれないケースをシミュレートできるため、開発期間の短縮とソフトウェアの品質を向上させることができるそうです。
    鉄道やロボット、物流機器、医療機器などの開発で今後採用されると考えられています。逆に事務用ソフトやスマホアプリのような、制御を伴わないUI中心のソフトウェア開発には向かないと考えられています。

実装内容は簡単なもので以下のような感じです。
主な処理内容は論理演算,数値演算,タイマー処理でした。

使用したことはないですが、電気工学的な実装もできるようです。

以下ブロック選択画面です。
使用したいブロックをモデルにドラッグすることで設置できます。
また各ブロックの説明等、公式のヘルプが充実しているのが印象的でした。
公式のヘルプのみで大体の問題は解決できました。

作成したブロック線図モデルからC言語やC++のコードを生成することができます。ただ納品する成果物はブロック線図モデル(拡張子:.slx)でした。コード生成はお試しで使用した程度です。生成されたコードはインデントはついていましたが、関数化があまりされておらず条件が煩雑なIf文が多段入れ子になっていて、人にとって見づらい内容になっていました。(モデルの実装方針により見づらいコードが生成された可能性もあります)ブロック線図モデルがあるので、生成されたコードは見づらくても問題ないとは思います。

ざっくりとした紹介になりましたが、自分が業務で使用したものはMATLABの一部になります。MathWorks社ホームページには「MATLAB による AI」の記載があることから、AIを利用した開発もできるようです。

もし皆さんが「MATLABって何?」と聞かれた際に答える手助けになれば幸いです。

参考
MathWorks社ホームページ
Simulinkは何をするツールなのか
モデルベース開発とは?
MATLABのヘルプセンター

タグ: , ,

TrackBack