tunablePID

Настраиваемый ПИД-регулятор

Синтаксис

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

Описание

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

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

Конструкция

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

blk=Kp+Kis+Kds1+Tfs,

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

blk = tunablePID(name,type,Ts) создает ПИД-регулятор дискретного времени с шагом расчета Ts:

blk=Kp+KiIF(z)+KdTf+DF(z),

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

blk = tunablePID(name,sys) использует модель динамической системы, sys, чтобы установить шаг расчета, Ts и начальные значения параметров Kp, Ki, Kd и Tf.

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

name

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

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

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

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

Поле Описание
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.Tf.Maximum = 100 гарантирует, что временная константа фильтра не превышает 100.

blk.Kp, blk.Ki, blk.Kd и blk.Tf являются объектами 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

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

C.InputName = 'error';

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

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

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

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

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

InputUnit

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

C.InputUnit = '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 = tunablePID('pdblock','PD');
blk.Kp.Value = 4;        % initialize Kp to 4
blk.Kd.Value = 0.7;      % initialize Kd to 0.7
blk.Tf.Value = 0.01;     % set parameter Tf to 0.01
blk.Tf.Free = false;     % fix parameter Tf to this value
blk
blk =

  Parametric continuous-time PID controller "pdblock" with formula:

               s    
  Kp + Kd * --------
             Tf*s+1 

  and tunable parameters Kp, Kd.

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

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

Создайте настраиваемый контроллер PI дискретного времени. Используйте объект pid инициализировать параметры и другие свойства.

C = pid(5,2.2,'Ts',0.1,'IFormula','BackwardEuler');
blk = tunablePID('piblock',C)
blk =

  Parametric discrete-time PID controller "piblock" with formula:

             Ts*z 
  Kp + Ki * ------
              z-1 

  and tunable parameters Kp, Ki.

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

blk принимает значение свойств, таких как Ts и IFormula, от C.

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

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

blk = tunablePID('pidblock','pid')   
blk.InputName = {'error'}       % assign input name
blk.OutputName = {'control'}    % assign output name

Советы

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

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

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

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

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

Введенный в R2016a