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