реклама на сайте
подробности

 
 
> Измерение угла поворота оси, логарифмического потенциометра
avv
сообщение Nov 4 2005, 09:33
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 28-01-05
Из: Владивосток
Пользователь №: 2 247



Вот... Дожился...
Уже сам не могу сообразить - Имеем: потенциометр с логарифмической характеристикой, АЦП. Измеряю напряжение на движке резистора, получаю значительную нелинейность зависимости измеренного значения от угла поворота (ну конечно). Как линеаризовать эту зависимость? Требуется получить равенство изменения показаний при повороте оси на одинаковый угол от среднего положения.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
dxp
сообщение Nov 4 2005, 10:18
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(avv @ Nov 4 2005, 15:33)
Вот... Дожился...
Уже сам не могу сообразить - Имеем: потенциометр с логарифмической характеристикой, АЦП. Измеряю напряжение на движке резистора, получаю значительную нелинейность зависимости измеренного значения от угла поворота (ну конечно). Как линеаризовать эту зависимость? Требуется получить равенство изменения показаний при повороте оси на одинаковый угол от среднего положения.
*

А какие средства для обработки имеются? Какая скорость обработки требуется?

В общем случае, предположим, что есть некий МК, время не слишком критично (десяток мс, скажем, есть в запасе). Тогда просто полученное значение подать на вход функции линеаризации - функции, обратной той, которая реализованна в потенциометре.

Если там чистый логарифм, то искомая функция степеннАя. Ее можно разложить в ряд и вычислять до энного члена - тут от требуемой точности зависит. Этот вариант скорее всего потребует плавающей точки, зато он самый простой в реализации.

Можно функцию реализовать путем выборки по таблице с последующей кусочно-линейной интерполяцией. Тут придется повозиться с диапазонами и погрешностями. Зато этот способ значительно быстрее предыдущего.

В общем, для конкретного совета слишком мало данных. А в общих чертах оно где-то так, как сказал чуть выше.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 4 2005, 15:52
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(avv @ Nov 4 2005, 12:33)
Вот... Дожился...
Уже сам не могу сообразить - Имеем: потенциометр с логарифмической характеристикой, АЦП. Измеряю напряжение на движке резистора, получаю значительную нелинейность зависимости измеренного значения от угла поворота (ну конечно). Как линеаризовать эту зависимость? Требуется получить равенство изменения показаний при повороте оси на одинаковый угол от среднего положения.
Нужно знать саму зависимость. В ряде случаев удается получить аналитическое решение.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
avv
сообщение Nov 6 2005, 03:31
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 28-01-05
Из: Владивосток
Пользователь №: 2 247



Cпасибо. подбираю вид кривой... А данных у меня у самого нет sad.gif
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Nov 7 2005, 18:13
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(avv @ Nov 6 2005, 06:31) *
Cпасибо. подбираю вид кривой... А данных у меня у самого нет sad.gif
Тогда - как предложил dxp. Только вместо линейной интерполяции лучше использовать квадратичную - при одинаковом количестве опорных точек ошибка будет меньше, а вычислений добавит немного.
Вообще-то, наиболее часто используемый подход - взять N опорных точек на интересующем отрезке и построить интерполяционный полином степени N-1 (хотя, здесь есть сложности: выбор критерия оптимизации, борьба с краевыми эффектами). Можно посмотреть в Матлабе или в справочнике по математике.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
_artem_
сообщение Nov 8 2005, 00:11
Сообщение #6


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



A kakova razryadnost ADC? Esli 8 bitov to sdelay tablicu i odin na odin perekodiruy - vsego 256 baytov na eto udovolstvie uydet .
Kstati esli prostoy mcu s sirotnoy modulyaciey i ADC naydes voobse vse na odnoy mikruxe mozno sdelat .


--------------------
Зачем лаять на караван , когда на него можно плюнуть?

Go to the top of the page
 
+Quote Post
avv
сообщение Nov 8 2005, 01:04
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 28-01-05
Из: Владивосток
Пользователь №: 2 247



Таблица это хорошо, да только резистор часто будет меняться, калибровка при каждом включении, используется не весь диапазон, а сектор, причем его положение каждый раз может быть сдвинуто. тут видимо, всё-таки аналитический путь... Тем более что основные вычисления во время калибровки - значит, проблема быстродействия не так остро стоит.
А какая точность достижима при квадратичной интерполяции по 3 точкам (из них 2 крайние) - навскидку оценку не подкинете? А я тем временем буду вспоминать математику...
Go to the top of the page
 
