pidstd2

Создайте ПИД-регулятор 2-DOF в стандартной форме, преобразуйте в стандартную форму ПИД-регулятор 2-DOF

Синтаксис

C2 = pidstd2(Kp,Ti,Td,N,b,c)
C2 = pidstd2(Kp,Ti,Td,N,b,c,Ts)
C2 = pidstd2(sys)
C2 = pid2(___,Name,Value)

Описание

pid2 объекты контроллера представляют две степени свободы (2-DOF) ПИД-регуляторы в параллельной форме. Использование pid2 любой, чтобы создать a pid2 объект контроллера от известных коэффициентов или преобразовывать модель динамической системы в a pid2 объект.

Две степени свободы (2-DOF) ПИД-регуляторы включают взвешивание заданного значения на пропорциональных и производных условиях. ПИД-регулятор с 2 степенями свободы способен к быстрому подавлению помех без значительного увеличения перерегулирования в отслеживании заданного значения. ПИД-регуляторы 2-DOF также полезны, чтобы смягчить влияние изменений в опорном сигнале на управляющем сигнале. Следующий рисунок показывает типичную архитектуру управления с помощью ПИД-регулятора 2-DOF.

C2 = pidstd2(Kp,Ti,Td,N,b,c) создает непрерывное время ПИД-регулятор 2-DOF с пропорциональной составляющей Kp, интегратор и производные постоянные времени Ti, и Td, и производная фильтрует делитель N. У контроллера также есть заданное значение, взвешивающее b на пропорциональном термине и заданном значении, взвешивающем c на производном термине. Отношением между контроллером 2-DOF выход (u) и его два входных параметров (r и y) дают:

u=Kp[(bry)+1Tis(ry)+TdsTdNs+1(cry)].

Это представление находится в standard form. Если все коэффициенты с действительным знаком, то получившийся C2 isa pidstd2 объект контроллера. Если один или несколько из этих коэффициентов является настраиваемым (realp или genmat), затем C2 настраиваемое обобщенное пространство состояний (genss) объект модели.

C2 = pidstd2(Kp,Ti,Td,N,b,c,Ts) создает дискретное время ПИД-регулятор 2-DOF с шагом расчета Ts. Отношением между выходом диспетчера и входными параметрами дают:

u=Kp[(bry)+1TiIF(z)(ry)+TdTdN+DF(z)(cry)].

IF (z) и DF (z) является discrete integrator formulas для интегратора и производного фильтра. По умолчанию,

IF(z)=DF(z)=Tsz1.

Чтобы выбрать различные дискретные формулы интегратора, используйте IFormula и DFormula свойства. (См. Свойства для получения дополнительной информации). Если DFormula = 'ForwardEuler' (значение по умолчанию) и N ≠ Inf, затем Ts, Td, и N должен удовлетворить   Td/N > Ts/2. Это требование гарантирует устойчивый производный полюс фильтра.

C2 = pidstd2(sys) преобразует динамическую систему sys к стандартной форме pidstd2 объект контроллера.

C2 = pid2(___,Name,Value) задает дополнительные свойства как разделенные запятой пары Name,Value аргументы.

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

Kp

Пропорциональная составляющая.

Kp может быть:

  • Действительное и конечное значение.

  • Массив действительных и конечных значений.

  • Настраиваемый параметр (realp) или обобщенная матрица (genmat).

  • Настраиваемая поверхность для запланированной на усиление настройки, созданного использования tunableSurface.

Значение по умолчанию: 1

Ti

Время интегратора.

Ti может быть:

  • Действительное и положительное значение.

  • Массив действительных и положительных значений.

  • Настраиваемый параметр (realp) или обобщенная матрица (genmat).

  • Настраиваемая поверхность для запланированной на усиление настройки, созданного использования tunableSurface.

Когда Ti = Inf, у контроллера нет интегрального действия.

Значение по умолчанию: Inf

Td

Производное время.

Td может быть:

  • Действительное, конечное, и неотрицательное значение.

  • Массив действительных, конечных, и неотрицательных значений.

  • Настраиваемый параметр (realp) или обобщенная матрица (genmat).

  • Настраиваемая поверхность для запланированной на усиление настройки, созданного использования tunableSurface.

Когда Td = 0, у контроллера нет производного действия.

Значение по умолчанию: 0

N

