изодромный с предварением

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

Синтаксис

C = pid(Kp,Ki,Kd,Tf)
C = pid(Kp,Ki,Kd,Tf,Ts)
C = pid(sys)
C = pid(Kp)
C = pid(Kp,Ki)
C = pid(Kp,Ki,Kd)
C = pid(...,Name,Value)
C = pid

Описание

C = pid(Kp,Ki,Kd,Tf) создает непрерывно-разовый ПИД-регулятор с пропорциональным, интегралом, и производная получает Kp, Ki, и Kd и производная первого порядка фильтруют временную константу Tf:

C=Kp+Kis+KdsTfs+1.

Это представление находится в parallel form. Если весь Kp, Ki, Kd и Tf действителен, то получившийся C является контроллером pid объект. Если один или несколько из этих коэффициентов является настраиваемым (realp или genmat), то C является настраиваемым обобщенным пространством состояний (genss) объект модели.

C = pid(Kp,Ki,Kd,Tf,Ts) создает ПИД-регулятор дискретного времени с шагом расчета Ts. Контроллер:

C=Kp+KiIF(z)+KdTf+DF(z).

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

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

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

C = pid(sys) преобразовывает динамическую систему sys в параллельную форму контроллер pid объект.

C = pid(Kp) создает непрерывно-кратный пропорциональный (P) контроллер с Ki = 0, Kd = 0, и Tf = 0.

C = pid(Kp,Ki) создает пропорциональное и интеграл (PI) контроллер с Kd = 0 и Tf = 0.

C = pid(Kp,Ki,Kd) создает пропорциональное, интеграл и производную (ПИД) контроллер с Tf = 0.

C = pid(...,Name,Value) создает контроллер или преобразовывает динамическую систему в контроллер pid объект с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

C = pid создает контроллер P с Kp = 1.

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

Kp

Пропорциональное усиление.

Kp может быть:

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

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

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

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

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

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

Ki

Интегральное усиление.

Ki может быть:

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

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

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

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

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

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

Kd

Производное усиление.

Kd может быть:

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

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

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

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

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

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

Tf

Временная константа производного фильтра первого порядка.

Tf может быть:

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

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

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

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

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

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

Ts

'SampleTime' .

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

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

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

sys

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

sys должен представлять допустимый ПИД-регулятор, который может быть написан в параллельной форме с Tf ≥ 0.

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

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

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

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

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

C

ПИД-регулятор, представленный как контроллер pid объект, массив контроллера pid объекты, объект genss или массив genss.

  • Если все усиления, Kp, Ki, Kd и Tf имеют числовые значения, то C является контроллером pid объект. Когда усиления являются числовыми массивами, C является массивом контроллера pid объекты. Тип контроллера (P, я, PI, PD, PDF, ПИД, PIDF) зависит от значений усилений. Например, когда Kd = 0, но Kp и Ki является ненулевым, C является контроллером PI.

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

Свойства

Kp, Ki, Kd

Усиления ПИД-регулятора.

Kp, Ki и свойства Kd хранят пропорциональное, интеграл и производные усиления, соответственно. Kp, Ki и Kd действительны и конечны.

Tf

Производная временная константа фильтра.

Свойство Tf хранит производную временную константу фильтра контроллера pid объект. Tf является действительным, конечным, и неотрицательным.

IFormula

Дискретная формула интегратора IF (z) для интегратора дискретного времени контроллер pid C:

C=Kp+KiIF(z)+KdTf+DF(z).

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

  • 'ForwardEuler'IF (z) = Tsz1.

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

  • 'BackwardEuler'IF (z) = Tszz1.

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

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

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

Когда C является непрерывно-кратным контроллером, IFormula является ''.

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

DFormula

Дискретная формула интегратора DF (z) для производного фильтра дискретного времени контроллер pid C:

C=Kp+KiIF(z)+KdTf+DF(z).

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

  • 'ForwardEuler'DF (z) = Tsz1.

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

  • 'BackwardEuler'DF (z) = Tszz1.

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

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

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

    Значение Trapezoidal для DFormula не доступно контроллеру pid без производного фильтра (Tf = 0).

Когда C является непрерывно-кратным контроллером, DFormula является ''.

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

