Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Оцифровка резистора-датчика положения линз объектива
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Вопросы аналоговой техники
ATMExpert
Деброго времени всем!
Есть задача управления zoom и focus длиннофокусного объектива. На кждом канале стот датчик ошибки позиционирования-проще говоря датчик абсолютной координаты. Сопротивление резистора 5 кОм. По крайним выводам стоит последовательно по 1 кОм резистору(ограничение выходного сигнала). Пытаюсь понять на сколько точно нужно оцифровывать положение привода. Количество оборотов, совершаемых резистором около 2,5-3. Среднее время перемещения от одного края до другого при номинальном питании двигателя (9В) около 10-15 сек. Какой сюда поставить АЦП: разрядность, число выборок в сек. и т.п.?
kovigor
Цитата(ATMExpert @ May 16 2012, 19:35) *
Деброго времени всем!
Есть задача управления zoom и focus длиннофокусного объектива. На кждом канале стот датчик ошибки позиционирования-проще говоря датчик абсолютной координаты. Сопротивление резистора 5 кОм. По крайним выводам стоит последовательно по 1 кОм резистору(ограничение выходного сигнала). Пытаюсь понять на сколько точно нужно оцифровывать положение привода. Количество оборотов, совершаемых резистором около 2,5-3. Среднее время перемещения от одного края до другого при номинальном питании двигателя (9В) около 10-15 сек. Какой сюда поставить АЦП: разрядность, число выборок в сек. и т.п.?


Я бы на вашем месте поставил бы то, что есть (думаю, ввиду неточности изготовления механики, люфтов и проч. 10-разрядного АЦП с головой хватит), и сосредоточился бы на алгоритме фокусировки. Сложность именно в нем. Фокусировка ведь не по сопротивлению резистора происходить будет ...
ATMExpert
Цитата(kovigor @ May 16 2012, 21:00) *
Фокусировка ведь не по сопротивлению резистора происходить будет ...

В данном задании не стоит задача фокусировки по видеосигналу или какой-то еще обратной связи. Здесь как раз установка по предварительно сохраненной позиции. Есть проблемка с трансфокаторами, когда даешь команду (пресетпозицию) объект не всегда в фокусе оказывается. и если для зума это может не особо критично, то для фокуса - да. сам пока объектив не щупал, но по инфе люфт отсутствует, редукция приличная: разные редукторы(1:1000, 1:300).
Хотя вероятность люфта не исключаю. расфокусировка как раз происходит в моменты, когда сначала ставишь одну позицию, потом уходишь на другую, а потом возвращаешься к прежней. вот тут и есть грабли(траблы)
kovigor
Цитата(ATMExpert @ May 16 2012, 21:03) *
... расфокусировка как раз происходит в моменты, когда сначала ставишь одну позицию, потом уходишь на другую, а потом возвращаешься к прежней. вот тут и есть грабли(траблы)


А двигатель для фокусировки используется шаговый или обычный ?
ATMExpert
Цитата(kovigor @ May 16 2012, 22:09) *
А двигатель для фокусировки используется шаговый или обычный ?


Обычный, коллекторник. Был бы шаговик, проще думаю было бы.
Вот если бы имелся люфт, вот тут нужен какой-то алгоритм устранения его. Есть на этот счет мысли? А по поводу 10-битного АЦП, думаю этого будет мало. Ведь резистор делает до 3 оборотов, маловато 1024 отсчета, даже если встренный АЦП будет лопатить на самой низкой скорости выборки и даже если получим честные 10 бит - этого мало. Вот порылся по производителям подобрал ADS1115 от TI и AD7705 от AD
kovigor
Цитата(ATMExpert @ May 16 2012, 21:19) *
Обычный, коллекторник. Был бы шаговик, проще думаю было бы.

А не может ли быть дело в инерции ? Т.е., вы видите, что сопротивление достигло заданного значения, и выключаете двигатель, но его якорь еще некоторое время вращается ?


Цитата(ATMExpert @ May 16 2012, 21:19) *
маловато 1024 отсчета