Производный делитель фильтра.

N может быть:

  • Действительное и положительное значение.

  • Массив действительных и положительных значений.

  • Настраиваемый параметр (realp) или обобщенная матрица (genmat).

  • Настраиваемая поверхность для запланированной на усиление настройки, созданного использования tunableSurface.

Когда N = Inf, у контроллера нет фильтра на производном действии.

Значение по умолчанию: Inf

b

Взвешивание заданного значения на пропорциональном термине.

b может быть:

  • Действительное, неотрицательное, и конечное значение.

  • Массив действительных, неотрицательных, конечных значений.

  • Настраиваемый параметр (realp) или обобщенная матрица (genmat).

  • Настраиваемая поверхность для запланированной на усиление настройки, созданного использования tunableSurface.

Когда b = 0, изменения в заданном значении не питаются непосредственно в пропорциональный термин.

Значение по умолчанию: 1

c

Взвешивание заданного значения на производном термине.

c может быть:

  • Действительное, неотрицательное, и конечное значение.

  • Массив действительных, неотрицательных, конечных значений.

  • Настраиваемый параметр (realp) или обобщенная матрица (genmat).

  • Настраиваемая поверхность для запланированной на усиление настройки, созданного использования tunableSurface.

Когда c = 0, изменения в заданном значении не питаются непосредственно в производный термин.

Значение по умолчанию: 1

Ts

Размер шага.

Создать дискретное время pidstd2 контроллер, введите положительное действительное значение (  Ts > 0).pidstd2 не поддерживает контроллер дискретного времени с неопределенным шагом расчета (  Ts = -1).

Ts должно быть скалярное значение. В массиве pidstd2 контроллеры, у каждого контроллера должен быть тот же Ts.

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

sys

Динамическая система SISO, чтобы преобразовать в стандарт pidstd2 форма.

sys будьте 2D входом, системой с одним выходом. sys должен представлять допустимый контроллер 2-DOF, который может быть написан в стандартной форме с Ti > 0, Td ≥ 0, и N  > 0.

sys может также быть массив динамических систем SISO.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Используйте Name,Value синтаксис, чтобы установить формулы численного интегрирования IFormula и DFormula из дискретного времени pidstd2 контроллер, или установить другие свойства объектов, такие как InputName и OutputName. Для получения информации о доступных свойствах pidstd2 диспетчер возражает, смотрите Свойства.

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

C2

ПИД-регулятор 2-DOF, возвращенный как a pidstd2 объект контроллера, массив pidstd2 диспетчер возражает, a genss объект или a genss массив.

  • Если все коэффициенты имеют скалярные числовые значения, то C2 isa pidstd2 объект контроллера.

  • Если один или несколько коэффициентов являются числовым массивом, C2 массив pidstd2 диспетчер возражает. Тип контроллера (такой как PI, ПИД или PDF) зависит от значений усилений. Например, когда Td = 0, но Kp и Ti являются ненулевыми и конечными, C2 ПИ-контроллер.

  • Если один или несколько коэффициентов являются настраиваемым параметром (realp), обобщенная матрица (genmat), или настраиваемая поверхность усиления (tunableSurface), затем C2 обобщенная модель в пространстве состояний (genss).

Свойства

b, c

Веса заданного значения на пропорциональных и производных условиях, соответственно. b и c значения действительны, конечны, и положительны. Когда вы создаете ПИД-регулятор 2-DOF с помощью pidstd2 команда, начальные значения этих свойств установлены b, и c входные параметры, соответственно.

Kp

Пропорциональная составляющая.

Значение Kp действительно и конечен. Когда вы создаете ПИД-регулятор 2-DOF с помощью pidstd2 команда, начальное значение этого свойства установлено Kp входной параметр.

Ti

Время интегратора. Ti действительно и положителен. Когда вы создаете ПИД-регулятор 2-DOF с помощью pidstd2 команда, начальное значение этого свойства установлено Ti входной параметр. Когда Ti = Inf, у контроллера нет интегрального действия.

Td

Производное время. Td является действительным, конечным, и неотрицательным. Когда вы создаете ПИД-регулятор 2-DOF с помощью pidstd2 команда, начальное значение этого свойства установлено Td входной параметр. Когда Td = 0, у контроллера нет производного действия.

N

