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 (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

Введите название канала в виде вектора символов. Используйте это свойство назвать входной канал моделей контроллеров. Например, присвойте имя 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.

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

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

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

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

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

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

Введенный в R2016a