|
Головоломка: емкостной датчик угла 0..359`, Проблема краевого эффекта |
|
|
|
Nov 4 2010, 11:57
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 6-07-08
Из: Москва
Пользователь №: 38 765

|
Цитата(xemul @ Nov 4 2010, 13:03)  измерительный сигнал подаётся на подвижную обкладку В моем случае это именно так. На подвижную (общую) обкладку подаю синус амплитудой порядка 20В.
|
|
|
|
|
Nov 6 2010, 18:58
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Берется генератор, у которого есть 4 выхода: 1. Синус 2. Синус, задержанный на 90* (косинус) 3. Инверсный синус (синус, задержанный на 180*) 4. Инверсный косинус (синус, задержанный на 270*) На круглой плате нарезается 4 сектора по 90*. Нумеруем их по часовой стрелке и подаем на сектора соответствующие сигналы с 4-х выходов генератора. Измерительный электрод выполняется в форме такого-же сектора. При его повороте на него будут преимущественно поступать сигналы с соответствующего сектора. Они идут на два синхронных детектора, которые выделяют синусную и косинусную компоненты - дальше простая математика дает угол поворота. Лучше сделать измерительный электрод в форме двух противостоящих секторов, тогда на одном будет фаза, на другом противофаза, и подать на дифференциальный измеритель. При этом будут скоменсированы некоторые геометрические искажения, амплитуда сигнала станет более постоянной, заодно помехи уменьшаться. Цитата(xemul @ Nov 4 2010, 14:03)  Ни то, ни другое не спасает от механических погрешностей. Ессно, зато нет никаких перескоков.
|
|
|
|
|
Nov 6 2010, 22:31
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 6-07-08
Из: Москва
Пользователь №: 38 765

|
Цитата(rudy_b @ Nov 6 2010, 21:58)  дальше простая математика дает угол поворота У Вас есть ссылочка на математику?  Спасибо!
|
|
|
|
|
Nov 7 2010, 01:00
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Цитата(Rostislav @ Nov 7 2010, 02:31)  У Вас есть ссылочка на математику?  Спасибо! Так она школьная, только с квадрантами нужно быть аккуратным. Если нужен угол > -180 и <=+180 то if(cos==0 && sin>=0) f=90; *(sin==0 && cos==0 - не бывает) if(cos==0 && sin<0) f=-90; if(cos>0) f=atan(sin/cos); if(cos<0 && sin>=0) f=atan(sin/cos)+180; if(cos<0 && sin<0) f=-180-atan(sin/cos); Бывает честная atan2, которая сразу и квадрант учитывает, но это нужно библиотеки смотреть. Если нужен угол 0...360-, то выражения несколько иные, но принцип тот же. Что-то в таком духе, рисовал из головы, мог слегка наврать.
|
|
|
|
|
Nov 9 2010, 13:43
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 6-07-08
Из: Москва
Пользователь №: 38 765

|
Цитата(rudy_b @ Nov 7 2010, 04:00)  Если нужен угол > -180 и <=+180 то if(cos==0 && sin>=0) f=90; *(sin==0 && cos==0 - не бывает) if(cos==0 && sin<0) f=-90; if(cos>0) f=atan(sin/cos); if(cos<0 && sin>=0) f=atan(sin/cos)+180; if(cos<0 && sin<0) f=-180-atan(sin/cos); Как я могу это применить у себя? У меня три сектора. А напряжение возбуждения подается на одну общую подвижную обкладку. В своем варианте я стремился ограничится только чистой арифметикой. В принципе это получилось. А тут мощная тригонометрия, а обработка у меня происходит в PIC. При таких вычислениях, я не смогу 10 раз в секунду получать результат. Потом, это уже иная конструкция, а переделывать не хочется. Цитата(Hmm @ Nov 7 2010, 15:31)  А такой датчик для авиамодели или частного самолета предпологается использовать? Или так ... для души? Для самодельного частного самолета.  Есть у меня такая мечта. Комплект авионики должен получится крутым, как на боинге. 2-а больших цветных ЖКИ дисплея, 2-е БЭВМ и все это будет работать с электронными датчиками.
Сообщение отредактировал Rostislav - Nov 9 2010, 13:45
|
|
|
|
|
Nov 9 2010, 15:02
|
Частый гость
 
Группа: Участник
Сообщений: 127
Регистрация: 6-07-08
Из: Москва
Пользователь №: 38 765

|
Цитата(MrYuran @ Nov 9 2010, 16:48)  Главное, чтобы парашют не подвёл... Не парашют, а балистическая спассистема! Обязательно поставлю! По-поводу датчика. Есть идея взять сумму напряжений на крайних секторах. Например, так: U`a = Ua + Ub, U`b = Ub + Uc, U`c = Uc + Ua. И рассчитать угол по этим значениям.
|
|
|
|
|
Nov 13 2010, 16:10
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Цитата(Rostislav @ Nov 9 2010, 17:43)  Как я могу это применить у себя? У меня три сектора. А напряжение возбуждения подается на одну общую подвижную обкладку. Так переделайте, делов-то. Особенно если Цитата Комплект авионики должен получится крутым, как на боинге. 2-а больших цветных ЖКИ дисплея, 2-е БЭВМ и все это будет работать с электронными датчиками. А насчет Цитата В своем варианте я стремился ограничится только чистой арифметикой. В принципе это получилось. А тут мощная тригонометрия, а обработка у меня происходит в PIC. При таких вычислениях, я не смогу 10 раз в секунду получать результат. то PIC с этим справится элементарно, даже если считать напрямую. Но никто не мешает использовать табличные значения. А по поводу одного излучателя и трех приемников - почти гарантированно будет куча некомпенсируемых геометрических искажений. В моем варианте искажения минимальны (например перекос оси будет компенсироваться автоматически) и амплитуда сигнала (одного, а не трех!) значительно более постоянна, что облегчает ее измерение и обработку. Но генерировать приходится два сигнала (два получаются инверсией), что не представляет особой проблемы, хоть таймером с процессора. Можно вообще использовать прямоугольник, а фильтрацию верхних гармоник сделать прямо в проце для одного входного сигнала.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|