Производный делитель фильтра. N должно быть действительным и положительным. Когда вы создаете ПИД-регулятор 2-DOF с помощью pidstd2 команда, начальное значение этого свойства установлено N входной параметр.

IFormula

Дискретная формула интегратора IF (z) для интегратора дискретного времени pidstd2 контроллер C2. Отношение между входными параметрами и выходом C2 дают:

u=Kp[(bry)+1TiIF(z)(ry)+TdTdN+DF(z)(cry)].

IFormula может принять следующие значения:

  • 'ForwardEuler'IF (z) = Tsz1.

    Эта формула является лучшей в течение времени небольшой выборки, где предел Найквиста является большим по сравнению с пропускной способностью контроллера. Для большего шага расчета, ForwardEuler формула может привести к нестабильности, дискретизировав систему, которая устойчива в непрерывное время.

  • 'BackwardEuler'IF (z) = Tszz1.

    Преимущество BackwardEuler формула - то, что дискретизация устойчивой системы непрерывного времени с помощью этой формулы всегда приводит к устойчивому результату дискретного времени.

  • 'Trapezoidal'IF (z) = Ts2z+1z1.

    Преимущество Trapezoidal формула - то, что дискретизация устойчивой системы непрерывного времени с помощью этой формулы всегда приводит к устойчивому результату дискретного времени. Из всех доступных формул интегрирования, Trapezoidal формула дает к самому близкому соответствию между свойствами частотного диапазона дискретизированной системы и соответствующей системы непрерывного времени.

Когда C2 контроллер непрерывного времени, IFormula ''.

Значение по умолчанию: 'ForwardEuler'

DFormula

Дискретная формула интегратора DF (z) для производного фильтра дискретного времени pidstd2 контроллер C2. Отношение между входными параметрами и выходом C2 дают:

u=Kp[(bry)+1TiIF(z)(ry)+TdTdN+DF(z)(cry)].

DFormula может принять следующие значения:

  • 'ForwardEuler'DF (z) = Tsz1.

    Эта формула является лучшей в течение времени небольшой выборки, где предел Найквиста является большим по сравнению с пропускной способностью контроллера. Для большего шага расчета, ForwardEuler формула может привести к нестабильности, дискретизировав систему, которая устойчива в непрерывное время.

  • 'BackwardEuler'DF (z) = Tszz1.

    Преимущество BackwardEuler формула - то, что дискретизация устойчивой системы непрерывного времени с помощью этой формулы всегда приводит к устойчивому результату дискретного времени.

  • 'Trapezoidal'DF (z) = Ts2z+1z1.

    Преимущество Trapezoidal формула - то, что дискретизация устойчивой системы непрерывного времени с помощью этой формулы всегда приводит к устойчивому результату дискретного времени. Из всех доступных формул интегрирования, Trapezoidal формула дает к самому близкому соответствию между свойствами частотного диапазона дискретизированной системы и соответствующей системы непрерывного времени.

    Trapezoidal значение для DFormula не доступно для a pidstd2 контроллер без производного фильтра (N = Inf).

Когда C2 контроллер непрерывного времени, DFormula ''.

Значение по умолчанию: 'ForwardEuler'

InputDelay

Задержка в системе вводится. InputDelay всегда 0 для a pidstd2 объект контроллера.

OutputDelay

Задержка в системе Выход. OutputDelay всегда 0 для a pidstd2 объект контроллера.

Ts

Размер шага. Для моделей непрерывного времени, Ts = 0. Для моделей дискретного времени, Ts положительная скалярная величина, представляющая период выборки. Это значение описывается в модуле, заданном TimeUnit свойство модели. Модели ПИД-регулятора не поддерживают незаданный шаг расчета (Ts = -1).

Изменение этого свойства не дискретизирует или передискретизирует модель. Использование c2d и d2c преобразовывать между непрерывным - и представлениями дискретного времени. Использование d2d изменить шаг расчета системы дискретного времени.

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

TimeUnit

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

Значение по умолчанию: 'seconds'

InputName

Введите название канала в виде вектора символов или 2 1 массив ячеек из символьных векторов. Используйте это свойство назвать входные каналы моделей контроллеров. Например, присвойте имена setpoint и measurement к входным параметрам модели C ПИД-регулятора 2-DOF можно следующим образом.

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 к входу измерения модели C ПИД-регулятора 2-DOF можно следующим образом.

