Как работает ПИД-алгоритм?

Что вообще пытается решить PID? Проще говоря, PID — это способ ответить на вопрос: какую «силу» нужно применить, чтобы достичь целевого состояния из одного состояния?

Несколько примеров:

  1. Отрегулируйте мощность переменного тока для достижения нужной температуры.
  2. Нажмите на газ или тормоз, чтобы достичь скорости.
  3. Отрегулируйте скорость вращения двигателя дрона, чтобы достичь определенной скорости вращения.

Некоторые концепции:

  1. «Сила»: выходной сигнал системы ПИД, также известный как сумма ПИД, это буквально три компонента П/И/Д, сложенные вместе.
  2. Целевое состояние: заданное значение

Несколько фактов:

  1. Это итеративный алгоритм, нам нужно постоянно переоценивать выходные данные в зависимости от текущего состояния.
  2. Чем выше частота, тем более плавным будет управляющий сигнал (с учетом ограничений на компонент исполнения сигнала — исполнительный механизм)

Ниже представлена блок-схема ПИД-алгоритма

Схема ПИД-алгоритма



Ниже представлена простая реализация алгоритма.

    const dt = time - this._prevTime;
    const error = setpoint - measurement;

    this._i += error * dt;

    const p = this.kp * error;
    const i = this.ki * this._i;
    const d = this.kd * (measurement - this._prevMeasurement) / dt;
    const f = this.kf * (command - this._prevCommand) / dt;

    this._prevCommand = command;
    this._prevTime = time;

    return (p + i + d + f);
Русский