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 の詳細は、シミュレーション中のブロック データへのアクセスを参照してください。