C.InputUnit = {'Volts';'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®.

Значение по умолчанию: []

SamplingGrid

Выборка сетки для массивов моделей в виде структуры данных.

Для массивов моделей, которые выведены путем выборки одной или нескольких независимых переменных, это дорожки свойства значения переменных, сопоставленные с каждой моделью в массиве. Эта информация появляется, когда вы отображаете или строите массив моделей. Используйте эту информацию, чтобы проследить результаты до независимых переменных.

Установите имена полей структуры данных к именам переменных выборки. Установите значения полей к произведенным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми и скаляр, оцененный, и все массивы произведенных значений должны совпадать с размерностями массива моделей.

Например, предположите, что вы создаете 11 1 массив линейных моделей, sysarr, путем взятия снимков состояния линейной изменяющейся во времени системы во времена t = 0:10. Следующий код хранит выборки времени линейными моделями.

 sysarr.SamplingGrid = struct('time',0:10)

Точно так же предположите, что вы создаете 6 9 массив моделей, M, путем независимой выборки двух переменных, zeta и w. Следующий код присоединяет (zeta,w) значения к M.

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)
M.SamplingGrid = struct('zeta',zeta,'w',w)

Когда вы отображаете M, каждая запись в массиве включает соответствующий zeta и w значения.

M
M(:,:,1,1) [zeta=0.3, w=5] =
 
        25
  --------------
  s^2 + 3 s + 25
 

M(:,:,2,1) [zeta=0.35, w=5] =
 
         25
  ----------------
  s^2 + 3.5 s + 25
 
...

Для массивов моделей, сгенерированных путем линеаризации модели Simulink® в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет SamplingGrid автоматически со значениями переменных, которые соответствуют каждой записи в массиве. Например, команды Simulink Control Design™ linearize (Simulink Control Design) и slLinearizer (Simulink Control Design) заполняет SamplingGrid таким образом.

Значение по умолчанию: []

Примеры

свернуть все

Создайте непрерывное время 2-DOF контроллер PDF в стандартной форме. Для этого установите интегральную постоянную времени на Inf. Установите другие усиления и делитель фильтра к требуемым значениям.

Kp = 1;
Ti = Inf;    % No integrator
Td = 3;      
N = 6;
b = 0.5;    % setpoint weight on proportional term
c = 0.5;    % setpoint weight on derivative term
C2 = pidstd2(Kp,Ti,Td,N,b,c)
C2 =
 
                              s      
  u = Kp * [(b*r-y) + Td * ------------ * (c*r-y)]
                          (Td/N)*s+1 

  with Kp = 1, Td = 3, N = 6, b = 0.5, c = 0.5
 
Continuous-time 2-DOF PDF controller in standard form

Отображение показывает тип контроллера, формулу и значения параметров, и проверяет, что у контроллера нет термина интегратора.

Создайте дискретное время ПИ-контроллер 2-DOF в стандартной форме, с помощью трапециевидной формулы дискретизации. Задайте формулу с помощью Name,Value синтаксис.

Kp = 1;
Ti = 2.4;
Td = 0;    
N = Inf; 
b = 0.5;   
c = 0;      
Ts = 0.1;
C2 = pidstd2(Kp,Ti,Td,N,b,c,Ts,'IFormula','Trapezoidal')
C2 =
 
                       1     Ts*(z+1)
  u = Kp * [(b*r-y) + ---- * -------- * (r-y)]
                       Ti    2*(z-1) 

  with Kp = 1, Ti = 2.4, b = 0.5, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time 2-DOF PI controller in standard form

Установка Td = 0 задает ПИ-контроллер без производного термина. Когда отображение показывает, значения N и c не используются в этом контроллере. Отображение также показывает, что трапециевидная формула используется для интегратора.

Создайте ПИД-регулятор 2-DOF в стандартной форме и установите свойства InputName динамической системы и OutputName. Именование входных параметров и выхода полезно, например, когда вы соединяете ПИД-регулятор с другими моделями динамической системы с помощью connect команда.

C2 = pidstd2(1,2,3,10,1,1,'InputName',{'r','y'},'OutputName','u')
C2 =
 
                       1      1                      s      
  u = Kp * [(b*r-y) + ---- * --- * (r-y) + Td * ------------ * (c*r-y)]
                       Ti     s                  (Td/N)*s+1 

  with Kp = 1, Ti = 2, Td = 3, N = 10, b = 1, c = 1
 
