このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MATLAB System
System object をモデルに含める
ライブラリ:
Simulink /
User-Defined Functions
HDL Coder /
User-Defined Functions
説明
MATLAB System ブロックでは、(matlab.System
に基づく) 既存の System object が Simulink® に導入されます。また、Simulink の新しいブロックを開発するための System object API を使用できます。このブロックの詳細については、MATLAB System ブロックを参照してください。
インタープリター型実行では、ブロックは MATLAB® 実行エンジンを使用してシミュレートされます。
コード生成では、モデルによりブロックはコード生成を使用してシミュレートされます (コード生成をサポートする MATLAB コードのサブセットを使用)。MATLAB System ブロックは MATLAB で使用できる関数のサブセットだけをサポートします。すべての関数の一覧は、C/C++ コードの生成でサポートされている関数およびオブジェクトを参照してください。これらの関数には、次のような一般的カテゴリの関数が含まれます。
既定では、MATLAB System
ブロックは 1 次元の入力信号を認識し、1 次元の出力信号を 2 次元として伝播します。ブロックで 1 次元の入力と出力を 1 次元信号として認識して伝播できるようにするには、supports1DVectorsImpl
メソッドを使用します。
System object
MATLAB System ブロックを使用するには、新しい System object™ を事前に用意するか既存のものを使用しなければなりません。詳細については、MATLAB System object を使用したブロックの作成を参照してください。
例
MATLAB System ブロックの System object のサンプル時間の指定
この例では、System object™ メソッドを使用して MATLAB System ブロックのサンプル時間を制御する方法を示します。
端子
入力
In — MATLAB サブシステム ブロックへの信号入力
スカラー | ベクトル | 行列
MATLAB System ブロックは、[ブロックの特性] テーブルにリストされた型の入力を受け入れます。詳細については、Simulink でサポートされているデータ型を参照してください。
このブロックの固定小数点サポートの詳細は、コードの高速化と MATLAB からのコード生成 (Fixed-Point Designer)を参照してください。
MATLAB System ブロックは、Simulink フレームをサポートします。詳細については、サンプルベースおよびフレームベースの概念 (DSP System Toolbox)を参照してください。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
出力
Out — MATLAB System ブロックの信号出力
スカラー | ベクトル | 行列
System object が返す MATLAB System ブロックの信号出力。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
パラメーター
System object 名 — System object の名前
cell 配列 (既定値)
ユーザー定義の System object クラスの完全な名前をファイル拡張子なしで指定します。このエントリでは大文字と小文字が区別されます。クラス名は MATLAB パス上に存在しなければなりません。
System object 名は次のいずれかの方法で指定できます。
テキスト ボックスに名前を入力します。
テキスト ボックスに付いているリスト矢印をクリックします。現在のフォルダーに有効な System object があれば、それらの名前がリストに表示されます。このリストから System object を選択します。
有効な System object があるフォルダーを参照します。フォルダーが MATLAB パスにない場合は、追加するように求められます。
System object を作成する必要がある場合は、[新規] をクリックしてテンプレートから作成できます。
System object を保存した後、[System object 名] テキスト ボックスに名前が表示されます。
ユーザー定義の System object クラス名の完全な名前を使用します。System object クラス名に割り当てた MATLAB 変数はこのブロックでは受け入れられません。
プログラムでの使用
ブロック パラメーター: System |
型: 文字ベクトル |
値: System object の名前 |
既定の設定: ' '
|
新規 — テンプレートから System object を作成
標準
(既定値) | 詳細設定
| Simulink 拡張
System object テンプレートのいずれかのオプションを選択します。
標準
MATLAB エディターを起動し、System object メソッドが少ないシンプルな System object のテンプレートを表示します。
詳細設定
MATLAB エディターを起動し、System object メソッドが多い高度な System object のテンプレートを表示します。
Simulink 拡張
MATLAB エディターを起動し、Simulink のブロックをカスタマイズするためのユーティリティを含むファイルを表示します。これは、MATLAB で [新規] 、 [System object] 、 [Simulink 拡張] を選択したときに使用できるファイルと同じものです。
System object を保存した後、[System object 名] テキスト ボックスに名前を入力できます。
シミュレーション実行方法 — シミュレーション モードの選択
コード生成
(既定値) | インタープリター型実行
シミュレーション モードを選択します。
コード生成
モデルの最初の実行時にコード生成をサポートする MATLAB 関数のみを使用して MATLAB System ブロックのシミュレーションとコード生成が行われます。ブロックの構造が変更されていない場合は、以降のモデルの実行でコードは再生成されません。
シミュレーション モードが
[コード生成]
の場合、System object では最大 32 個の入力を受け入れます。インタープリター型実行
サポートされるすべての MATLAB 関数を使用してモデルをシミュレートします。このオプションを使用するとシミュレーションのパフォーマンスが遅くなる場合があります。
依存関係 — MATLAB System ブロックの依存関係パラメーター
自動 (既定値)
有効な System object クラス名をブロックに割り当てた後、次にこのブロックのダイアログ ボックスを開くと、パラメーターが表示されます。このパラメーターはすべての MATLAB System ブロックに表示されます。削除することはできません。
ブロックにタブがない場合、このパラメーターはダイアログ ボックスの一番下に表示されます。
ブロックに複数のタブがある場合、このパラメーターはダイアログ ボックスの最初のタブの一番下に表示されます。
整数オーバーフローで飽和 — オーバーフローで飽和するかどうかを指定
オフ (既定値) | オン
- オン
オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。たとえば、符号付き 8 ビット整数に関連付けられたオーバーフローは、-128 または 127 に飽和することができます。
- オフ
オーバーフローは、データ型によって表現される適切な値にラップされます。たとえば、数 130 は符号付き 8 ビット整数 1 つに収まりきらないので、-126 にラップされます。
ヒント
モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このチェック ボックスをオンにすることを検討してください。
生成コードの効率を最適化する場合には、このチェック ボックスをオフにすることを検討してください。このチェック ボックスをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。
このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。
通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。
依存関係
このチェック ボックスは、System object で showFiSettingsImpl
メソッドを使用すると表示されます。
プログラムでの使用
ブロック パラメーター: SaturateOnIntegerOverflow |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
これらの継承される Simulink 信号タイプを fi オブジェクトとして扱う — fi
データ型を指定
固定小数点
(既定値) | 固定小数点および整数
fi
データ型を扱う継承されるデータ型を選択します。
固定小数点
固定小数点データ型を
fi
データ型として扱います。固定小数点および整数
固定小数点データ型および整数データ型を
fi
データ型として扱います。
依存関係
このチェック ボックスは、System object で showFiSettingsImpl
メソッドを使用すると表示されます。
MATLAB System fimath — 使用する固定小数点設定を指定
MATLAB と同じ (既定値) | それ以外を指定
使用する固定小数点の算術設定を選択します。
- MATLAB と同じ
現在の MATLAB 固定小数点の算術設定を使用します。
- それ以外を指定
目的の固定小数点の算術設定を指定するためのエディット ボックスを有効にします。固定小数点の算術の設定については、
fimath
(Fixed-Point Designer) を参照してください。
依存関係
このチェック ボックスは、System object で showFiSettingsImpl
メソッドを使用すると表示されます。
ブロックの特性
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
実際のコード生成のサポートは、ブロックの実装に依存します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
System object を定義して MATLAB System ブロック内で HDL コード生成に使用できます。
HDL Coder では、次のデータ型をもつ調整可能なパラメーターがサポートされます。
数値
固定小数点
文字
論理値
MATLAB System ブロックをもつ調整可能なパラメーターを使用する場合、調整可能なパラメーターは StorageClass
が ExportedGlobal
に設定された Simulink.Parameter
オブジェクトである必要があります。
x = Simulink.Parameter
x.Value = 1
x.CoderInfo.StorageClass = 'ExportedGlobal'
このブロックには 1 つの既定の HDL アーキテクチャがあります。
事前定義された System object を使用する場合、使用できる HDL ブロック プロパティは、対応するブロックで使用できるプロパティと同じです。
既定では、次の HDL ブロック プロパティが使用できます。
ConstMultiplierOptimization | 正準符号付き桁数 (CSD) または因数分解された CSD による最適化。既定の設定は |
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
DistributedPipelining | パイプライン レジスタの分散、またはレジスタのリタイミング。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
LoopOptimization | ループを展開、またはストリームするか、最適化しません。既定の設定は |
MapPersistentVarsToRAM | 永続配列を RAM にマッピングします。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
ResetType | リセット ロジックの生成を抑制。既定値は |
SharingFactor | 単一の共有リソースにマッピングされる、機能的に等価なリソースの数。既定の設定は 0 です。リソース共有 (HDL Coder)も参照してください。 |
VariablesToPipeline | 警告
指定された 1 つ以上の MATLAB 変数の出力にパイプライン レジスタを挿入します。変数のリストを、変数をスペースで区切った文字ベクトルとして指定します。 |
DUT サブシステムはシングルレートでなければなりません。
入力は非離散 (定数または
Inf
) サンプル時間をもつことはできません。HDL コード生成でサポートされている事前定義された System objects を MATLAB System ブロックで使用する場合に見つけるには、HDL コード生成に使用できる事前定義済みの System Objects (HDL Coder)を参照してください。
ユーザー定義の System object を使用する場合は、HDL コード生成をサポートしなければなりません。ユーザー定義の System objects および HDL コード生成の要件の詳細については、System Objects の HDL コード生成 (HDL Coder)を参照してください。
ユーザー定義 System Objects のコードの生成 (HDL Coder)およびSystem Objects の HDL コード生成 (HDL Coder)も参照してください。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
実際のデータ型のサポートは、ブロックの実装に依存します。
バージョン履歴
R2013b で導入R2024a: ラピッド アクセラレータ モードで MATLAB System ブロックについてのランタイム エラーをレポート
ラピッド アクセラレータ モードでシミュレートするときに MATLAB System ブロックについてのランタイム エラーをレポートするには、[メモリの整合性チェックを有効にする] コンフィギュレーション パラメーターを [常にオン]
に設定します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)