sumblk

Суммирующее соединение для межсоединений на основе имен

Синтаксис

S = sumblk(formula)
S = sumblk(formula,signalsize)
S = sumblk(formula,signames1,signames2,...)

Описание

S = sumblk(formula) создает передаточную функцию, S, суммирующего соединения, описанного formula. Вектор символов formula задает уравнение, которое связывает скалярные входные и выходные сигналы S.

S = sumblk(formula,signalsize) возвращает векторное суммирующее соединение. Входной и выходной сигналы являются векторами с signalsize элементы.

S = sumblk(formula,signames1,signames2,...) заменяет псевдонимы (имена сигналов, начинающиеся с %) в formula по именам сигналов signames. Количество signames аргументы должны совпадать с количеством псевдонимов в formula. Первый псевдоним в formula заменяется на signames1, второй по signames2и так далее.

Входные параметры

formula

Уравнение, которое связывает входной и выходной сигналы суммирующей передаточной функции соединения S, заданный как вектор символов. Для примера выполните следующую команду:

S = sumblk('e = r - y + d')

создает суммирующее соединение с входными именами 'r', 'y', и 'd', выходное имя 'e' и уравнения e = r-y+d.

Если вы задаете signalsize больше 1, входы и выходы S являются векторными сигналами. sumblk автоматически выполняет векторное расширение имен сигналов S. Для примера выполните следующую команду:

S = sumblk('v = u + d',2)

задает суммирующее соединение с входными именами {'u(1)';'u(2)';'d(1)';'d(2)'} и выходные имена {'v(1)';'v(2)'}. Формулы этого суммирующего соединения v(1) = u(1) + d(1); v(2) = u(2) + d(2).

Можно использовать один или несколько псевдонимов в formula для ссылки на имена сигналов, заданные в переменной. Псевдоним - это имя сигнала, которое начинается с %. Когда formula содержит псевдонимы, sumblk заменяет каждый псевдоним на соответствующий signames аргумент.

Псевдонимы применяются, когда вы хотите назвать отдельные значения в векторном сигнале. Псевдонимы также позволяют вам использовать входные или выходные имена существующих моделей. Для примера, если C и G являются динамические системы модели с непустыми InputName и OutputName свойства, соответственно, можно создать суммирующее соединение с помощью следующего выражения.

S = sumblk('%e = r - %y',C.InputName,G.OutputName)

sumblk использует значения C.InputName и G.OutputName вместо %e и %y, соответственно. Векторная размерность C.InputName и G.OutputName должен совпадать. sumblk присваивает сигнал r той же размерности.

signalsize

Количество элементов в каждом входном и выходном сигнале S. Настройка signalsize больше 1 позволяет вам задать суммирующее соединение, которое работает с векторными сигналами.

По умолчанию: 1

signames

Имена сигналов для замены одного псевдонима (имя сигнала, начинающееся с %) в аргументе formula. Вы должны предоставить один signames аргумент для каждого псевдонима в formula.

Задайте signames как:

  • Массив ячеек с именами сигналов.

  • The InputName или OutputName свойство модели в MATLAB® рабочей области. Для примера:

    S = sumblk('%e = r - y',C.InputName)

    Эта команда создает суммирующее соединение, выходы которого имеют то же имя, что входы модели C в рабочем пространстве MATLAB.

Выходные аргументы

S

Передаточная функция для суммирующего соединения, представленная как MIMO tf объект модели.

Примеры

Суммирование соединения со скалярными сигналами

Создайте суммирующее соединение на следующем рисунке. Все сигналы являются скалярными.

Это суммирующее соединение имеет формулу u = u1 + u2 + u3.

S = sumblk('u = u1+u2+u3');

S - передаточная функция (tf) представление суммы u = u1 + u2 + u3. Передаточная функция S получает его входные и выходные имена из формулы.

S.OutputName,S.Inputname
ans = 

    'u'


ans = 

    'u1'
    'u2'
    'u3'

Суммирование соединения с векторными сигналами

Создайте суммирующее соединение v = u - d где u,d,v являются векторными сигналами длины 2.

S = sumblk('v = u-d',2);

sumblk автоматически выполняет векторное расширение имен сигналов S.

S.OutputName,S.Inputname
ans = 

    'v(1)'
    'v(2)'


ans = 

    'u(1)'
    'u(2)'
    'd(1)'
    'd(2)'

Суммирование соединения с векторными сигналами, которые имеют заданные имена сигналов

Создайте суммирующее соединение

e(1)=заданное значение(1)альфа+d(1)e(2)=заданное значение(2)q+d(2)

Сигналы alpha и q иметь пользовательские имена, которые не являются вектором расширением единственного имени сигнала. Поэтому используйте псевдоним в формуле, задающей суммирующее соединение.

S = sumblk('e = setpoint - %y + d', {'alpha';'q'});

sumblk заменяет псевдоним %y с массивом ячеек {'alpha';'q'}.

S.OutputName,S.Inputname
ans = 

    'e(1)'
    'e(2)'


ans = 

    'setpoint(1)'
    'setpoint(2)'
    'alpha'
    'q'
    'd(1)'
    'd(2)'

Совет

  • Использовать sumblk в сочетании с connect для взаимосвязи динамических моделей систем и вывода агрегатных моделей для блоков.

Введенный в R2008a