В графике 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
d2
⋯ dn
]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 |
Чтобы избежать беспорядка, не задавайте размер данных при помощи имени переменной, которое вы задаете на нескольких уровнях вашей модели.
Когда вы выбираете параметр конфигурации модели Allow symbolic dimension specification, графики, которые используют C, когда язык действия может распространить символьные размерности данных Stateflow в модели. Если у вас есть Embedded Coder®, символьные размерности входят в сгенерированный код для целей ERT. Задайте размер символьных размерностей при помощи параметров Simulink с одним из этих классов памяти:
Define
или ImportedDefine
с заданным заголовочным файлом
CompilerFlag
Пользовательский пользовательский класс памяти, который задает данные как макрос в заданном заголовочном файле
Для получения дополнительной информации смотрите, Позволяют символьную спецификацию размерности (Simulink) и Варианты Размерности Реализации для Размеров Массивов в Сгенерированном коде (Embedded Coder).
Диаграммы Stateflow, которые используют MATLAB в качестве языка действия, не поддерживают символьное распространение размерности. Чтобы задать размер данных при помощи параметров Simulink, снимите флажок Allow symbolic dimension specification.
size
| fi
(Fixed-Point Designer)