Обработка управляющих сигналов в кодере RC-аппаратуры

Прежде, чем начать рассматривать нелинейные преобразования, применяемые в кодерах, немного отвлечемся, и поговорим о необходимой точности процесса дистанционного управления моделью. Наверное, мне и нужно было начать эту тему именно с определения понятия «точность управления». Но, лучше поздно, чем …

Бытует множество подходов, методов и способов, якобы увеличивающих точность управления. Давайте попробуем выяснить, насколько они обоснованы, но прежде ответим на несколько довольно принципиальных вопросов.

Итак, что такое — «точность управления» моделью, от чего она зависит, и какой-такой точности достаточно для процесса дистанционного управления моделью?
Многие могут сказать, что точности много не бывает, и будут абсолютно правы.
Однако, позвольте вспомнить старый анекдот:

«Вопрос: Два волоса — это много, или мало?
Ответ: Смотря где. В супе — много, а на голове — мало!»

Вот так и с точностью. Где-то счет идет на микроны, а что-то можно и лаптем измерять.
Есть так называемый «принцип разумной достаточности». Согласно этому принципу бессмысленно увеличивать что-либо (не важно что — качество, количество, размер, вес или точность), если это увеличение уже не привносит существенных изменений в конечную цель (изделие, расчет, и т.д.). Думаю, любой разумный человек согласится с тем, что этот принцип верен, и не станет его оспаривать. Другое дело, что в каждом случае требуется четко определять меру этой достаточности. Ведь мало кто при вычислении длины окружности умножает ее диаметр на 3.1415926535897932384626433832795028841971693993751058209….., большинство из нас ограничивается только первыми тремя цифрами — 3,14, и этой «ограниченной» точности с избытком хватает для большинства практических расчетов.
Вот давайте и попытаемся определить меру точности, применительно к системам дистанционного управления.

Общеизвестно, что параметры любой системы определяются худшим элементом этой системы.
Допустим, если мы собираемся прослушать запись великого Карузо, сделанную на карболитовой пластинке еще в начале прошлого века, бессмысленно будет применять Hi-Fi аппаратуру — качество воспроизводимого звука с этой пластинки будет не выше, чем у простейшего электрограмофона. Здесь качество звука (точность воспроизведения голоса) определяется исключительно источником (пластинкой), и как бы мы не улучшали параметры усилителя или акустических колонок, нам не удастся объективно расширить частотный и динамических диапазон исходной грамзаписи.
Так что, попробуем сначала найти слабые объекты, участвующие в процессе управления, уж потом начнем говорить о способах увеличения и критериях оценки точности системы в целом.

По моему мнению, к таким слабым объектам в первую очередь относятся:

1. Оператор (пилот, управляющий моделью). Конечно, имеется в виду среднестатистический человек, и его психомоторные и физиологические параметры.
Нас интересует, в первую очередь, с какой точностью оператор может манипулировать органом управления (джойстиком). По различным экспериментальным данным, опубликованным в специальной и медицинской литературе, точность позиционирования пальцев человека редко бывает выше 0,2-0,4 мм, и это — у специально тренированных людей. У «среднего» человека этот параметр хуже в 2-3 раза. Примем — 0,3 мм. Это значит, что точность позиционирования ручки управления оператором в любом случае будет не выше этой величины.
В среднем длина ручки управления (от оси вращения до места контакта с пальцами оператора) бывает порядка 60-70 мм. Обычный угловой ход ручки (от упора до упора) на стандартной модели передатчика равен примерно 80 градусам (+/-40 градусов от нейтрали). Несложно пересчитать длину этого хода в миллиметрах. Опуская элементарные расчеты, скажу, что длина хода ручки обычно не превышает 50 мм (реальный физиологически-комфортный диапазон синхронного перемещения большого и указательного пальцев кисти человека — почти в 2 раза меньше). Таким образом, при точности позиционирования 0,3 мм, которую в состоянии осуществить человек, максимальная точность канала управления в целом уже не может быть выше 0,6 %.

