exponenta event banner

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

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

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

Создание кода без встроенного кодера ®.

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

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

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

См. раздел Инициализация значения параметра из системной константы или другого макроса (встроенный кодер).

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

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

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

Соображения и ограничения

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

  • Нельзя задать выражение для значения объекта параметра, представляющего символьное измерение (см. раздел Реализация вариантов измерения для размеров массива в сгенерированном коде (внедренном кодере)).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Связанные темы