В этом примере показано, как использовать калибровочные данные из CDFX-файла как входные параметры к модели Simulink.
Импортируйте калибровочные данные с помощью cdfx
функция.
cdfxObj = cdfx("CDFXExampleFile.cdfx")
cdfxObj = CDFX with properties: Name: "CDFXExampleFile.cdfx" Path: "/tmp/BR2021bd_1751886_255755/mlx_to_docbook1/tp43650a5e/vnt-ex88524458/CDFXExampleFile.cdfx" Version: "CDF20"
Используйте getValue
извлекать желаемые параметры в рабочее пространство MATLAB.
gainParam = getValue(cdfxObj, "ASAM.C.SCALAR.GAIN")
gainParam = 3
mapParam = getValue(cdfxObj, "ASAM.C.MAP")
mapParam = struct with fields:
PhysicalValue: [5x5 double]
Axis1: [1x1 struct]
Axis2: [1x1 struct]
open_system("CDFXSimulinkModel.slx");
cdfxMdl = gcs
cdfxMdl = 'CDFXSimulinkModel'
Эта модель содержит:
Блок двумерной интерполяционной таблицы, чтобы представлять ASAM.C.MAP
параметр из CDFX-файла. Поле "Table data" представляет физическое значение экземпляра, и поля "Breakpoint" представляют физические значения осей.
Получите блок, чтобы представлять ASAM.C.SCALAR.GAIN
параметр из CDFX-файла.
С блоком Workspace, чтобы регистрировать данные моделирования.
Индексирующая Логическая подсистема использует физические значения осей ASAM.C.MAP
параметр, наряду с маршрутизацией сигнала блокируется и триггируемая подсистема, чтобы произвести все допустимые комбинации индексов поиска. Эта настройка может быть полезной, если необходимо протестировать через полный спектр возможных входных значений калибровочного параметра.
Выход симуляции отправляется в MATLAB блоком To Workspace, где это хранится как объект timeseries, названный mapData
. Эти данные могут теперь смотреться и визуализироваться в рабочем пространстве MATLAB.
sim(cdfxMdl);
plot(mapData)
title("Simulation Output for ASAM.C.MAP")
% Copyright 2018-2021 The MathWorks, Inc.