exponenta event banner

tunablePID2

Настраиваемый двухстепенный PID-контроллер

Синтаксис

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

Описание

Объект модели для создания настраиваемых PID-контроллеров с двумя степенями свободы. tunablePID2 позволяет параметризовать настраиваемый контроллер SISO с двумя степенями свободы PID. Этот параметризованный контроллер можно использовать для анализа параметров или для автоматической настройки с помощью таких команд настройки, как systune, looptuneили команда «Надежное управление Toolbox™» hinfstruct.

tunablePID2 входит в семейство параметрических управляющих блоков проектирования. Другие параметрические блоки проектирования элементов управления включают tunableGain, tunableSS, и tunableTF.

Строительство

blk = tunablePID2(name,type) создает двухстепенный ПИД-контроллер непрерывного времени, описанный уравнением:

u = Kp (br y) + Kis (r y) + Kds1 + Tfs (cr − y).

r - команда уставки, y - измеренный отклик на эту уставку, u - управляющий сигнал, как показано на следующей иллюстрации.

Настраиваемые параметры блока:

  • Скалярные коэффициенты усиления Kp, Ki, и Kd

  • Постоянная времени фильтра Tf

  • Скалярные веса b и c

type задает тип контроллера, фиксируя некоторые из этих значений равными нулю (см. Input Arguments).

blk = tunablePID2(name,type,Ts) создает дискретный PID-контроллер с временем выборки Ts. Уравнение, описывающее этот контроллер:

u = Kp (br y) + KiIF (z) (r y) + KdTf + DF (z) (cr − y).

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

blk = tunablePID2(name,sys) использует динамическую модель системы, sys, для установки времени выборки, Tsи начальные значения всех перестраиваемых параметров. Модель sys должен быть совместим с уравнением контроллера PID с двумя степенями свободы.

Входные аргументы

name

PID-контроллер Name, указанный как символьный вектор, такой как 'C' или '2DOFPID1'. (См. раздел Свойства.)

type

Тип контроллера, указанный как одно из значений в следующей таблице. При указании типа контроллера фиксируются до трех параметров контроллера PID.

Значение для 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

Динамическая модель системы, представляющая контроллер PID с двумя степенями свободы.

Свойства

Kp,Ki,Kd,Tf,b,c

Параметризация коэффициентов усиления PID 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'

Цз 1

'BackwardEuler'

Цз 1

'Trapezoidal'

Ts2z+1z−1

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

Ts

Время выборки. Для моделей непрерывного времени Ts = 0. Для дискретно-временных моделей Ts - положительный скаляр, представляющий период выборки. Это значение выражается в единицах, указанных TimeUnit свойство модели. Неуказанное время выборки (Ts = -1) не поддерживается для блоков PID.

Изменение этого свойства не дискретизирует и не выполняет повторную выборку модели.

По умолчанию: 0 (непрерывное время)

TimeUnit

Единицы измерения для переменной времени, времени выборки Tsи любые временные задержки в модели, указанные как одно из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

Изменение этого свойства не влияет на другие свойства и, следовательно, изменяет общее поведение системы. Использовать chgTimeUnit преобразование между единицами времени без изменения поведения системы.

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

InputName

Имя входного канала, определяемое как символьный вектор или массив ячеек 2 на 1 из символьных векторов. Это свойство используется для присвоения имени входным каналам модели контроллера. Например, присвойте имена setpoint и measurement к исходным данным диспетчера PID с 2 финансовыми департаментами модель 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 к входу измерения диспетчера PID с 2 финансовыми департаментами модель C следующим образом.

C.InputUnit = {'Volts';'mol/m^3'};

InputUnit не влияет на поведение системы.

По умолчанию: {'';''}

InputGroup

Группы входных каналов. Это свойство не требуется для моделей контроллеров PID.

По умолчанию: struct без полей

OutputName

Имя выходного канала, указанное как символьный вектор. Это свойство используется для присвоения имени выходному каналу модели контроллера. Например, присвойте имя control к выходу модели контроллера C следующим образом.

C.OutputName = 'control';

Можно использовать сокращенную нотацию y см. OutputName собственность. Например, C.y эквивалентно C.OutputName.

Имена входных каналов имеют несколько применений, в том числе:

  • Идентификация каналов на дисплее модели и графиках

  • Указание точек соединения при соединении моделей

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

OutputUnit

Единицы выходного канала, заданные как символьный вектор. Это свойство используется для отслеживания единиц выходного сигнала. Например, присвойте единицу измерения Volts к выходу модели контроллера C следующим образом.

C.OutputUnit = 'Volts';

OutputUnit не влияет на поведение системы.

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

OutputGroup

Группы выходных каналов. Это свойство не требуется для моделей контроллеров PID.

По умолчанию: 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.

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

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

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

Создайте настраиваемый контроллер PID и присвойте имена входам и выходам.

blk = tunablePID2('pidblock','pid');   
blk.InputName = {'reference','measurement'};     
blk.OutputName = {'control'};

blk.InputName - массив ячеек, содержащий два имени, поскольку контроллер PID с двумя степенями свободы имеет два входа.

Совет

  • Структуру PID можно изменить, зафиксировав или освободив любой из параметров. Например, blk.Tf.Free = false фиксирует Tf к его текущему значению.

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

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

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

В R2016a изменилось поведение

Представлен в R2016a