В этом примере показано, как уточнить типы данных модели с помощью командной строки.
Откройте окно fxpdemo_feedback модель.
model = 'fxpdemo_feedback';
open_system(model);

Подсистема контроллера использует типы данных с фиксированной точкой.
sud = 'fxpdemo_feedback/Controller';
open_system(sud)

Создать DataTypeWorkflow.Converter объект для уточнения типов данных подсистемы контроллера fxpdemo_feedback модель.
converter = DataTypeWorkflow.Converter(sud);
Моделирование модели и сохранение результатов в прогоне с названием InitialRun.
converter.CurrentRunName = 'InitialRun';
converter.simulateSystem();
Определите все переполнения, возникшие во время выполнения.
saturations = converter.saturationOverflows('InitialRun')
saturations =
Result with properties:
ResultName: 'fxpdemo_feedback/Controller/Up Cast'
SpecifiedDataType: 'fixdt(1,16,14)'
CompiledDataType: 'fixdt(1,16,14)'
ProposedDataType: ''
Wraps: []
Saturations: 23
WholeNumber: 0
SimMin: -2
SimMax: 1.9999
DerivedMin: []
DerivedMax: []
RunName: 'InitialRun'
Comments: {'An output data type cannot be specified on this result. The output type is the same as the input type.'}
DesignMin: []
DesignMax: []
wraps = converter.wrapOverflows('InitialRun')
wraps =
[]
Во время моделирования происходит насыщение в блоке Up Cast подсистемы контроллера. Переполнений обертки нет. Уточните типы данных модели, чтобы не было насыщения.
Настройте модель для преобразования с помощью ярлыка. Поиск ярлыков, доступных для системы, с помощью ShortcutsForSelectedSystem свойство объекта конвертера.
shortcuts = converter.ShortcutsForSelectedSystem
shortcuts =
6x1 cell array
{'Range collection using double override' }
{'Range collection with specified data types' }
{'Range collection using single override' }
{'Disable range collection' }
{'Remove overrides and disable range collection'}
{'Range collection using scaled double override'}
Для сбора идеализированных диапазонов для системы используйте 'Range collection using double override' , переопределить систему с помощью типов данных с двойной точностью и включить инструментарий.
converter.applySettingsFromShortcut(shortcuts{1});
Этот ярлык также обновляет текущее свойство имени выполнения объекта конвертера.
baselineRun = converter.CurrentRunName
baselineRun =
'Ranges(Double)'
Снова смоделируйте модель для сбора информации об идеализированном диапазоне. Эти результаты сохраняются в прогоне. baselineRun.
converter.simulateSystem();
Создать ProposalSettings объект для управления настройками предложения типа данных и задания допусков для сигналов в модели.
propSettings = DataTypeWorkflow.ProposalSettings;
Укажите относительный допуск 20% для выходного сигнала PlantOutput сигнал в модели.
addTolerance(propSettings, 'fxpdemo_feedback/Analog Plant', 1, 'RelTol', 2e-1);
Все допуски, указанные для системы, можно просмотреть с помощью showTolerances способ.
showTolerances(propSettings)
Path Port_Index Tolerance_Type Tolerance_Value
_________________________________ __________ ______________ _______________
{'fxpdemo_feedback/Analog Plant'} 1 {'RelTol'} 0.2
Предлагать типы данных для системы с использованием параметров настройки предложения, указанных в propSettingsи диапазоны, хранящиеся в baselineRun выполнить.
converter.proposeDataTypes(baselineRun, propSettings)
Применить типы данных, предложенные для baselineRun выполнить к модели.
converter.applyDataTypes(baselineRun)
Убедитесь, что поведение модели с использованием новых типов данных соответствует допускам, указанным в объекте настроек предложения. propSettings. verify метод удаляет переопределение типа данных и моделирует модель с использованием обновленных типов данных с фиксированной точкой. Он возвращает DataTypeWorkflow.VerificationResult объект.
result = verify(converter, baselineRun, 'FixedRun')
result =
VerificationResult with properties:
ScenarioResults: [0x0 DataTypeWorkflow.VerificationResult]
RunName: 'FixedRun'
BaselineRunName: 'Ranges(Double)'
Status: 'Pass'
MaxDifference: 0.0351
Использование explore способ DataTypeWorkflow.VerificationResult запустите инспектор расчетных данных и проверьте сигналы, для которых задан допуск.
explore(result)
