tunablePID2

Настраиваемые два ПИД-регулятора степени свободы

Синтаксис

blk = tunablePID2(name,type)
blk = tunablePID2(name,type,Ts)
blk = tunablePID2(name,sys)

Описание

Объект модели для создания настраиваемых двух ПИД-регуляторов степени свободы. tunablePID2 позволяет вам параметризовать настраиваемый SISO два ПИД-регулятора степени свободы. Можно использовать этот параметрический контроллер для исследований параметра или для автоматической настройки с настраивающимися командами, такими как systune, looptune или команда Robust Control Toolbox™ hinfstruct.

tunablePID2 является частью семейства Блоков Проекта параметрического управления. Другие Блоки Проекта параметрического управления включают tunableGain, tunableSS и tunableTF.

Конструкция

blk = tunablePID2(name,type) создает две степени свободы непрерывно-разовый ПИД-регулятор, описанный уравнением:

u=Kp(bry)+Kis(ry)+Kds1+Tfs(cry).

r является командой заданного значения, y является измеренным ответом на то заданное значение, и u является управляющим сигналом, как показано на следующем рисунке.

Настраиваемые параметры блока:

  • Скаляр получает Kp, Ki и Kd

  • Отфильтруйте временную константу Tf

  • Скалярные веса b и c

Аргумент type устанавливает тип контроллера путем фиксации некоторых из этих значений, чтобы обнулить (см. Входные параметры).

blk = tunablePID2(name,type,Ts) создает ПИД-регулятор дискретного времени с шагом расчета Ts. Уравнение, описывающее этот контроллер:

u=Kp(bry)+KiIF(z)(ry)+KdTf+DF(z)(cry).

IF (z) и DF (z) является дискретными формулами интегратора для интегральных и производных условий, соответственно. Значения свойств IFormula и DFormula устанавливают дискретные формулы интегратора (см. Свойства).

blk = tunablePID2(name,sys) использует модель динамической системы, sys, чтобы установить шаг расчета, Ts и начальные значения всех настраиваемых параметров. Модель sys должна быть совместима с уравнением двух ПИД-регуляторов степени свободы.

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

name

ПИД-регулятор Name, заданный как вектор символов, такой как 'C' или '2DOFPID1'. (См. Свойства.)

type

Тип контроллера, заданный как одно из значений в следующей таблице. Определение типа контроллера фиксирует три из параметров ПИД-регулятора.

Значение для typeТип контроллераЭффект на параметры ПИДа
'P'Пропорциональный толькоKi и Kd фиксируются, чтобы обнулить; Tf фиксируется к 1; Kp свободен
'PI'Пропорциональный интегралKd фиксируется, чтобы обнулить; Tf фиксируется к 1; Kp и Ki свободны
'PD'Пропорциональная производная с фильтром первого порядка на производном действииKi фиксируется, чтобы обнулить; Kp, Kd и Tf свободны
'PID'Пропорциональная интегральная производная с фильтром первого порядка на производном действииKp, Ki, Kd и Tf свободны

Ts

Шаг расчета, заданный как скаляр.

sys

Модель динамической системы представление двух ПИД-регуляторов степени свободы.

Свойства

Kp,Ki,Kd,Tf,b,c

Параметризация коэффициентов ПИД Kp, Ki, Kd, временная константа фильтра, Tf, и скалярные усиления, b и c.

Следующие поля blk.Kp, blk.Ki, blk.Kd, blk.Tf, blk.b и blk.c используются, когда вы настраиваете blk с помощью настраивающейся команды, такой как systune:

Поле Описание
ValueТекущее значение параметра. blk.b.Value и blk.c.Value являются всегда неотрицательными.
Free

Логическое значение, определяющее, фиксируется ли параметр или настраиваемый. Например:

  • Если blk.Kp.Free = 1, то blk.Kp.Value является настраиваемым.

  • Если blk.Kp.Free = 0, то blk.Kp.Value фиксируется.