Continuous-time 2-DOF PIDF controller in standard form

ПИД-регулятор с 2 степенями свободы имеет два входных параметров и один выход. Поэтому 'InputName' свойство является массивом, содержащим два имени, один для каждого входа. Отображение модели не показывает имена ввода и вывода для ПИД-регулятора, но можно исследовать значения свойств, чтобы видеть их. Например, проверьте входное имя контроллера.

C2.InputName
ans = 2x1 cell
    {'r'}
    {'y'}

Создайте 2 3 сетка ПИ-контроллеров 2-DOF в стандартной форме. Пропорциональная составляющая лежит в диапазоне от 1–2 через строки массивов и диапазоны постоянной времени интегратора от 5–9 через столбцы.

Чтобы создать массив ПИД-регуляторов, начните с массивов, представляющих усиления.

Kp = [1 1 1;2 2 2];
Ti = [5:2:9;5:2:9];

Когда вы передаете эти массивы pidstd2 команда, команда возвращает массив контроллеров.

pi_array = pidstd2(Kp,Ti,0,Inf,0.5,0,'Ts',0.1,'IFormula','BackwardEuler');
size(pi_array)
2x3 array of 2-DOF PID controller.
Each PID has 1 output and 2 inputs.

Если вы вводите скалярные значения для некоторых коэффициентов, pidstd2 автоматически расширяет их и присваивает то же значение всем записям в массиве. Например, в этом примере, Td = 0, так, чтобы все записи в массиве были ПИ-контроллерами. Кроме того, все записи в массиве имеют b = 0.5.

Доступ к записям в массиве с помощью индексации массива. Для массивов динамической системы первые две размерности являются размерностями ввода-вывода модели, и остальные измерения являются измерениями массива. Поэтому следующая команда извлекает (2,3) запись в массиве.

pi23 = pi_array(:,:,2,3)
pi23 =
 
                       1      Ts*z 
  u = Kp * [(b*r-y) + ---- * ------ * (r-y)]
                       Ti      z-1 

  with Kp = 2, Ti = 9, b = 0.5, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time 2-DOF PI controller in standard form

Можно также создать массив ПИД-регуляторов с помощью stack команда.

C2 = pidstd2(1,5,0.1,Inf,0.5,0.5);         % PID controller
C2f = pidstd2(1,5,0.1,0.5,0.5,0.5);        % PID controller with filter
pid_array = stack(2,C2,C2f);               % stack along 2nd array dimension

Эти команды возвращаются 1 2 массив контроллеров.

size(pid_array)
1x2 array of 2-DOF PID controller.
Each PID has 1 output and 2 inputs.

Все ПИД-регуляторы в массиве должны иметь тот же шаг расчета, дискретные формулы интегратора и свойства динамической системы, такие как InputName и OutputName.

Преобразуйте параллельную форму pid2 контроллер к стандартной форме.

Параллельная форма ПИДа описывает действия контроллера в терминах пропорционального, интеграла, и производная получает Kp, Ki, и Kd, и отфильтруйте постоянную времени Tf. Можно преобразовать параллельную форму pid2 контроллер к стандартной форме с помощью pidstd2 команда, при условии, что оба из следующего верны:

  • pid2 контроллер может быть описан в допустимой стандартной форме.

  • Усиления Kp, Ki, и Kd из pid2 контроллер у всех есть тот же знак.

Например, рассмотрите следующий контроллер параллельной формы.

Kp = 2;
Ki = 3;
Kd = 4;
Tf = 2;
b = 0.1;
c = 0.5;
C2_par = pid2(Kp,Ki,Kd,Tf,b,c)
C2_par =
 
                       1                s    
  u = Kp (b*r-y) + Ki --- (r-y) + Kd -------- (c*r-y)
                       s              Tf*s+1 

  with Kp = 2, Ki = 3, Kd = 4, Tf = 2, b = 0.1, c = 0.5
 
Continuous-time 2-DOF PIDF controller in parallel form.

Преобразуйте этот контроллер, чтобы быть параллельными форме с помощью pidstd2.

