メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

Simulink データ辞書で CDFX ファイルを使用する

この例では、ASAM CDFX ファイルからのキャリブレーション データをデータ ディクショナリに保存し、これらの値を Simulink ® モデルのパラメーターとして使用する方法を示します。

データのインポート

cdfx 関数を使用してキャリブレーション データをインポートします。

cdfxObj = cdfx("CDFXExampleFile.cdfx")
cdfxObj = 
  CDFX with properties:

       Name: "CDFXExampleFile.cdfx"
       Path: "/mathworks/home/rollinb/Documents/MATLAB/Examples/vnt-ex73237310-20190405222527/CDFXExampleFile.cdfx"
    Version: "CDF20"

キャリブレーションデータを使用してデータディクショナリを作成し、入力する

getValue を使用して、必要なパラメータを MATLAB ® ワークスペースに抽出します。

dictName = "CDFXExampleDD.sldd"
dictName = 
"CDFXExampleDD.sldd"

辞書が作業フォルダ内にすでに存在するかどうかを確認します。

if isfile(dictName)
    % If data dictionary exists, open it.
    dDict = Simulink.data.dictionary.open(dictName)
else
    % If dictionary does not exist, create it and populate with CDFX data.
    dDict = Simulink.data.dictionary.create(dictName)
    ddSection = getSection(dDict, "Design Data")
    
    addEntry(ddSection, "gainParam", getValue(cdfxObj, "ASAM.C.SCALAR.GAIN"))
    addEntry(ddSection, "mapParam", getValue(cdfxObj, "ASAM.C.MAP"))
end
dDict = 
  Dictionary with properties:

                    DataSources: {0×1 cell}
       HasAccessToBaseWorkspace: 0
    EnableAccessToBaseWorkspace: 0
              HasUnsavedChanges: 0
                NumberOfEntries: 2

データ辞書の内容を表示します。

listEntry(dDict)
  Section       Name        Status   DataSource           LastModified       LastModifiedBy   Class    

  Design Data   gainParam            CDFXExampleDD.sldd   2019-04-05 22:33   rollinb          double   
  Design Data   mapParam             CDFXExampleDD.sldd   2019-04-05 22:33   rollinb          struct   

データ辞書をSimulinkモデルにリンクする

Simulink モデルを開き、set_param を使用して既存のデータ ディクショナリをモデルにリンクします。これにより、モデルは辞書内で定義された値にアクセスできるようになります。

open_system("CDFXSLDDModel.slx");
cdfxMdl = gcs
cdfxMdl = 
'CDFXSLDDModel'
set_param(gcs, "DataDictionary", dictName)

これで、データ ディクショナリへの接続を閉じることができます。

close(dDict)

ルックアップゲインモデル

このモデルには以下が含まれます:

  • CDFX ファイルの ASAM.C.MAP パラメータを表す 2-D Lookup Table ブロック。「テーブル データ」フィールドはインスタンスの物理的な値を表し、「ブレークポイント」フィールドは軸の物理的な値を表します。

  • CDFX ファイルの ASAM.C.SCALAR.GAIN パラメータを表す Gain ブロック。

  • シミュレーション データをログに記録するための To Workspace ブロック。

インデックスロジックサブシステム

Indexing Logic サブシステムは、信号ルーティング ブロックおよび Triggered Subsystem とともに、ASAM.C.MAP パラメータの軸の物理値を使用して、ルックアップ インデックスのすべての有効な組み合わせを生成します。この構成は、キャリブレーション パラメータの可能な入力値の全範囲にわたってテストする必要がある場合に役立ちます。

MATLAB のログ出力データ

シミュレーションの出力は、To Workspace ブロックによって MATLAB に送信され、mapData と呼ばれる時系列オブジェクトとして保存されます。このデータは、MATLAB ワークスペースで検査および可視化できるようになりました。

sim(cdfxMdl);
plot(mapData)
title("Simulation Output for ASAM.C.MAP")

% Copyright 2018-2021 The MathWorks, Inc.