Minimum

Минимальное значение параметра. Это свойство помещает нижнюю границу в настроенное значение параметра. Например, установка blk.Kp.Minimum = 0 гарантирует, что Kp остается положительным.

blk.Tf.Minimum должен всегда быть положительным.

MaximumМаксимальное значение параметра. Это свойство помещает верхнюю границу в настроенное значение параметра. Например, установка blk.c.Maximum = 1 гарантирует, что c не превышает единицу.

blk.Kp, blk.Ki, blk.Kd, blk.Tf, blk.b и blk.c являются объектами param.Continuous. Для получения дополнительной информации о свойствах этих объектов param.Continuous, смотрите страницу ссылки на объект param.Continuous.

IFormula, DFormula

Дискретные формулы интегратора IF (z) и DF (z) для интегральных и производных условий, соответственно, заданный как одно из значений в следующей таблице.

ЗначениеIF (z) или DF (z) формула
'ForwardEuler'

Tsz1

'BackwardEuler'

Tszz1

'Trapezoidal'

Ts2z+1z1

Значение по умолчанию: 'ForwardEuler'

Ts

'SampleTime' . Для непрерывно-разовых моделей, Ts = 0. Для моделей дискретного времени Ts является положительной скалярной величиной, представляющей период выборки. Это значение выражается в модуле, заданном свойством TimeUnit модели. Незаданный шаг расчета (Ts = -1) не поддержан для блоков ПИДа.

Изменение этого свойства не дискретизирует или передискретизирует модель.

Значение по умолчанию: 0 (непрерывное время)

TimeUnit

Модули для переменной времени, шаг расчета Ts и любые задержки модели, заданной как одно из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

Изменение этого свойства не имеет никакого эффекта на другие свойства, и поэтому изменяет полное поведение системы. Используйте chgTimeUnit, чтобы преобразовать между единицами измерения времени, не изменяя поведение системы.

Значение по умолчанию: 'seconds'

InputName

Введите название канала, заданное как вектор символов или 2 1 массив ячеек из символьных векторов. Используйте это свойство назвать входные каналы моделей контроллеров. Например, присвойте имена setpoint и measurement к входным параметрам модели C ПИД-регулятора 2-DOF можно следующим образом.

C.InputName = {'setpoint';'measurement'};

Также используйте автоматическое векторное расширение, чтобы присвоить оба входных имени. Например:

C.InputName = 'C-input';

Входные имена автоматически расширяются до {'C-input(1)';'C-input(2)'}.

Можно использовать краткое обозначение u, чтобы относиться к свойству InputName. Например, C.u эквивалентен C.InputName.

Входные названия канала имеют несколько использования, включая:

  • Идентификация каналов на образцовом отображении и графиках

  • Определение точек контакта, когда взаимосвязанные модели

Значение по умолчанию: {'';''}

InputUnit

Введите модули канала, заданные как 2 1 массив ячеек из символьных векторов. Используйте это свойство отследить модули входного сигнала. Например, присвойте модули Volts ссылочному входу и модулям концентрации mol/m^3 к входу измерения модели C ПИД-регулятора 2-DOF можно следующим образом.

C.InputUnit = {'Volts';'mol/m^3'};

InputUnit не имеет никакого эффекта на поведение системы.

Значение по умолчанию: {'';''}

InputGroup

Введите группы канала. Это свойство не нужно для моделей ПИД-регулятора.

Значение по умолчанию: struct без полей

OutputName

Выведите название канала, заданное как вектор символов. Используйте это свойство назвать выходной канал моделей контроллеров. Например, присвойте имя control выводу моделей контроллеров C можно следующим образом.

C.OutputName = 'control';

Можно использовать краткое обозначение y, чтобы относиться к свойству OutputName. Например, C.y эквивалентен C.OutputName.