C2_std = pidstd2(C2_par)
C2_std =
 
                       1      1                      s      
  u = Kp * [(b*r-y) + ---- * --- * (r-y) + Td * ------------ * (c*r-y)]
                       Ti     s                  (Td/N)*s+1 

  with Kp = 2, Ti = 0.667, Td = 2, N = 1, b = 0.1, c = 0.5
 
Continuous-time 2-DOF PIDF controller in standard form

Отображение подтверждает форму нового стандарта. График отклика подтверждает, что две формы эквивалентны.

bodeplot(C2_par,'b-',C2_std,'r--')
legend('Parallel','Standard','Location','Southeast')

Преобразуйте 2D вход, динамическая система непрерывного времени с одним выходом, которая представляет ПИД-регулятор 2-DOF стандартной форме pidstd2 контроллер.

Следующие матрицы пространства состояний представляют ПИД-регулятор 2-DOF.

A = [0,0;0,-8.181];
B = [1,-1;-0.1109,8.181];
C = [0.2301,10.66];
D = [0.8905,-11.79];
sys = ss(A,B,C,D);

Перепишите sys в терминах параметров ПИДа стандартной формы Kpti , Td, и N, и веса заданного значения b и c.

C2 = pidstd2(sys)
C2 =
 
                       1      1                      s      
  u = Kp * [(b*r-y) + ---- * --- * (r-y) + Td * ------------ * (c*r-y)]
                       Ti     s                  (Td/N)*s+1 

  with Kp = 1.13, Ti = 4.91, Td = 1.15, N = 9.43, b = 0.66, c = 0.0136
 
Continuous-time 2-DOF PIDF controller in standard form

Преобразуйте динамическую систему дискретного времени, которая представляет ПИД-регулятор 2-DOF производным фильтром к стандартному pidstd2 форма.

Следующие матрицы пространства состояний представляют дискретное время ПИД-регулятор 2-DOF шагом расчета 0,05 с.

A = [1,0;0,0.6643];
B = [0.05,-0.05; -0.004553,0.3357];
C = [0.2301,10.66];
D = [0.8905,-11.79];
Ts = 0.05;
sys = ss(A,B,C,D,Ts);

Когда вы преобразуете sys к форме ПИДа 2-DOF зависит результат, на которых дискретных формулах интегратора вы задаете для преобразования. Например, используйте значение по умолчанию, ForwardEuler, и для интегратора и для производной.

C2fe = pidstd2(sys)
C2fe =
 
                       1       Ts                         1       
  u = Kp * [(b*r-y) + ---- * ------ * (r-y) + Td * --------------- * (c*r-y)]
                       Ti      z-1                 (Td/N)+Ts/(z-1)

  with Kp = 1.13, Ti = 4.91, Td = 1.41, N = 9.43, b = 0.66, c = 0.0136, Ts = 0.05
 
Sample time: 0.05 seconds
Discrete-time 2-DOF PIDF controller in standard form

Теперь преобразуйте использование Trapezoidal формула.

C2trap = pidstd2(sys,'IFormula','Trapezoidal','DFormula','Trapezoidal')
C2trap =
 
                       1     Ts*(z+1)                           1           
  u = Kp * [(b*r-y) + ---- * -------- * (r-y) + Td * ----------------------- * (c*r-y)]
                       Ti    2*(z-1)                 (Td/N)+Ts/2*(z+1)/(z-1)

  with Kp = 1.12, Ti = 4.89, Td = 1.41, N = 11.4, b = 0.658, c = 0.0136, Ts = 0.05
 
Sample time: 0.05 seconds
Discrete-time 2-DOF PIDF controller in standard form

Отображения показывают различие в получившихся содействующих значениях и функциональной форме.

Для некоторых динамических систем, пытаясь использовать Trapezoidal или BackwardEuler формулы интегратора приводят к недопустимым результатам, таким как отрицательный Ti, Td, или N значения. В таких случаях, pidstd2 возвращает ошибку.

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

Создайте непрерывное время pidstd2 контроллер и дискретизирует, это с помощью метода "нулевой порядок содержит" c2d команда.

C2con = pidstd2(10,5,3,0.5,1,1);  % continuous-time 2-DOF PIDF controller
C2dis1 = c2d(C2con,0.1,'zoh')
C2dis1 =
 
                       1       Ts                         1       
  u = Kp * [(b*r-y) + ---- * ------ * (r-y) + Td * --------------- * (c*r-y)]
                       Ti      z-1                 (Td/N)+Ts/(z-1)

  with Kp = 10, Ti = 5, Td = 3.03, N = 0.5, b = 1, c = 1, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time 2-DOF PIDF controller in standard form

