View
230
Download
4
Category
Preview:
Citation preview
Simulink Coder 8.0Simulink モデルと Stateflow モデルからの C コードと C++ コードの生成
概要
Simulink Coder™ (以前の Real-Time Workshop®) は、Simulink® ダイアグラム、Stateflow® チャート、およびMATLAB® 関数から C コードと C++ コードを生成して実行します。生成されたコードは、シミュレーションの高速化や、ラピッド プロトタイピング、HIL(hardware-in-the-loop)テストなど、リアルタイムと非リアルタイムのアプリケーションに利用できます。Simulink では、生成コードのチューニングとモニター、ならびに MATLAB® や Simulink の環境外からコードの実行と操作を行うことができま
す。
主な機能▪ 離散、連続、またはハイブリッドの Simulink モデルと Stateflow モデルのための、ANSI/ISO C と
C++ のコードと実行ファイルを生成。
▪ 大規模なモデルのためのインクリメンタル コード生成。
▪ 整数、浮動小数点、固定小数点のデータ タイプをサポート
▪ シングルレート、マルチレート、非同期のモデルのコード生成
▪ RTOS の有無に関わらない、シングルタスク、マルチタスク、マルチコアのコード実行
▪ パラメーター チューニングと信号モニターのための、エクスターナル モードによるシミュレーシ
ョン
1
ターゲットの選択と操作
Simulink モデル エクスプローラーでは、コード生成のためのすべての設定を行うために、Simulink 内でシングル ユーザー インターフェイスが提供されます。モデル エクスプローラーでは、次の操作を実
行できます。
▪ コード生成ターゲットの選択
▪ コード生成のターゲットの設定
▪ モデルやサブシステムのコード生成
コード生成アドバイザーでは、モデルとコード生成設定がチェックされ、ユーザーのニーズに基づい
て設定を向上するようにアドバイスが表示されます。プロジェクトに最適な設定が見つかったら、他
のモデルで再利用できるように、設定セットとして保存します。
Simulink でモデリングした大規模な航空機システム。Simulink Coder では大規模なモデリングのために、Model ブロック、バリアント サブシステム、バスの配列などの、高度な Simulink 機能がサポートされています。
ターゲットの選択
Simulink Coder では、システム ターゲット ファイルを使用して、モデルがソース コードと実行ファイルに変換されます。ターゲット ファイルでは、生成したコードを実行する環境を指定します。Simulink Coder には、即座に実行可能な構成のターゲット ファイルが付属しており、サードパーティ
やカスタムのターゲットもサポートされています。組込みのターゲットには次のものがあります。
汎用のリアルタイム汎用のリアルタイム ターゲットターゲット— インタラクティブにモデル パラメーターをチューニングするためのコード生成、リアルタイム シミュレーションの結果を記録および表示、リアルタイム実行の効率化
のために静的にデータをアロケート
2
汎用のリアルタイム汎用のリアルタイム Malloc ターゲットターゲット— 生成されたコード内で動的にメモリ アロケーションを使用し、1 つの実行ファイルの中に、ユーザーのモデルの複数のインスタンス、または、複数のモデルを持
たせることが可能
ラピッドラピッド シミュレーションシミュレーション ターゲットターゲット (RSim) — 固定ステップ ソルバーまたは可変ステップ ソルバーを使用したバッチあるいはモンテカルロ シミュレーションを実行するための、高速でフレキシブルなテスト プラットフォームを提供することにより、データを固有の出力ファイルに保存することが容易
に。
これらのターゲットを拡張して、カスタマイズした実行時インターフェイスとデバイス ドライバー ファイルを作成すれば、特定の環境をターゲットとして、Simulink Coder の実行機能やデバッグ機能にア
クセスできます。
生成コードのコンパイルと実行
Simulink Coder では、以下にような一般的な開発環境のために、生成コードのコンパイルと実行のサポ
ートが組み込まれています。
▪ Eclipse™ IDE
▪ Microsoft® Visual C++® IDE
▪ Linux® オペレーティング システム
▪ Windows® オペレーティング システム
Embedded Coder では、最適化された C コードや C++ コードを生成して、リアルタイム組込みシステム
に実装できます。
データの定義と制御
Simulink Coder では、生成したコードにおけるモデル データの実装方法を定義および制御できます。
また以下の方法によりユーザーのデータを管理することができます。
▪ 整数、浮動小数点、固定小数点としてデータ タイプを宣言
▪ パラメーターや定数のチューニング、キャリブレーションのためのメモリ ストレージを指定
▪ 信号データをモニターし、ロギングするためのメモリストレージを指定
▪ ローカルでスコープしたデータを最小にするためのメモリ ストレージの再利用
Simulink Coder は、Simulink モデル エクスプローラーからアクセスできる Simulink ダイアグラムまたはデータ ディクショナリに保存されているデータからコードを生成します。異なるデータ ディクショナリ セットを組み込むことで、単一のモデルから複数のターゲットへの実装コードの適用が可能です。
3
モデルで使用されているさまざまなデータ タイプやストレージ クラスを示す Simulink モデル エクスプローラー。
コードの生成
Simulink Coder では、Simulink と Stateflow の機能とコンポーネントのために、以下のような総合的なコ
ード生成サポートが提供されています。
▪ コードをインクリメンタルに生成するためのモデル ブロック
▪ C 言語のリエントラント関数を通じたコードの再利用のための Atomic サブシステムと Atomic サブ
チャート
▪ コードで構造を生成するためのバス オブジェクトとバスの配列
▪ レガシー コードのシミュレーションとインターフェイスのための S-function
▪ MATLAB コンポーネントをもつモデルからコードを生成するための、Simulink および Stateflow
のMATLAB 関数ブロック
Simulink Coder では、固定小数点モデリング、物理モデリング、信号処理と通信のモデリング、ラピッド プロトタイピングとハードウェアインザループ (HIL) テストのための各製品といった、Simulink プロダクト ファミリもサポートされています。
コード生成のオプション
Simulink Coder には、デスクトップ環境やシミュレーション環境で生成されたコードを簡単に実行でき
るように、ユーザーが選択可能なオプションが用意されています。これらのオプションには以下が含
まれます。
▪ コードの再利用
▪ 式の畳み込み (Folding) 表現
▪ 信号ストレージの再利用
▪ デッド パスの除去
▪ パラメーターのインライン処理
4
▪ ビルド済みの単精度 math ライブラリ (ISO C や GNU C など)
10 個の要素をもつ配列信号を含むモデルに対して、For-ループの統合と畳み込み表現を使用して生成されたコード。Simulink Coder は、単次元信号や多次元信号のための、効率的で可読性の高いコードを生成します。
リアルタイム環境でのコード実行
Simulink Coder では、生成したコードをリアルタイムで実行し、このコードをユーザーの実行環境に組
み込むための、完全なフレームワークが提供されています。これにより、モデルで指定されているサ
ンプル時間の周期に基づいたシングルレートまたはマルチレートコードが生成されます。
実行モード
コードは RTOS の有無にかかわらず、シングルタスク モード、マルチタスク モード、非同期モードに
対応します。
シングルタスク モードシングルタスク モード
シングルタスク モードではレート間の優先度を妨げないように、簡単なスケジューラーが生成コードをシングルス レッドで実行するように呼び出します。
マルチタスク モードマルチタスク モード
マルチタスク モードでは、確定的なレート モノトニック スケジューラーが生成されたコードを呼び出
し、レート間の優先度を有効にします。ベアボード環境では、入れ子になった割り込みでコードをプリエンプトします。RTOS 環境では、タスク プライオリティとタスク プリエンプションを使用しま
す。
非同期モード非同期モード
非同期モードでは、Simulink の S-function を使用して、非周期的レートまたは非同期レートが指定されます。Simulink Coder によって、これらのレートがユーザーの実行環境で必要なコードに変換されます。ユーザーは、ハードウェアの割り込みや、独立したタスクのトリガ サブシステムのようなイベントごとに、コードをモデリングし生成します。付属の非同期ブロック ライブラリをテンプレートとし
て使用し、他の環境に適したライブラリを作成できます。
5
リアルタイム ディプロイメントリアルタイム ディプロイメント
Simulink と Simulink Coder では、リアルタイム ディプロイメントのために、ターゲットに依存しない
完全な機能セットが提供されています。これには以下が含まれます。
▪ ユーザー モデル内の各レートに指定可能な、タスクの優先度
▪ 絶対時間および経過時間を計算するための量産品質のカウンターとタイマー
▪ 。データの完全性、決定論、およびパフォーマンスのトレードオフを考慮してレート間のデータ転送メカニズム(セマフォ、ミューテックス、ダブルバッファリングなど)を指定するための RateTransition ブロック
▪ 各レートのオーバーランを検出するための統合されたエラーハンドリング ロジック
レガシー コードの統合レガシー コードの統合
C、Fortran、Ada、 C++ のカスタムのレガシー コードをシミュレーションやコード生成に組み込むことで、生成されるコードと実行時環境をカスタマイズできます。Simulink Coder のカスタマイズ ツールには、Target Language Compiler (TLC)、カスタム コード ブロック、テンプレート makefile、ビルド プロセスの API、および S-Function Builder があります。Legacy Code Tool を使用すれば、既存の C や C++の関数を Simulink モデルにすばやく統合でき、組込みシステムで通常使用される離散時間コードの統
合に特に便利です。
パラメーターのチューニングとデータのロギング
Simulink Coder では、生成された実行ファイルを操作および解析できるため、アルゴリズムのパフォー
マンスを最適化し、コードの実行動作を向上させることができます。
Simulink Coder では、次のデータ インターフェイスを使用して、ブロック信号やパラメーターをモニ
ターおよびチューニングできます。
ターゲットベースのターゲットベースの C API — ユーザーが作成したコードで MATLAB や Simulink の環境外からブロッ
クの出力やパラメーターにアクセスすることが可能となります。
ホストベースのホストベースの ASAP2 データデータ エクスチェンジエクスチェンジ ファイルファイル— MATLAB と Simulink の環境外から、データ計測、キャリブレーション、診断システムのための ASAP2 標準データ記述を利用することが可能で
す。
Simulink エクスターナルエクスターナル モードモード— 新しいパラメーターの値をダウンロード、信号値をアップロードすることにより、Simulink で信号を表示したり、MATLAB ワークスペースで記録することができます。(ソース ブロックのダイアログ ボックスを開くと Simulink は一旦停止します。その間にパラメーターを変更することが可能です。変更を反映して Simulink を引き続き使用するには、ダイアログ ボックスを閉じる必要があります。)
6
製品詳細、デモ、動作環境www.mathworks.co.jp/products/simulink-coder
評価版ソフトウェアwww.mathworks.co.jp/trialrequest
営業窓口www.mathworks.co.jp/contactsales
テクニカル サポートwww.mathworks.co.jp/support
リソース
オンライン ユーザー コミュニティwww.mathworks.co.jp/matlabcentral
技術トレーニング サービスwww.mathworks.co.jp/training
サードパーティ製品とサービスwww.mathworks.co.jp/connections
世界各地のお問い合わせ先www.mathworks.co.jp/contact
© 2011 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarksfor a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 7
Recommended