Документация Engee

Pid

Страница в процессе разработки.

ПИД-регулятор в параллельной форме.

Библиотека

EngeeControlSystems

Описание

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

где

  • — коэффициент усиления пропорциональной составляющей;

  • — коэффициент усиления интегральной составляющей;

  • — коэффициент усиления дифференциальной составляющей;

  • — постоянная времени фильтра;

  • — дискретный интегратор интегральной части;

  • — дискретный интегратор дифференциальной части.

Синтаксис

Вызов функции

  • c = Pid() создает непрерывный ПИД-регулятор с параметрами по умолчанию. Вы можете изменить значения параметров с помощью функции setproperty!.

  • c = Pid(kp) создает непрерывный пропорциональный регулятор (П-регулятор).

  • c = Pid(kp, ki) создает непрерывный пропорционально-интегральный регулятор (ПИ-регулятор).

  • c = Pid(0, ki) создает непрерывный интегральный регулятор (И-регулятор).

  • c = Pid(kp, 0, kd) создает непрерывный пропорционально-дифференциальный регулятор (ПД-регулятор).

  • c = Pid(kp, ki, kd) создает непрерывный ПИД-регулятор.

  • c = Pid(kp, 0, kd, tf) создает непрерывный ПД-регулятор с фильтром первого порядка.

  • c = Pid(kp, ki, kd, tf) - создает непрерывный ПИД-регулятор с фильтром первого порядка.

  • c = Pid(kp, ki, kd, 0, ts) создает дискретный ПИД-регулятор.

  • c = Pid(kp, ki, kd, tf, ts) создает дискретный ПИД-регулятор с фильтром первого порядка.

  • c = Pid(kp, ki, kd, tf, ts, iformula) создает дискретный ПИД-регулятор с фильтром первого порядка, при этом метод интегрирования интегральной составляющей указывается явно.

  • c = Pid(kp, ki, kd, tf, ts, iformula, dformula) создает дискретный ПИД-регулятор с фильтром первого порядка, при этом методы интегрирования интегральной и дифференциальной составляющих указываются явно.

Аргументы

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

# kp — коэффициент усиления пропорциональной составляющей
1.0 (по умолчанию) | скаляр

Details

Коэффициент усиления пропорциональной составляющей. Значение должно быть конечным числом.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Нет

# ki — коэффициент усиления интегральной составляющей
0.0 (по умолчанию) | скаляр

Details

Коэффициент усиления интегральной составляющей. Значение должно быть конечным числом.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Нет

# kd — коэффициент усиления дифференциальной составляющей
0.0 (по умолчанию) | скаляр

Details

Коэффициент усиления дифференциальной составляющей. Значение должно быть конечным числом.

Создание Д-регулятора не предусмотрено.
Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Нет

# tf — постоянная времени фильтра
0.0 (по умолчанию) | скаляр

Details

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

Значение данного параметра должно быть равным 0, когда у регулятора отсутствует дифференциальная составляющая.
Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Нет

# ts — период дискретизации
nothing (по умолчанию) | скаляр

Details

Период дискретизации регулятора. Для непрерывного регулятора аргумент принимает значение nothing, а для дискретного регулятора значение аргумента может быть любым положительным числом.

Значение данного параметра должно быть равным 0, когда у регулятора отсутствует дифференциальная составляющая.
Типы данных

Nothing, Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Нет

# iformula — метод интегрирования интегральной составляющей
nothing (по умолчанию) | :forward_euler | :backward_euler | :trapezoidal

Details

Метод интегрирования интегральной составляющей дискретного ПИД-регулятора

Аргумент принимает следующие значения:

  • :forward_euler — прямой метод Эйлера

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

  • :backward_euler — обратный метод Эйлера

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

  • :trapezoidal — метод трапеций

    Данный метод гарантирует устойчивость дискретного регулятора при дискретизации устойчивого непрерывного регулятора. Метод трапеций позволяет получить лучшее соответствие частотных характеристик непрерывного и дискретного регуляторов по сравнению с методом Эйлера.

Для непрерывного регулятора данный аргумент принимает значение nothing.
Типы данных

Nothing, Symbol

# dformula — метод интегрирования дифференциальной составляющей
nothing (по умолчанию) | :forward_euler | :backward_euler | :trapezoidal

Details

Метод интегрирования интегральной составляющей дискретного ПИД-регулятора

Аргумент принимает следующие значения:

  • :forward_euler — прямой метод Эйлера

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

  • :backward_euler — обратный метод Эйлера

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

  • :trapezoidal — метод трапеций

    Данный метод гарантирует устойчивость дискретного регулятора при дискретизации устойчивого непрерывного регулятора. Метод трапеций позволяет получить лучшее соответствие частотных характеристик непрерывного и дискретного регуляторов по сравнению с методом Эйлера.

Для непрерывного регулятора данный аргумент принимает значение nothing.
Типы данных

Nothing, Symbol

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

# c — ПИД-регулятор в параллельной форме
Pid

Details

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

Типы данных

Pid