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

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

Примеры

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

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

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.

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

Создайте настраиваемое ПИ-контроллер в дискретном времени. Используйте 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 параметрическая модель числовому (nontunable) объекту модели, используйте команды модели, такие как pid, pidstd, tf, или ss. Можно также использовать getValue для получения текущего значения настраиваемой модели.

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

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

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

Введенный в R2016a