Создайте 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
либо для создания pid2
объект контроллера из известных коэффициентов или для преобразования модели динамической системы в объект pid2
объект.
Две степени свободы (2-DOF) ПИД-регуляторов включать взвешивание уставки на пропорциональном и производном терминах. 2-DOF ПИД-регуляторы способно быстро подавление помех без значительного увеличения перерегулирования в отслеживании уставки. 2-DOF ПИД-регуляторы также полезны, чтобы уменьшить влияние изменений в опорном сигнале на сигнал управления. Следующий рисунок показывает типовую архитектуру управления, использующую 2-DOF ПИД-регуляторы.
создает непрерывное время 2-DOF ПИД-регуляторов с пропорциональной составляющей C2
= pidstd2(Kp
,Ti
,Td
,N
,b
,c
)Kp
, интегратор и производные по времени константы Ti
, и Td
, и производного фильтра делителя N
. Контроллер также имеет b
взвешивания уставки на пропорциональном сроке и
c
взвешивания уставки от производного термина. Отношение между выходом (u) контроллера 2-DOF и его двумя входами (r и y) задается:
Это представление в standard form. Если все коэффициенты являются вещественными, то получившееся C2
является pidstd2
объект контроллера. Если один или несколько из этих коэффициентов настраиваются (realp
или genmat
), затем C2
- настраиваемое обобщенное пространство состояний (genss
) объект модели.
создает 2-DOF в дискретном времени ПИД-регулятора с шагом расчета C2
= pidstd2(Kp
,Ti
,Td
,N
,b
,c
,Ts
)Ts
. Отношение между выходом контроллера и входами определяется:
IF (z) и DF (z) являются discrete integrator formulas для интегратора и производного фильтра. По умолчанию,
Чтобы выбрать различные дискретные формулы интегратора, используйте IFormula
и DFormula
свойства. (Для получения дополнительной информации см. свойства»). Если DFormula
= 'ForwardEuler'
(значение по умолчанию) и N
≠ Inf
, затем Ts
, Td
, и N
должен удовлетворять Td/N > Ts/2
. Это требование обеспечивает стабильный производный полюс фильтра.
преобразует динамическую систему C2
= pidstd2(sys
)sys
в стандартную форму pidstd2
объект контроллера.
задает дополнительные свойства как разделенные запятыми пары C2
= pid2(___,Name,Value
)Name,Value
аргументы.
|
Пропорциональная составляющая.
По умолчанию: 1 |
|
Время интегратора.
Когда По умолчанию: |
|
Производное время.
Когда По умолчанию: 0 |
|
Производный делитель фильтра.
Когда По умолчанию: |
|
Уставка взвешивания на пропорциональный член.
Когда По умолчанию: 1 |
|
Взвешивание уставки по производному члену.
Когда По умолчанию: 1 |
|
Шаг расчета. Чтобы создать дискретное время
По умолчанию: 0 (непрерывное время) |
|
Динамическая система SISO для преобразования в стандартную
|
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
Использование Name,Value
синтаксис для установки формул численного интегрирования IFormula
и DFormula
дискретного времени pidstd2
контроллер или задать другие свойства объектов, такие как InputName
и OutputName
. Для получения информации о доступных свойствах pidstd2
объекты контроллера, см. Свойства.
|
2-DOF ПИД-регулятор, возвращенный как
|
|
Веса уставки на пропорциональном и производном терминах, соответственно. |
|
Пропорциональная составляющая. Значение |
|
Время интегратора. |
|
Производное время. |
|
Производный делитель фильтра. |
|
Дискретный интегратор формулы IF (z) для интегратора дискретного времени
Когда По умолчанию: |
|
Дискретный интегратор формулы DF (z) для производного фильтра дискретного времени
Когда По умолчанию: |
|
Задержка на системном входе. |
|
Задержка на выходе системы. |
|
Шаг расчета. Для моделей в непрерывном времени, Изменение этого свойства не дискретизирует и не переопределяет модель. Использовать По умолчанию: |
|
Модули измерения для временной переменной, шага расчета
Изменение этого свойства не влияет на другие свойства и, следовательно, изменяет общее поведение системы. Использовать По умолчанию: |
|
Вход имя канала, заданное как вектор символов или массив ячеек 2 на 1 векторах символов. Используйте это свойство, чтобы назвать входные каналы моделей контроллеров. Например, присвойте имена C.InputName = {'setpoint';'measurement'}; Кроме того, используйте автоматическое расширение вектора, чтобы присвоить оба входных имени. Для примера: C.InputName = 'C-input'; Имена входа автоматически расширяются на Можно использовать сокращённое обозначение Входные имена каналов имеют несколько применений, включая:
По умолчанию: |
|
Входные модули канала, заданные как массив ячеек 2 на 1 из векторов символов. Используйте это свойство для отслеживания модулей входного сигнала. Например, присвойте модули C.InputUnit = {'Volts';'mol/m^3'};
По умолчанию: |
|
Входные группы каналов. Это свойство не нужно для моделей ПИД-регулятора. По умолчанию: |
|
Выход канала, заданное как вектор символов. Используйте это свойство, чтобы назвать выходной канал моделей контроллеров. Например, присвойте имя C.OutputName = 'control'; Можно использовать сокращённое обозначение Входные имена каналов имеют несколько применений, включая:
По умолчанию: Пустой символьный вектор, |
|
Выход модулей канала, заданный как вектор символов. Используйте это свойство для отслеживания модулей выходного сигнала. Например, присвойте модуль измерения C.OutputUnit = 'Volts';
По умолчанию: Пустой символьный вектор, '' |
|
Выходы каналов. Это свойство не нужно для моделей ПИД-регулятора. По умолчанию: |
|
Имя системы, заданное как вектор символов. Для примера, По умолчанию: |
|
Любой текст, который вы хотите связать с системой, сохраненный как строка или массив ячеек из векторов символов. Свойство сохраняет любой тип данных, которые вы предоставляете. Для образца, если 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.' По умолчанию: |
|
Любой тип данных, которые вы хотите связать с системой, заданный как любой MATLAB® тип данных. По умолчанию: |
|
Сетка дискретизации для массивов моделей, заданная как структура данных. Для массивов моделей, которые получают путем выборки одной или нескольких независимых переменных, это свойство отслеживает значения переменных, сопоставленные с каждой моделью в массиве. Эта информация появляется при отображении или построении графика массива моделей. Используйте эту информацию для отслеживания результатов к независимым переменным. Установите имена полей структуры данных в имена переменных выборки. Установите значения полей к выборочным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми и скалярными, а все массивы выборочных значений должны совпадать с размерностями массива моделей. Например, предположим, что вы создадите массив линейных моделей 11 на 1, sysarr.SamplingGrid = struct('time',0:10) Точно так же предположим, что вы создадите массив моделей 6 на 9, [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',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® моделируйте в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет По умолчанию: |
Чтобы спроектировать ПИД-регулятор для определенного объекта, используйте pidtune
или pidTuner
. Чтобы создать настраиваемый 2-DOF ПИД-регуляторы как блок проекта системы управления, используйте tunablePID2
.
Чтобы разбить контроллер 2-DOF на два компонента управления SISO, таких как контроллер обратной связи и контроллер feedforward, используйте getComponents
.
Создание массивов pidstd2
контроллеры по:
Задание значений массива для одного или нескольких коэффициентов Kp
, Ti
, Td
, N
, b
, и c
.
Определение массива динамических систем sys
для преобразования в pid2
объекты контроллера.
Используя stack
создание массивов из отдельных контроллеров или меньших массивов.
Передача массива моделей объекта управления в pidtune
.
В массиве из pidstd2
контроллеры, каждый контроллер должен иметь одинаковый шаг расчета Ts
и дискретные формулы интегратора IFormula
и DFormula
.
Чтобы создать или преобразовать в контроллер параллельной формы, используйте pid2
. Параллельная форма выражает действия контроллера в терминах пропорциональных, интегральных и производных Kp, Ki и Kd и временной константы Tf фильтра. Например, отношение между входами и выходом ПИД-контроллера 2-DOF непрерывной параллельной формы задается:
Существует два способа дискретизировать непрерывное время pidstd2
контроллер:
Используйте c2d
команда. c2d
вычисляет новые значения параметров для дискретизированного контроллера. Дискретные формулы интегратора дискретизированного контроллера зависят от c2d
метод дискретизации, который вы используете, как показано в следующей таблице.
c2d Метод дискретизации | IFormula | DFormula |
---|---|---|
'zoh' | ForwardEuler | ForwardEuler |
'foh' | Trapezoidal | Trapezoidal |
'tustin' | Trapezoidal | Trapezoidal |
'impulse' | ForwardEuler | ForwardEuler |
'matched' | ForwardEuler | ForwardEuler |
Для получения дополнительной информации о c2d
методы дискретизации, См. c2d
страница с описанием. Для получения дополнительной информации о IFormula
и DFormula
, см. Свойства.
Если вам требуются различные дискретные формулы интегратора, можно дискретизировать контроллер, непосредственно установив Ts
, IFormula
, и DFormula
к желаемым значениям. (См. Раздел «Дискретизация ПИД-регулятора 2-DOF стандартной формы».) Однако этот метод не вычисляет новые значения коэффициентов усиления и фильтрации для дискретизированного контроллера. Поэтому этот метод может привести к более плохому соответствию между непрерывным и дискретным временем pidstd2
контроллеры, чем использовать c2d
.
getComponents
| pid2
| pidstddata2
| pidtune
| pidTuner