Задайте размер данных Stateflow

В графике Stateflow® в модели Simulink® вы задаете размер объекта данных:

  • Установка свойства Size, как описано в Set Data Properties. Для получения дополнительной информации смотрите Размер.

  • Установка Props.Array.Size свойство через API Stateflow. Для получения дополнительной информации смотрите Stateflow.Data.

Используйте один из этих методов, чтобы задать размер:

  • Наследуйте размер от Сигнала Simulink или от его определения в диаграмме Stateflow.

  • Введите числовое значение.

  • Введите выражение MATLAB®.

Поддержка каждого метода калибровки зависит от осциллографа ваших данных.

Осциллограф данныхМетод для калибровки данных
Наследуйте размерИспользуйте числовые значенияИспользуйте выражения MATLAB
ЛокальныйТолько в графиках, которые используют MATLAB в качестве языка действияДаДа
ПостоянныйНетДаДа
ПараметрДаДаДа
Входной параметрДаДаДа
Вывод ДаДаДа
Память хранилища данныхДаНетНет

Наследуйте размер данных

Чтобы сконфигурировать объект данных Stateflow для наследования его размера от соответствующего Сигнала Simulink или его определения в графике, задайте размер –1. После того, как вы симулируете или создадите свою модель, можно найти наследованный размер данных в Model Explorer, в соответствии со столбцом Compiled Size.

Примечание

Графики не могут наследовать размеры данных от Simulink основанные на системе координат сигналы. Для получения дополнительной информации смотрите Выборку - и Основанные на системе координат Концепции (DSP System Toolbox).

Задайте размер данных при помощи числовых значений

Когда вы задаете размер данных путем ввода числового значения, следуете этим инструкциям:

  • Чтобы задать скаляр, введите 1 или покиньте поле пробел.

  • Задавать n- 1 вектор-столбец, введите n.

  • Задавать 1 n вектор-строка, введите [1 n].

  • Задавать n- m матрица, введите [n m].

  • Задавать n- размерный массив, введите [d1 d2dn], где di размер iразмерность th.

В графиках, которые используют C в качестве языка действия, одномерные векторы Stateflow совместимы со строкой Simulink или вектор-столбцами, одного размера. Например, Stateflow входные данные размера 3 совместимо с вектором-строкой Simulink из размера [1 3] или вектор-столбец размера [3 1].

Задайте размер данных при помощи выражений

Можно задать размер данных путем ввода выражения MATLAB, которое оценивает к одним из технических требований размера, описанных в, Задают Размер данных при помощи Числовых значений. Эти инструкции также применяются:

  • Выражения могут содержать соединение числовых значений, констант, параметров, переменных, арифметических операций и вызовов функций MATLAB.

  • Выражения, которые задают размер размерности, должны оценить к положительному целочисленному значению.

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

  • Если выражение содержит перечисляемое значение, необходимо включать префикс типа для непротиворечивости с MATLAB, называющим правила. Например, Colors.Red допустимо, но Red не. Для получения дополнительной информации смотрите Обозначение для Перечисляемых значений.

  • Вы не можете использовать выражение MATLAB для:

    • Задайте наследованный размер данных. Не используйте выражения, которые оценивают к -1.

    • Задайте размер входных данных Stateflow, который принимает основанные на системе координат данные из Simulink. Для получения дополнительной информации смотрите Выборку - и Основанные на системе координат Концепции (DSP System Toolbox).

Примеры допустимых выражений размера данных

Этими примерами являются допустимые выражения MATLAB для определения размера данных в вашем графике:

  • K+3, где K уровень графика константа Stateflow или параметр.

  • N/2, где N переменная в базовом рабочем пространстве MATLAB.

  • [P Q], где P и Q параметры Simulink. Графики, которые используют C в качестве языка действия, распространяют эти символьные размерности в модели. Смотрите Распространяют Символьные Размерности Данных Stateflow.

  • 2*Colors.Red, где Red перечисляемое значение типа Colors.

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

  • floor((a*b)/c), где a и c скаляры типа int16 и b скаляр типа double.

  • [fi(2,1,16,2) fi(4,1,16,2)]. Это выражение задает размер данных [2 4] путем вызывания функции fi (Fixed-Point Designer). Эта функция возвращает подписанные числа фиксированной точки с размером слова 16 и дробной длиной 2.

Избегайте переменных, которые могут привести к конфликтам по совпадению имен

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

ПриоритетПеременная
1Параметр маски
2Переменная рабочего пространства модели
3Переменная базового рабочего пространства MATLAB
4Данные Stateflow

Чтобы избежать беспорядка, не задавайте размер данных при помощи имени переменной, которое вы задаете на нескольких уровнях вашей модели.

Распространите символьные размерности данных Stateflow

Когда вы выбираете параметр конфигурации модели Allow symbolic dimension specification, графики, которые используют C, когда язык действия может распространить символьные размерности данных Stateflow в модели. Если у вас есть Embedded Coder®, символьные размерности входят в сгенерированный код для целей ERT. Задайте размер символьных размерностей при помощи параметров Simulink с одним из этих классов памяти:

  • Define или ImportedDefine с заданным заголовочным файлом

  • CompilerFlag

  • Пользовательский пользовательский класс памяти, который задает данные как макрос в заданном заголовочном файле

Для получения дополнительной информации смотрите, Позволяют символьную спецификацию размерности (Simulink) и Варианты Размерности Реализации для Размеров Массивов в Сгенерированном коде (Embedded Coder).

Диаграммы Stateflow, которые используют MATLAB в качестве языка действия, не поддерживают символьное распространение размерности. Чтобы задать размер данных при помощи параметров Simulink, снимите флажок Allow symbolic dimension specification.

Смотрите также

| (Fixed-Point Designer)

Похожие темы