В графике Stateflow® в модели Simulink® можно задать размер объектов данных:
Наследование размера от Сигнала Simulink
Используя числовые значения
Используя выражения MATLAB®
Поддержка метода калибровки зависит от осциллографа ваших данных:
Осциллограф данных | Метод для калибровки данных | ||
---|---|---|---|
Наследуйте размер | Используйте числовые значения | Используйте выражения MATLAB | |
Локальный | Нет | Да | Да |
Постоянный | Нет | Да | Да |
Параметр | Нет | Да | Да |
Входной параметр | Да | Да | Да |
Вывод | Да | Да | Да |
Память хранилища данных | Да | Нет | Нет |
Память хранилища данных Stateflow наследовала все свойства данных, включая размер, от хранилища данных Simulink, до которого это решает. Вы не можете задать свойства явным образом для памяти хранилища данных.
Задайте размер данных Stateflow путем установки свойства Size в Property Inspector или диалоговом окне Свойств данных. Чтобы задать размер данных Stateflow с помощью команд API, установите свойство Props.Array.Size
на числовое значение или выражение MATLAB, которое представляет скаляр, вектор, матрицу или n-мерный массив. Для получения дополнительной информации об использовании API см. Stateflow. Свойства данных.
Чтобы сконфигурировать входные и выходные данные Stateflow, чтобы наследовать размер от соответствующих сигналов ввода и вывода Simulink, войдите –1 в поле Size свойств данных. Эта настройка по умолчанию применяется к входным и выходным данным, которые вы добавляете в свой график. После того, как вы создаете свою модель, столбец Compiled Size Model Explorer отображает фактический размер, который использует скомпилированное приложение симуляции.
Эквивалентная команда API для определения наследованного размера данных:
data_handle.Props.Array.Size = '-1';
Стройте диаграмму действий, что значения хранилища в заданном выводе выводят наследованный размер выходных данных. Если ожидаемый размер в Сигнале Simulink совпадает с выведенным размером, наследование успешно. В противном случае несоответствие происходит в течение времени изготовления.
Графики не могут наследовать основанные на кадре размеры данных от Сигналов Simulink.
Когда вы задаете размер данных с помощью числовых значений в поле Size диалогового окна Свойств данных, следуете этим инструкциям:
Размерность | Что задать в диалоговом окне | Эквивалентная команда API |
---|---|---|
Скаляр |
| data_handle .Props.Array.Size = '1'; data_handle .Props.Array.Size = ''; |
Вектор | Число элементов в строке или вектор-столбце | data_handle .
|
Матрица | Выражение формата
| data_handle .Props.Array.Size = '[r c]';
|
N-мерный массив | Выражение формата
| 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.
Должен оценить к положительному целочисленному значению.
Чтобы задать наследованный размер данных, необходимо ввести –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
Когда несколько переменных с идентичными именами существуют в модели, переменная с самым высоким приоритетом применяется:
Параметры маски
Рабочее пространство модели
Базовое рабочее пространство MATLAB
Данные Stateflow
Избегайте использования переменных, которые могут привести к конфликтам по совпадению имен