2. Входной преобразователь механического перемещения в электрический сигнал в самом передатчике. Имею в виду связку «потенциометр ручки управления / АЦП».
В качестве потенциометров используются переменные резисторы стандартной конструкции. У таких потенциометров угловая длина резистивной дорожки равна примерно 270 градусам. Следовательно, при ходе ручки всего 80 градусов, разрешающая способность этого узла сокращается практически в три раза. Это сокращение автоматически ухудшает условие работы АЦП — ведь напряжение, которое подается на потенциометр обычно равно (или близко) напряжению, которое используется в АЦП в качестве опорного. При разрешающей способности АЦП 10 разрядов (стандарт для аппаратных АЦП в микроконтроллерах), получается, что рабочий участок потенциометра обеспечит изменение уровня входного сигнала в три раза меньше, чем мог бы оцифровать преобразователь. Соответственно, и динамическая точность оцифровки при этом уменьшится не менее, чем в три раза, и будет составлять, в лучшем случае 6-7 цифровых разрядов.
Даже если настроить АЦП на работу с внутренним источником опорного напряжения (AREF), которое у микроконтроллеров фирмы Atmel обычно равно 2,56 вольта, а входные потенциометры запитывать от 5 вольтового стабилизатора, то вряд ли удастся существенно повысить точность преобразования «угол/разряд». Давайте прикинем: при указанной выше длине рабочего участка резистивной дорожки в 1/3 от ее общей длины, на этот участок будет приходится около 1,7 вольта. Разрешающая способность 10 разрядного АЦП при AREF = 2,56 вольта равна 2,56/1024=2,5 мВ (это без учета погрешности самого АЦП). Так что при оцифровке входного сигнала величиной 1,7 вольта выходной код АЦП будет равен всего-навсего 680 (в десятичном выражении). Шумовые и температурные флуктуации АЦП и входных цепей наверняка приведут к округлению как минимум еще одного младшего разряда, и в результате итоговая точность преобразования «аналог/цифра» едва ли будет выше 8-9 цифровых разрядов, а это примерно 0,5 % от среднего уровня входного сигнала, т.е. от сигнала, который будет сниматься с потенциометра ручки управления в ее нейтральном положении.
И это еще без учета неизбежных механических люфтов в конструкции джойстика!

3. Механика модели. Давайте посмотрим, какую точность позиционирования может обеспечить механика модели. Для простоты расчетов будем считать, что рабочие плечи качалки РМ, и кабанчика аэродинамического руля равны между собой (пусть будет L=25 мм), максимальный угол отклонения руля в одну сторону равен 40 градусам, а люфт в каждом сопряженном элементе (качалка — тяга и тяга — кабанчик) минимален, и равен всего 0,1 мм (реальные люфты с учетом люфта элементов подвески рулей еще больше). Расчет предельной точности показывает, что погрешность позиционирования, вносимая механикой модели, будет не меньше… 0,5-0,6%!

Как видим, ни одно из звеньев системы управления «человек — аппаратура — модель» не позволит добиться точности управления выше 0,5-0,6%. И даже если я где-то ошибся в расчетах, суммарная точность все равно будет не выше точности работы самого слабого звена.

4. В каких единицах следует измерять точность? Очевидно, что для каждого звена системы управления следует применять свою единицу измерения — где-то милливольты, где-то миллисекунды, а где-то разрядность цифрового двоичного кода. И если с миллиметрами, милливольтами и миллисекундами все достаточно просто и однозначно, то требуемая разрядность двоичного кода обычно вызывает множество споров и разногласий.
Многие разработчики пытаются довести этот параметр до 10-12 разрядов, что приводит к неоправданному усложнению программного кода управления восьмиразрядным микропроцессором и увеличению времени для вычислений с использованием двухбайтовых чисел. Кроме того, двухбайтовые константы, хранящихся в памяти контроллера, занимают в два раза больше объема памяти, которой часто и без того не хватает для решения основной задачи.

Учитывая все приведенные выше доводы, смею предположить, что в системе дистанционного управления более чем достаточно использовать обычный восьмиразрядный двоичный код начиная от входного АЦП (даже 10-разрядного), и до выходного ШИМ, формирующего PPM-последовательность. При этом погрешность вычислений будет не хуже 100/255 = 0,39 %, что в полтора раза выше точности большинства остальных звеньев системы.
В дальнейших расчетах я буду руководствоваться выводами, полученными в этой части статьи, и постараюсь обходиться исключительно восемью двоичными разрядами. И только в отдельных случаях, таких, как промежуточные умножения формата 8 х 8, и сложения двух-трех восьмибитовых констант с близкими к максимальным значениями, буду вынужденно использовать двухбайтовые регистры и ячейки памяти.

Страницы: 1 2 3 4 5 6 7