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