メディア

MathWorksが「MATLAB」最新版を販売開始、C/C++コードの自動生成が目玉組み込み技術

「MATLAB」最新版の目玉機能の1つが、MATLAB言語からC/C++コードを直接生成する「MATLAB Corder」だ。

» 2011年04月12日 18時10分 公開
[前川慎光,EE Times Japan]

 MathWorksは、数値計算/アルゴリズム開発用ソフトウェア「MATLAB」と、制御システム開発ソフトウェア「Simulink」の最新版「R2011a」の提供を開始した。

 R2011aで新たに導入された目玉機能の1つが、MATLAB言語からC/C++コードを直接生成する「MATLAB Corder」だ。「従来は、MATLAB言語を参照しながら、手作業でコードを変換する必要があった。この工程は、アルゴリズム開発からシステムへの実装に至る全ての工程の中で、特に時間とコストが掛かる作業だった」(MathWorks Japanのインダストリーマーケティング部のシニアマーケティングスペシャリストである柴田克久氏、図1)という。コード変換工程を削減できれば、開発期間の短縮や人件費の削減が見込める。

図1 図1 MathWorks Japanのインダストリーマーケティング部のシニアマーケティングスペシャリストである柴田克久氏

検証作業の繰り返しが不要に

 MATLABは、信号処理や画像処理、通信分野におけるアルゴリズム開発に幅広く使われている。アルゴリズムを開発した後、プロセッサやDSPソフトウェアに組み込むためには、C/C++に変換する必要がある。例えば、C/C++のソースコードとしてそのまま活用したり、コンパイルして実行形式にする、ライブラリとして他のソフトウェアに組み込むといった利用イメージだ。

 ただ、MATLAB言語は、変数やメモリの型指定が不要であるなど高度に抽象化されている。このため、変換後に、MATLABで記述した処理内容と、C/C++コードの等価性をどう検証するかが課題だった。検証作業で問題を発見したときに、その問題の原因がMATLAB言語にあるのか、C/C++コードの変換作業に原因があるのか分離するのは難しいからだ。「MATLAB言語とC/C++言語の間で、検証作業を繰り返す必要が生まれていた」(同氏)という。

図2図2 図2 MATLAB言語をC/C++コードに変換する「MATLAB Corder」の効果 (a)はMATLAB Corderの利用イメージ図。MATLABでアルゴリズムを開発し、C/C++コードに変換、生成したコードの確認という作業を迅速に進められる。(b)は従来の方法との比較である。C/C++コードに手作業で変換する手間や、手間の掛かる検証作業を削減できる。

 MATLAB Corderを使えば、このような問題は生じない(図2)。MATLAB言語から変換したC/C++コード、または他の環境で作成したC/C++コードは、「MEX(MATLAB Executable)」と呼ぶ機能を使ってMATLAB環境に取り込み、機能を検証できる。MEXは、C/C++コードをコンパイルし、MATLAB環境で実行可能なバイナリコードに変換する機能である。

 MathWorksは、これまでも、MATLAB言語をC/C++コードに変換する機能として、「Embedded MATLAB」や「Real-Time Workshop Embedded Corder」を用意していた。しかし、これらの機能を利用するには、Simulink本体に加えてオプションの「Real-Time Workshop」を別途購入する必要があった。

 MATLAB Corderは、C/C++コードへの変換機能を、SimulinkおよびReal-Time Workshopから切り離したという位置付けだ。今後は、MATLAB言語をC/C++コードに変換するには、MATLAB Corderが必須ツールになる。MATLAB Corderの価格は、75万円から。

制御システムや組み込み向けのCorderも

 同社は、MATLAB Corderの導入に伴って、既存の開発ツールを統合し、「Simulink Corder」と「Embedded Corder」の提供を開始した(図3)。

図3 図3 新たに提供を開始した「MATLAB Corder」と、「Simulink Corder」、「Embedded Corder」の構成

 Simulink Corderは、Simulinkおよび、StateflowモデルからC/C++コードを生成するツールである。既存の「Real-Time Workshop」と「Stateflow Corder」を統合したという位置付けだ。

 一方のEmbedded Corderは、組み込み機器を対象に最適化したC/C++コードを生成する。具体的には、メモリ容量やコードサイズを制限したい、固定小数点化したい、特定コードを読み出す機能を追加したいといった組み込み機器特有の要望に応える機能がある。既存のReal-Time Workshop Embedded Corderと「Embedded IDE Link」、「Target Support Packege」を統合したという位置付けである。

 R2011aにはこの他、さまざまな機能改善が盛り込まれている。例えば、多くの線型代数関数の性能を向上させた他、幾つかのシステムツールボックスを追加した。「DSP System Toolbox」や「Communications System Toolbox」など。

 なお同社は、2011年5月11日〜13日に開催される「組み込みシステム開発技術展(ESEC)」で、「モデルベース設計(デザイン編)」と題した講演を行う。組み込みシステムを対象に、MATLABを使ったモデルベース設計の概念や特徴、ツール適用のポイントを解説する予定である。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.