Как описано в разделе Задание значения переменной с помощью математического выражения, можно задать значение Simulink.Parameter объект - выражение, включающее другие переменные MATLAB ® или объекты параметров. При создании кода из модели, использующей такой объект параметра, для достижения поставленной цели используйте информацию в таблице.
| Цель | Техника и дополнительная информация |
|---|---|
Создание кода без встроенного кодера ®. | Для объекта параметра, использующего выражение, примените доступный класс хранения (см. раздел Конфигурация генерации кода C для элементов интерфейса модели). Для объектов параметров, используемых в выражении, примените только класс хранения |
Создайте код, определяющий глобальную переменную и инициализирующий ее с помощью выражения, включающего системные константы и другие макросы (требуется Embedded Coder). | См. раздел Инициализация значения параметра из системной константы или другого макроса (встроенный кодер). |
Создание кода, определяющего макрос, значение которого является выражением, включающим другие макросы (требуется Embedded Coder). | Для объекта параметра, использующего выражение, примените класс хранения, который дает макрос в созданном коде, например Для объектов параметров, используемых в выражении, примените классы хранения, которые дают импортированные макросы. Например, используйте класс хранения |
Во избежание ошибок, препятствующих созданию кода, при применении класса хранения, отличного от Auto для объекта зависимого параметра (который использует выражение в качестве своего значения), объекты параметра, используемые в выражении, должны использовать либо Auto или класс хранения, который дает макрос в созданном коде.
Нельзя задать выражение для значения объекта параметра, представляющего символьное измерение (см. раздел Реализация вариантов измерения для размеров массива в сгенерированном коде (внедренном кодере)).
С помощью встроенного кодера можно создать код, сохраняющий выражение, но только с целью статической инициализации значения глобальной переменной или макроса, соответствующего объекту зависимого параметра. Следуйте инструкциям в разделе Сохранение выражения.
Если вы хотите, чтобы Embedded Coder сохранял выражения в создаваемом коде, соблюдайте эти ограничения и рекомендации.
Зависимый объект параметра должен использовать класс хранения, отличный от Auto. Например, чтобы создать глобальную переменную и инициализировать ее с помощью выражения, используйте ExportedGlobal или ExportToFile.
Объекты параметров, используемые в выражении, должны:
Использовать класс хранения, который дает макрос в созданном коде, например Define.
Иметь скалярные, вещественные значения, если выражение использует операторы.
Выражение может использовать только следующие операторы (в синтаксисе MATLAB):
Математические: +, -, *
Реляционные: ==, ~=, <, >, <=, >=
Применяются следующие рекомендации по типированию данных:
Если возможно, для объекта параметра, используемого в выражении, оставьте значение DataType свойство по умолчанию, auto.
Использование значения, отличного от auto, необходимо установить DataType свойство объекта, использующего выражение для того же значения. В противном случае генератор кода не сохраняет выражение.
Если требуется использовать объект параметра в нескольких различных выражениях, а зависимые объекты параметров имеют различные типы данных, оставьте поле DataType свойство независимого объекта по умолчанию, auto. В сгенерированном коде значение макроса выражается в виде числа с плавающей запятой (с эффективным типом данных double), и код инициализирует зависимые параметры, вводя результат каждого выражения.