Генерация кода объектов параметра со значениями выражений

Как описано в Наборе Значений переменных при Помощи Математического Выражения, можно задать значение Simulink.Parameter объект выражению с участием другого MATLAB® переменные или объекты параметров. Когда вы генерируете код из модели, которая использует такой объект параметра, для достижения своей цели используйте информацию в таблице.

ЦельМетод и дополнительная информация

Сгенерируйте код без Embedded Coder®.

Для объекта параметра, который использует выражение, примените доступный класс памяти (см. Строение генерации кода C для элементов интерфейса модели).

Для объектов параметра, используемых в выражении, примените только класс памяти Auto.

Сгенерируйте код, который задает глобальную переменную и инициализирует ее с помощью выражения с включением системных констант и других макросов (требует Embedded Coder).

Смотрите Initialize Parameter Value From System Constant или Другой макрос (Embedded Coder) (Встроенный кодер).

Сгенерируйте код, который определяет макрос, значение которого является выражением с участием других макросов (требует Embedded Coder).

Для объекта параметра, который использует выражение, примените класс памяти, который дает макрос в сгенерированном коде, например Define (см. «Определения макросов» (# define) (Embedded Coder)).

Для объектов параметров, используемых в выражении, примените классы памяти, которые дают импортированные макросы. Для примера используйте класс памяти ImportedDefine. Внешний код должен определять эти макросы.

Факторы и ограничения

  • Чтобы избежать ошибок, препятствующих генерации кода, если вы применяете класс памяти кроме Auto для объекта зависимого параметра (который использует выражение в качестве своего значения) объекты параметра, используемые в выражении, должны использовать Auto или класс памяти, который дает макрос в сгенерированном коде.

  • Вы не можете задать значение объекта параметра, который представляет символьную размерность (см. «Реализация вариантов размерности для размеров массивов в сгенерированном коде» (Embedded Coder)), в выражение.

  • С помощью Embedded Coder можно сгенерировать код, который сохраняет выражение, но только с целью статической инициализации значения глобальной переменной или макроса, который соответствует объекту зависимого параметра. Следуйте рекомендациям по сохранению выражения.

Сохранение выражения

Если вы хотите, чтобы Embedded Coder сохранял выражения в сгенерированном коде, придерживайтесь этих ограничений и инструкций.

  • Объект зависимого параметра должен использовать класс памяти, отличный от Auto. Для примера, чтобы сгенерировать глобальную переменную и инициализировать ее с помощью выражения, используйте ExportedGlobal или ExportToFile.

  • Объекты параметра, используемые в выражении, должны:

    • Используйте класс памяти, который приводит к появлению макроса в сгенерированном коде, например Define.

    • Иметь скалярные, действительные значения, если выражение использует операторы.

  • Выражение может использовать только эти операторы (в синтаксисе MATLAB):

    • Математический: +, -, *

    • Реляционные: ==, ~=, <, >, <=, >=

  • Эти инструкции по типированию данных применяются:

    • Если возможно, для объекта параметра, используемого в выражении, оставьте DataType свойство в значение по умолчанию, auto.

      Как использовать значение, отличное от auto, вы должны задать DataType свойство объекта, который использует выражение с тем же значением. В противном случае генератор кода не сохраняет выражение.

    • Если вы хотите использовать объект параметра в нескольких различных выражениях, а зависимые объекты параметра имеют различные типы данных, оставьте DataType свойство независимого объекта в значение по умолчанию, auto. В сгенерированном коде значение макроса выражается как число с плавающей запятой (с эффективным типом данных double), и код инициализирует зависимые параметры путем ввода результатов каждого выражения.

См. также

Похожие темы