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

The 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 (Simulink Design Optimization) страницу с описанием объекта.

IFormula, DFormula

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

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

Tsz1

'BackwardEuler'

Tszz1

'Trapezoidal'

Ts2z+1z1

По умолчанию: 'ForwardEuler'

Ts

Шаг расчета. Для моделей в непрерывном времени, 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 к входам модели 2-DOF ПИД-регулятора C следующим образом.

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 к входу измерения модели 2-DOF ПИД-регулятора C следующим образом.

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® тип данных.

По умолчанию: []

Примеры

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

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

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.

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

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

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

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

расширить все

Поведение изменено в R2016a

Введенный в R2016a