Skip to content

Работа 2. Прибор с обратной связью

Место в курсе. В первой работе прибор наблюдал. Теперь он будет действовать: измерять результат своего действия и поправлять себя. Это граница между «электроника» и «автоматика», и она проходит именно здесь.

1. Задача

Прикажи мотору «крутись 3 секунды, чтобы проехать ровно метр». Он проедет — но то 90 см, то 110. Батарея чуть села, пол чуть скользкий, одно колесо чуть тормозит.

Команда «вслепую» почти никогда не даёт точный результат.

Задача работы: построить устройство, которое держит заданное значение несмотря на помехи — и доказать это графиком, а не словами «вроде работает».

Выбери одно:

ВариантЧто держимЧем меряемЧем действуем
A. Точное перемещениепройденный путьэнкодермотор
B. Стабильная скоростьобороты в секундуэнкодермотор (ШИМ)
C. Термостаттемпературатермисторнагреватель (резистор)
D. Слежение за светомяркость на датчикефоторезисторсветодиод / серво

2. Две стратегии управления

Разомкнутое (без обратной связи): «сделай так и надейся». Просто, дёшево, хрупко.

Замкнутое (с обратной связью): «делай, смотри на результат, поправляй». Сложнее, но именно оно даёт точность.

Замкнутый контур — это три шага, которые крутятся непрерывно:

Измерь

Датчик говорит, как есть сейчас.

Сравни с целью

ошибка=цельфакт \text{ошибка} = \text{цель} - \text{факт}

Ошибка равна нулю — мы там, где хотели.

Исправь

Воздействуй так, чтобы ошибка уменьшалась. И снова измерь.


3. От простого к работающему

Ступень 1. Релейное управление («вкл-выкл»)

Самое простое: ошибка положительная — включаем, отрицательная — выключаем.

if (temperature < target) {
    heaterOn();
} else {
    heaterOff();
}

Работает. Но: система будет колебаться вокруг цели — перегрев, остывание, снова нагрев. И на самой границе начнёт быстро щёлкать.

Ступень 2. Гистерезис (лечение дребезга)

Задаём не одну границу, а две:

if (temperature < target - 1.0) heaterOn();
if (temperature > target + 1.0) heaterOff();

Теперь в коридоре шириной 2 градуса вокруг цели ничего не переключается — щёлканье прекращается. Ровно так работает термостат холодильника и утюга.

Цена: точность падает до ширины «коридора». Это честный размен, и его надо уметь объяснить.

Ступень 3. Пропорциональное управление

Реагируем соразмерно ошибке: чем дальше от цели, тем сильнее воздействие.

u=kpe u = k_p \cdot e

где ee — ошибка, kpk_p — коэффициент, который подбирается.

float error = target - measured;
int power = constrain(Kp * error, 0, 255);
analogWrite(MOTOR_PIN, power);

Мотор подъезжает к цели, замедляясь. Никаких рывков.

Подбор kpk_p — это эксперимент, а не формула. Слишком мал — система доползает вечно. Слишком велик — проскакивает цель и раскачивается. Найди своё значение перебором и запиши, как искал: это часть работы.

4. Главное: доказать графиком

Утверждение «мой прибор держит температуру» ничего не стоит без данных. Доказательство выглядит так:

График «время → измеряемая величина», на котором видно:

  • линию цели;
  • как система выходит на цель (быстро? с проскоком?);
  • что происходит при возмущении — вы намеренно мешаете: открываете дверцу, дуете на датчик, подтормаживаете колесо рукой;
  • как система возвращается к цели после помехи.
Возмущение — обязательная часть испытания. Система, которая работает, пока её не трогают, ничего не доказывает. Настоящая проверка обратной связи — помешать и посмотреть, восстановится ли.

Что сравниваем

Обязательный опыт: то же самое без обратной связи.

УсловиеРазомкнутоеЗамкнутое
Без помех
С помехой
Разброс за 5 попыток

Именно эта таблица доказывает, что обратная связь нужна. Без неё вся работа — рассказ.


5. Практика по этапам

Этап 1. Датчик и исполнитель по отдельности (2 урока)

Сначала убедись, что мотор крутится, а энкодер считает. Или что нагреватель греет, а термистор меряет. По отдельности, без всякого управления.

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

Этап 2. Разомкнутый вариант (1 урок)

Сделай «вслепую»: включить на N секунд. Проведи 5 попыток, запиши разброс. Это твоя контрольная точка — с ней будешь сравнивать.

Этап 3. Замкнутый контур (3 урока)

Релейное → гистерезис → пропорциональное. На каждой ступени снимай график.

Этап 4. Испытание с возмущением (2 урока)

Мешай системе и записывай, как она справляется. Оформляй доказательство.


6. Типичные проблемы

СимптомПричинаЧто делать
Система быстро щёлкает у целинет гистерезиса, шум датчикадобавить коридор, усреднить показания
Раскачивается всё сильнееkpk_p слишком великуменьшать, пока не успокоится
Ползёт к цели бесконечноkpk_p мал / трениеувеличить, добавить минимальное воздействие
Показания скачутшум измеренияскользящее среднее по 5–10 замерам
Не доезжает чуть-чутьмотору не хватает силы на малой ошибкеэто ограничение пропорционального закона — обсудить, а не «чинить»
Почему показания скачут и что с этим делать подробно разобрано в «Сигналы и данные» — там же формула скользящего среднего. Теория обратной связи по ступеням — «Управление и обратная связь».

7. Что сдаём

  1. Работающее устройство, которое держит заданное значение.
  2. Три графика: разомкнутое управление, замкнутое, замкнутое с возмущением.
  3. Таблица сравнения разброса с обратной связью и без.
  4. Описание настройки: как подбирал kpk_p или ширину гистерезиса, что пробовал, на чём остановился и почему.
  5. Защита (5 минут) с демонстрацией: показать вживую, как система отрабатывает помеху.

8. Критерии оценки

КритерийНа что смотрим
Работаетдержит цель, восстанавливается после возмущения
Доказаноесть графики, есть сравнение с разомкнутым вариантом
Настройка осознаннаможет объяснить, что делает коэффициент и почему выбрал это значение
Понимает ограничениязнает, где его регулятор не справится и почему
Защитадемонстрация вживую, а не только рассказ

9. Куда это ведёт

Ты построил регулятор — узел, который сам поддерживает заданное. Точно так же работают термостат, круиз-контроль, автопилот, стабилизация квадрокоптера и управление температурой в реакторе. Отличается точность и цена ошибки, а принцип «измерь — сравни — исправь» один и тот же.

Следующий шаг, если тема зацепила, — добавить к пропорциональному члену интегральный и дифференциальный, получив классический ПИД-регулятор. Это уже уровень серьёзной автоматики, и он начинается ровно с того, что ты сегодня собрал.