exponenta event banner

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или команда «Надежное управление Toolbox™» hinfstruct (Надёжная панель инструментов управления)).

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

M

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

blockvalues

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

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

Mref

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

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

curval

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

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

Примеры

Оценка модели для заданных значений ее блоков

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

Рассмотрим следующую систему с замкнутым контуром:

Следующий код создает genss модель этой системы с G (s) = (s 1) (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 (Надёжная панель инструментов управления). Например, при наличии модели системы управления с замкнутым контуром 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);

См. также

| | | | (инструментарий надежного управления)

Представлен в R2011b