Main Content

MATLAB System ブロック

MATLAB System ブロックを使用する理由

System object を使用すると、MATLAB® 言語でアルゴリズムを実装できます。MATLAB System ブロックでは、Simulink® で System object を使用できます。

MATLAB System ブロックでは次のことができます。

  • MATLAB と Simulink での同じ System object™ の共有

  • System object と Simulink の統合に専念

  • Simulink で使用する前の MATLAB でのアルゴリズムの単体テスト

  • ダイアログ ボックス カスタマイズのカスタマイズ

  • 初期化の改善による効率的なシミュレーション

  • 状態の管理

  • 端子ラベルによるブロック アイコンのカスタマイズ

  • 2 つのシミュレーション モードへのアクセス

適切なブロック タイプの選択

MATLAB アルゴリズムを Simulink に含めるメカニズムは、次のように複数存在します。

  • MATLAB System ブロック

  • MATLAB Function ブロック

  • Interpreted MATLAB Function ブロック

  • Level-2 MATLAB S-Function ブロック

適切なブロックを選択する方法のヘルプについては、カスタム ブロックの機能の比較を参照してください。

System object

MATLAB System ブロックを使用する前に、System object をブロックに関連付けなければなりません。System object は特殊な種類の MATLAB クラスです。System object は入力が時間経過とともに変化する動的システムを実装およびシミュレーションするために特別に設計されています。

System object の作成の詳細については、Customize System Objects for Simulinkを参照してください。

メモ

Simulink 環境で System object を使用するには、引数なしで呼び出すことができるコンストラクターがなければなりません。System object コンストラクターは既定でこの機能を備えており、独自のコンストラクターを定義する必要はありません。ただし、独自の System object コンストラクターを作成する場合は、引数なしで呼び出すことができなければなりません。

System object は、他の MATLAB 製品に存在します。MATLAB System ブロックは、MATLAB 言語で記述された System object のみをサポートします。また、System object に対応する Simulink ブロックがある場合は、その System object の MATLAB System ブロックを実装することはできません。

インタープリター型実行またはコード生成

Simulink モデルで MATLAB System ブロックを使用して、インタープリター型実行またはコード生成によるシミュレーションを実行できます。

  • インタープリター型実行では、ブロックは MATLAB 実行エンジンを使用してシミュレートされます。

  • コード生成では、モデルによりブロックはコード生成を使用してシミュレートされます (コード生成をサポートする MATLAB コードのサブセットを使用する必要があります)。サポートされている関数の一覧は、C/C++ コードの生成でサポートされている関数およびオブジェクトを参照してください。

既定の入力信号属性

MATLAB System ブロックに、別のブロックの出力端子に接続されていないか指定不足の属性をもつ端子に接続されている、1 つ以上の入力がある場合、指定不足の属性の既定の入力信号属性は次のとおりです。

データ属性既定の設定
データ型double
サイズ[1 1] スカラー
実数/複素数実数

MATLAB System ブロックの制限

以下の機能は現在サポートされていません。

カテゴリ制限の説明回避方法

System object

System object の調整可能な文字ベクトルのプロパティは、MATLAB System ブロックでは調整不可能なパラメーターです。

データ型

  • MATLAB System ブロックはバーチャル バスの入出力をサポートしません。

  • System object では、ユーザー定義の opaque データ型は使用できません。

サンプル時間

MATLAB System ブロックを使用して連続時間またはマルチレート システムをモデル化することはできません。

線形化

ヤコビアン ベースの線形化は使用できません。

グローバル変数

モデル コンフィギュレーション パラメーターの [シミュレーション ターゲット][カスタム コード] ペインで定義され、System object で参照されるグローバル変数は、Stateflow® および MATLAB Function ブロックと共有されません。

[コンフィギュレーション パラメーター] ダイアログ ボックスの [シミュレーション ターゲット] ペインの [カスタム コード インポート] をオンにします。

デバッグ

コード生成ベースのシミュレーションの MATLAB デバッグ。

MATLAB System ブロックの [シミュレーション実行方法] パラメーターを [インタープリター型実行] に設定してからデバッグします。完了したら、[シミュレーション実行方法][コード生成] に戻します。

固定小数点ツール

固定小数点ツールは、MATLAB System ブロックの設計の最小値/最大値、最小/最大ログ作成およびオートスケーリング情報を返しません。

モデル カバレッジ解析 (Simulink Coverage™ ソフトウェア)

Simulink Coverage では、[シミュレーション実行方法] パラメーターを [インタープリター型実行] に設定して MATLAB System ブロックのモデル解析を実行することはできません。

MATLAB System と System object の例

MATLAB System と System object の例は、以下を参照してください。

説明

大数の法則の説明

この例では、MATLAB System ブロックを使用して、大数の法則を説明する方法を示します。コード生成をサポートしない MATLAB 関数を使用するため、この例では伝播メソッドとインタープリター型実行を使用します。

MATLAB System ブロックでのバスの使用

この例では、入力または出力で非バーチャル バスを使用する MATLAB System ブロックを使用する方法を示します。Simulink バスを使用するため、この例では伝播メソッドを使用します。この例は、モデル コールバックを使用する MATLAB ベース ワークスペースのバス型を定義します。

参考

関連する例

詳細