Форумы УКВ портала VHFDX
Технические форумы => Антенны УКВ => Поворотные устройства => Тема начата: R2GKH Виталий от 28 Март 2013, 20:12:07
-
Господа, что-то с "природными катаклизмами" и "чехардой со свидетельствами" несколько забываем о начале сезона :)
А вот задача сегодня попала - оцифровать сельсин. Датчик установлен в некоем станке, назовем его "Поворотным устройством антенны". Менять его на что-то другое затруднительно чисто конструктивно. Датчик не должен иметь мертвой точки и иметь "бесконечное вращение". Современые требования предпологают оцифровку данного датчика с выводом в RS-232(485).
Поиск навскидку указывает на пару схем, без описаний работы, теории и методики расчета угла... А задача есть... Если у кого есть какие наработки по данному вопросу - делитесь, не стесняйтесь :) Не мне одному, думаю, эта тема интересна.
-
Виталий здравствуйте.
Самое простое (и первое что пришло в голову) - поставить фазочувствительный выпрямитель, далее АЦП, ну и если надо на графический дисплей - контроллер.
73!
-
Может распотрошить сельсин и установить в него энкодер с выходом в RS-485
http://www.ok2tpq.net/node/10
-
На хамфесте в Воронеже в 2011 году видел вживую и крутил плату-контроллер с ЖК-дисплеем и сельсин-датчиком,мало того все это продавалось и было в нескольких экземплярах.Пороюсь в записях,может найду позывной производителя,помоему из Ставрополя,затем дополнительно сообщу.
73! Юрий - R7MR
-
RV6HG - Владимир Пухов и вот еще ссылка http://radon.doolru.org.ua/index.php
Схема не проста,поэтому америку открывать не надо,все разработано и изготовлено правильно и работает.
Обращаемся,я думаю нам Володя поможет !
-
Вот все готовое
-
Посмотрите еще ж. "Радио" №11 за 69 год.....
Да, это в посте Сергея.....Чуть опередил...
-
Это все не то, отсюда только взята идея. У RV6HG законченная конструкция,всмысле комп не нужен,все отражается на двухстрочном дисплее,установка коррекции,мертвой зоны и управление все делается одним энкодером.
-
Да, только самой схемы нет. А привязать к персоналке не помешает, все равно пик в управлении стоит. :(
-
Датчик не должен иметь мертвой точки и иметь "бесконечное вращение". Современые требования предпологают оцифровку данного датчика с выводом в RS-232(485).
Берёте любой микроконтроллер с выходом UART (например, из семейства AVR Tiny), лепите датчик сброса угла (для чёткой установки по северу, типа Холла или микрика), считаете количество оборотов на редукторе и пишете эти обороты через контроллер в UART. Простым делением добиваетесь нужного результата (градуса) на компьютере.
-
Все уже придумано и давно [url]http://[http://www.vk5dj.com/beam.html/url] - тут контроллер поворотки и по азимуту и по элевации.. Плату с контроллером можно заказать у автора, энкодеры - у производителя - идут из Австралии около 2х недель. Можно все и самому сделать - в статье все очень подробно расписано - с платами, прошивками, подробное описание и инструкция по эксплуатации..
тут - цены на экодеры AS5040/AS5045- вполне "подъемные"
http://www.ams.com/eng/Products/Magnetic-Position-Sensors/Magnetic-Rotary-Position-Sensors
-
А в каком отделении фирмы , дешевле доставка ?
-
Я прямо из Австралии заказывал..
-
Датчик установлен в некоем станке, назовем его "Поворотным устройством антенны". Менять его на что-то другое затруднительно чисто конструктивно.
Насколько я понял, задача использовать именно данную железку, в уже заданных реальных условиях.
Контроллер Tiny стоит в Липецке 50р. + 50р. обвязка (разъёмы и прочая мелочёвка). И никакой пересылки из Австралии :)
-
Господа, простите - нужен алгоритм. А уж его реализация - "дело третье" :) Где какие запчастюги - решаемо. Энкодер с "zero point" - крайний случай. Станок переделывать нет желания. Уж больно "резольвер" классно сделан. Сейчас так не делают :) Итак все "концевики" на бесконтактные поменяли :)
Пока вариант: Даю импульсна обмотку "А", через 10мс считываю значение с обмтотки управления. Потом поступаю так-же с обмоткой "В" и далее "С". Встает вопрос, математика (алгоритм) обработки этих сигналов... .
-
...
Пока вариант: Даю импульсна обмотку "А", через 10мс считываю значение с обмтотки управления. Потом поступаю так-же с обмоткой "В" и далее "С". Встает вопрос, математика (алгоритм) обработки этих сигналов... .
Если сельсин трехфазный (что скорее всего), то так не получится: нужно на статор подавать трехфазное
напряжение, причем, скорее всего, синусоидальное или симметричное, чтобы не было постоянной
составляющей. Кроме того, нужно знать, на какую частоту рассчитан сельсин
(из того, что мне встречалось - это 400 Гц)
P.S. Прямоугольный сигнал, особенно с крутыми фронтами, проблематично использовать
еще и из-за ЭДС самоиндукции: индуктивности обмоток там - ого-го!
-
Что же касается алгоритма, то, на мой взгляд, там все как раз просто: нужно просто измерить разность фаз
между тем, что подается на один из полюсов статора, и тем, что выходит с ротора.
Обычно это делают так: пропускают сигналы через детектор перехода через ноль. Между двумя
нулями получается временное окно, величина которого однозначно определяет разность фаз. Чтобы ее
измерить, это окно заполняют относительно высокочастотными импульсами (чем выше частота - тем выше
точность измерения). Посчитав количество импульсов, которое умещается между переходами через ноль
двух сигналов, можно определить и разность фаз между ними.
Если нарисовать на бумажке, то все получается просто и понятно.
-
На одну фазу подавать возбуждение- будет чушь. Надо все обмотки запитывать синусом с соответствующим сдвигом фаз. Две фазы для вращающегося трансформатора и три для классического сельсина. Вопрос, чем формировать эти синусы. Для 2 фаз сейчас проще цифровым методом. Но для трех фаз это становится дороговато. А аналоговые методы дают разбег фаз, который может приводить к достаточно заметным угловым ошибкам- т.е для двухфазного вращающегося трансформатора график ошибки имеет форму восьмерки, а для сельсина- треугольника с закругленными вершинами. Формирователь на ПИКе из статьи в Радио по блок-схеме хорош, но надо добавить драйвера на все ноги формирователей фазных сигналов (выровнять нагрузочную способность ног микроконтроллера, поставить три одинаковых ФНЧ или полосовых фильтра на 400 гц и усилители после фильтров. От усилителей запитать обмотки сельсина. К этим же выходам подключить детекторы перехода через нуль для подстройки фазовых сдвигов в каналах возбуждения в цифре. Схема нуль -детекторов точно такая же, как и у детектора с выходной обмотки сельсина. Вот тогда можно получить точность в несколько угловых минут. Если же точность в пару градусов достаточна- то можно и без переделок применять схему из Радио. Может возможно у автора попросить исходники прошивки микроконтроллера- можно было бы "пошаманить" с программой.
-
Привет!
-
Павел, проверьте вложение... "на скачивание" рвется далеко не тот файл, что имеет название "selsyn.zip"
-
До некоторого времени использовал пару сельсинов БС-151А для демонстрации азимута.
Когда возникла проблема индикации угла элевации, то оказалось, что второй пары сельсинов не найти. Разделил. В качестве датчиков оставил сельсины. Статоры запитал тремя фазами 400Гц. В качестве источника использовал PIC18F2431. Эта ИМС для управления (в том числе) трехфазными двигателями дает чудесный синус. Дальше классика: ФД, по токовой петле (4/20мА) сразу в COM-порт компьютера (позже через мост USART-USB. Но это уже другая тема).
Думаю, что подать «правильные» 400Гц на сельсин – процентов 80 успеха.
«Хлебная» тема пересеклась с хобби. Преобразователь абсолютный УГОЛ-ЦИФРА оказалось можно сделать очень точным и очень дешевым просто «на кухне».
Извините - вылез за тему.
-
Привет!
Это на сайте что-то. Я его скачал так - открыл в новой вкладке , там написано default(225KB)-нажимаю сохранить, открывается окно -куда сохранить, пишу имя файла - selsin.zip, и выбираю куда- например на рабочий стол,нажимаю сохранить и всё ок
-
Павел, проверьте вложение... "на скачивание" рвется далеко не тот файл, что имеет название "selsyn.zip"
В RARe
-
Нашел схемы RV6HG,в приложении прикрепил.
-
А вот за последние два поста, Мужики, ОГРОМЕННОЕ спасибо!!! beer
Сейчас все скину коллеге, пусть разбирается. :)
Если победит, то думаю, что и нашему - радиолюбительском братству перепадет :)
-
Уфф... тема подзабыта.
Тут что то на днях вспомнилось. Решил со свежими мыслями подойти к задаче.
Почти все получилось на одной ATMega8 , + 74HC595 для сегментов трехразрядного LED
На ротор подается зондирующий импульс прямоугольной формы.
Сельсин подключен статором к трем аналоговым входам. Эти входы так же подключены к формирователю средней точки аналогового питания через резисторы 2кОм.
Соответсвенно измеряю три напряжения. И далее на преобразование.
Формула преобразования трех напряжений в угол (7) взята по ссылке
https://patents.google.com/patent/RU2327222C1/ru
Беда с формулой. При считанных углах _+90 градусов дает сбой. :(
Мозги закипели :(
Проект на Bascom прилагаю.
-
Виталий, мне кажется слать импульс и потом считывать данные в общем цикле слишком оптимистично.
Надо бы все это повесить на прерывания.
Но это мое личное мнение, не факт что правильное.
-
Глеб, замечание верное.
В данной конструкции отключены все прерывания.
Импульс прямоугольный, поэтому считывание более менее точное. Градус достижим.
Алгоритм таков: считываю АЦП трех каналов, запоминаю. Далее формирую переход в "1" на роторе.
И через 2 мс. снова считываю три канала АЦП. через 2 мс. переход в "0" (исходное состояние)
Вычитаю из считанного "до" считанное "после" - получается три двуполярных напряжения.
Даже осцтилографом хорошо видно формирование напряжения на выходе "ротор" и на входах АЦП.
Если не брать моменты перехода, то все работает достаточно точно.
Сейчас попробую прикрепить видео "макетки". Видны сбои в расчетах на углах 60 и 240 градусов.
P.S. Видео только вечером :(
-
Виталий, включи сразу приемник рядом. Может импульсами все "загадитЬ"...
-
Виталий, а принципиальную схему можно увидеть?
И еще один момент - код из bascom в си (arduino IDE) реально "конвертировать"?
Хотелось бы поучаствовать, но bascom ни разу не знаю.. :(
P.S. Вообще-то, эту задачу для себя я уже решил с помощью AS5600, но "прямое преобразование" все же интересно.
-
Может импульсами все "загадитЬ"...
Валентин, да! Это вторая фаза изготовления устройства.
Как только завершу первый этап: отработаю алгоритм.
И еще один момент - код из bascom в си (arduino IDE) реально "конвертировать"?
Схему если только к вечеру нарисую. Там пяток деталей, но времени нет сейчас - начало года. А дома на ноуте рисовать неудобно.
А конвертировать - честно? Нет охоты... перенести все можно руками. там сам алгоритм важен: считываем напряжения,включаем пин, ждем, считываем еще раз ждем, выключаем пин. Из трех считанных значений находим угол... с этим и засада.
AS5600 конечно хорошо, не спорю. Но тут дело в эксперименте: приручить "древнюю синхронную машину".
-
Ссылка на видео:
корявенько, на скорую руку, мобилкой:
https://cloud.mail.ru/public/nLGx/93zRy75Qf
-
там сам алгоритм важен: считываем напряжения,включаем пин, ждем, считываем еще раз ждем, выключаем пин. Из трех считанных значений находим угол... с этим и засада.
У меня как раз засада в первом - зная алгоритм, написать СВОЙ код.. С младых ногтей никак не могу не попасть в эту засаду.
А уж сейчас тем более..
AS5600 конечно хорошо, не спорю.
В моём случае - это компромисс. Из пушки по воробьям. Просто не было другого подходящего решения.
Вот этого -
Но тут дело в эксперименте: приручить "древнюю синхронную машину".
Кстати, вопрос - ваш вариант сможет работать "параллельно" со штатной схемой: "сельсин датчик - сельсин приёмник (указатель)"?
Плюс с учетом не стандартного питания сельсинов - 50 Гц, вместо 400.
Если "нет", то все вопросы снимаются.
P.S. А это (http://forum.vhfdx.ru/prodam/kontroller-povorota-antenny-s-podkljucheniem-k-selsinu/), случаем, не то самое, что мы сейчас обсуждаем?
-
Кстати, вопрос - ваш вариант сможет работать "параллельно" со штатной схемой: "сельсин датчик - сельсин приёмник (указатель)"?Плюс с учетом не стандартного питания сельсинов - 50 Гц, вместо 400.Если "нет", то все вопросы снимаются.
Я думаю, что мой алгоритм можно оптимизировть к текущей задаче. Тут уж нужно будет работать по прерываниям. Параллельно обмотке возбуждения включаем цепь из резистора и светодиода оптрона. А транзистор оптрона на прерывание контроллера. По прерыванию ждем 5 мс (четверть периода для 50 гц), и считываем три аналоговых значения с обмоток статора, как и в предложенном мной варианте. Как-то так....
P.S. А это, случаем, не то самое, что мы сейчас обсуждаем?
Это "сферический конь в вакууме" - алгоритма нет, возможности модификации или интеграции в прочие проекты поворотных устройств или следящих систем нет.... Или я чего-то не знаю.
-
Вот мой варианнт "оцифровки сельсина" (было это в 2011 году) - мега162 формирует три синуса со сдвигом 120 градусов, задействованы три порта с цап на матрицах R-2R, далее через усилитель на статор сельсина. С ротора снимается результирующая синусоида, фаза которой прямо пропорциональна углу поворота ротора. Усилитель - компаратор (переход через 0) и на InputCapture. Поскольку опорный синус формируется с использованием таймера, то значение, записанное по сигналу ICP и есть угол поворота ротора.
Как это получилось - фото прилагается. Такой контроллер работает у меня уже 10 лет. Правда, прогу до ума не доделал - так и кручу антенну с отладочного интерфейса...
Я делал 4 входных канала - ротор и три опорные фазы. С трёх фаз считается средне-арифметический (виртуальный) ноль, поскольку из-за не "идеальности" сельсина реальный "ноль" плавает.
Надо сказать, что результат мне не понравился - на "прецизионность" не тянет - график диф. ошибки прилагается (два, для разных сельсинов). Хотя для уже существующих повороток с сельсинами вполне может использоваться, особенно на КВ.
После "этого" был сделан прототип поворотки с шаговым двигателем и магнитным энкодером, у которого программа доведена до некоторого логического завершения - имитирует GS232A, плюс плавный разгон - торможение, электро тормоз для не червячного редуктора. Но это уже для другой темы...
-
графики ошибки...
-
Схему если только к вечеру нарисую.
???
-
Вот, набросал... Транзисторы КТ315. Микросхемы в зеркальном виде.
-
Виталий приветствую! Сюда можно любые сельсины, как я понял? Хоть 400-герцовые, хоть 50-ти.
-
Сюда можно любые сельсины, как я понял?
Так я и выкладываю проект, что бы каждый заинтересованный мог испытать все это. Приглашаю, так сказать, к сотрудничеству.
Пока вот испытываю с 50 Гц. сельсином. В ближайшее время возьму 500 Гц для испытаний, и по почте идет 400 Гц.
-
Вот, набросал..
Мда.. Что-то уж слишком примитивно..
Но не это главное. А главное, как я понял, этот вариант в схеме "гибкий вал" будет работать только с заторможенным ротором сельсина-приемника.
Т.е. сельсин-приемник не может одновременно выполнять роль указателя(индикатора) азимута/элевации.
Так? Если "да", то уже не интересно..
-
Если создать таблицу коррекции и заставить контроллер обсчитывать - возможно получится прецизионная поворотка. Справится ли Атмега?
-
возможно получится прецизионная поворотка.
На сельсине?!! Я конечно, не Станиславский, но НЕ ВЕРЮ! :) Справится ли Атмега?
А что тут такого тяжелого может быть? Или я что-то не понимаю?
-
как то сложновато всё, или есть сельсин,и буду мучать его и убивать дрогоценное время ,
дельное решение прям на первой странице (Может распотрошить сельсин и установить в него энкодер)
а управлять антенной можно и так https://www.instagram.com/p/CX1dVuqq5e8/
-
а управлять антенной можно и так https://www.instagram.com/p/CX1dVuqq5e8/
Здр Сергей! А где подробнее почитать об этом...?
-
Справится ли Атмега?
А что тут такого тяжелого может быть?
Таблица через одну десятую градуса, да еще математика.
-
как то сложновато всё, или есть сельсин,и буду мучать его и убивать дрогоценное время ,
дельное решение прям на первой странице (Может распотрошить сельсин и установить в него энкодер)
Это решение может быть хорошо только на этапе проектирования.
А то, что предлагает Виталий, более подходит к этапу модернизации уже установленного и работающего.
Что имеет место быть у меня, например. И предполагаю, не только у меня.
Правда, как уже и писал, я пошел другим путем. Более сложным. Но результатом доволен.
Справится ли Атмега?
А что тут такого тяжелого может быть?
Таблица через одну десятую градуса, да еще математика.
Гм.. И как много таких сельсинов (из доступных простому смертному), которые могут обеспечить дискретность в десятую градуса?
Ну вот такой вот я поклонник Станиславского - не верю в такие чудеса. :)
-
А главное, как я понял, этот вариант в схеме "гибкий вал" будет работать только с заторможенным ротором сельсина-приемника.
Немножко не понял, что такое "заторможенный ротор сельсина-приемника"?
Изначально есть интерес преобразовать сигнал сельсина в цифровой вид. Что и удается помаленьку.
Ну а если интегрировать данный алгоритм в существующую систему, то тормозить ничего не надо, даже вредно.
Измерение трех напряжений остается без изменения. Но запуск измерения не по бесконечному циклу, как сейчас, а по прерыванию. Видится оптрон, светодиод которого подключен через резистор к обмотке возбуждения, а с оптотранзистора снимается сигнал на внешнее прерывание микроконтроллера. По прерыванию отсчитывается четверть периода питания сельсина, и сразу замер трех напряжений. Конечно, нужно еще: 1) что бы статорные обмотки ни с чем не контактировали. 2) делить напряжение до _+2,3 Вольта амплитудного значения, а от идентичности делителей будет зависеть точность измерения.
То есть, есть над чем подумать, на то и коллективный разум :)
-
Таблица через одну десятую градуса, да еще математика.
Виктор, теоретически контроллер потянет. Алгоритм прост, как пять копеек. Несложно и на STM32 перетянуть, что и есть в отдаленных планах. Но боюсь, что на точность лучше 1 градуса рассчитывать не приходится. Да и не нужно. По роду своей работы периодически сталкиваюсь с необходимостью измерения углов с точностью до десятков угловых секунд. Везде используются безлюфтовые передачи. Да и от сельсинов отказались еще в далеких 80-х. Хотя "Сименс" и "Феникс-Контакт" еще производят модули для применения сельсинов в современных системах автоматизации.... но цены, как на современные ВЧ-вольтметры :)
Думаю, что 1 градус для этой реализации - достаточное бюджетное решение.
-
Здр Сергей! А где подробнее почитать об этом...?
пришли пустое письмо, отвечу .
-
отвечу .
Сергей, пара вопросов: 1) формат пакета передачи данных на комп? 2) есть-ли отдельно "виджет" индикации азимута под Дельфи(7)?
-
Немножко не понял, что такое "заторможенный ротор сельсина-приемника"?
Изначально есть интерес преобразовать сигнал сельсина в цифровой вид. Что и удается помаленьку.
Ну а если интегрировать данный алгоритм в существующую систему, то тормозить ничего не надо, даже вредно.
Измерение трех напряжений остается без изменения.
Похоже, я перепутал этот метод с вариантом вычисления абсолютного угла по сдвигу фаз. Трансформаторная схема включения.
Там ротор сельсина-приемника должен быть заторможен.
Ну вот типа такого (http://forum.vhfdx.ru/go.php?url=aHR0cDovL3JmYW5hdC5ydS9zNS9hbl8xMDIuaHRtbA==).
1) формат пакета передачи данных на комп? 2) есть-ли отдельно "виджет" индикации азимута под Дельфи(7)?
Судя по тому, что используется RotorCraft, это Yaesu GS-232A.
Кстати, именно этот протокол и программу я использовал у себя в варианте с AS5600.
Протоколо простой до безобразия, а RotorCraft на все 100 удовлетворяет всем моим потребностям работы с повороткой.
Компилируется как для Windows, так и для Linux. У меня linux Mint 20.
Насчет виджета. Может я не совсем понял, но RotorCraft вроде бы как и с этой ролью неплохо справляется.
В трее висит иконка с текущим азимутом (обведено на картинке).
Или вам нужно для андроида на смартфоне?
-
Ну вот типа такого.
Да, Александр, я рассматривал эту и подобные схемы. К своему стыду, так и не разобрался с логикой.
Для меня "камень преткновения" - сдвиг фаз в сельсине. Ну нет его там! Есть три обмотки, амплитудное значение напряжение на которых однозначно указывает на положение ротора. В сельсине-приемнике ротор выполняет обратное действие - пытается занять положение с таким соотношением амплитуд, что бы результирующий ток был равен нулю. От этого я и пляшу.
Протоколо простой до безобразия,
Хорошо, попробую найти и скачать программу, далее посмотрю.
"Виджет" я подразумевал как "компонент", встраиваемый в среду программирования. Т.е. идея фикс - на столе нет никакой индикации, вся на компьютере. С него же идут команды на ручное и(или) автоматическое управление положением антенны. И есть желание сделать ГРАФИЧЕСКОЙ индикацию положения антенны. Две цели - управление шеком через удаленный рабочий стол и удаление оптимизация рабочего места в шеке.
Т.е. простенькая программка на дельфи, которая берет на себя все функции по контролю и управлению приводами АФХ.
-
рассматривал эту и подобные схемы. К своему стыду, так и не разобрался с логикой.
А я никак не могу разобраться с логикой вашего варианта.. Вернее, никак не въеду, как сие изложить в коде, чтобы собрать все на столе и потрогать вживую..
Есть некоторые сомнения..
Для меня "камень преткновения" - сдвиг фаз в сельсине. Ну нет его там
...и я не вижу, а он есть! :) Именно тогда, когда сельсины находятся в состоянии "рассинхрона". В трансформаторной схеме, когда ротор сельсина-приемника заторможен.
И вот этот вариант - когда нет "механического указателя" - меня и не устраивает. "Виджет" я подразумевал как "компонент", встраиваемый в среду программирования. Т.е. идея фикс - на столе нет никакой индикации, вся на компьютере. С него же идут команды на ручное и(или) автоматическое управление положением антенны. И есть желание сделать ГРАФИЧЕСКОЙ индикацию положения антенны. Две цели - управление шеком через удаленный рабочий стол и удаление оптимизация рабочего места в шеке.
Так именно все это и реализовывает RotorCraft. Я выложил картинку как раз с "удаленного компа".
Правда "на столе" тоже все имеется: и управление и индикация в двух видах - стрелкой сельсина и цифрой на LED экранчике.
"Запасной дублирующий вариант", так сказать. ;) На случай, если вдруг откажет "электроника".
Но мы отклонились от темы..
-
А я никак не могу разобраться с логикой вашего варианта..
А в чем вопрос? За исходную модель взят патент (во вложении).
Отличие лишь в том, что в патенте внешнее возбуждение (и от него прерывание), а я формирую его сам.
Вот алгоритм действий:
1) считываем значение напряжений на трех входах (A1,B1,C1). Они должны быть около 512 единиц. Условно начальное напряжение.
2) На выходе формируем возбуждающий импульс (+Vcc) на обмотке якоря.
3) Через некоторое фиксированное время (1...5mc)снова считываем значение напряжений на трех аналоговых входах (A2,B2,C2).
4)И отключаем напряжение с обмотки якоря, за ненадобностью.
5) Подготовка данных для формулы расчета угла: A=A2-A1;B=B2-B1;C=C2-C1. Числа A,B и C - Знаковые! (Integer).
6) A,B и C загоняем в формулу из патента L=arctg(sqrt(3)*(C-B)/(2*A-B-C)). и преобразуем радианы в градусы.
7) Делаем со значением угла L что хотим :)
У меня относительно сложно в проге из-за того, что формула не может считать углы -180 и 180 градусов.
Поэтому я делаю замеры три раза, каждый раз смещая по кругу аналоговые входы.
Далее из трех значений формирую одно, отсекая ложные. С чем и застрял.
-
А в чем вопрос?
никак не въеду, как сие изложить в коде,
Ну не умею я этого, хотя и неоднократно пытался "суметь".. :(
Разобраться в готовом "чужом" коде, "присобачить" его в свои хотелки - это всегда пожалуйста!
А вот "создать шедевр" самостоятельно - увы.. Не данО..
Плюс ко всему - в юности прогулял азы высшей математики в школе, а другого образования жизнь получить не позволила..
Отсюда большие проблемы с пониманием... L=arctg(sqrt(3)*(C-B)/(2*A-B-C)). и преобразуем радианы в градусы.
А если нет понимания, то и нет продвижения..
Именно поэтому, я и просил вариант кода в си (arduino IDE). Ну не люблю я пролетариат васик, делфи и прочие "надстройки над разумом". :)
В си тоже плаваю далеко не в первых рядах, но хоть как-то..
Кстати.. Вот на это -
4)И отключаем напряжение с обмотки якоря, за ненадобностью.
- я пойтить не могу! Не хочу терять "аварийное дублирование".
-
пришли пустое письмо, отвечу .
Послал
-
Кстати.. Вот на это - Цитата: R2GKH Виталий от Сегодня в 10:44:464)И отключаем напряжение с обмотки якоря, за ненадобностью. - я пойтить не могу! Не хочу терять "аварийное дублирование".
В этом случае внимательно прочтите патент. Там именно ваш случай.
Как отследить переход синусоиды через максимум? А никак. Достаточно отследить переход через ноль, отсчитать время в четверть периода (5 мс. для 50 Гц или 0,625 мс. для 400 Гц.) и считать значения A,B,C.
Хотя... Вы даже не поняли, что означает процитированная вами строка. :(
Четвертый пункт - это действие, противоположное второму пункту приведенном мной алгоритма.
В патенте этого нет, так как синхронизация не внутренняя, а внешняя, от источника питания сельсинной группы.
-
Как отследить переход синусоиды через максимум? А никак. Достаточно отследить переход через ноль, отсчитать время в четверть периода (5 мс. для 50 Гц или 0,625 мс. для 400 Гц.) и считать значения A,B,C.
А вот это уже не есть гут, учитывая нестабильность "внешнего генератора" - сети 50 Гц в данном случае (ну или 400Гц - не суть) и отсутствие синхронизации с ним.
Ну это, возможно, решаемо. Не буду утверждать. Да и на данном этапе сие не есть главное.
Хотя... Вы даже не поняли, что означает процитированная вами строка.
Четвертый пункт - это действие, противоположное второму пункту приведенном мной алгоритма.
Это да, совсем не так понял.
Осталось понять самое непостижимое (для меня) -
формула не может считать углы -180 и 180 градусов.
Что означает угол -180 град.? Относительно какого "0"?
Какое число (угол) и с каким знаком выдаст эта "математика" при абсолютном положении ротора сельсина в след. точках:
1. 0 град.
2. 1 град.
3. 90 град.
4. 179 град.
5. 180 град.
6. 270 град.
7. 359 град.
Поможете уяснить?
-
А вот это уже не есть гут, учитывая нестабильность "внешнего генератора" - сети 50 Гц в данном случае (ну или 400Гц - не суть) и отсутствие синхронизации с ним.
Синхронизацию как раз и обеспечивает внешнее прерывание. Даже если нестабильность 1Гц от 50, то плевать. на максимуме огибающей изменение напряжения по времени минимально - таковы уж свойства синусоидального сигнала.
Что означает угол -180 град.? Относительно какого "0"?
Уффф... тут надо рисовать много.
Вкратце: формула может расчитывать углы от -89 до 89 градусов, такого свойство функции арктангенса. Верхний полукруг относительно оси Х будет вычислен, если добавить 90 градусов.
Далее, по знаку коэффициента А в формуле
L=arctg(sqrt(3)*(C-B)/(2*A-B-C))
вычисляется, верхняя или нижняя полусфера высчитывается. Если нижняя, то к формуле еще добавляется число 180 градусов.
У нас получается либо от 1 до 179, либо от 181 до 355 градусов.
0 и 180 пропадают.
Как я писал выше, и видно из текста программы, для случаев 0 и 180 (полюс-минус 10градусов кажись) я беру
угол, вычисленный при условии, что А является уже напряжением с другой обмотки. Другой угол смещен относительно исходного на 120 градусов, поэтому к нему нужно добавить 240, и если получившееся значение больше 360, то эти 360 вычесть.
Уффф... Александр, ну не поленитесь, поройтесь в программе, перенесите ее на Ардуино.
-
Коллеги, кому не безразлична тема и есть в наличии сельсины, можете провести маленький эксперимент?
Суть такова: на якорь (ротор) подать прямоугольное напряжение частотой 50...100 гц, скважностью 1:3...1:5 (некритично) и амплитудой +5В (TTL).
На ротор присоединить звездой три одинаковых резистора 1...10 кОм. И осцилографом посмотреть уровни сигналов на каждом резисторе (относительно средней точки резисторов) при плавном изменении угла ротора.
-
Виталий, а как бы зацепиться вот за это:
Выражение (7) позволяет определить главное значение угла φ (т.е. с точностью до ±180°). Для того чтобы напряжения фиксировались вблизи их максимума, можно (a)осуществлять измерения в момент, определяемый переходом через нуль в положительном направлении тока возбуждения в статорной обмотке. В этом случае (b)с учетом полярности измеренных напряжений можно восстановить истинное значение угла.
Как реализовать п. "а" для прерывания я знаю, а вот п. b(отрицательной полярности), похоже, в "нашей" схеме не предвидится вовсе. НО! Что-то да должно быть?
Вероятно, какой-то вполне конкретный (плюс-минус, конечно) уровень имеет право на существование. Или я всё-таки ошибаюсь?
И если это реально, то вычислить, в каком "полужопии" мы оказались, будет на раз-два.
Соответственно, никаких "трех проходов" не потребуется.
Я в правильном направлении мыслю?
P.S. Свободная пара сельсинов у меня есть. Как позволит время и наличие желания взять в руки паяльник, я займусь сборкой макетки.
Пока второго, к сожалению, не наблюдается.. Вариант с подтаскиванием за шиворот к объекту себя любимого не проканает. Проверено не раз.. :)
-
а вот п. b(отрицательной полярности), похоже, в "нашей" схеме не предвидится вовсе.
Мммм.... у атмеги8 два прерывания.... Одно под положительную полуволну, другое под отрицательную.
Или пара оптронов: один просто загорается при положительной полуволне, второй подключен через диодный мостик, и тухнет в момент перехода через ноль... длительности отриательного импульса должно хватить...
-
Ну вот такой вот я поклонник Станиславского - не верю в такие чудеса.
В индикаторных передачах (это то, что у Вас) точность передачи до 0.5 гр (1-й класс точности), 2-й класс - до 1гр. Большинство сельсинов попадались мне - 2 класса. В трансформаторном режиме - точность на порядок лучше
-
у атмеги8 два прерывания.... Одно под положительную полуволну, другое под отрицательную.
Ну насколько мне известно, не совсем так. Оба прерывания настраиваемые, на 4 критерия:
LOW (низкий) – срабатывает при сигнале LOW на пине
RISING (рост) – срабатывает при изменении сигнала на пине с LOW на HIGH
FALLING (падение) – срабатывает при изменении сигнала на пине с HIGH на LOW
CHANGE (изменение) – срабатывает при изменении сигнала (с LOW на HIGH и наоборот)
Но не суть.. Насколько я понял из описания в патенте, это - ..с учетом полярности измеренных напряжений можно восстановить истинное значение угла.
- относится к полярности на фазных выводах сельсина.
А прерывания вешают на "строб", т.е. на обмотку возбуждения (ротор).
Искусственная средняя точка фазных обмоток для МК имеет "нулевой потенциал" в приблизительно +2,5V.
Вот я и предположил, что при отрицательной полярности на фазной обмотке, напряжение на ней будет меньше 2,5В, а при положительной - больше 2,5В.
И если это так, то вполне реально за это зацепиться при определении "номера полуокружности".
-
Искусственная средняя точка фазных обмоток для МК имеет "нулевой потенциал" в приблизительно +2,5V.
Вот я и предположил, что при отрицательной полярности на фазной обмотке, напряжение на ней будет меньше 2,5В, а при положительной - больше 2,5В.
Вот нашел в патенте, как получить "полярность" измеряемого напряжения - Микроконтроллер в каждом цикле измерений осуществляет измерение нулевого потенциала и вычитает полученное значение из результатов измерения напряжений обмоток ротора сельсина.
Как всегда, всё элементарно, Ватсон! :) Ну вот почему человеки постоянно забывают, что "0" - понятие относительное?!
Ещё один проводок на вход АЦП со средней точки - и все делА..
Надо помнить, конечно, что гладко было на бумаге..
Вообщем, если удасться к завтрему завалить хандру, то к понедельнику может быть смогу сказку сделать былью. Ну или хотя бы её первую главу. :)
-
ДоклАдаю - хандру заборол, конструкцию и софт тоже. :)
Все работает. И с одним сельсином и в паре.
Изначально были сомнения, что показания будут зависеть от напряжения сети (возбуждение сельсина с питающей сети 50Гц.)
Но как оказалось, практически не зависит. Пробовал от ЛАТРа подавать на понижающий (~14V) трансформатор от 180 до 250В - никакой разницы.
Есть один недостаток - младшая цифра градуса гуляет в пределах +-1. Но думаю, это можно допилить в софте..
-
И с одним сельсином и в паре.
Александр, если не затруднит, схему и алгоритм можно увидеть?
Думаю, что это будет интересно многим.
-
Схема практически ваша.
С алгоритмом - не сейчас. Не готов понятно изложить словами. Да и башка уже опухла..
В принципе, использую всё то, что описано выше. Плюсом вычисление экспериментально секторов смены полярности (6 секторов).
Ну а дальше шаманство с полученным из формулы градусом вкупе с номером "сектора".
Если надо, могу сбросить черновой код на мейл.
P.S. Добавил картинку с "секторами". Коряво, конечно, но это черновик.
-
Прочитал тему. Интересно. Есть немного другие условия для этой задачи. Имеется рабочая поворотка на сельсинах БС2-1. Индикаторный режим, сельсин-датчик - сельсин-приемник со стрелкой. Все замечательно работает, но хочется большего. А именно, не вмешиваясь в работу устройства добавить цифровую обработку так, чтобы ...... выставил энкодером на ЖКИ нужный угол, нажал кнопку "ввод" и дальше антенна самостоятельно заняла заданное положение. Как сделать понятно, нужно добавить внешние УВХ для аналоговой части, согласовать уровни входных сигналов и, возможно, переделать генератор 400 Гц с непонятной формой напряжения на выходе на "чистую" синусоиду (задействовать ШИМ от МК) для лучшей точности. Остальное сделает МК, с этим проблем нет.
-
Есть немного другие условия для этой задачи. Имеется рабочая поворотка на сельсинах БС2-1. Индикаторный режим, сельсин-датчик - сельсин-приемник со стрелкой. Все замечательно работает, но хочется большего. А именно, не вмешиваясь в работу устройства добавить цифровую обработку так, чтобы ...... выставил энкодером на ЖКИ нужный угол, нажал кнопку "ввод" и дальше антенна самостоятельно заняла заданное положение.
Клеите к заднему концу вала сельсина-приёмника магнит от AS5600 (http://forum.vhfdx.ru/go.php?url=aHR0cHM6Ly9hbGlleHByZXNzLnJ1L2l0ZW0vMTAwNTAwMTYzNjU2NTQwNy5odG1sP2dhdGV3YXlBZGFwdD1nbG8ycnVzJmFtcDtza3VfaWQ9MTIwMDAwMTY5MTgyNDA2MDEmYW1wO3NwbT1hMmcwby5vcmRlcl9saXN0LjAuMC4yMWVmYTM5Nk5JRDQ3RA==), напротив крепите собственно плату с AS5600 и все дела..
Ну за исключением того, что надо будет ещё маленький код для ардуины написать. ;)
P.S. У меня почти так (http://forum.vhfdx.ru/povorotnye-ustroystva/ocifrovat-selsin/msg450911/#msg450911) и сделано.
За исключение того, что управление повороткой сделано с компа. Функционал тот же - хоть "вручную" крути, хоть ставь на заданный угол, хоть +- на нужное кол-во град..
Ну еще и есть чисто ручное управление (кнопками "->" "<-") с отображением текущего азимута на индикаторе.
Плюс к этому реализована защита от закручивания кабеля (отключает поворотку при переходе через условный "0").
P.P.S. То, что описано в теме, хоть и удалось реализовать, но не понравилось. На AS5600 точнее и надёжнее.
-
Клеите к заднему концу вала сельсина-приёмника магнит от AS5600,
Вот тут (http://forum.vhfdx.ru/povorotnye-ustroystva/as5600-jenkoder/msg452988/#msg452988) поподробнее.
-
Клеите к заднему концу вала сельсина-приёмника магнит от AS5600,
Вот тут (http://forum.vhfdx.ru/povorotnye-ustroystva/as5600-jenkoder/msg452988/#msg452988) поподробнее.
Спасибо! Что и как делать с ASxxxx мне давно известно. Мой интерес больше в технической реализации самой идеи.
-
Мой интерес больше в технической реализации самой идеи.
Петр, а что конкретно интересует? Реализация?
-
Петр, а что конкретно интересует? Реализация?
Да пока вроде все ясно. Надо пробовать.
-
Надо пробовать.
Эт точно... Летний период пройдет, продолжу "изыскания на тему". Сейчас переезд, семейные хлопоты - ни до чего.
Что то с 400 Гц сельсинами не порадовал результат. 50 Гц более точные получились. Но это при формировании зондирующего импульса микроконтроллером.