記事検索

検索ワードを入力してください。
Sky Tech Blog
【MBD】S-Function:MEXファイル

【MBD】S-Function:MEXファイル

MATLAB/SimulinkのS-FunctionにおけるMEXファイルの役割と構造についての説明です。MEXファイルは、Simulinkでのシミュレーション時にS-Functionブロックを動作させるための動的リンクライブラリであり、OSごとに異なる拡張子を持ちます。

MATLAB/SimulinkのS-Functionについて、今回はMEXファイルについてです。

前回の​記事

MBD開発では、既存機能のC/C++ソースやモデルが苦手な処理などを1つのブロック(S-Function)として、モデル内に組み込むことが可能です。
Simulink上でシミュレーションする場合、S-FunctionブロックはMEXファイルを読み込み、動作させます。
MEXファイルは、OSによって以下の拡張子で作成されます。

OS 拡張子
Linux(64bit) mexa64
Apple(64bit) mexmaci64
Windows(64bit) mexw64

※以降はWindows版で説明します。

MEXファイルは拡張子が特殊ですが、中身は「動的リンクライブラリ(DLL)」になっています。
動作させたいソース+モデルとのIF、MEXファイルに必要なlibを取り込んだものをDLLとしてビルドし、拡張子をmexw64としています。

例)Visual Studioのdumpbinでdumpした結果。DLLとして作られていることが分かります。

MEXファイルはExport関数としてmexFunction()を持っています。
SimulinkはS-Functionブロックと同名のMEXファイルをロードし、MEXファイル内にあるmexFunctionを呼び出すことでS-Functionブロックを動作させます。
※プラグイン開発を行ったことがある方は、イメージしやすいと思います。

こういった仕組みを理解しなくても利用することはできますが、中身を知るとより理解が深まるのではないでしょうか。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム