vitalyn (18.01.2017 11:55 - 12:03, просмотров: 21346)
Сверхточная стабилизация скорости вращения вала электродвигателя. http://savepic.ru/12701900.jpg
http://techlibrary.ru/b/2i1a1z1a1r1j1o_2h.2j.,_2v1p1c1j1l1p1c_2j.2h.,_2z1p1l1p1m1p1c1s1l1j1k_2k.2k._3b1q1r1a1c1m1f1o1j1f_2e1m1f1l1t1r1p1q1r1j1c1p1e1a1n1j._1982.djvu
Короче говоря, модернизирую трехмоторный прямой привод БС-02 от кассетного магнитофона Вега МП-122. Там я много чего уже сделал (ИК ДУ, оптический автостоп, подсчёт метража по квадратурным сигналам с правого двигателя подмотки, вывод на индикатор HCMS-2903 от Avago и т.д.), сейчас занимаюсь стабилизацией скорости вращения ведущего двигателя.
В двух словах. На роторе двигателя сделаны 134 зуба и стоит магнитная головка, получается таходатчик. Двигатель должен крутиться со скоростью примерно 6 оборотов в секунду, частота с таходатчика примерно 800 Гц. Родная схема стабилизации скорости состояла из преобразователя частота-напряжение (на двух одновибраторах, собранных из К561ЛА7) и компаратора на К157УД2. Если длительность периода, выраженная в напряжении на конденсаторе, больше заданного подстроечником - управляющее напряжение, задающее ток в обмотках, увеличивается, если меньше - уменьшается. В статье A. W. Moore "Phase-locked loops for motor-speed control", 1973 предлагается использовать принципы ФАПЧ для стабилизации скорости вращения. Скорость задаётся эталонной частотой, получаемой из кварцевого осциллятора, фазо-частотным детектором сравнивается, результат сравнения подаётся на управление двигателем. Немного разобравшись в теме я понял, что как в статье предлагается, так мне не пойдёт, а тут надо чуть сложнее. Проблема в том, что у меня очень тормозной двигатель - измеренная механическая постоянная времени двигателя составила аж 2.5 секунды. Если делать, как написано в В.Ф.Самосейко "Теоретические основы управления электроприводом", 2007, стр.239-240, то там время выхода на режим составит 2 * пи * 2.5 с = 16 секунд. Долго. Не пойдёт. Поэтому я решил делать по схеме, изложенной в книге Башарин А.В., Новиков В.А., Соколовский Г.Г. Управление электроприводами. 1982 на стр.182 рис 5-10. Там сначала грубо сравниваются частоты (периоды) и форсированно выходим на приближённое равенство скоростей, а только потом подключается ПИД-регулятор по фазе. Сначала я хотел сделать на рассыпухе, но потом сдался и сделал на ATmega328P и как выяснилось, совсем не зря - от меги сейчас потребуется весь её интеллект. В общем, сделал программный эквивалент схемы из книжки Башарина и Ко. В первом приближении всё работает, выход на устойчивый захват по частоте за 1.5-2 секунды от подачи питания, что меня полностью устраивает. Долговременная стабильность скорости достигнута, определяется кварцевым генератором. Начальная точность установки скорости 0.3%, что в три раза лучше, чем требования ГОСТ 24863-87 "Магнитофоны бытовые. Общие технические условия" для 0-й группы сложности (определяется разрядностью 8-битного счётчика, использованного для этой цели). Хватание вала пальцами на осциллограмме даёт только слегка заметный сдвиг по фазе, в общем, регулятор переменную нагрузку отрабатывает, как положено.
А вот с девиацией дело плохо. Наблюдается размашистый такой джиттер, и никакие игрища с коэффициентами ПИД-регулятора не помогают его подавить. Вывел измеренный сдвиг фаз через USART в комп и посмотрел на графике - наблюдается отчётливая синусоида с частотой 12 Гц. Частота вращения вала - 6 Гц. На роторе используется 4-полюсный постоянный магнит, на статоре две пары катушек и два датчика Холла для управления ими, на катушках статора частота 24 Гц.
В первом приближении гипотеза заключается в том, что магнит ротора плохо намагничен. И тут возникла идея обучения и последующей компенсации. Скажем, за пару оборотов запомнить в каких местах двигатель тормозит, а потом, точно зная количество зубов в датчике энкодера, использовать эту информацию для упреждающей коррекции на следующем обороте.
В связи с чем возникает вопрос - это я пытаюсь изобрести велосипед или так ещё никто не делал? Интересует, конечно, первый вариант, потому что из него следует, что об этом уже где-то написано, тогда мне нужны ключевые слова, чтобы гуглить. Ну второй вариант тоже неплох, можно будет статейку об этом написать, но в "грызении гранита науки" мне требуется "помощь зала" - вопрос заключается в том, какую именно информацию мне надо запоминать с текущего оборота, чтобы использовать её для упреждающей предкоррекции на следующем, и как именно эту предкоррекцию осуществлять, учитывая скромные ресурсы меги328. Я сейчас пытаюсь придумать модель двигателя с этим дефектом, чтобы понять, какой параметр двигателя "плавает" 2 раза за оборот, какую информацию хранить и какую величину и каким образом корректировать.