Main Content

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

参考

|

関連するトピック