На какое макс. расстояние перемещается объектив ? Допустим, на 3 см. 0.03/1024 ~ 0.03 мм (!) Я очень сомневаюсь, что в биноклях или фотоаппаратах позиционирование происходит с такой точностью ...
ATMExpert
Цитата(kovigor @ May 16 2012, 22:28) *
На какое макс. расстояние перемещается объектив ? Допустим, на 3 см. 0.03/1024 ~ 0.03 мм (!) Я очень сомневаюсь, что в биноклях или фотоаппаратах позиционирование происходит с такой точностью ...

Это не бинокль, а длиннофокусный объектив видеокамеры, работающей на приличное расстояние, фокусное расстояние от 30мм до 750мм
Возможно и инерция. Здесь наверно поможет алгоритм доводки если "пролетит" позицию. Как его описать этот алгоритм?
kovigor
Цитата(ATMExpert @ May 16 2012, 21:48) *
Это не бинокль, а длиннофокусный объектив видеокамеры, работающей на приличное расстояние, фокусное расстояние от 30мм до 750мм
Возможно и инерция. Здесь наверно поможет алгоритм доводки если "пролетит" позицию. Как его описать этот алгоритм?

Можно, например, использовать ШИМ и при подходе к "цели" замедлять двигатель перед окончательным выключением. Но прежде все-таки стоит выяснить, какое сопротивление набегает за время между выключением двигателя и его остановкой ...

P.S. Общее решение мне видится как обычный регулятор, ПИ или даже ПИД. Вот статья с картинками:
http://logic-bratsk.ru/radio/pid/irt/main1_10.htm

А еще есть апп.ноуты у того же Микрочипа и Атмела.
ATMExpert
Я с ШИМом как раз и хотел сделать. А вот на счет ПИД - спасибки за идею, как-то не пришло в голову.
Про набегание сопротивления выясню, может даже завтра, хотябы визуально постораюсь уловить инерцию
С ПИ регулятором можно попасть в ситуацию, когда процесс затянется на непределенно долгое время, т.е. чем меньше будет рассогласование, тем меньше скорость двигателя. Здесь наврно опытно нужно определять момент остановки, когда уже не будет сказываться инерция, а будет сказываться энерция трения, т.е. будет помогать.

И все же проще использовать ШИМ, а в конце "доводки" применять торможение двигателем. Большинство драйверов способны включать Н-мост в такой режим. ИМХО более естественно для такой системы с обратной связью
alexvu
Вам надо сделать обычный сервопривод с обратной связью. Такие же стоят в радиоуправляемых игрушках.
У них специально делается мертвая зона, т.е. остаточная ошибка перемещения, иначе процесс установления может стать колебательным.
MaslovVG
Наиболее вероятен люфт в системе объектив датчик. Метот борьбы - (если невозможно изменить механику) подходить к заданной точке только с одной стороны. Второе ступенчатое изменение скорости двигателя. (преварительное замедление при подходе к заданной точке)
Plain
Цитата(ATMExpert @ May 16 2012, 21:48) *
поможет алгоритм доводки если "пролетит" позицию. Как его описать этот алгоритм?

Доводка это не решение. Здесь достаточно один раз откалибровать механизм.

Калибровка состоит в измерении нескольких изображений до и после точки фокуса, каждое из которых получено одинаковым способом, т.е. движение с одинаковой скоростью и в одном направлении, остановка, фиксация изображения, возврат на исходную позицию. Исходная позиция должна отстоять от измеряемых на таком достаточном расстоянии, которое гарантировало бы "сброс" люфта механизма.

Соответственно, для последующего применения калибровки алгоритм должен фиксировать во время неё значения с датчика в момент подачи команд останова двигателя — именно они и будут однозначно привязаны в этой части датчика к точке фокуса, т.е. в идеале нужно откалибровать несколько точек датчика по всей длине.

Для обратного хода механизма люфт будет другой, поэтому нужно провести такую же калибровку.
kovigor
Цитата(Plain @ May 17 2012, 19:21) *
Калибровка состоит в измерении нескольких изображений до и после точки фокуса, каждое из которых получено одинаковым способом, т.е. движение с одинаковой скоростью и в одном направлении, остановка, фиксация изображения, возврат на исходную позицию. Исходная позиция должна отстоять от измеряемых на таком достаточном расстоянии, которое гарантировало бы "сброс" люфта механизма.

