Основная программа для тестирования ПИД-регулятора
Программа демонстрирует работу ПИД-регулятора на различных моделях объекта управления.
pid — ПИД-регуляторprocess — Модель процессаsetpoints — Вектор заданийuse_nonlinear — Флаг использования нелинейной моделиЗаголовочный файл для класса ПИД-регулятора
Класс, реализующий дискретный ПИД-регулятор с использованием рекуррентного алгоритма.
PIDControllerK — Коэффициент передачиT — Постоянная интегрированияTd — Постоянная дифференцированияT0 — Время квантованияq0, q1, q2 — Коэффициенты регулятораprev_error — Предыдущие ошибки e(k-1), e(k-2)prev_output — Предыдущее выходное значение u(k-1)PIDController(double K, double T, double Td, double T0)K — коэффициент передачиT — постоянная интегрированияTd — постоянная дифференцированияT0 — время квантованияdouble calculate(double setpoint, double current_value)setpoint — заданное значениеcurrent_value — текущее значение процессаvoid reset()
Сбрасывает состояние регулятора
std::vector<double> getCoefficients() const[q0, q1, q2]Заголовочный файл для модели объекта управления
Класс, моделирующий объект управления, который может работать как в линейном, так и в нелинейном режиме.
ProcessModelparams — параметры моделиprev_value — предыдущее значение выходаProcessModel(const std::vector<double>& params, double initial_value)params — вектор параметров моделиinitial_value — начальное значениеdouble linearModel(double input)input — входное воздействиеdouble nonlinearModel(double input)input — входное воздействиеvoid setInitialValue(double value)