exponenta event banner

tunablePID

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

Синтаксис

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

Описание

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

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

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

blk = tunablePID(name,type) создает одноэтапный контроллер PID непрерывного времени:

blk = Kp + Kis + Kds1 + Tfs,

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

blk = tunablePID(name,type,Ts) создает дискретный PID-контроллер с временем выборки 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

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

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

Параметризация коэффициентов усиления PID Kp, Ki, Kdи постоянная времени фильтра Tf настраиваемого PID-контроллера 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'

Цз 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

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

C.InputName = 'error';

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

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

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

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

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

InputUnit

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

C.InputUnit = '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 = 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.

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

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

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

Совет

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

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

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

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

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

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