Main Content

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 オブジェクトとしてログが作成されます。

信号の信号ログ機能を有効にするには、次の手順を行います。

  1. 信号を選択します。

  2. [レコード] ドロップダウンを開きます。

  3. [選択した信号のログ/ログの解除] を選択します。

詳細については、信号ログを使用した信号データの保存を参照してください。

参照モデルまたはモデルの Stateflow® チャートから信号のログを作成すると、fi オブジェクトの語長が予想よりも長い場合があります。参照モデルと Stateflow チャートでは固定小数点信号の語長は、次に大きいデータ ストレージ コンテナー サイズとしてログが作成されます。

シミュレーション中の固定小数点ブロック データへのアクセス

Simulink は、アプリケーション プログラム インターフェイス (API) を提供します。これによりシミュレーションの実行中に、ブロック入力、ブロック出力、パラメーター、状態、作業ベクトルなどのブロック データにプログラムでアクセスすることができます。このインターフェイスを使用して、シミュレーションの実行中にブロック データにアクセスすることができる MATLAB プログラムを開発したり、MATLAB コマンド ラインからデータにアクセスしたりすることができます。固定小数点の信号情報は、この API 経由で fi オブジェクトとして返されます。API の詳細は、Simulink ドキュメンテーションの「シミュレーション中のブロック データへのアクセス」を参照してください。