Входные названия канала имеют несколько использования, включая:

  • Идентификация каналов на образцовом отображении и графиках

  • Определение точек контакта, когда взаимосвязанные модели

Значение по умолчанию: Пустой символьный вектор, ''

OutputUnit

Выведите модули канала, заданные как вектор символов. Используйте это свойство отследить модули выходного сигнала. Например, присвойте модуль Volts выводу моделей контроллеров C можно следующим образом.

C.OutputUnit = 'Volts';

OutputUnit не имеет никакого эффекта на поведение системы.

Значение по умолчанию: Пустой символьный вектор, ''

OutputGroup

Выведите группы канала. Это свойство не нужно для моделей ПИД-регулятора.

Значение по умолчанию: struct без полей

Name

Имя системы, заданное как вектор символов. Например, 'system_1'.

Значение по умолчанию: ''

Notes

Любой текст, который вы хотите сопоставить с системой, сохраненной как строка или массив ячеек из символьных векторов. Свойство хранит, какой бы ни тип данных вы обеспечиваете. Например, если sys1 и sys2 являются моделями динамической системы, можно установить их свойства Notes можно следующим образом:

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

Значение по умолчанию: [0×1 string]

UserData

Любой тип данных вы хотите сопоставить с системой, заданной как любой тип данных MATLAB®.

Значение по умолчанию: []

Примеры

Настраиваемые два контроллера степени свободы с фиксированным параметром

Создайте настраиваемые два контроллера PD степени свободы. Затем инициализируйте значения параметров и зафиксируйте временную константу фильтра.

blk = tunablePID2('pdblock','PD');
blk.b.Value = 1;
blk.c.Value = 0.5;
blk.Tf.Value = 0.01;
blk.Tf.Free = false;
blk
blk =

  Parametric continuous-time 2-DOF PID controller "pdblock" with equation:

                         s    
  u = Kp (b*r-y) + Kd -------- (c*r-y)
                       Tf*s+1 

  where r,y are the controller inputs and Kp, Kd, b, c are tunable gains.

Type "showBlockValue(blk)" to see the current value and "get(blk)" to see all 
properties.

Контроллер, инициализированный моделью динамической системы

Создайте настраиваемые два контроллера PI степени свободы. Используйте 2D вход, модель tf с одним выходом, чтобы инициализировать параметры и другие свойства.

s = tf('s');
Kp = 10;
Ki = 0.1;
b = 0.7;
sys = [(b*Kp + Ki/s), (-Kp - Ki/s)];
blk = tunablePID2('PI2dof',sys)
blk =

  Parametric continuous-time 2-DOF PID controller "PI2dof" with equation:

                       1 
  u = Kp (b*r-y) + Ki --- (r-y)
                       s 

  where r,y are the controller inputs and Kp, Ki, b are tunable gains.

Type "showBlockValue(blk)" to see the current value and "get(blk)" to see all 
properties.

blk берет начальные значения параметров из sys.

Если sys является системой дискретного времени, blk принимает значение свойств, таких как Ts и IFormula, от sys.

Контроллер с именованными входными параметрами и Выводом

Создайте настраиваемый ПИД-регулятор, и присвойте имена к входным параметрам и выведите.

blk = tunablePID2('pidblock','pid');   
blk.InputName = {'reference','measurement'};     
blk.OutputName = {'control'};

blk.InputName является массивом ячеек, содержащим два имени, потому что два ПИД-регулятора степени свободы имеют два входных параметров.

Советы

  • Можно изменить структуру ПИДа путем фиксации или освобождения любого из параметров. Например, blk.Tf.Free = false прикрепляет Tf к своему текущему значению.

  • Чтобы преобразовать tunablePID2 параметрическая модель в числовой (ненастраиваемый) объект модели, используйте образцовые команды, такие как tf или ss. Можно также использовать getValue, чтобы получить текущее значение настраиваемой модели.

Вопросы совместимости

развернуть все

Поведение изменяется в R2016a

Введенный в R2016a