В этом примере показано, как использовать калибровочные данные из CDF-файла как входные параметры к модели Simulink.
Импортируйте калибровочные данные с помощью cdfx
функция.
cdfxObj = cdfx("CDFXExampleFile.cdfx")
java.lang.ClassCastException: net.asam.schema.cdf.r2_1.impl.CdfFactoryImpl cannot be cast to net.asam.schema.cdf.r2_1.CdfFactory at net.asam.schema.cdf.r2_1.impl.CdfFactoryImpl.init(CdfFactoryImpl.java:31) at net.asam.schema.cdf.r2_1.CdfFactory.<clinit>(CdfFactory.java:22) at net.asam.schema.cdf.r2_1.impl.CdfPackageImpl.<init>(CdfPackageImpl.java:574) at net.asam.schema.cdf.r2_1.impl.CdfPackageImpl.init(CdfPackageImpl.java:598) at net.asam.schema.cdf.r2_1.CdfPackage.<clinit>(CdfPackage.java:82) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at com.mathworks.jmi.ClassLoaderManager.loadClass(ClassLoaderManager.java:440) at com.mathworks.jmi.ClassLoaderManager.findClass(ClassLoaderManager.java:422) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.mathworks.jmi.OpaqueJavaInterface.findClass(OpaqueJavaInterface.java:186)
cdfxObj = CDFX with properties: Name: "CDFXExampleFile.cdfx" Path: "/tmp/BR2020bd_1459859_228739/mlx_to_docbook1/tpe7428071/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 The MathWorks, Inc.