最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink モデルからの C コードの生成

Simulink® Coder™ は、幅広いアプリケーションでの配布用に、Simulink モデルからスタンドアロンの C および C++ コードを生成します。

この例では、ex_codegen_dsp モデルから C コードを生成し、生成されたコードから実行可能ファイルをビルドします。実行可能ファイルは MATLAB® 環境内で実行できます。また、コードをパッケージ化して、MATLAB 製品および Simulink 製品がインストールされていない他の開発環境に移動することもできます。

モデルを開く

ex_codegen_dsp モデルは、ノイズの周波数成分を特徴付けるフィルターを同時に識別しながら、信号からノイズを除去するためのシンプルな適応フィルターを実装します。このモデルを開くには、MATLAB コマンド プロンプトで次のコマンドを入力します。

open_system('ex_codegen_dsp')

または、[DSP System] テンプレートを使用してモデルを作成することもできます。詳細については、信号処理モデル向け Simulink 環境の構成を参照してください。

コード生成用のモデルの構成

[コンフィギュレーション パラメーター] ダイアログ ボックスでコード生成設定を指定して、コード生成用のモデルを準備します。適切なソルバーとコード生成ターゲットを選択し、モデル コンフィギュレーションの実行効率性を確認します。これらの各手順の詳細については、モデル用 C コードの生成 (Simulink Coder)を参照してください。

モデルのシミュレート

モデルをシミュレートします。Time Scope には、入力信号とフィルター処理された信号の特性が表示されます。

Array Plot には、LMS フィルターが効果的に適応されて信号からノイズを除去された最後の 32 個のフィルターの重みが表示されます。

これらの係数には、次のコマンドを使用してアクセスすることもできます。

filter_wts(:,:,1201)

モデルからのコードの生成

モデルからコードを生成する前に、まず現在のフォルダーへの書き込み権限があることを確認しなければなりません。

コードを生成するには、以下の変更を加えなければなりません。

  1. モデルの [コンフィギュレーション パラメーター] ダイアログを開き、[コード生成] タブに移動して、[コード生成のみ] チェック ボックスをオンにし、[適用] をクリックします。

  2. モデル ツール バーから、[モデルのビルド] アイコン () をクリックします。

モデルがコードの生成を終了すると、[コード生成レポート] が表示され、生成コードを検査できます。ビルド プロセスにより、現在の MATLAB 作業フォルダーに ex_codegen_dsp_grt_rtw という名前の新しいサブフォルダーが作成されることに注目してください。このサブフォルダーには、生成された C ソース コードを含むファイルを含めて、コード生成プロセスによって作成されたすべてのファイルが含まれています。生成コードの表示の詳細については、モデル用 C コードの生成 (Simulink Coder)を参照してください。

生成コードのビルドと実行

C/C++ コンパイラの設定

実行可能ファイルをビルドするには、サポートされている C コンパイラを設定しなければなりません。現在のリリースでサポートされているコンパイラの一覧については、Supported and Compatible Compilers を参照してください。

コンパイラを設定するには、MATLAB コマンド プロンプトで次のコマンドを実行します。

mex –setup

生成されたコードのビルド

コンパイラを設定したら、コンパイル済みコードをビルドおよび実行できます。現在、ex_codegen_dsp モデルはコードのみを生成するように設定されています。生成されたコードをビルドするには、まず以下の変更を加えなければなりません。

  1. モデルの [コンフィギュレーション パラメーター] ダイアログを開き、[コード生成] タブに移動して、[コード生成のみ] チェック ボックスをオフにします。

  2. [OK] をクリックして変更を適用してからダイアログ ボックスを閉じます。

  3. モデル ツール バーから、[モデルのビルド] アイコン () をクリックします。

コード ジェネレーターが実行可能ファイルをビルドし、[コード生成レポート] を生成します。コード ジェネレーターは実行可能ファイルを作業フォルダーに配置します。Windows では、実行可能ファイルは ex_codegen_dsp.exe です。Linux では、実行可能ファイルは ex_codegen_dsp です。

生成されたコードの実行

生成されたコードを実行するには、MATLAB コマンド プロンプトで次のコマンドを入力します。

!ex_codegen_dsp

生成コードを実行すると、モデルのシミュレーションによって生成された変数と同じ変数を含む MAT ファイルが作成されます。MAT ファイル内の変数には、rt_ という接頭辞をもつ名前が付きます。生成されたコードを実行した後は、MATLAB プロンプトで次のコマンドを入力して、MAT ファイルから変数を読み込むことができます。

load ex_codegen_dsp.mat

これで、生成コードの変数とモデル シミュレーションの変数を比較できるようになりました。生成コードからの最後の一連の係数にアクセスするには、MATLAB プロンプトで次のように入力します。

rt_filter_wts(:,:,1201)

filter_wts(:,:,1201)rt_filter_wts(:,:,1201) の係数が一致していることに注目してください。

実行可能ファイルのビルドと実行の詳細については、実行可能ファイルのビルドと実行 (Simulink Coder)を参照してください。

他の開発環境へのコードの移動

Simulink モデルからコードを生成したら、Pack-and-Go ユーティリティを使用して他の開発環境にコードを移動できます。開発環境に MATLAB 製品および Simulink 製品がない場合は、このユーティリティを使用します。

Pack-and-Go ユーティリティは、コード生成後のビルド プロセスをカスタマイズするためのツールと、実行可能ファイル イメージをビルドするためにファイルを検出してパッケージ化するための関数 packNGo を使用します。ファイルは圧縮ファイルにパッケージ化され、標準の zip ユーティリティを使用して移動および解凍できます。

ユーザー インターフェイスまたはコマンド ライン インターフェイスを使用してコードをパッケージ化できます。コマンド ライン インターフェイスでは、コードのパッケージ化の詳細をより細かく制御できます。これらの各方法の詳細については、別の開発環境にコードを移動する場合 (Simulink Coder)を参照してください。

この例から生成された C コードと実行可能ファイルをパッケージ化する方法の例については、Relocate Code Generated from a Simulink Model to Another Development Environmentを参照してください。

関連するトピック

外部の Web サイト