eddy_em: (Default)
[personal profile] eddy_em
Потихоньку пишется система управления оставшимися тремя телескопами — уже чисто астросибовскими (т.е. и телескоп, и купол, и монтировка - "Астросиб"). Я уже писал, что там используется какой-то любительский контроллер от sidereal servo, и что там были проблемы с недетерминированностью получения координат осей по энкодерам через контроллер (контроллер эту информацию вообще никак не использует, являясь лишь посредником).
По мере написания библиотеки нижнего уровня, пишу и разные вспомогательные утилиты-тесты, использующие ее функции.

Возьмем тестовую утилитку: будем гнать телескоп до 40°, каждые 10° меняя скорость (1, 2, 5 и снова 1 градус в секунду), а потом вернем на нуль с максимально возможной скоростью (я установил 15°/с, но, судя по графикам, быстрей 8-9 не выходит, надо в настройках контроллера посмотреть; хотя, в принципе, и столько достаточно). Контроллер опрашивается каждые 0.1 секунду, данные логгируются. И вот, как выглядит разница показаний осевого энкодера и "моторного" (условные отсчеты частотного привода):

Я сомневаюсь, что это вызвано неравномерностью движения. Скорей всего, контроллер не непрерывно берет данные с энкодера, а изредка, "выплевывая" все остальное. В итоге ошибка по времени нарастает от "немножко" секунд назад до "0.1-немножко" секунд назад, что и дает такие кошерные гребни. Думаю, так оно и есть: ведь чем больше скорость, тем больше расхождение (т.к. за эти 0.1 секунды телескоп проезжает все больше и больше, вот и гребни выше становятся; да и гребни имеют строго регулярную структуру).
Ну, думаю, а что, если максимально увеличить скорость опроса? Поставил 0.05с и… Получил "хардлок" на мьютексе работы с портом: поток, посылающий команды, просто не имел никакой возможности заблокировать мьютекс, т.к. фактически время опроса было около 0.6с. Поставил на этот случай usleep на 50мкс - заработало.
Теперь движение: 1, 2, 5 и 10 угловых минут в секунду с последующим возвращением быстро. График возвращения я обрезал, т.к. там слишком большой размах - не видно масштаб мелочевки. Вот тако оно колбасится по оси склонений:

А вот так - по часовому углу:

Время в секундах, разница в угловых минутах. Нам нужно знать реальные координаты с точностью не хуже 0.1'', а тут…
Ну, ничего, либо к концу недели, либо на следующей (на этой, скорей всего, к телескопам невозможно будет попасть: обещают круглосуточно всю неделю снег, отправлять трактор на расчистку бессмысленно) "отделю" энкодеры и повторю.
Что до измерения скоростей простым делением Δx/Δt, получаем для склонений:

и для часового угла:

Скорость - в угловых минутах в секунду. Видно, что даже по "моторным отсчетам" как-то странно.
Возможно, если PID-регулятор контроллера попытаться подергать, можно немножко улучшить картину (хотя бы с отсчетами мотора), но таки странно: когда двигатель вышел на скорость, с чего ему вдруг туда-сюда болтаться? Это ж как надо PID-регулятор так расстроить, чтобы ТАКОЕ было?

Я уже писал, что производитель контроллера предлагает какое-то "маздай-онли" ПО. Честно говоря, видя такую дичь, я вообще не понимаю, как можно гарантировать хотя бы пятиминутные экспозиции на телескопах, пользующихся этим контроллером, при помощи этого ПО. Даже если очень аккуратно настроить ПИД-регулятор. Интересно бы пораспрашивать тех, кто пользуется "из коробки".
Начальство даже предлагало на одном из телескопе попробовать "ПО от производителя", на что я ответил, что это уже совсем без меня. У меня на маздай такая же непереносимость, как на змеюку. Я уж молчу о том, что автоматизировать (а уж тем паче - роботизировать - такой телескоп будет просто невозможно).

October 2025

S M T W T F S
   1234
567 89 1011
121314 15161718
19202122232425
2627 28293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 26th, 2026 05:00 am
Powered by Dreamwidth Studios