Если блок может испустить нескалярные сигналы, размерности сигналов, что блок выходные параметры зависит от блочных параметров, если блок является исходным блоком; в противном случае выходные размерности зависят от размерностей блочного входного параметра и параметров.
Чтобы определить размерности, которые сигнал в конечном счете использует для моделирования, сначала обновите блок-схему (например, путем нажатия Ctrl+D). Затем выберите один из этих методов:
Отобразите размерности непосредственно на блок-схеме. Используйте этот метод, чтобы проследить размерности сигнала вдоль пути блоков. В модели выберите Display> Signals и Ports> Signal Dimensions).
Осмотрите размерности в Редакторе Данных модели, который показывает вам информацию в доступной для поиска, поддающейся сортировке таблице. В таблице правая сторона каждой ячейки в столбце Размерностей показывает истинные размерности соответствующей сигнальной линии в модели. Для получения дополнительной информации о Редакторе Данных модели, смотрите Configure Data Properties при помощи Редактора Данных модели.
Исходный блок является блоком, который не имеет никаких входных параметров. Примеры исходных блоков включают блок Constant и блок Sine Wave. Смотрите Источники для полного списка исходных блоков Simulink®. Выходные размерности исходного блока совпадают с теми из его параметров выходного значения, если блок Интерпретирует векторные параметры, когда 1D параметр выключен (то есть, не выбранный в блочном диалоговом окне параметра). Если Интерпретировать векторные параметры как 1D параметр включены, выходные размерности равняются размерностям параметра выходного значения, если размерности параметра не являются N-1 или 1 на n. В последнем случае блок выводит векторный сигнал ширины N.
Как пример того, как параметр (параметры) выходного значения исходного блока и Интерпретирует векторные параметры, когда 1D параметр определяет размерность своего вывода, рассматривает блок Constant. Этот блок выводит постоянный сигнал, равный его параметру Постоянного значения. Следующая таблица иллюстрирует, как размерность параметра Постоянного значения и установка Интерпретировать векторных параметров как 1D параметр определяют размерность вывода блока.
Постоянное значение | Интерпретируйте векторные параметры как 1D | Вывод |
---|---|---|
скаляр | 'off' | массив с одним элементом |
скаляр | на | массив с одним элементом |
Матрица 1 на n | 'off' | Матрица 1 на n |
Матрица 1 на n | на | Вектор N-элемента |
Матрица N-1 | 'off' | Матрица N-1 |
Матрица N-1 | на | Вектор N-элемента |
Матрица m на n | 'off' | Матрица m на n |
Матрица m на n | на | Матрица m на n |
Исходные блоки Simulink позволяют вам или задавать размерности сигналов, что они выводят или задают значения, из которых Simulink выводит размерности. Можно поэтому использовать исходные блоки, чтобы ввести сигналы различных размерностей в модель.
Если блок имеет входные параметры, размерности его выходных параметров, после скалярного расширения, то же самое как те из его входных параметров. (Все входные параметры должны иметь те же размерности, как обсуждено в Правилах измерения Сигнала и Параметра).
При создании модели Simulink необходимо наблюдать следующие правила относительно размерностей параметра и сигнала.
Все нескалярные входные параметры к блоку должны иметь те же размерности.
Блок может иметь соединение скаляра и нескалярных входных параметров, пока все нескалярные входные параметры имеют те же размерности. Simulink расширяет скалярные входные параметры, чтобы иметь те же размерности как нескалярные входные параметры (см. Скалярное Расширение Вводов и Параметров).
В целом блокируйтесь, параметры должны иметь те же размерности как размерности входных параметров к блоку. Simulink выполняет некоторую обработку, которая обеспечивает гибкость, относящуюся к тому общему правилу.
Блок может иметь скалярные параметры, соответствующие нескалярным входным параметрам. В этом случае Simulink расширяет скалярный параметр, чтобы иметь те же размерности как соответствующий входной параметр (см. Скалярное Расширение Вводов и Параметров).
Если входной параметр является вектором, соответствующий параметр может быть или N-1 или матрицей 1 на n. В этом случае Simulink применяет элементы матрицы N к соответствующим элементам входного вектора. Это исключение позволяет использование строки MATLAB® или векторов - столбцов, которые являются матрицами N-1 или на самом деле 1 на n, соответственно, чтобы задать параметры, которые применяются к векторным входным параметрам.
Simulink преобразовывает векторы в строку или матрицы столбца и строку или матрицы столбца к векторам при следующих обстоятельствах:
Если векторный сигнал соединяется с входным параметром, который требует матрицы, Simulink преобразовывает вектор в матрицу с одним столбцом или с одной строкой.
Если один столбец или матрица, состоящая из одной строки, соединяются с входным параметром, который требует вектора, Simulink преобразовывает матрицу в вектор.
Если входные параметры к блоку состоят из смеси векторов и матриц, и матрица вводит, у всех есть один столбец или одна строка, Simulink преобразовывает векторы в матрицы, имеющие один столбец или одну строку, соответственно.
Можно сконфигурировать Simulink, чтобы отобразить предупреждающее сообщение или сообщение об ошибке, если векторное или матричное преобразование происходит во время моделирования. Смотрите входное преобразование блока Vector/matrix для получения дополнительной информации.
Скалярное расширение является преобразованием скалярного значения в нескалярный массив. Много блоков Simulink поддерживают скалярное расширение входных параметров и параметров. Специфичные для блока описания указывают, применяет ли Simulink скалярное расширение на входные параметры и параметры блока.
Скалярное расширение входных параметров относится к расширению скалярных входных параметров, чтобы совпадать с размерностями других нескалярных входных параметров или нескалярных параметров. Когда входной параметр к блоку является соединением скаляра и нескалярных сигналов, Simulink расширяет скалярные входные параметры в нескалярные сигналы, имеющие те же размерности как другие нескалярные входные параметры. Например, скаляр 4 расширен до вектора [4 4 4], если связанное нескалярное имеет размерность 3.
Скалярное расширение параметров относится к расширению скалярных блочных параметров, чтобы совпадать с размерностями нескалярных входных параметров.
Входной параметр (параметры) | Связанный блочный параметр | Скалярное расширение |
---|---|---|
Скаляр | Нескалярный | Введите расширенный, чтобы совпадать с размерностями параметра. |
Нескалярный | Скаляр | Скалярный параметр, расширенный, чтобы совпадать с числом элементов входного параметра. |
Комбинация скаляра и нескалярный | Никакой соответствующий параметр | Скалярные входные параметры, расширенные, чтобы совпадать с размерностями самого большого нескалярного входного параметра. Смотрите скаляр и нескалярные вводы и никакой связанный параметр. |
В этом примере входной параметр блока Constant к блоку Gain является скаляром. Параметр Усиления блока Gain является нескалярным. Simulink расширяет скалярный входной параметр, чтобы совпадать с размерностями нескалярного параметра Усиления, как отражено в результатах симуляции в блоке Display.
В этом примере входной параметр блока Constant к блоку Gain является нескалярным. Параметр Усиления блока Gain является скаляром. Simulink расширяет скалярный параметр, чтобы совпадать с размерностями нескалярного входного параметра от блока Constant, как отражено в результатах симуляции в блоке Display.
В этом примере входной параметр блока Constant1 к блоку Sum является нескалярным, и входной параметр блока Constant2 является скаляром. Блок Sum не имеет никакого связанного параметра. Simulink расширяет скалярный входной параметр от Constant2, чтобы соответствовать к размерностям нескалярного входного параметра блока Constant1. Входной параметр расширен до векторного [3 3 3]
.
Чтобы получить размерности сигналов порта, приостановите моделирование при помощи кнопки Step Forward. Выберите блок и используйте параметр PortHandles
. Затем используйте параметр GetCompiledPortDimensions
. Например, если вы выходите вперед в этой модели и выбираете блок Constant:
ph = get_param(gcb,'PortHandles'); dim = get_param(ph.Outport,'CompiledPortDimensions')
dim = 2 2 3
Для портов нешины результатом является массив, в котором первый элемент является количеством размерностей (в этом случае 2
), и следующие два элемента (соответствующий количеству размерностей) являются значениями размерностей.
Для сигналов шины результаты включают некоторые дополнительные элементы. Предположим, что вы выходите вперед в модели с шинами, и вы выбираете блок Bus Creator, который содержит подшину:
ph = get_param(gcb,'PortHandles'); dim = get_param(ph.Outport,'CompiledPortDimensions')
dim = -2 4 1 2 1 1 3 4 5 6 5 2 3 4 5 6
Первым элементом является -2
, который указывает, что сигнал является шиной. Второй элемент является количеством вершин. Последующие элементы следуют за тем же шаблоном что касается сигналов нешины. В этом примере третий элемент представляет количество размерностей для первого сигнала в шине (в этом случае 1
), и следующий номер является значением в той размерности (2
).