Можно использовать режим переопределения типа данных, чтобы временно переключить типы данных в модель. Эта возможность позволяет вам поддерживать одну модель, но моделировать вашу модель с помощью нескольких типов данных и подтверждать числовое поведение для каждого типа. Например, если вы реализуете алгоритм с помощью типов данных с двойной точностью и хотите проверять, подходит ли алгоритм также для использования с одинарной точностью, можно применить переопределение типа данных к типам данных с плавающей точкой, чтобы заменить, все удваивается с одиночными играми, постоянно не влияя ни на какие другие типы данных в модели.
Чтобы применить переопределение типа данных, необходимо задать тип данных, который вы хотите применить и тип данных, который вы хотите заменить.
Можно установить переопределение типа данных с помощью следующего метода. Этот пример изменяет все типы данных с плавающей точкой на сингл.
Например:
set_param(gcs, 'DataTypeOverride', 'Single',... 'DataTypeOverrideAppliesTo','Floating-point');
Для получения дополнительной информации о настройках переопределения типа данных смотрите Переопределение Типа данных Управления.
Этот пример использует модель ex_single_validation
, чтобы показать, как можно использовать переопределение типа данных. Оказывается, что алгоритм, который реализует типы данных с двойной точностью, также подходит для встроенного использования с одинарной точностью.
Входные параметры In2
и In3
являются входными параметрами с двойной точностью к блокам продукта и Сумме.
Выходные параметры Суммы и блоков продукта являются вводами данных к Многопортовому блоку switch.
Вход In1
является входом управления к Многопортовому блоку switch. Значение этого входа управления определяет который из его других входных параметров, суммы In2
и In3
или продукта In2
и In3
, передач в выходной порт. Поскольку In1
является входом управления, его типом данных является int8
.
Блок Relational Operator сравнивает вывод Многопортового блока switch к In4
и выводит булев сигнал.
Откройте модель
Откройте модель ex_single_validation
. В командной строке MATLAB®, введите:
addpath(fullfile(docroot,'toolbox','simulink','examples')) ex_single_validation
Замените типы данных с плавающей точкой с одиночными играми
В командной строке замените типы данных с плавающей точкой в модели с одиночными играми
set_param(gcs, 'DataTypeOverride', 'Single',... 'DataTypeOverrideAppliesTo','Floating-point');
В образцовом меню выберите Simulation> Update Diagram.
Переопределение типа данных заменяет все с плавающей точкой (double
) типы данных в модели с типами данных single
, но не влияет на целочисленные типы данных или булевы типы данных.
Осуществите проверку Model Advisor
Из образцового меню выберите Analysis> Model Advisor> 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 (Fixed-Point Designer).
Чтобы идентифицировать блоки Simulink®, которые поддерживают одинарную точность в командной строке, вводят showblockdatatypetable
. В модели, чтобы найти блоки, которые не поддерживают одинарную точность, использование, проверка Model Advisor Идентифицирует сомнительные операции для строгого проекта с одинарной точностью.
Simulink.AliasType
| Simulink.NumericType