piddata

Доступ к коэффициентам ПИД-регулятора параллельной формы

Синтаксис

[Kp,Ki,Kd,Tf] = piddata(sys)
[Kp,Ki,Kd,Tf,Ts] = piddata(sys)
[Kp,Ki,Kd,Tf,Ts] = piddata(sys,J1,...,JN)

Описание

[Kp,Ki,Kd,Tf] = piddata(sys) возвращает коэффициенты ПИД Kp, Ki, Kd и постоянная времени фильтра Tf из контроллера параллельной формы, представленного динамической системой sys.

[Kp,Ki,Kd,Tf,Ts] = piddata(sys) также возвращает шаг расчета Ts.

[Kp,Ki,Kd,Tf,Ts] = piddata(sys,J1,...,JN) извлекает данные для подмножества записей в sys, где sys N-мерный массив динамических систем. Индексы J задайте запись массива, чтобы извлечь.

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

sys

Динамическая система SISO или массив динамических систем SISO. Если sys не a pid объект, это должно представлять допустимый ПИД-регулятор, который может быть написан в параллельной форме ПИДа.

J

Целочисленные индексы записей N в массиве sys из динамических систем. Например, предположите sys 4 5 (двумерный) массив pid контроллеры или модели динамической системы, которые представляют ПИД-регуляторы. Следующая команда извлекает данные для записи (2,3) в массиве.

[Kp,Ki,Kd,Tf,Ts] = piddata(sys,2,3);

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

Kp

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

Если sys isa pid объект контроллера, выход Kp равно Kp значение sys.

Если sys не pid объект, Kp пропорциональная составляющая параллельного ПИД-регулятора, эквивалентного sys.

Если sys массив динамических систем, Kp массив тех же размерностей как sys.

Ki

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

Если sys isa pid объект контроллера, затем выход Ki равно Ki значение sys.

Если sys не pid объект, затем Ki интегральная составляющая параллельного ПИД-регулятора, эквивалентного sys.

Если sys массив динамических систем, затем Ki массив тех же размерностей как sys.

Kd

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

Если sys isa pid объект контроллера, затем выход Kd равно Kd значение sys.

Если sys не a pid объект, затем Kd производное усиление параллельного ПИД-регулятора, эквивалентного sys.

Если sys массив динамических систем, затем Kd массив тех же размерностей как sys.

Tf

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

Если sys isa pid объект контроллера, выход Tf равно Tf значение sys.

Если sys не pid объект, Tf постоянная времени фильтра параллельного ПИД-регулятора, эквивалентного sys.

Если sys массив динамических систем, Tf массив тех же размерностей как sys.

Ts

Шаг расчета динамической системы sys. Ts всегда скалярное значение.

Примеры

свернуть все

Как правило, вы извлекаете коэффициенты из контроллера, полученного из другой функции, такие как pidtune или getBlockValue. В данном примере создайте ПИД-регулятор, который имеет случайные коэффициенты.

rng('default');    % for reproducibility
C = pid(rand,rand,rand,rand);

Извлеките коэффициенты ПИД и отфильтруйте постоянную времени.

[Kp,Ki,Kd,Tf] = piddata(C)
Kp = 0.8147
Ki = 0.9058
Kd = 0.1270
Tf = 0.9134

Создайте ПИ-контроллер в стандартной форме.

C = pidstd(2,3)
C =
 
             1      1 
  Kp * (1 + ---- * ---)
             Ti     s 

  with Kp = 2, Ti = 3
 
Continuous-time PI controller in standard form

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

[Kp,Ki] = piddata(C)
Kp = 2
Ki = 0.6667

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

H(z)=(z-0.5)(z-0.6)(z-1)(z+0.8)

H = zpk([0.5 0.6],[1,-0.8],1,0.1);

Извлеките коэффициенты ПИД и отфильтруйте постоянную времени.

[Kp,Ki,Kd,Tf,Ts] = piddata(H)
Kp = 0.4383
Ki = 1.1111
Kd = 0.0312
Tf = 0.0556
Ts = 0.1000

Для системы дискретного времени, piddata вычисляет содействующие значения с помощью ForwardEuler по умолчанию дискретная формула интегратора для обоих IFormula и DFormula.

Как правило, вы получаете массив контроллеров при помощи pidtune на массиве моделей объекта управления. В данном примере создайте массив 2х3 ПИ-контроллеров со случайными значениями Kp, Ki.

rng('default');
C = pid(rand(2,3),rand(2,3));

Извлеките все коэффициенты из массива.

[Kp,Ki] = piddata(C);

Каждые из выходных параметров являются самостоятельно массивом 2х3. Например, исследуйте Ki.

Ki
Ki = 2×3

    0.2785    0.9575    0.1576
    0.5469    0.9649    0.9706

Извлеките только коэффициенты записи (2,1) в массиве.

[Kp,Ki] = piddata(C,2,1)
Kp = 0.9058
Ki = 0.5469

Советы

Если sys не a pid объект контроллера, piddata возвращает коэффициенты ПИД Kp, Ki, Kd и постоянная времени фильтра Tf из контроллера параллельной формы, эквивалентного sys.

В течение дискретного времени sys, piddata возвращает параметры эквивалентного контроллера параллельной формы. У этого контроллера есть дискретные формулы интегратора IFormula и DFormula установите на ForwardEuler. Смотрите pid страница с описанием для получения дополнительной информации о дискретных формулах интегратора.

Смотрите также

| |

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