Отображение показывает тот c2d вычисляет новые коэффициенты ПИДа для контроллера дискретного времени.

Дискретные формулы интегратора дискретизированного контроллера зависят от c2d метод дискретизации, как описано в Советах. Для zoh метод, оба IFormula и DFormula ForwardEuler.

C2dis1.IFormula
ans = 
'ForwardEuler'
C2dis1.DFormula
ans = 
'ForwardEuler'

Если вы хотите использовать различные формулы от тех возвращенных c2d, затем можно непосредственно установить Ts, IFormula, и DFormula свойства контроллера к требуемым значениям.

C2dis2 = C2con;
C2dis2.Ts = 0.1; 
C2dis2.IFormula = 'BackwardEuler';
C2dis2.DFormula = 'BackwardEuler';

Однако эти команды не вычисляют новые коэффициенты для дискретизированного контроллера. Чтобы видеть это, исследуйте C2dis2 и сравните коэффициенты с C2con и C2dis1.

C2dis2
C2dis2 =
 
                       1      Ts*z                         1        
  u = Kp * [(b*r-y) + ---- * ------ * (r-y) + Td * ----------------- * (c*r-y)]
                       Ti      z-1                 (Td/N)+Ts*z/(z-1)

  with Kp = 10, Ti = 5, Td = 3, N = 0.5, b = 1, c = 1, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time 2-DOF PIDF controller in standard form

Советы

  • Чтобы спроектировать ПИД-регулятор для конкретного объекта, использовать pidtune или pidTuner. Чтобы создать настраиваемый ПИД-регулятор 2-DOF как блок системы управления, использовать tunablePID2.

  • Повредить контроллер 2-DOF в два компонента элемента управления SISO, такие как контроллер обратной связи и контроллер прямого распространения, использование getComponents.

  • Создайте массивы pidstd2 контроллеры:

    • Определение значений массивов для одного или нескольких коэффициентов Kpti , TdNB, и c.

    • Определение массива динамических систем sys преобразовывать в pid2 диспетчер возражает.

    • Используя stack создавать массивы из отдельных контроллеров или меньших массивов.

    • Передача массива моделей объекта управления к pidtune.

    В массиве pidstd2 контроллеры, у каждого контроллера должен быть тот же шаг расчета Ts и дискретные формулы интегратора IFormula и DFormula.

  • Чтобы создать или преобразовать в контроллер параллельной формы, использовать pid2. Параллельная форма описывает действия контроллера в терминах пропорционального, интеграла, и производная получает Kp, Ki и Kd и постоянную времени фильтра Tf. Например, отношением между входными параметрами и выходом параллельной формы непрерывного времени ПИД-регулятор 2-DOF дают:

    u=Kp(bry)+Kis(ry)+KdsTfs+1(cry).

  • Существует два способа дискретизировать непрерывное время pidstd2 контроллер:

    • Используйте c2d команда. c2d вычисляет новые значения параметров для дискретизированного контроллера. Дискретные формулы интегратора дискретизированного контроллера зависят от c2d метод дискретизации вы используете, как показано в следующей таблице.

      c2d Метод дискретизацииIFormulaDFormula
      'zoh'ForwardEulerForwardEuler
      'foh'TrapezoidalTrapezoidal
      'tustin'TrapezoidalTrapezoidal
      'impulse'ForwardEulerForwardEuler
      'matched'ForwardEulerForwardEuler

      Для получения дополнительной информации о c2d методы дискретизации, Смотрите c2d страница с описанием. Для получения дополнительной информации о IFormula и DFormula, смотрите Свойства.

    • Если вы требуете различных дискретных формул интегратора, можно дискретизировать контроллер непосредственно установкой Ts, IFormula, и DFormula к требуемым значениям. (См., Дискретизируют Стандартную Форму ПИД-регулятор 2-DOF.) Однако этот метод не вычисляет новое усиление и постоянные значения фильтра для дискретизированного контроллера. Поэтому этот метод может дать к более плохому соответствию между непрерывным - и дискретным временем pidstd2 контроллеры, чем использование c2d.

Введенный в R2015b