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.

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

Создайте настраиваемые два ПИ-контроллера степени свободы. Используйте 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