Simulink モデルと MATLAB ソフトウェア間の固定小数点データの受け渡し
MATLAB® ソフトウェアから固定小数点データを Simulink® モデルに読み取ることができます。いくつかの方法で固定小数点情報をモデルやシミュレーションからワークスペースに記録できます。
ワークスペースからの固定小数点データの読み取り
MATLAB ワークスペースから Simulink モデルに固定小数点データを読み取るには、From Workspace ブロックを使用します。このためには、データは values
フィールドに Fixed-Point Designer™ fi
オブジェクトをもつ構造体形式でなければなりません。配列形式では、From Workspace ブロックは実数の倍精度データしか受け入れることができません。
fi
にデータを読み取るには、From Workspace ブロックの [データを内挿する] パラメーターを選択してはいけません。また [最後のデータ後の出力フォーム] パラメーターは [外挿]
以外のものに設定しなければなりません。
ワークスペースへの固定小数点データの書き込み
モデルから To Workspace ブロック経由で MATLAB ワークスペースへ固定小数点出力を、配列形式、構造体形式のいずれかで書き込むことができます。To Workspace ブロックによりワークスペースに構造体形式で書き込まれた固定小数点データは、From Workspace ブロックにより構造体形式で Simulink モデルに読み戻すことができます。
メモ
ワークスペースに fi
オブジェクトとして固定小数点データを書き込むには、To Workspace ブロックのダイアログで [fi オブジェクトとして固定小数点データのログを記録する] チェック ボックスをオンにします。オフにすると、固定小数点データは double
型に変換され、double
型としてワークスペースに書き込まれます。
たとえば、次のコードを使用して values
フィールドに fi
オブジェクトをもつ構造体を MATLAB ワークスペース内で作成できます。その後 From Workspace ブロックを使用して Simulink モデルにデータを渡すことができます。
a = fi([sin(0:10)' sin(10:-1:0)']) a = 0 -0.5440 0.8415 0.4121 0.9093 0.9893 0.1411 0.6570 -0.7568 -0.2794 -0.9589 -0.9589 -0.2794 -0.7568 0.6570 0.1411 0.9893 0.9093 0.4121 0.8415 -0.5440 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15 s.signals.values = a s = struct with fields: signals: [1×1 struct] s.signals.dimensions = 2 s = struct with fields: signals: [1×1 struct] s.time = [0:10]' s = struct with fields: signals: [1×1 struct] time: [11×1 double]
次のモデルの From Workspace ブロックは [データ] パラメーターに fi
構造体 s
が含まれます。モデルでは、[コンフィギュレーション パラメーター] ダイアログ ボックスの [ソルバー] ペインの以下のパラメーターは示される設定になっています。
[開始時間] —
0.0
[終了時間] —
10.0
[タイプ] —
Fixed-step
[ソルバー] —
discrete (no continuous states)
[固定ステップ サイズ (基本サンプル時間)] —
1.0
To Workspace ブロックはシミュレーション結果を fi
構造体として MATLAB ワークスペースに書き込みます。
out.simout.data ans = 0 -8.7041 13.4634 6.5938 14.5488 15.8296 2.2578 10.5117 -12.1089 -4.4707 -15.3428 -15.3428 -4.4707 -12.1089 10.5117 2.2578 15.8296 14.5488 6.5938 13.4634 -8.7041 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 25
固定小数点信号のログ作成
固定小数点信号は信号ログ機能経由で MATLAB ワークスペースに記録される場合、常に Fixed-Point Designer fi
オブジェクトとして記録されます。
信号のログを有効にするには、最初に信号を選択します。その後、[シミュレーション] タブで、[信号のログ] をクリックします。
詳細については、信号ログを使用して、信号データをエクスポートを参照してください。
参照モデルまたはモデルの Stateflow® チャートから信号のログを作成すると、fi
オブジェクトの語長が予想よりも長い場合があります。参照モデルと Stateflow チャート内の固定小数点信号の語長は、2 番目に大きなデータ ストレージ コンテナー サイズとして記録されます。
シミュレーション中の固定小数点ブロック データへのアクセス
Simulink は、アプリケーション プログラミング インターフェイス (API) を提供します。これによりシミュレーションの実行中に、ブロック入力、ブロック出力、パラメーター、状態、作業ベクトルなどのブロック データにプログラムでアクセスすることができます。このインターフェイスを使用して、シミュレーションの実行中にブロック データにアクセスすることができる MATLAB プログラムを開発したり、MATLAB コマンド ラインからデータにアクセスしたりすることができます。固定小数点の信号情報は、この API 経由で fi
オブジェクトとして返されます。API の詳細は、シミュレーション中のブロック データへのアクセスを参照してください。