InputDelay

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

OutputDelay

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

Ts

'SampleTime' . Для непрерывно-разовых моделей, 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

Введите название канала, заданное как вектор символов. Используйте это свойство назвать входной канал моделей контроллеров. Например, присвойте имя 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®.

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

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 и slLinearizer заполняют SamplingGrid таким образом.

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

Примеры

свернуть все

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

Kp = 1;
Ki = 0;   % No integrator
Kd = 3;
Tf = 0.5;
C = pid(Kp,Ki,Kd,Tf)
C =
 
               s    
  Kp + Kd * --------
             Tf*s+1 

  with Kp = 1, Kd = 3, Tf = 0.5
 
Continuous-time PDF controller in parallel form.

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

Создайте контроллер PI дискретного времени с трапециевидной формулой дискретизации.

Чтобы создать контроллер PI дискретного времени, установите значение Ts и формулы дискретизации с помощью синтаксиса Name,Value.

C1 = pid(5,2.4,'Ts',0.1,'IFormula','Trapezoidal')    % Ts = 0.1s
C1 =
 
            Ts*(z+1)
  Kp + Ki * --------
            2*(z-1) 

  with Kp = 5, Ki = 2.4, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time PI controller in parallel form.

Также можно создать тот же контроллер дискретного времени путем предоставления Ts как пятого входного параметра после всех четырех параметров ПИДа, Kp, Ki, Kd и Tf. Поскольку вы только хотите контроллер PI, обнуляете Kd и Tf.

C2 = pid(5,2.4,0,0,0.1,'IFormula','Trapezoidal')
C2 =
 
            Ts*(z+1)
  Kp + Ki * --------
            2*(z-1) 

  with Kp = 5, Ki = 2.4, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time PI controller in parallel form.

Отображение показывает, что C1 и C2 являются тем же самым.

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

C = pid(1,2,3,'InputName','e','OutputName','u')
C =
 
             1          
  Kp + Ki * --- + Kd * s
             s          

  with Kp = 1, Ki = 2, Kd = 3
 
Continuous-time PID controller in parallel form.

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

C.InputName
ans = 1x1 cell array
    {'e'}

Создайте 2 3 сетка контроллеров PI с пропорциональным усилением в пределах от 1–2 через строки массивов и интегральное усиление в пределах от 5–9 через столбцы.

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

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

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

pi_array = pid(Kp,Ki,'Ts',0.1,'IFormula','BackwardEuler');
size(pi_array)
2x3 array of PID controller.
Each PID has 1 output and 1 input.

Также используйте команду stack, чтобы создать массив ПИД-регуляторов.

C = pid(1,5,0.1)           % PID controller
C =
 
             1          
  Kp + Ki * --- + Kd * s
             s          

  with Kp = 1, Ki = 5, Kd = 0.1
 
Continuous-time PID controller in parallel form.
Cf = pid(1,5,0.1,0.5)      % PID controller with filter
Cf =
 
             1            s    
  Kp + Ki * --- + Kd * --------
             s          Tf*s+1 

  with Kp = 1, Ki = 5, Kd = 0.1, Tf = 0.5
 
Continuous-time PIDF controller in parallel form.
pid_array = stack(2,C,Cf); % stack along 2nd array dimension

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

size(pid_array)
1x2 array of PID controller.
Each PID has 1 output and 1 input.

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

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

Стандартная форма ПИДа выражает действия контроллера с точки зрения полного пропорционального усиления Kp, интегральные и производные временные константы Ti и Td и делитель фильтра N. Можно преобразовать любой контроллер стандартной формы, чтобы быть параллельными форме с помощью команды pid. Например, рассмотрите следующий контроллер стандартной формы.

Kp = 2;
Ti = 3;
Td = 4;
N = 50;
C_std = pidstd(Kp,Ti,Td,N)
C_std =
 
             1      1              s      
  Kp * (1 + ---- * --- + Td * ------------)
             Ti     s          (Td/N)*s+1 

  with Kp = 2, Ti = 3, Td = 4, N = 50
 
Continuous-time PIDF controller in standard form

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

