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

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

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

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

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

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

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

Исходный блок является блоком, который не имеет никаких входных параметров. Примеры исходных блоков включают блок Constant и блок Sine Wave. Смотрите Источники для полного списка исходных блоков Simulink®. Выходные размерности исходного блока совпадают с теми из его параметров выходного значения, если параметры вектора блока Interpret как 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).

Похожие темы