Метод Циглера-Никольса
Готовый рецепт настройки от Циглера и Никольса — и его границы.
Метод Циглера-Никольса — эмпирические правила, дающие стартовые коэффициенты ПИД по двум измеренным параметрам: критическому усилению и периоду колебаний.
Идея метода
В 1942 году инженеры Джон Циглер и Натаниэль Никольс предложили практический рецепт настройки, который используется до сих пор. Идея: довести систему до границы устойчивости и по характеристикам колебаний на этой границе вычислить коэффициенты. Метод даёт не идеальную, но рабочую отправную точку, которую потом подкручивают вручную.
Процедура (метод критического усиления)
- Обнулите
KiиKd, оставьте толькоKp. - Постепенно увеличивайте
Kp, пока система не выйдет на устойчивые незатухающие колебания постоянной амплитуды. Это критическое усилениеKu. - Измерьте период этих колебаний
Tu. - Подставьте
KuиTuв таблицу Циглера-Никольса.
| Регулятор | Kp | Ki | Kd |
| P | 0.5·Ku | — | — |
| PI | 0.45·Ku | 0.54·Ku/Tu | — |
| PID | 0.6·Ku | 1.2·Ku/Tu | 0.075·Ku·Tu |
Как работает под капотом: вычисляем коэффициенты
Допустим, эксперимент дал критическое усиление Ku=20 и период колебаний Tu=3 секунды. Посчитаем коэффициенты для всех типов регуляторов по таблице.
Ku, Tu = 20.0, 3.0
rules = {
"P": (0.5*Ku, None, None),
"PI": (0.45*Ku, 0.54*Ku/Tu, None),
"PID": (0.6*Ku, 1.2*Ku/Tu, 0.075*Ku*Tu),
}
print("регулятор Kp Ki Kd")
for name,(Kp,Ki,Kd) in rules.items():
ki = f"{Ki:6.2f}" if Ki is not None else " -- "
kd = f"{Kd:6.2f}" if Kd is not None else " -- "
print(f"{name:5} {Kp:6.2f} {ki} {kd}")Вывод:
регулятор Kp Ki Kd P 10.00 -- -- PI 9.00 3.60 -- PID 12.00 8.00 4.50
Метод за пару минут даёт разумные стартовые коэффициенты. ПИД получился с Kp=12, Ki=8, Kd=4.5 — отправная точка, от которой настройщик пляшет дальше. Существует и второй вариант метода — по отклику на ступень (по запаздыванию и наклону), удобный, когда систему опасно раскачивать до границы устойчивости.
Границы и предупреждения
Циглер-Никольс — не панацея. Его настройки обычно дают заметное перерегулирование (около 25%), что неприемлемо для многих задач. Метод требует довести систему до колебаний, что опасно или недопустимо для реальных установок (представьте раскачку реактора). Он плохо работает для объектов с большим запаздыванием. Поэтому в индустрии его используют как стартовую точку, а финальную настройку доводят вручную или современными методами оптимизации.
Современные альтернативы
За 80 лет после Циглера и Никольса появилось множество методов настройки. Правила Коэна-Куна учитывают запаздывание объекта и дают лучший результат для процессов с большим dead time. Метод лямбда-настройки (IMC) позволяет напрямую задать желаемую скорость отклика и вычислить коэффициенты под неё — он мягче и предсказуемее Z-N. Современные контроллеры умеют автонастройку (auto-tuning): сами проводят тест-эксперимент и вычисляют коэффициенты. Наконец, оптимизационные методы перебирают коэффициенты, минимизируя интегральный критерий ошибки (ISE, IAE). Но Циглер-Никольс остаётся в каждом учебнике как первый, простой и интуитивный рецепт — точка отсчёта, относительно которой оценивают всё остальное.
Частые ошибки
- Принимать Z-N настройку как финальную. Это лишь старт; почти всегда нужна доводка под требования по перерегулированию.
- Раскачивать опасный объект до границы. Для реальных установок используйте вариант метода по отклику на ступень, без вывода на колебания.
- Путать параллельную и стандартную формы при подстановке. Таблица Z-N выше — для параллельной формы (Kp,Ki,Kd).
Итоги
- Циглер-Никольс даёт стартовые коэффициенты по критическому усилению Ku и периоду Tu.
- Настройки склонны к перерегулированию ~25% и требуют ручной доводки.
- Метод требует довести систему до колебаний — это не всегда безопасно; есть вариант по отклику на ступень.