getValue

Текущее значение обобщенной модели

Синтаксис

curval = getValue(M)
curval = getValue(M,blockvalues)
curval = getValue(M,Mref)

Описание

curval = getValue(M) возвращает текущее значение curval Обобщенной модели LTI или Обобщенной матрицы M. Текущее значение получается путем замены всех блоков Система Управления в M по их текущему значению. (Для неопределенных блоков «текущее значение» является номинальным значением блока.)

curval = getValue(M,blockvalues) использует значения блоков, заданные в структуре blockvalues для вычисления текущего значения. Имена и значения полей blockvalues задайте имена блоков и соответствующие значения. Блоки M не указано в blockvalues заменяются текущими значениями.

curval = getValue(M,Mref) наследует значения блоков от обобщенной модели Mref. Этот синтаксис эквивалентен curval = getValue (M, Mref.Blocks). Используйте этот синтаксис, чтобы вычислить текущее значение M использование блока значений, вычисленных в другом месте (для примера, настроенных значений, полученных с помощью команд настройки, таких как systune, looptune, или команда Robust Control Toolbox™ hinfstruct (Robust Control Toolbox)).

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

M

Обобщенная модель LTI или Обобщенная матрица.

blockvalues

Структура, задающая блоки M для замены и значений, которыми следует заменить эти блоки.

Имена полей blockvalues совпадают имена блоков Система Управления of M. Используйте значения полей, чтобы задать значения замены для соответствующих блоков M. Значениями полей могут быть числовые значения, динамические системные модели или статические модели. Если некоторые значения полей являются Системой управления Блоками или Обобщенными моделями LTI, текущие значения этих моделей используются для вычисления curval.

Mref

Обобщенная модель LTI. Если вы предоставляете Mref, getValue вычисляет curval использование текущих значений блоков в Mref имена которых совпадают с блоками в M.

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

curval

Числовой массив или числовая модель LTI, представляющая текущее значение M.

Если вы не задаете значение замены для данного блока Система Управления M, getValue использует текущее значение этого блока.

Примеры

Вычислите модель для заданных значений ее блоков

В этом примере показано, как заменить блок Система Управления в обобщенной модели LTI на заданное значение замены с помощью getValue.

Рассмотрите следующую систему с обратной связью:

Следующий код создает genss модель этой системы с G(s)=(s1)(s+1)3 и настраиваемое ПИ-контроллер C.

G = zpk(1,[-1,-1,-1],1);
C = tunablePID('C','pi');
Try = feedback(G*C,1)

genss модели Try имеет одну Систему управления Блок, C. Блок C инициализируется до значений по умолчанию, и модель Try имеет текущее значение, которое зависит от текущего значения C. Использовать getValue для оценки C и Try для анализа текущих значений.

  1. Оценка C для получения его текущего значения.

    Cnow = getValue(C)

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

  2. Оценка Try для получения его текущего значения.

    Tnow = getValue(Try)

    Эта команда возвращает числовую модель, которая эквивалентна feedback(G*Cnow,1).

Доступ к значениям настроенных моделей и блоков

Распространите изменения в значениях блоков из одной модели в другую с помощью getValue.

Этот метод полезен для доступа к значениям моделей и блоков, настроенных с помощью команд настройки, таких как systune, looptune, или hinfstruct (Robust Control Toolbox). Например, если у вас есть модель системы управления с обратной связью T0, с двумя настраиваемыми блоками, C1 и C2, вы можете настроить его, используя:

[T,fSoft] = systune(T0,SoftReqs);

Затем можно получить доступ к настроенным значениям C1 и C2, а также любая модель с обратной связью H что зависит от C1 и C2, используя следующее:

C1t = getValue(C1,T);
C2t = getValue(C2,T);
Ht = getValue(H,T);

См. также

| | | | (Robust Control Toolbox)

Введенный в R2011b