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

Методы для калибровки данных Stateflow

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

  • Наследование размера от Сигнала Simulink

  • Используя числовые значения

  • Используя выражения MATLAB®

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

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

Память хранилища данных Stateflow наследовала все свойства данных, включая размер, от хранилища данных Simulink, до которого это решает. Вы не можете задать свойства явным образом для памяти хранилища данных.

Как задать размер данных

Задайте размер данных Stateflow путем установки свойства Size в Property Inspector или диалоговом окне Свойств данных. Чтобы задать размер данных Stateflow с помощью команд API, установите свойство Props.Array.Size на числовое значение или выражение MATLAB, которое представляет скаляр, вектор, матрицу или n-мерный массив. Для получения дополнительной информации об использовании API см. Stateflow. Свойства данных.

Наследуйте размер ввода или вывода от сигналов Simulink

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

Эквивалентная команда API для определения наследованного размера данных:

data_handle.Props.Array.Size = '-1';

Стройте диаграмму действий, что значения хранилища в заданном выводе выводят наследованный размер выходных данных. Если ожидаемый размер в Сигнале Simulink совпадает с выведенным размером, наследование успешно. В противном случае несоответствие происходит в течение времени изготовления.

Примечание

Графики не могут наследовать основанные на кадре размеры данных от Сигналов Simulink.

Инструкции для калибровки данных с числовыми значениями

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

РазмерностьЧто задать в диалоговом окнеЭквивалентная команда API

Скаляр

1 (или покидают поле пробел),

data_handle.Props.Array.Size = '1';
data_handle.Props.Array.Size = '';

Вектор

Число элементов в строке или вектор-столбце

data_handle.Props.Array.Size = 'number_of_elements';

Матрица

Выражение формата
[r c] , где:

  • r является количеством строк

  • c является количеством столбцов

data_handle.Props.Array.Size = '[r c]';

N-мерный массив

Выражение формата
[Size_of_dim1 Size_of_dim2 ... Size_of_dimN] , где:

  • Size_of_dim1 является размером первой размерности

  • Size_of_dim2 является размером второго измерения

  • Size_of_dimN является размером N-th размерность

data_handle.Props.Array.Size = '[Size_of_dim1 Size_of_dim2 ... Size_of_dimN];

Одномерные векторы Stateflow совместимы со строкой Simulink или вектор-столбцами, одного размера. Например, данные о вводе или выводе Stateflow размера 3 совместимы с вектором - строкой Simulink из размера [1 3] или вектор-столбец размера [3 1].

Инструкции для калибровки данных с выражениями MATLAB

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

  • Выражения, которые задают размер размерности:

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

    • Должен оценить к положительному целочисленному значению.

  • Чтобы задать наследованный размер данных, необходимо ввести –1 в поле Size или установить свойство Props.Array.Size для данных к –1. Выражения не могут оценить к значению –1.

  • Если выражение содержит перечисляемое значение, необходимо включать префикс типа для непротиворечивости с MATLAB, называющим правила.

    Например, Colors.Red допустим, но Red не.

  • Вы не можете измерить входные данные Stateflow с выражением, которое принимает основанные на кадре данные из Simulink.

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

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

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

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

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

  • [fi(2,1,16,2) fi(4,1,16,2)], который задает размер данных [2 4] с помощью фиксированной точки со знаком с размером слова 16 и дробной длиной 2

Разрешение конфликта по совпадению имен для переменных в выражениях размера

Когда несколько переменных с идентичными именами существуют в модели, переменная с самым высоким приоритетом применяется:

  1. Параметры маски

  2. Рабочее пространство модели

  3. Базовое рабочее пространство MATLAB

  4. Данные Stateflow

Лучшые практики для калибровки данных Stateflow

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

 Избегайте использования размера (u) выражения

Похожие темы