getValue

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

Синтаксис

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

Описание

curval = getValue(M) возвращает текущее значение curval модели Generalized 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).

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

M

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

blockvalues

Блоки определения структуры M, чтобы заменить и значения, на которые можно заменить те блоки.

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

Mref

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

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

curval

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

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

Примеры

Оцените Модель для Заданных значений ее Блоков

Этот пример показывает, как заменить Блок Системы управления в модели Generalized LTI с заданным заменяющим значением с помощью getValue.

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

Следующий код создает модель genss этой системы с G(s)=(s1)(s+1)3 и настраиваемый контроллер PI 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