exponenta event banner

getBlockValue

Текущее значение блока конструкции элемента управления в обобщенной модели

Синтаксис

val = getBlockValue(M,blockname)
[val1,val2,...] = getBlockValue(M,blockname1,blockname2,...)
S = getBlockValue(M)

Описание

val = getBlockValue(M,blockname) возвращает текущее значение блока «Control Design» blockname в обобщенной модели M. (Для неопределенных блоков «текущее значение» является номинальным значением блока.)

[val1,val2,...] = getBlockValue(M,blockname1,blockname2,...) возвращает значения указанных блоков проектирования элементов управления.

S = getBlockValue(M) возвращает значения всех управляющих блоков проектирования обобщенной модели в структуре. Этот синтаксис позволяет переносить значения блоков из одной обобщенной модели в другую модель, использующую те же управляющие блоки проектирования, следующим образом:

S = getBlockValue(M1);
setBlockValue(M2,S);

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

M

Обобщенный LTI (genss) модель или обобщенная матрица (genmat).

blockname

Имя управляющего конструкторского блока в модели M текущее значение которого оценивается.

Получение списка управляющих блоков проектирования в M, введите M.Blocks.

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

val

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

S

Текущие значения всех управляющих блоков проектирования в M, возвращено как структура. Имена полей в S являются именами блоков в M. Значения полей представляют собой числовые модели LTI или числовые значения, равные текущим значениям соответствующих блоков проектирования управления.

Примеры

Получение текущих значений отдельных блоков

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

Как правило, используется getBlockValue для извлечения настроенных значений блоков проекта управления после настройки genss модель с помощью команды настройки, такой как systune. В этом примере создайте модель и извлеките исходные значения блока.

G = zpk([],[-1,-1],1);
C = tunablePID('C','PID');
a = realp('a',10);  
F = tf(a,[1 a]);
T = feedback(G*C,1)*F;

Cval = getBlockValue(T,'C')
Continuous-time I-only controller:
 
      1 
Ki * ---
      s 
 
With Ki = 0.001

Cval является числовым pid объект контроллера.

aval = getBlockValue(T,'a')
aval =

    10

aval является числовым скаляром, поскольку a является действительным скалярным параметром.

Получить все текущие значения в виде структуры

Использование genss модель предыдущего примера, получить текущие значения всех блоков в модели.

G = zpk([],[-1,-1],1);
C = tunablePID('C','PID');
a = realp('a',10);  
F = tf(a,[1 a]);
T = feedback(G*C,1)*F;

S = getBlockValue(T)
S = 

    C: [1x1 pid]
    a: 10
Представлен в R2011b