Поговорим о датчиках угла. В основном датчики угла нужны в станкостроении для CNC машин, в PTZ камерах, радарах, LIDAR(ах) и прочих приборах.
В электронике измерение углов - это всегда больная тема, так как подразумевает подвижные детали. А, как известно, всё, что движется, все это в первую очередь и ломается!
Классическими способами измерения углов являются переменные резисторы, резольверы, энкодеры, акселерометры, гироскопы, GNSS приемники высокой точности. Сравнительный анализ известных технологий измерения углов я провел в этом реестре
https://docs.google.com/spreadsheets/d/188FBrvaL_DRcebT3SAtTdFdYGmmIdF6op_9DPNZDvps/edit#gid=0
Но есть еще один остроумный и умозрительный способ измерять углы: при помощи поляризаторов.
Всем известен физический эффект поляризации. Это когда берут две поляризационные фильтра от фотоаппарата, накладывают их друг на друга и проворачивают. В результате свет то проходит то не проходит сквозь cэндвич из пластинок.
Угол между плоскостями поляризации |
Световой поток через систему |
0 |
Пропускает |
90 |
блокирует |
180 |
Пропускает |
270 |
блокирует |
вот так это выглядит
Аналогично можно и решить обратную задачу. В математике всегда есть прямая и обратная задача. Дан уровень освещенности, вычислить угол поворота между плоскостями поляризации. Это наводит на мысли, что на основе этого эффекта можно сконструировать электронно-оптический датчик угла.
Существует закон Малюса (1810 года). Это физический закон, выражающий зависимость интенсивности линейно-поляризованного света после его прохождения через поляризатор от угла phi между плоскостями поляризации падающего света и поляризатора.
Io - интенсивность падающего на поляризатор света, I - интенсивность света, выходящего из поляризатора, k-коэффициент прозрачности поляризатора, phi- угол между разрешенным направлением поляризатора и направлением поляризации входного света.
Из этой формулы выражается сам угол phi
Если собрать такой стенд
то график освещения от угла получится такой
Но вот незадача. При освещенности 0,4 возможны 4 различных варианта углов:50.7 Deg; 129.2 Deg; 230.7 Deg; 309.2 Deg. И как понять, что истинный угол это например 50.7 градусов, а остальные 3 измерения - фейковые. Эти 4 циферки- просто результат решения тригонометрического уравнения (3)
Это не здорово. Как отсеять 3 лишних решения и оставить одно истинное?
В технике есть принцип добавления новых размерностей. Можно также поступить и тут. Можно добавить еще одну пару поляризаторов и обеспечить еще одно измерение для уменьшения неоднозначности.
Получается такое соотношение углов и показаний датчиков
phi |
phi1 |
phi2 |
0 |
0 |
45 |
90 |
90 |
135 |
180 |
180 |
225 |
270 |
270 |
315 |
360 |
360 |
45 |
Вот с этим уже можно работать.
Например когда датчик Ir1 видит значение 0,8 Lx а Ir2=0.092 lx, то программа думает, что угол равен
|
Iight sens 1 = 0.8 Lx |
Light sens 2 =0.100 lx |
|
# |
Deg |
Deg |
вывод |
1 |
26,56 |
26.56 |
* возможное решение |
2 |
153,1 |
62.2 |
не решение |
3 |
206,4 |
206 |
* возможное решение |
4 |
333,2 |
243 |
не решение |
Аналогична ситуация когда подлинный угол равен 150%. Электроника будет показывать 2 равновероятных варианта 150 Deg и 330 Deg. Стоит заметить, что эти два решения отличаются на 180 градусов.
Заметил ещё одно полезное свойство второй пары поляризаторов: в близи минимума/максимума яркость меняется очень мало, как квадрат отклонения угла, то есть точность измерения угла очень низкая. Добавленная вторая функция со сдвигом даёт гораздо лучшую точность, достаточно выбирать ту из двух у которой больше производная.
Получается, что добавив один поляризационный датчик смещенный на +45 % мы расширили диапазон измерений от 0.....90 Deg до 0...180 Deg. Но этого всё равно мало. Было бы странно, если бы датчик курса самолета показывал, что мы летим либо на север либо на юг. Это, конечно же, никуда не годится. Для полноценного датчика угла надо однозначно измерять диапазон от 0 градусов до 360 градусов.
Как же быть?
Все мы помним со школьной скамьи формулу согласно которой косинус на косинус это косинус разности плюс косинус суммы пополам.
В связи с (4) этим формулу (1) можно переписать в виде (5)
Двойка перед phi наводит на мысли, что в устройстве нужен редуктор. Поэтому решением неоднозначности измерения угла может быть редуктор 1:2 на шестернях, который уменьшает угловую скорость вращения поляризаторов в 2 раза. Вот кинематическая схема прибора
Иначе говоря, за один оборот вала датчика угла, поляризатор сделает только пол оборота.
Редуктор это, конечно, не здорово. Так как, если между шестерней попадет песок, до датчик просто заклинит. Именно поэтому в 196х всю вычислительную технику переводили с механики на аналоговую электронику. Но другого решения ликвидации двузначности я пока не вижу. Если знаете как избавиться от редуктора, то напишите об этом у комментариях.
Тогда графики показаний фотодатчиков 1 и 2 от угла вала phi получится такими
Появилась однозначность. Чудненько!
Теперь можно смело собрать вот такую электронную начинку для обработки показаний датчиков.
Задача прошивки это постоянно и непрерывно численно решить систему уравнений (6) и выдавать решение на улицу (в UART)
тут phi это угол вала датчика угла. Истинный угол поворота поляризаторов psi связан с phi по формуле (7)
Достоинства измерения угла при помощи поляризаторов
++1 нет ограничения на угол. Можно измерять угол многооборотных колес.
++2 угловая скорость вращения внутренних деталей в 2 раза меньше угловой скорости вращения вала самого датчика угла.
++3 Не нужно искать ноль подобно тому как это происходит в инкрементных энкодерах и в маховиках двигателей внутреннего сгорания. Тут же включил и сразу можно вычислить угол для любого положения вала.
++4 нет нужды в микрометрических деталях, подобно тем же инкрементным энкодерах, где на один оборот делают несколько тысяч отверстий.
++5 тут нет ничего такого, что бы имело больше габариты как в резольверах.
++6 Данному датчику не нужна гравитация, подобно тому как работают инклинометры на акселерометрах или строительные уровни с пузырьком
++7 Поляризаторы это очень доступный компонент. Можно хоть из старого монитора выковырять. Да и много его не надо. Только чтобы был шире лазерного луча в поперечном сечении.
Недостатки измерения угла при помощи поляризаторов
--1) нужна конструктивная изоляция от пыли и лишнего света. В идеале вакуумная камера.
--2) надо 2 прецизионный источник освещения
--3) нужны 2 герметичные темные комнатки для исключения ошибок в фотодатчиках
--4) надо два абсолютно одинаковых по параметрам датчика освещенности. Придется поработать свахой, чтобы найти в коробке пару одинаковых по характеристикам датчика.
--5) Сложность конструкции. Нужен микроконтроллер, который будет опрашивать датчики освещения и пересчитывать значения в углы.
Вывод
Как видите измерение углов поляризационными пластинками в теории это вполне возможный способ автоматически измерять углы, а значит, кстати, и угловые скорости. Однако, для реализации такого датчика нужны продвинутые производственные возможности и серьезный продуманный конструктив.
Удивительно, но за 213 лет со дня открытия закона Малюса ни одна контора в мире не выпустила свою версию датчика угла на этом физическом эффекте. Видимо это не с проста.
Сомневаюсь, что такой датчик угла на поляризаторах реально где-нибудь станут реализовывать в железе. Будет слишком много мороки на производстве с подбором прецизионных компонентов. Тем кому реально нужен качественный датчик угла обычно ставят классический индуктосин и это всех более чем устраивает.
https://www.youtube.com/watch?v=3m8UZ1ML8W0&t=13s
Тем не менее, как по мне, технология измерения углов поляризаторами подойдет для университетских лабораторных работ по физике или преобразователям информации. Там как раз принято делать измерения, анализировать графики и вычислять погрешности.
Или просто ради Fun(а). Делают те же энтузиасты всякие соленойдные электродвигатели, двигатели Стирлинга и прочие причудливые механизмы.
Links
http://latex.codecogs.com/eqneditor/editor.php
https://pythonru.com/biblioteki/pyplot-uroki
https://ru.wikipedia.org/wiki/Тригонометрические_функции
https://www.wolframalpha.com/
https://www.youtube.com/watch?v=L3Hbr_ObTn0
https://www.youtube.com/watch?v=wR-WPocc128&t=17s
https://www.youtube.com/watch?v=Y5MGDltGxCY&t=418s
https://www.youtube.com/watch?v=dD1ZsXRMKMg
https://www.youtube.com/watch?v=TtVwALGK72I
https://www.youtube.com/watch?v=Zzj-8PvQHuU
https://docs.google.com/spreadsheets/d/188FBrvaL_DRcebT3SAtTdFdYGmmIdF6op_9DPNZDvps/edit#gid=0
https://www.youtube.com/watch?v=3m8UZ1ML8W0&t=13s
Автор:
aabzel