| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Приведение полярных координат |
| Автор: Mechatronic 19.7.2012, 16:01 |
| Здравствуйте, есть такая задача: Начальные условия: Два орудия направлены в одну точку на расстоянии N метров от линии их стояния. Известны углы, на которые повернуты оба орудия. Расстояние N, расстояние между точками стояния орудий не известны и не могут быть введены в систему оператором орудий. Таких точек можно получить несколько на этапе настройки. Задача: В "рабочем" режиме дно из орудий постоянно поворачивается и сообщает свои координаты по каналу связи (является ведущим). Необходимо перемещать ведомое орудие так, чтобы точка пересечения осей стволов обоих орудий (точка, в которую смотрят оба ствола) перемещалась по линии, параллельной линии стояния орудий и находящейся на расстоянии N метров от линии стояния. Беда в том, что вычислительные возможности системы управления ведомым, реализованной на 8-бит микроконтроллере, очень скудны (она к тому же еще кучу функций выполняет), а требования: погрешность в 0.1 градуса. Подскажите, как лучше решить задачу, сэкономив вычислительные ресурсы. Надеюсь, не запутал. Спасибо! |
| Автор: Pavia 19.7.2012, 16:40 |
| Так как цель движется параллельно линии пушек. То достаточно построить зависимость угла 2 пушки от угла первой пушки аппроксимировать её уравнением с простым числом множителей. Вот только боюсь точности не хватит. Скорее всего сгодится обычная практика линейная интерполирование. И раз в несколько секунд точный расчёт. |
| Автор: Mechatronic 19.7.2012, 16:56 |
| Спасибо за отклик! А зачем раз в несколько секунд пересчет делать? На случай, если погрешность сильно рассинхронизирует устройства? Добавлено @ 16:57 Еще вопрос: Я так понимаю, если потребуется выбирать цель не параллельно линии стояния, а на заданном радиусе от ведущего (ведущий и ведомый внутри окружности), подход будет аналогичен? |