C_par = pid(C_std)
C_par =
 
             1            s    
  Kp + Ki * --- + Kd * --------
             s          Tf*s+1 

  with Kp = 2, Ki = 0.667, Kd = 8, Tf = 0.08
 
Continuous-time PIDF controller in parallel form.

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

Следующая динамическая система, с интегратором и двумя нулями, эквивалентна ПИД-регулятору.

H(s)=3(s+1)(s+2)s.

Создайте модель zpk H. Затем используйте команду pid, чтобы получить H с точки зрения коэффициентов ПИД Kp, Ki и Kd.

H = zpk([-1,-2],0,3);
C = pid(H)
C =
 
             1          
  Kp + Ki * --- + Kd * s
             s          

  with Kp = 9, Ki = 6, Kd = 3
 
Continuous-time PID controller in parallel form.

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

Создайте дискретное время zpk модель, которая представляет контроллер PIDF (два нуля и два полюса, включая полюс интегратора в z = 1).

sys = zpk([-0.5,-0.6],[1 -0.2],3,'Ts',0.1);

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

Cfe = pid(sys)
Cfe =
 
              Ts               1     
  Kp + Ki * ------ + Kd * -----------
              z-1         Tf+Ts/(z-1)

  with Kp = 2.75, Ki = 60, Kd = 0.0208, Tf = 0.0833, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time PIDF controller in parallel form.

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

Ctrap = pid(sys,'IFormula','Trapezoidal','DFormula','Trapezoidal')
Ctrap =
 
            Ts*(z+1)                 1         
  Kp + Ki * -------- + Kd * -------------------
            2*(z-1)         Tf+Ts/2*(z+1)/(z-1)

  with Kp = -0.25, Ki = 60, Kd = 0.0208, Tf = 0.0333, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time PIDF controller in parallel form.

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

Для этой конкретной динамической системы вы не можете написать sys в параллельной форме ПИДа с помощью формулы BackwardEuler для производного фильтра. Выполнение так привело бы к Tf < 0, который не разрешен. В этом случае pid возвращает ошибку.

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

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

Ccon = pid(1,2,3,4);  % continuous-time PIDF controller
Cdis1 = c2d(Ccon,0.1,'zoh')
Cdis1 =
 
              Ts               1     
  Kp + Ki * ------ + Kd * -----------
              z-1         Tf+Ts/(z-1)

  with Kp = 1, Ki = 2, Kd = 3.04, Tf = 4.05, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time PIDF controller in parallel form.

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

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

Cdis1.IFormula
ans = 
'ForwardEuler'
Cdis1.DFormula
ans = 
'ForwardEuler'

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

Cdis2 = Ccon;
Cdis2.Ts = 0.1; 
Cdis2.IFormula = 'BackwardEuler';
Cdis2.DFormula = 'BackwardEuler';

Однако эти команды не вычисляют новые коэффициенты ПИД для дискретизированного контроллера. Чтобы видеть это, исследуйте Cdis2 и сравните коэффициенты с Ccon и Cdis1.

Cdis2
Cdis2 =
 
             Ts*z               1      
  Kp + Ki * ------ + Kd * -------------
              z-1         Tf+Ts*z/(z-1)

  with Kp = 1, Ki = 2, Kd = 3, Tf = 4, Ts = 0.1
 
Sample time: 0.1 seconds
Discrete-time PIDF controller in parallel form.

Советы

  • Используйте pid для:

    • Создайте контроллер pid объект из известных коэффициентов ПИД и отфильтруйте временную константу.

    • Преобразуйте контроллер pidstd объект в стандартную форму контроллер pid объект.

    • Преобразуйте другие типы моделей динамической системы контроллеру pid объект.

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

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

    • Задавая значения массивов для Kp, Ki, Kd и Tf

    • Определение массива динамических систем sys, чтобы преобразовать в контроллер pid объекты

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

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

  • Чтобы создать или преобразовать в контроллер стандартной формы, используйте pidstd. Стандартная форма выражает действия контроллера с точки зрения полного пропорционального усиления Kp, интегральные и производные времена Ti и Td и делитель фильтра N:

    C=Kp(1+1Ti1s+TdsTdNs+1).

  • Существует два способа дискретизировать непрерывно-кратный контроллер pid:

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

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

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

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

Представленный в R2010b