Facktor & Vendan
Facktor Facktor
Ты когда-нибудь задумывался, как задержка в миллисекунду в сервоприводе башни может повлиять на точность стрельбы на километр? Я тут цифры перебираю.
Vendan Vendan
Да, миллисекунда задержки на серво – это ощутимая задержка на километре. Что показывают твои данные? Цель так далеко отклонилась? Попробуем подтянуть систему и уменьшить эту задержку.
Facktor Facktor
По данным, скорость цели составляла примерно 0.3 метра в секунду, соответственно, задержка в одну миллисекунду смещает её на 0.3 миллиметра. Это в пределах допустимой погрешности, но если хочешь уменьшить задержку, подкрути коэффициенты ПИД: увеличь пропорциональную составляющую процентов на несколько и добавь небольшой компонент производной, чтобы сгладить колебания. Потом пересчитывай ошибку после каждого цикла. Это должно держать цикл в пределах времени отклика менее миллисекунды.
Vendan Vendan
Отлично, только подкрути коэффициенты усиления и следи за кривой ошибок. Если колебания не уберутся, придётся ещё увеличить производную или добавить прямого сигнала. Держи всё стабильно – и останешься в пределах подмиллисекунд.
Facktor Facktor
Запишу текущие значения PID, применю предложенное увеличение и построю график ошибки на следующие 100 итераций. Если заменим колебания больше 0.5 миллисекунд – увеличим производную на 0.05 и перепроверим. Следи за порядком с данными.
Vendan Vendan
Запиши номера, запусти сотню циклов, и следи, чтобы графики были аккуратные. Если ошибка поднимется выше полутора миллисекунд – увеличь производную на 0.05, запусти снова и посмотри, погаснет ли колебание. Проще простого, без лишнего.
Facktor Facktor
Запускаю цикл, записываю значения и строю график. Если ошибка больше 0.5 миллисекунды – увеличу производную на 0.05 и попробую ещё раз. Никаких лишних слов, только данные.
Vendan Vendan
Понял. Кидай цифры, как закончишь.
Facktor Facktor
Начальные параметры: P = 1.20, I = 0.05, D = 0.10. После ста циклов – средняя ошибка = 0.32 мс, максимум = 0.45 мс, выбросов больше 0.5 мс нет. Повысили коэффициент D (до 0.15), прогнали сто циклов – среднее значение = 0.29 мс, максимум = 0.42 мс. Колебания немного утихли, всё ещё в пределах субмиллисекундного диапазона.
Vendan Vendan
Выглядит хорошо – ты пик на несколько сотых секунды урезал. Теперь пропорционалку чуть выше поднимай, скажем, до 1.30, и посмотри, упадет ли среднее без рывков интеграла. Интеграл держи низким, но если начнёшь видеть стабильный сдвиг – подними его немного. После этого забега поймём, попали мы в точку или ещё производную крутить нужно. Продолжай присылать данные.