Определите размерности выходного сигнала

О размерностях сигнала

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

Чтобы определить размерности, которые сигнал в конечном счете использует для симуляции, сначала обновите блок-схему (например, путем нажатия Ctrl+D). Затем выберите один из этих методов:

  • Отобразите размерности непосредственно на блок-схеме. Используйте этот метод, чтобы проследить размерности сигнала вдоль пути блоков. В модели выберите Display> Signals and Ports> Signal Dimensions).

  • Осмотрите размерности в Model Data Editor, который показывает вам информацию в доступной для поиска, поддающейся сортировке таблице. В таблице правая сторона каждой ячейки в столбце Dimensions показывает истинные размерности соответствующей сигнальной линии в модели. Для получения дополнительной информации о Model Data Editor, смотрите Configure Data Properties при помощи Model Data Editor.

Определение Выходных размерностей исходных блоков

Исходный блок является блоком, который не имеет никаких входных параметров. Примеры исходных блоков включают блок 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 параметр Gain является нескалярным. Simulink расширяет скалярный вход, чтобы совпадать с размерностями нескалярного параметра Gain, как отражено в результатах симуляции в блоке Display.

Нескалярный вход и скалярный параметр

В этом примере вход блока Constant к блоку Gain является нескалярным. Блок 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).

Похожие темы