Simulink での fi オブジェクト
モデル エクスプローラーを使用した fi
オブジェクトの表示と編集
Simulink® でモデル エクスプローラーを使用し、fi
オブジェクトとそのローカル fimath
プロパティを表示して編集できます。モデル エクスプローラーから fi
の書き込み可能プロパティを変更できますが、作成後に fi
オブジェクトの数値型プロパティを変更することはできません。
ワークスペースからの固定小数点データの読み取り
MATLAB® ワークスペースから From Workspace ブロック経由で Simulink モデルに固定小数点データを読み取ることができます。このためには、データは values
フィールドに fi
オブジェクトをもつ構造体形式でなければなりません。配列形式では、From Workspace ブロックは実数の倍精度データしか受け入れることができません。
fi
にデータを読み取るには、From Workspace ブロックの [データを内挿する] パラメーターを選択してはいけません。また [最後のデータ後の出力フォーム] パラメーターは [外挿]
以外のものに設定しなければなりません。
ワークスペースへの固定小数点データの書き込み
モデルから To Workspace ブロック経由で MATLAB ワークスペースへ固定小数点出力を、配列形式、構造体形式のいずれかで書き込むことができます。To Workspace ブロックによりワークスペースに構造体形式で書き込まれた固定小数点データは、From Workspace ブロックにより構造体形式で Simulink モデルに読み戻すことができます。
メモ
MATLAB ワークスペースに 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 = signals: [1x1 struct] s.signals.dimensions = 2 s = signals: [1x1 struct] s.time = [0:10]' s = signals: [1x1 struct] time: [11x1 double]
次のモデルの From Workspace ブロックは [データ] パラメーターに fi
構造体 s
が含まれます。
MATLAB ワークスペースに fi
オブジェクトとして固定小数点データを書き込むには、To Workspace ブロックのダイアログで [fi オブジェクトとして固定小数点データのログを記録する] チェック ボックスをオンにすることを忘れないでください。オフにすると、固定小数点データは double
型に変換され、double
型としてワークスペースに書き込まれます。
モデルでは、[モデル コンフィギュレーション パラメーター] ダイアログの [ソルバー] ペインのパラメーターは以下のように設定されています。
[開始時間] —
0.0
[終了時間] —
10.0
[タイプ] —
[固定ステップ]
[ソルバー] —
[discrete (no continuous states)]
[固定ステップ (基本サンプル時間)] —
1.0
To Workspace ブロックはシミュレーション結果を fi
構造体として MATLAB ワークスペースに書き込みます。
simout.signals.values 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
ブロック パラメーターの値とデータ型の設定
Fixed-Point Designer™ の式を使用して、Simulink 内でブロック パラメーターの値とデータ型を指定できます。詳細については、固定小数点データ型の指定を参照してください。
固定小数点信号のログ作成
固定小数点信号は信号ログ機能によって MATLAB ワークスペースにログが作成される場合、常に fi
オブジェクトとしてログが作成されます。
信号の信号ログ機能を有効にするには、次の手順を行います。
信号を選択します。
[レコード] ドロップダウンを開きます。
[選択した信号のログ/ログの解除] を選択します。
詳細については、信号ログを使用した信号データの保存を参照してください。
参照モデルまたはモデルの Stateflow® チャートから信号のログを作成すると、fi
オブジェクトの語長が予想よりも長い場合があります。参照モデルと Stateflow チャートでは固定小数点信号の語長は、次に大きいデータ ストレージ コンテナー サイズとしてログが作成されます。
シミュレーション中の固定小数点ブロック データへのアクセス
Simulink は、アプリケーション プログラム インターフェイス (API) を提供します。これによりシミュレーションの実行中に、ブロック入力、ブロック出力、パラメーター、状態、作業ベクトルなどのブロック データにプログラムでアクセスすることができます。このインターフェイスを使用して、シミュレーションの実行中にブロック データにアクセスすることができる MATLAB プログラムを開発したり、MATLAB コマンド ラインからデータにアクセスしたりすることができます。固定小数点の信号情報は、この API 経由で fi
オブジェクトとして返されます。API の詳細は、Simulink ドキュメンテーションの「シミュレーション中のブロック データへのアクセス」を参照してください。