Переходная характеристика и показатели качества
Как описать качество переходного процесса четырьмя числами.
Переходная характеристика — отклик системы на ступенчатый вход. По ней считают время нарастания, перерегулирование, время установления и статическую ошибку — главные показатели качества управления.
Зачем нужен отклик на ступень
Чтобы сравнивать настройки регуляторов, нужен стандартный тест. Самый популярный — ступенчатый вход: резко меняем уставку (например, с 0 до 1) и смотрим, как выход к ней приходит. Эта кривая — переходная характеристика (step response) — рассказывает почти всё о качестве системы: быстро ли реагирует, перелетает ли цель, сколько раскачивается, точно ли в итоге попадает. Инженер смотрит на эту кривую так же, как врач на кардиограмму.
Четыре показателя качества
По переходной характеристике считают четыре ключевые величины:
| Показатель | Что значит | Хотим |
| Время нарастания (rise time) | как быстро выход доходит от 10% до 90% уставки | меньше = быстрее |
| Перерегулирование (overshoot) | на сколько % выход перелетает уставку | меньше = аккуратнее |
| Время установления (settling time) | когда выход навсегда входит в коридор +-2% уставки | меньше = успокоился быстро |
| Статическая ошибка (steady-state error) | разница между уставкой и финальным выходом | 0 = точно попал |
Переходная характеристика и показатели:
выход
1.3 | ___ <- пик (перерегулирование)
1.0 |------/---\------------- уставка
0.9 | / \__/\___/----- коридор +-2%
| / (время установления здесь)
0.1 | _/
0 |_/______________________> время
| | <- время нарастания (10%..90%)Как работает под капотом: считаем показатели по записи
Сымитируем слабо демпфированный объект второго порядка и вычислим все четыре показателя прямо из массива значений отклика.
m, b, kc = 1.0, 0.4, 4.0 # слабое демпфирование -> заметный перелёт
F, dt = 4.0, 0.02
x, v = 0.0, 0.0
target = F / kc # уставка = 1.0
ys = []
for _ in range(600):
a = (F - b*v - kc*x) / m
v += a*dt; x += v*dt
ys.append(x)
t10 = next(i for i,y in enumerate(ys) if y >= 0.1*target) * dt
t90 = next(i for i,y in enumerate(ys) if y >= 0.9*target) * dt
rise = t90 - t10
peak = max(ys)
overshoot = (peak - target)/target*100
band = 0.02*target
settle = 0.0
for i in range(len(ys)-1, -1, -1):
if abs(ys[i]-target) > band:
settle = (i+1)*dt; break
sse = target - ys[-1]
print(f"уставка = {target:.2f}")
print(f"время нарастания (10-90)= {rise:.2f} c")
print(f"перерегулирование = {overshoot:.1f} %")
print(f"время установления (2%) = {settle:.2f} c")
print(f"статическая ошибка = {sse:.4f}")Вывод:
уставка = 1.00 время нарастания (10-90)= 0.56 c перерегулирование = 72.9 % время установления (2%) = 12.00 c статическая ошибка = 0.0255
72% перерегулирования — это очень много: система сильно перелетает цель и долго (12 секунд) успокаивается. Когда мы добавим регулятор и правильно его настроим, мы будем целенаправленно уменьшать эти числа. Эти четыре показателя — общий язык, на котором формулируют требования к системе: «перерегулирование не более 10%, время установления не более 3 секунд».
Компромиссы между показателями
Ключевая мысль: показатели конфликтуют. Хотите быстрее нарастание — обычно растёт перерегулирование. Хотите ноль перерегулирования — система реагирует медленнее. Хотите ноль статической ошибки — нужна интегральная составляющая, которая может добавить колебательности. Искусство настройки — найти баланс под конкретную задачу: для лифта перерегулирование недопустимо (проедет этаж), для разгона дрона небольшой перелёт терпим ради скорости.
Другие тестовые сигналы
Ступень — самый популярный тест, но не единственный. Импульс (короткий резкий толчок) показывает «собственный почерк» системы — как она звенит и затухает сама по себе. Линейно растущий сигнал (ramp) проверяет способность к слежению за движущейся целью и выявляет скоростную ошибку. Синусоида разных частот строит частотную характеристику, по которой считают запасы устойчивости. Каждый сигнал высвечивает свою грань качества: ступень — переходный процесс, ramp — слежение, синус — частотные свойства. Профессиональная проверка регулятора прогоняет несколько тестов, потому что хорошее поведение на ступени не гарантирует хорошего слежения за рампой.
Частые ошибки
- Смотреть только на одну метрику. Быстрое нарастание с диким перерегулированием — плохая система. Нужно оценивать все четыре числа вместе.
- Неправильно искать время установления. Его считают от конца записи: момент, после которого выход уже НЕ выходит за коридор.
- Игнорировать статическую ошибку. Система может выглядеть красиво, но стабильно недотягивать до уставки — это отдельная проблема, которую решает интеграл.
Итоги
- Переходная характеристика — отклик на ступенчатый вход; по ней судят о качестве управления.
- Четыре показателя: время нарастания, перерегулирование, время установления, статическая ошибка.
- Показатели конфликтуют — настройка регулятора всегда компромисс под задачу.