主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

MATLAB函数

組み込みCコードを生成するMATLABコードをモデルに含める

  • ライブラリ:
  • 金宝appSimulink /用户定义函数

    HDL编码器/用户定义函数

  • MATLAB功能块

説明

MATLAB函数ブロックを使用すると,使用するMATLAB®関数を仿金宝app真软件®モデルで作成できます。作成したMATLAB関数は,シミュレーションのために実行されて,金宝app仿真软件编码器™ターゲット用のコードを生成します。金宝appMATLAB仿真软件および製品をはじめて使用する場合は,MATLAB函数ブロックを使用したカスタム機能の作成およびブロックを使用したMATLAB関数の実装の概要を参照してください。

この例のようにMATLAB函数ブロックをダブルクリックしてエディターを開き,MATLAB関数ブロックを書き込みます。

このエディターの詳細は,MATLAB函数ブロックエディターを参照してください。

MATLAB函数ブロックへの入力および出力データは,関数ヘッダーで引数および戻り値として指定します。前のサンプル関数の引数と戻り値は,モデルのブロックの入力および出力に相当します。

[データの編集)を選択してMATLAB函数ブロックエディターにアクセスすることで,[端子とデータの管理]からデータ,入力トリガー,関数呼び出し出力を定義できます。端子とデータの管理を参照してください。

MATLAB函数ブロックは,各変数のサイズ,クラスおよび実数/複素数を決定する解析に基づいて,効率の良い組み込み可能なコードを生成します。この分析によって次の制限が適用されます。

言語の制約に加えて,MATLAB函数ブロックは,MATLABで使用可能な関数の一部をサポートしています。サポートされている関数の一覧は,C / c++コードの生成でサポートされている関数およびオブジェクトを参照してください。これらの関数には,次のような一般的カテゴリの関数が含まれます。

メモ

このブロックのコードはMATLABとまったく同じ結果になるように試みますが,丸め誤差のために,結果が異なる場合があります。このような数値の差は,当初はわずかな関数每股收益でも,演算を繰り返すことによって拡大することがあります。の動作に依存することはお勧めできません。同じ計算でも,異なるCコンパイラを使用すると,異なる結果になることがあります。

メモ

MATLAB函数ブロックには% # codegen命令が含まれ,ブロックのMATLABアルゴリズムが常にコードの生成を目的としていることが強調されます。% # codegen命令の有無にかかわらず,MATLAB函数ブロックのコンテキストにおけるエラーチェックの動作は変更されません。詳細については,コンパイル命令% # codegenを参照してください。

データの可視化をサポートするために,MATLAB函数ブロックは,シミュレーションについてのみ,MATLAB関数の呼び出しをサポートします。この機能の制約と,このブロックにコード解析とこの機能を組み込む方法については,生成コードでのMATLABエンジンを使用した関数呼び出しの実行を参照してください。これらの関数呼び出しは,金宝app仿真软件の入力または出力に直接影響しない場合,金宝app仿真软件编码器生成コードには表示されません。

MATLAB函数ブロックから,金宝app仿真软件的功能ブロックで定義された関数を呼び出すこともできます。関数Stateflow®は[チャートプロパティ]ダイアログボックスで[チャートレベルの関数をエクスポート(グローバル))および[エクスポートされた関数の仿金宝app真软件による呼び出しを許可)をオンにして呼び出すことができます。

(端子とデータの管理]で,ブロック入力を端子ではなく仿真金宝app软件パラメーターとして宣言することができます。MATLAB函数ブロックは,入力,出力,およびパラメーターについて,タイプとサイズの継承もサポートします。これらのプロパティを明示的に指定することもできます。MATLAB函数ブロックで使用する変数の詳細については,関数引数の型指定関数引数のサイズ指定およびパラメーター引数の追加を参照してください。

MATLAB函数では,再帰呼び出しはできません。

既定の設定では,MATLAB函数ブロックで直達が有効になっています。この機能を無効にするには,[端子とデータの管理]で(直達を許可)チェックボックスをオフにします。非直達セマンティクスにより,出力が現在の状態に確実に依存するようになります。非直達を使用すると,フィードバックループでMATLAB函数ブロックを使用し,代数ループを回避できます。詳細については,MATLAB函数ブロックでの非直達の使用を参照してください。

端子

入力

すべて展開する

MATLAB函数ブロック内にある関数の最初の入力引数に対応する入力。エディターで関数の引数の名前を変更した場合,ブロックはそれに応じて端子の名前を変更します。

MATLABでサポートされていても,仿金宝app真软件でサポートされないデータ型については,仿真软件モデルとMATLAB函数ブロック内の関数との間で受け渡しされない可能性があります。これらの型はMATLAB函数ブロック内で使用される場合があります。

このブロックの固定小数点サポートの詳細は,固定小数点データ型とMATLAB函数ブロック(定点设计师)およびMATLAB函数ブロックでのデータ型オーバーライドの使用(定点设计师)を参照してください。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

MATLAB函数ブロック内の関数へのn番目の入力引数。エディターで引数を追加する場合,ブロックはそれに応じて端子を追加します。

MATLABでサポートされていても,仿金宝app真软件でサポートされないデータ型については,仿真软件モデルとMATLAB函数ブロック内の関数との間で受け渡しされない可能性があります。これらの型はMATLAB函数ブロック内で使用される場合があります。

このブロックの固定小数点サポートの詳細は,固定小数点データ型とMATLAB函数ブロック(定点设计师)およびMATLAB函数ブロックでのデータ型オーバーライドの使用(定点设计师)を参照してください。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

出力

すべて展開する

MATLAB函数ブロック内にある関数の最初の出力引数。エディターで関数の引数の名前を変更した場合,ブロックはそれに応じて端子の名前を変更します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

MATLAB函数ブロック内にある関数からのn番目の出力引数。エディターで引数を追加する場合,ブロックはそれに応じて端子を追加します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

ブロックの特性

データ型

布尔一个|公共汽车一个|一个|枚举一个|不动点一个|整数一个|一个|字符串一个

直接フィードスルー

いいえ

多次元信号

限定的一个

可変サイズの信号

限定的一个

ゼロクロッシング検出

いいえ

一个実際のデータ型または機能のサポートは,ブロックの実装に依存します。

拡張機能

PLCコード生成
金宝app仿真软件®PLC编码器™を使用して構造化テキストコードを生成します。

R2011aで導入