Отладил ПД регулятор и стал проверять свой алгоритм пошагово. Мое предположение о монотонности функции двух переменных оказалось неверным . Я нарисовал декартову плоскость, и стал тупо проверять точки в той последовательности, которую хотел заложить в робота. Оказалось, что в окрестностях точки (25;0) нет точек с меньшим временем! Стал проверять в этой области все подряд точки. Сперва от (24;1) до (24;5), (24;3) дала локальный минимум, но больше чем (25;0). От нее пошел вправо и в точке (25;3) нашел локальный минимум меньше, чем в точке (25;0). В окрестных точках значения везде больше. Но разница в точках очень маленькая: (25;0) - 3d43; (25;3) - 3d33 (это число циклов опроса датчиков за один заезд). Я пока не представляю, как роботу объяснить, что за горами лежат долины, что за плохими значениями функции лежат хорошие. Ведь он умный, а умный в гору не пойдет. И еще мне не понятно - неужели мне для хорошего регулирования достаточно П-регулятора? А может локальный максимум лежит не в найденной точке, а где-то еще? А может быть это все потому, что у меня показания от датчиков меняются с дискретом 5 мм? В общем, делаю такие выводы:
- алгоритм самонастройки работает для П-регулятора
- алгоритм самонастройки для ПД-регулятора на этом конкретном роботе реализовать не удалось
- вернусь к этой теме, когда у меня появится другой лайнтрейсер (а сделать его очень хочется, даже есть быстрые моторы для него)
- надеюсь что к тому времени желание доделать этот алгоритм у меня не пропадет.