Соответственно, для последующего применения калибровки алгоритм должен фиксировать во время неё значения с датчика в момент подачи команд останова двигателя — именно они и будут однозначно привязаны в этой части датчика к точке фокуса, т.е. в идеале нужно откалибровать несколько точек датчика по всей длине.

Для обратного хода механизма люфт будет другой, поэтому нужно провести такую же калибровку.


Описанный вами алгоритм зависим от напряжения питания, температуры, качества смазки (и от ее загустевания на морозе, и от ее вырабатывания - в том числе). Или я вас не понял, и этот алгоритм нужно применять в комплексе с чем-то еще ?
Plain
Согласен, надо его дополнить коррекцией тормозного пути, т.е. вычислить разницу между им во время калибровки и полученным однократной пробной установкой в текущих условиях эксплуатации. Таким образом, из погрешностей останется только дрейф датчика и измерителя.
viterra
Разовая калибровка не поможет. При смене температуры смазка будет вести себя по другому и всё улетит. При этом нужно учитывать что даже во время работы при частой перефокусировке детали нагреваются - зазоры уходят и люфт меняется. Так что тупо решить задачу может и не получиться.
Plain
Переменные люфт и смазка каждый раз исключаются алгоритмом, потому что являются частями тормозного пути.
Сергей Борщ
Как раз правильно настроенный ПИД и поможет вам и активно затормозить двигателем перед остановкой (Д-компонента) и довести точно до выбранного положения (И-компонента) и сделать это достаточно быстро (П-компонента).
Я делал подобную сервосистему с 10-оборотным резистором в обратной связи при помощи 10-битного АЦП меги, получал примерно 14 бит в комнатных условиях на ширпотребных компонентах. Но измерял не сам потенциометр, а сигнал рассогласования между текущим и желаемым положением. Делал следующим образом: при помощи 14-битного ШИМа формировал уставку - желаемое положение сервосистемы. ШИМ пропускал через фильтр на ОУ, на втором ОУ делал измерительный усилитель, на входы которого подавал выход фильтра и напряжение с потенциометра (на всякий случай через второй такой же фильтр на ОУ). Выход измерительного усилителя подавал на вход АЦП. Результат преобразования АЦП был ошибкой рассогласования для ПИДа. ПИДом вращал двигатель, пытаясь вывести выход измерительного усилителя в середину шкалы АЦП.
Timmy
Я делал такое устройство. Напряжение на двигателе произвольно задавалось ШИМом, измерялся ток двигателя, что позволяло частично скомпенсировать сопротивление обмотки. При подходе к точке назначения, по таблице в зависимости от расстояния маленькими ступеньками уменьшалось напряжение. До нуля. После чего, если система до нужной точки не доехала(одну-две тысячные), а это возможно из-за ненулевого сопротивления обмотки ротора в сочетании с трением, то давал ещё короткий импульс, который подталкивал систему на нужное расстояние. АЦП микроконтроллерный 10 битовый, но резистор был хороший, так что имело смысл использовать АЦП 12-14 бит.
ATMExpert
Цитата(Сергей Борщ @ May 22 2012, 13:23) *
...Результат преобразования АЦП был ошибкой рассогласования для ПИДа. ПИДом вращал двигатель, пытаясь вывести выход измерительного усилителя в середину шкалы АЦП.

В моем случае задачиком положения служит предварительно запомненное положение точки, на которую нужно выйти. т.е. оцифровываем резистор, цифру в память и при поступлении команды "а ну-ка перемести линзы объектива в эту позицию" считываем текущее значение, а разница и есть ошибка для ПИДа. ИМХО и не нужно измерительных ОУ и прочего обвеса. Скорость оцифровки достаточно низкая 16-32 SPS, внешний сигма-дельта на 16 бит и RC- фильтром на половину SPS а остальное программная реализация.
Сергей Борщ
QUOTE (ATMExpert @ May 22 2012, 16:03) *
ИМХО и не нужно измерительных ОУ и прочего обвеса.
Вам виднее. В моем случае внешнее АЦП было непозволительной роскошью, обошелся LM324 и горстью резисторов-конденсаторов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.