+Quote Post
Виктория
сообщение Nov 8 2005, 06:37
Сообщение #8


инженер
****

Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701



Цитата(avv @ Nov 8 2005, 05:04) *
Таблица это хорошо, да только резистор часто будет меняться, калибровка при каждом включении, используется не весь диапазон, а сектор, причем его положение каждый раз может быть сдвинуто. тут видимо, всё-таки аналитический путь... Тем более что основные вычисления во время калибровки - значит, проблема быстродействия не так остро стоит.
А какая точность достижима при квадратичной интерполяции по 3 точкам (из них 2 крайние) - навскидку оценку не подкинете? А я тем временем буду вспоминать математику...


Разрешите и мне:
Разложим еще раз по полочкам.
1. Уравнение преобразования Y=f(X) (градуирочная характеристика) имеет логарифмический характер и зависит от величины резистора.
2. Получить уравнение преобразования (или функцию, обратную уравнению преобразования X=F(Y)) можно экспериментально с помощью калибровки (градуировки). Этот процесс заключается в снятии зависимости (таблицы) {(Xi,Yi), i=0...n}.
3. Тогда для нахождения значения физической величины X можно использовать интерполяционную таблицу {(Xi,Yi), i=0...n} (тут все те алгоритмы, которые уже предложили dxp и Stanislav - линейная, квадратичная или n степени интерпол. полином). Погрешность вычисления X будет нулевая в узлах интеполяции и достигать максимального значения, оцениваемого формулой (приведена для полинома Лангранжа n степени)

Код
|F(Y)-L(Y)|<=(Mn+1/(n+1)!)*|(Y-Y0)*(Y-Y1)...(Y-Yn)|
где L(Y) - интерполяц. полином,
      Mn+1 - максим. значение (n+1) производной F(Y) на участке [Y0,Yn]


4. Можно также воспользоваться методом наименьших квадратов МНК (или методом максимального правдоподобия, если нужен другой критерий). При этом (в общем случае) ищутся коэффициенты аппроксимирующего полинома X=A0+A1*Y+A2*Y**2+...+AM*Y**M по критерию минимума СКО
Код
min(SUM((A0+A1*Yi+A2*Yi**2+...+AM*Yi**M)-Xi)**2)

что в конечном счете приводит к решению системы (M+1) линейных уравнений (для линейной функции - 2 уравнения)
Достоинством МНК является минимизация ошибки "в среднем" (а также сглаживание исходной экспериментальной зависимости, т.к. данные калибровки {(Xi,Yi), i=0...n} - это тоже измерения и имеют свои погрешности, хотя бы погрешность установки эталона).
Go to the top of the page
 
+Quote Post
Виктория
сообщение Nov 8 2005, 07:17
Сообщение #9


инженер
****

Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701



5. Вернемся к логарифмическому характеру уравнения преобразования (например, Y=ln(A*X)), где A - некоторый коэфф., вычисляемые например по МНК. Обратная функция - X=EXP(Y)/A). Для того чтобы получить коэфф. аппроксимирующего полинома нужно исходные экспериментальные данные линеризовать используя замену переменных x=X,y=ln(Y). Если логарифм не натуральный, то обратная функция степенная и формулы замены переменных другие.
Вообще, почти в любом учебнике по численным методам должны быть и эти преобразования, и выбор вида эмпирической формулы (если не найдете, могу отсканировать).
6. Главная проблема в другом, хотя, может и решаемая (вернемся к интерполяции). Если применять квадратичную интерполяцию к степенной функции то погрешности могут быть большие (уменьшение их за счет увеличения числа узлов интерполяции). Поэтому все равно лучше предварительная линеризация экспериментальных точек и использование кусочно-линейной интерполяции.

Ну вот получилось достаточно нудно blink.gif
В конечном счете многое определяется более точной постановкой задачи (все может быть гораздо проще на самом деле smile.gif ) и экспериментальными кривыми. Может можно и аналитически получить уравнение преобразования (как зависимость от величины сопротивления резистора и входа).
Go to the top of the page
 
+Quote Post
avv
сообщение Nov 10 2005, 03:28
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 28-01-05
Из: Владивосток
Пользователь №: 2 247



Спасибо! Думаю, теперь тему можно закрывать и выполнять рекомендации wink.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01459 секунд с 7
ELECTRONIX ©2004-2016