Устойчивость систем управления

Главный вопрос про любой регулятор: успокоится система или раскачается до разрушения.

Устойчивость — свойство системы возвращаться к равновесию (или оставаться ограниченной) после возмущения; неустойчивая система раскачивается неограниченно.

Регулятор может не просто плохо работать, а сделать систему неустойчивой: ошибка растёт от шага к шагу, амплитуда колебаний увеличивается, привод выходит на упоры. Понимание устойчивости — вопрос безопасности.

Затухание против расходимости

Рассмотрим простейшую дискретную систему $y_{k+1} = \lambda y_k$. Её поведение целиком определяет множитель $\lambda$:

  • $|\lambda| \lt 1$ — каждое значение меньше предыдущего, $y \to 0$: устойчиво.
  • $|\lambda| = 1$ — на границе: не растёт и не затухает.
  • $|\lambda| \gt 1$ — значения растут: неустойчиво.

Это модель того, как ошибка эволюционирует в замкнутом контуре: коэффициенты регулятора задают эффективный $\lambda$, и плохая настройка делает $|\lambda| \gt 1$.

Считаем три режима

def evolve(lam, y0=1.0, steps=6):
    y = y0
    seq = [round(y, 4)]
    for _ in range(steps):
        y = lam * y
        seq.append(round(y, 4))
    return seq

print("lambda=0.7  (устойчиво):  ", evolve(0.7))
print("lambda=1.0  (граница):    ", evolve(1.0))
print("lambda=1.3  (неустойчиво):", evolve(1.3))

Вывод:

lambda=0.7  (устойчиво):   [1.0, 0.7, 0.49, 0.343, 0.2401, 0.1681, 0.1176]
lambda=1.0  (граница):     [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
lambda=1.3  (неустойчиво): [1.0, 1.3, 1.69, 2.197, 2.8561, 3.7129, 4.8268]

Как работает под капотом

Для линейных систем устойчивость определяют полюса (корни характеристического уравнения): в дискретном времени система устойчива, если все полюса лежат внутри единичной окружности ($|\lambda| \lt 1$); в непрерывном — если у всех отрицательная вещественная часть (левая полуплоскость). Колебательность задаёт мнимая часть, скорость затухания — вещественная. Анализ устойчивости (Найквист, Рауса-Гурвица, корневой годограф) — это проверка, где именно лежат полюса при выбранных коэффициентах.

Частые ошибки

  • Считать, что больший коэффициент усиления всегда «лучше» — за порогом устойчивости система разносится.
  • Игнорировать запаздывание в контуре (задержка датчика/привода) — оно сильно сужает запас устойчивости.
  • Проверять устойчивость только в симуляции на коротком интервале — расходимость может проявиться позже.

Итог

  • Устойчивая система возвращается к равновесию, неустойчивая — раскачивается.
  • Для модели $y_{k+1} = \lambda y_k$ устойчивость задаёт $|\lambda| \lt 1$.
  • Полюса внутри единичной окружности (дискретно) или в левой полуплоскости (непрерывно) — критерий устойчивости.
  • Большое усиление и запаздывание — главные враги устойчивости.
Проверьте себя
1. При каком λ система y(k+1) = λ·y(k) устойчива (затухает)?
A|λ| > 1
B|λ| = 1
C|λ| < 1
Dλ = 0 только
2. Где должны лежать полюса дискретной системы для устойчивости?
AВне единичной окружности
BВнутри единичной окружности |λ| < 1
CНа вещественной оси
DВ правой полуплоскости