このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
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.