Можно использовать режим переопределения типа данных, чтобы временно переключить типы данных в модели. Эта возможность позволяет вам поддерживать одну модель, но симулировать модель с помощью нескольких типов данных и подтвердить численное поведение для каждого типа. Например, если вы реализуете алгоритм с использованием типов данных с двойной точностью и хотите проверить, подходит ли алгоритм также для использования с одной точностью, можно применить переопределение типа данных к типам данных с плавающей точкой, чтобы заменить все двойки на синглы, не оказывая постоянного влияния на любые другие типы данных в вашей модели.
Чтобы применить переопределение типа данных, необходимо задать тип данных, которые вы хотите применить, и тип данных, который вы хотите заменить.
Переопределение типа данных можно задать с помощью следующего метода. Этот пример меняет все типы данных с плавающей точкой на одинарные.
Для примера:
set_param(gcs, 'DataTypeOverride', 'Single',... 'DataTypeOverrideAppliesTo','Floating-point');
Дополнительные сведения о настройках переопределения типа данных см. в разделе «Переопределение типа данных управления».
Этот пример использует ex_single_validation
модель, чтобы показать, как можно использовать переопределение типа данных. Это доказывает, что алгоритм, реализующий типы данных двойной точности, также подходит для встроенного использования с одной точностью.
Входы In2
и In3
являются входами двойной точности в блоки Sum и Product.
Выходы блоков Sum и Product являются входами данных в блок Multiport Switch.
Область входа In1
- управляющий вход блока Multiport Switch. Значение этого входа управления определяет, какой из других его входов, сумму In2
и In3
или продукт In2
и In3
, переходит к порту выхода. Потому что In1
является управляющим входом, его тип данных int8
.
Блок Relational Operator сравнивает выход блока Multiport Switch с In4
, и выводит логический сигнал.
Откройте модель
Откройте ex_single_validation
модель. В MATLAB® в командной строке введите:
addpath(fullfile(docroot,'toolbox','simulink','examples')) ex_single_validation
Переопределение типов данных с плавающей точкой с помощью синглов
В командной строке переопределите типы данных с плавающей точкой в модели на синглы
set_param(gcs, 'DataTypeOverride', 'Single',... 'DataTypeOverrideAppliesTo','Floating-point');
В модели на вкладке Modeling нажмите Update Model.
Переопределение типа данных заменяет все с плавающей точкой (double
) типы данных в модели с single
типы данных, но не влияют на целое число или логические типы данных.
Запуск проверки Model Advisor
Из модели на вкладке Modeling нажмите Model Advisor.
В диалоговом окне «Системный селектор» нажмите кнопку OK.
Откроется Model Advisor.
В Model Advisor разверните узел By Task и, под Modeling Single-Precision Systems, выберите проверку Identify questionable operations for strict single-precision design.
На правой панели нажмите кнопку Run This Check.
Проверка проходит, указывая, что этот алгоритм подходит для использования с одной точностью. Чтобы убедиться, что в сгенерированном коде не остается типов данных двойной точности, используйте Single-Precision Converter перед генерацией кода для встраиваемого использования с одной точностью. Для получения дополнительной информации смотрите Начало работы с Single Precision Converter (Fixed-Point Designer).
Идентификация Simulink® блоки, поддерживающие одинарную точность, в командной строке вводят showblockdatatypetable
. В модели, чтобы найти блоки, которые не поддерживают одну точность, используйте проверку Model Advisor Идентифицируйте сомнительные операции для строгого проекта с одной точностью.
Simulink.AliasType
| Simulink.NumericType