Управление двухфазным бесколлекторным электродвигателем постоянного тока без датчиков
Отличительные особенности:
- Управление без использования датчиков двухфазным электродвигателем, обычно используемого в вентиляторах
- Регулируемая частота вращения в соответствии с внешней уставкой
- Использование ШИМ для регулировки скорости по замкнутому контуру
- Определение остановки двигателя и автоматический перезапуск после кратковременной задержки
- Конфигурируемая характеристика разгона для удовлетворения характеристикам электродвигателя
- Недорогое решение с использованием нескольких недорогих компонентов
- Программа написана на Си
- Внутрисхемная отладка с помощью интерфейса debugWIRE
- Простота модификации и адаптации программного обеспечения под заданный тип электродвигателя
- Опциональный выход сигнала скорости
1. Введение
Двухфазные бесколлекторные электродвигатели постоянного тока (БКЭПТ) широко используются в вентиляторах для вентиляции и охлаждения ЦПУ, графических процессоров, источников питания и множества других приложений. По сравнению с коллекторными двигателями БКЭПТ отличаются более легким весом, быстрым разгоном, излучением меньшего уровня электрических и акустических шумов, а также не требуют технического обслуживания (исключен износ коллекторного узла). Требования к охлаждающим вентиляторам непрерывно увеличиваются, так как растет число электроники с большим тепловыделением. В связи с увеличением объемов применения вентиляторов появляется необходимость в недорогих решениях, позволяющих сохранить на низком уровне стоимость конечной продукции. Кроме того, поскольку растет число используемых вентиляторов в бытовой и офисной электронике, то вентиляторы должны быть как можно более тихими и экономичными. Характеристики БКЭПТ достаточно полно соответствуют требованиям вентиляторов.
В данных рекомендациях по применению описывается, как реализовать схему и программу для управления двухфазным БКЭПТ на основе 8-разрядного микроконтроллера AVR. Для реализации функций управления используется недорогой и миниатюрный микроконтроллер ATtiny13. АЦП и ШИМ используются таким образом, что не требуются датчики Холла; для определения необходимости переключения статорных токов микроконтроллер оценивает уровень ЭДС на пассивной обмотке. Данное решение позволяет исключить датчик Холла (датчик положения) и является современным, недорогим методом управления двухфазным БКЭПТ.
2. Принцип действия
Чтобы более точно понять принципы работы рассматриваемого устройства ознакомимся с основами функционирования двухфазного БКЭПТ и генерацией ЭДС.
2.1 Двухфазный БКЭПТ
Бесколлекторные электродвигатели постоянного тока состоят из ротора с постоянными магнитами и статора с несколькими обмотками. Количество полюсов на постоянных магнитах и количество статорных обмоток варьируется в зависимости от желаемых характеристик двигателя. Обычный двухфазный электродвигатель показан на рисунке 2.1. На рисунке представлен двигатель с 4 обмотками и 2 наборами полюсов. Верхняя и нижняя обмотки соединены последовательно, точно также соединены левая и правая обмотки.
Уточним терминологию по коммутации электродвигателя. Пассивная или незапитанная обмотка - обмотка, которая генерирует магнитное поле, вращающее ротор (т.к. через эту обмотку не протекает ток). В противоположность этому, активная или запитанная обмотка - обмотка, через которую протекает электрический ток, создающий магнитное поле. В нормальном режиме работы, в любой момент времени одна обмотка должна активной, а другая пассивной. От положения роторных магнитов зависит, какая обмотка должна быть запитана для вращения ротора в нужном направлении. В процессе работы изменение положения ротора происходит за счет изменения электрического тока через обмотки таким образом, что вращение поддерживается за счет изменения магнитного поля, генерированного статорными обмотками.
При запитывании обмоток 1 и 2 на рисунке 2.1 будут притягиваться/отталкиваться полюса роторных магнитов по направлению к обмоткам (фаза 1). Как только начнется вращение, инерцией ротора будет гарантироваться, что ротор не только притянется к активным обмоткам, но и пройдет мимо них. Как только магнит пройдет мимо активных обмоток, должны быть активизированы другие обмотки (фаза 2) и вращение, таким образом, продолжится. Если переключение выполнить в нужный момент, то магнитные поля обмоток изменятся таким образом, что сформированный вращающий момент будет всегда в одном направлении. Если же переключение обмоток выполнить раньше или позже, то в течение короткого времени будет сформирован вращающий момент в противоположном направлении, замедляя частоту вращения ротора. Таким образом, необходима информация о положении роторных магнитов относительно обмоток для достижения максимальных рабочих характеристик.
Рисунок 2.1. Принцип действия двухфазного БКЭПТ
Процесс коммутации обмоток двухфазного БКЭПТ обычно управляется датчиком Холла, который используется для определения положения ротора. Датчик Холла - магнитный ключ, который позволяет определить положение магнитного поля, в данном случае генерированное роторными магнитами. Датчик Холла устанавливает на своем выходе логический 0 или 1 в зависимости от полярности магнитного поля, генерированного роторными магнитами. Если датчик Холла расположить между обмотками 2 и 3 (см. рисунок 2.1), то он изменяет состояние своего выхода, когда роторные магниты совпадают с обмотками, т.е. когда магнитные поля двух полюсов компенсируют друг друга и изменяется полярность магнитного притяжения. Датчики Холла предоставляют управляющей системе информацию о том, когда необходимо выполнить переключение обмоток для поддержания вращения. Недостатками использования данного способа управления коммутацией являются дороговизна датчика Холла и необходимость точного позиционирования датчика для получения надежной информации. Даже при точном позиционировании датчика Холла информация о положении поступает только мгновенно при каждом переключении.
2.2 Электродвижущая сила
Электродвижущая сила (ЭДС) - напряжение на индуктивности (обмотке), генерированное переменным магнитным полем (созданное магнитами при вращении ротора). Форма ЭДС у БКЭПТ приблизительно трапециидальная, как показано на рисунке 2.2.
ЭДС оказывает существенное влияние на работу БКЭПТ. ЭДС генерируется на статорных обмотках во время вращения ротора. Амплитуда ЭДС прямо пропорциональна скорости изменения магнитного поля (со стороны обмотки) - иными словами, амплитуда ЭДС пропорциональна частоте вращения электродвигателя. Когда электродвигатель достигнет заданной скорости, амплитуда ЭДС будет равна напряжению, используемому для запитывания обмоток. Это ограничивает электрический ток через обмотку и, следовательно, частоту вращения, т.к. ток требуется для генерации магнитного поля, а магнитное поле необходимо для создания вращающего момента. ЭДС, индуцированная в запитанной обмотке, называется обратной ЭДС.
ЭДС генерируется не только в запитанной обмотке, но также и в пассивной. ЭДС пассивной обмотки можно измерить и использовать для определения положения ротора. На рисунке 2.2 иллюстрируется трапециидальная ЭДС, индуцированная в пассивной обмотке, в функции положения (угла) роторного магнита.
Рисунок 2.2. ЭДС, индуцированная при вращении роторных магнитов
Недостатком использования ЭДС для определения положения ротора является зависимость амплитуды ЭДС от частоты вращения, что требует измерения более низких уровней напряжения. При этом также необходимо учесть влияние шумов, которые могут присутствовать в заданной системе.
Как показано на рисунке 2.2 ЭДС изменяет полярность, когда роторный магнит находится на одной линии с обмоткой, в этот же момент должно измениться состояние на выходе датчика Холла. Данная особенность используется при использовании способа управления БКЭПТ без датчиков.
2.3 Управление БКЭПТ без датчиков
Способ управления без датчиков с использованием ЭДС, как правило, применяется для управления трехфазным БКЭПТ. В данной реализации ЭДС используется для определения положения ротора и, таким образом, для синхронизации процесса коммутации. При вращении роторных магнитов двухфазного двигателя, по аналогии с трехфазным двигателем, генерируется ЭДС в пассивной статорной обмотке. Идея использования ЭДС пассивной обмотки для определения положения ротора использовалась при разработке устройства, предлагаемого в данных рекомендациях по применению. Основным преимуществом коммутации без датчиков является исключение датчика Холла, а остальные преимущества станут яснее далее.
2.4 Направление вращения
В большинстве применений необходимо только одно заведомо известное направление вращения. Например, при охлаждении источника питания персонального компьютера необходимо скорее подавать холодный воздух помещения в источник питания, чем, наоборот, всасывать горячий воздух из источника питания вовнутрь помещения. Кроме того, в большинстве случаев лопасти вентилятора оптимизированы под одно направление вращения.
Рисунок 2.3. Суженный воздушный зазор в двухфазном электродвигателе
Конструкцией двигателя на рисунке 2.1 не гарантируется направление вращения во время запуска электродвигателя. Направление зависит от начального положения ротора и порядка активизации обмоток. Если начальное положение ротора известно, то можно определить порядок активизации обмоток, который приведет к вращению в нужном направлении.
При управлении без использования датчиков нет информации о начальном положении ротора. Таким образом, перед запуском электродвигателя ротор должен быть переведен в известное положение. При активизации одного набора обмоток магниты ротора сравниваются с обмотками таким образом, что северные полюса магнитов становятся напротив южных полюсов статора или наоборот. Активизируя обмотки таким способом, можно перевести ротор в известное положение. Однако знание положения ротора не достаточно для гарантирования, что двигатель будет вращаться в нужном направлении. Для вращения двигателя в нужном направлении нужно предусмотреть специальную конструкцию магнитного сердечника.
Во многих двухфазных БКЭПТ корректность направления вращения гарантируется сужением воздушного зазора (см. рисунок 2.3). Воздушный зазор между роторным магнитом и статором непостоянный. Когда статорные обмотки не запитаны, роторный магнит принимает положение, в котором воздушный зазор между полюсами магнитов и магнитного сердечника - наименьшее (т.е., где наименьшее магнитное сопротивление). Двигатель на рисунке 2.3 имеет четыре таких положения покоя. Эти положения расположены между положениями совпадения полюсов, когда запитаны последовательные обмотки. Если ротор сравнивается с набором обмоток (за счет активизации обмотки), а затем обмотка обесточивается, то ротор продолжит вращение до ближайшего положения покоя. Положение ротора, таким образом, известно и далее направление вращения управляется путем выбора соответствующего порядка коммутации.
2.5 Временные диаграммы напряжений в процессе коммутации
Для того, чтобы понять как эффективно управлять двигателем, необходимо получить представление о том, как формируется вращающий момент. Ниже представлено выражение электрического момента, генерированного одной фазой:
Te=e i/w , (2.1)
где Te - электрический момент, e- ЭДС, i- ток через обмотки двигателя, а w - угловая скорость ротора.
Выражение (2.1) показывает, что сформированный вращающий момент имеет тоже направление, что и вращение, если e и i имеют одинаковый знак. Или иначе, если e и i имеют противоположные знаки, то электрическая энергия расходуется на замедление двигателя.
В большинстве вентиляторов используется прямоугольная форма напряжений в процессе коммутации (в этом случае коммутация называется блочной). На рисунке 2.4 показана блочная коммутация, где переключение выполняется при пересечении нуля напряжением ЭДС (изменение полярности) для поддержания равенства знака фазного тока и знака ЭДС.
Рисунок 2.4. Основные осциллограммы напряжений при коммутации
2.6 Управление скоростью с помощью широтно-импульсной модуляции
Как показано ранее, может возникнуть необходимость управления частотой вращения двигателя. В вентиляторах также может возникнуть необходимость снижения акустических шумов и снижения потребляемой мощности двигателя. Одним из способов управления частотой вращения двигателя является управление рабочим напряжением двигателя; однако, очень немногие системы, в т.ч. ПК, могут непосредственно формировать регулируемое напряжение для питания электродвигателя без специального аппаратного каскада питания. В результате в состав многих систем входит специальная схема, которая позволяет регулировать напряжение питания вентилятора и привносит свою часть стоимости в конечную стоимость системы. Если же учесть, что управляющая электроника вентилятора уже содержит транзисторы, которые могут использоваться для управления напряжением питания двигателя, то дополнительную схему для регулировки напряжения питания электродвигателя необходимо рассматривать, как избыточную. Таким образом, альтернативным решением для управления напряжением/скоростью является использование управляющей электроники двигателя. Если для управления коммутацией используется микроконтроллер, то для управления средним значения напряжения питания обмоток можно использовать широтно-импульсную модуляцию (ШИМ). Если связать выход ШИМ-генератора с обмотками электродвигателя, то можно управлять средним значением напряжения и, следовательно, током через обмотки (см. рисунок 2.5). Коэффициент заполнения импульсов ШИМ-сигнала определяет среднее значение напряжения питания обмоток. На рисунке 2.5 заполнение импульсов 50%. Это означает, что среднее значение напряжения, подаваемого на обмотки равно 50% от исходного питающего напряжения. Увеличение заполнения импульсов ШИМ-сигнала приводит к увеличению скорости вращения и вращающего момента вентилятора.
Рисунок 2.5. Напряжение питания обмоток двигателя с широтно-импульсной модуляцией
При использовании ШИМ-управления скоростью желательно иметь встроенный в микроконтроллер аппаратный генератор ШИМ-сигнала. Использованием аппаратного ШИМ-генератора гарантируется корректность временной диаграммы без паразитных импульсов, что делает возможной регулировку напряжения (заполнение импульсов) во всем диапазоне от 0% до 100%, что затруднительно при программной генерации ШИМ-сигнала. Аппаратная генерация ШИМ-сигнала также позволяет разгрузить ЦПУ для выполнения других важных задач, как, например, управление коммутацией, функции защиты и стабилизация частоты вращения.
Одно из основных требований при использовании ШИМ-управления скоростью вращения является расположение основной частоты ШИМ за пределами диапазона слышимости (20 Гц...20 кГц). Это означает, что желательно использовать основную частоту ШИМ существенно выше 20 кГц. При этом, также необходимо учитывать механические характеристики вентилятора. Акустический шум от небольших вентиляторов часто неслышим, даже если базовая частота ШИМ ниже 20 кГц. Однако нужно знать, что частоты ШИМ ниже 20 кГц, в зависимости от вентилятора, могут быть слышимы, как высокий тон. При использовании частот ШИМ выше 20 кГц необходимо учитывать, что с увеличением основной частоты ШИМ увеличивается рассеиваемая мощность на управляющих транзисторах.
2.7 Заданная частота вращения
Частота вращения двигателя в большинстве приложений регулируется с помощью внешнего сигнала. В качестве последнего выступает аналоговый сигнал, сформированный, например, датчиком температуры или потенциометром, или ШИМ-сигнал, сформированный главным контроллером системы. Использование микроконтроллера со встроенным АЦП позволяет оперировать с любым типом внешнего сигнала для задания скорости двигателя, а затем после определения заданной скорости варьировать заполнением импульсов ШИМ-сигнала для управления напряжением питания обмоток. Таким образом, имеется возможность реализовать управление частотой вращения с обратной связью, когда ШИМ-сигнал постоянно изменяется для минимизации разности между заданной и фактической частотой вращения.
2.8 Аварийные режимы работы
Одной из проблем, с которой сталкиваются при управлении двигателем, является его опрокидывание. Если пренебречь данной проблемой, то возможен выход из строя двигателя и даже его возгорание. Таким образом, при разработке любого устройства управления электродвигателем необходимо учитывать возможность его опрокидывания. В некоторых случаях опрокидывание является временным и в этом случае желательно перезапустить двигатель. В случае выявления опрокидывания необходимо остановить коммутацию, подождать некоторое время, а затем выполнить попытку перезапуска двигателя. Данная функция легко реализуется микроконтроллером путем контроля за частотой вращения. Потенциальной проблемой для электродвигателя и драйверного каскада является возможность перегрева. Перегрев может возникнуть, когда двигатель потребляет чрезмерные токи, например, при управлении большой нагрузкой или быстром разгоне. Если датчик температуры встроен в электродвигатель или драйверный каскад, то с помощью интегрированного в микроконтроллер АЦП можно легко контролировать температуру и выявлять перегрев. Наиболее простым способом является контроль тока через драйвер и обмотки с помощью шунтового резистора, падение напряжения на котором служит хорошим индикатором возможности образования высокой температуры и перегрузки электродвигателя.
3. Обзор предложенной реализации
В данном разделе описывается реализация схемы и программы для предложенного устройства управления двигателем на основе микроконтроллера ATtiny13.
3.1 Аппаратная часть
На рисунке 3.1 представлены основные аппаратные функциональные узлы, которые необходимы для реализации устройства управления двухфазным БКЭПТ без датчиков на основе микроконтроллера. Принципиальная схема остается одной и той же, независимо от используемого типа электродвигателя, а при известном типе электродвигателя необходимо уточнить только параметры элементов схемы.
Узел, обозначенный "Схема управления", как правило, представляет собой два ключа, которые при включении делают возможным протекание электрического тока через обмотки. В качестве ключей используются транзисторы. Конденсаторы параллельно транзисторам позволяют сгладить переходные напряжения, которые возникают при размыкании индуктивной нагрузки, а также уменьшают шумы, возникающие при коммутации.
Узел, обозначенный "Схем контроля", выполняет обработку сигнала. На рисунке 3.1 для этого используется только делитель напряжения, позволяющий согласовать по напряжению источник сигнала с АЦП микроконтроллера. Обратите внимание, что резистивные цепи влияют на значения ЭДС. Если не выполнять деление напряжения, то измеренное напряжение будет равно Vm-Vd-Vc, где Vd - падение напряжения на диоде, а Vc - общее падение напряжение на обмотке. Падение напряжения на обмотке равно ЭДС неактивной обмотки. Измерение отрицательных уровней ЭДС возможно, благодаря используемому расположению точек измерения ЭДС и резистивных измерительных цепей. В этом случае отрицательные уровни ЭДС накладываются на положительное постоянное смещение.
Диод между напряжением питания и обмотками двигателя выполняет функцию защиты от перемены полярности, а также гарантирует непопадание напряжения со стороны двигателя в цепь питания.
Выводы, обозначенные "АЦП Ф1/2" и "ШИМ Ф1/2", являются подключениями к микроконтроллеру.
Рисунок 3.1. Драйверы и схема контроля при управлении БКЭПТ без датчиков
3.2 Микроконтроллер
Как сказано выше, при управлении двухфазным БКЭПТ без использования датчиков необходимо два канала АЦП для измерения ЭДС и два ШИМ-выхода для управления коммутацией и скоростью. Кроме того, один канал АЦП требуется, если необходимо внешнее задание скорости. Если необходимо формировать информацию о частоте вращения, то понадобится дополнительный выход. Таким образом, всего требуется 6 линий ввода-вывода.
ATtiny13 - 8-выводной микроконтроллер, способный выполнять функции управления двухфазным БКЭПТ без датчиков с учетом опроса внешнего аналогового напряжения уставки по скорости и формирования сигнала с информацией о частоте вращения. Встроенный АЦП, внутренний источник опорного напряжения, два канала ШИМ, а также калиброванный RC-генератор частотой 9,6МГц сводят потребности во внешних компонентах до минимума. Распределение выводов микроконтроллера ATtiny13 для вложенного примера программного кода представлено на рисунке 3.2. Обратите внимание, что сигнал с информацией о частоте вращения формируется на выводе сброса. Для разрешения работы вывода сброса в качестве линии ввода-вывода необходимо запрограммировать конфигурационный бит RSTDISBL (отключение сброса). Необходимо также учесть, что, даже если бит RSTDISBL запрограммирован, то сбросить микроконтроллер можно, если подать на вход сброса напряжение выше 10.5В. Если данная особенность будет использоваться (т.е. возможна подача высокого напряжения на вывод сброса), то в сигнальной цепи, связанной с выводом сброса, необходимо предусмотреть ограничитель напряжения до уровня Vcc, например, стабилитрон. При необходимости можно обменять местами выводы сигнала об измеренной скорости и внешнего задания по скорости.
При измерении с помощью АЦП используется внутренний источник опорного напряжения 1.1В. Все сигналы на входе АЦП, таким образом, должны изменятся в пределах 0-1.1В.
Рисунок 3.2. Подключения к микроконтроллеру ATtiny13
3.3 Программа
В данном разделе описываются различные части программы для микроконтроллера, реализующей функции управления двухфазным БКЭПТ без датчиков.
3.3.1 Регулировка напряжения с помощью ШИМ
Для управления напряжением активной обмотки и, следовательно, скоростью вращения двигателя используется два канала ШИМ. Выходы данных каналов связаны с транзисторами каскада управления. Для реализации ШИМ используется двунаправленный таймер-счетчик. Таймер генерирует три события: два события совпадения, при которых устанавливается или сбрасывается соответствующий выход, и одно прерывание при переполнении. Двунаправленный счет и ШИМ-выход представлены на рисунке 3.3.
Рисунок 3.3. ШИМ-выход таймера-счетчика в режиме двунаправленного счета
Основной причиной использования двунаправленного режима счета таймера является возможность запуска преобразования АЦП при переполнении таймера, т.е. когда коммутационные шумы не накладываются на сигнал ЭДС.
При возникновении прерывания по переполнению таймера также запускается процедура обработки прерывания, в которой оценивается положение ротора и выполняется коммутация, если для этого имеются необходимые условия (т.е., когда ЭДС, измеренное АЦП, пересекает заданный порог).
Основная частота ШИМ должна быть близкой к 20 кГц, чтобы выйти за пределы слышимости. Если таймер работает от внутреннего RC-генератора частотой 9.6 МГц и используется двунаправленный режим счета, то для получения частоты 20 кГц необходимо в качестве вершины счета использовать значение 240 (9.6МГц/20кГц/2). Однако при использовании двух каналов сравнения микроконтроллера ATtiny13 нет возможности изменить вершину счета и в этом случае в качестве вершины счета выступает значение по умолчанию 255. В этом случае базовая частота ШИМ будет равна 18.85 кГц, что вполне приемлемо в большинстве вентиляторов. Если используемый вентилятор создает акустический шум на частотах до 20 кГц, то необходимо варьировать частотой RC-генератора. При увеличении частоты внутреннего RC-генератора будет также увеличиваться и основная частота ШИМ. Частота внутреннего RC-генератора может быть увеличена до 10% относительно номинальной частоты, не оказывая негативного влияния на работу микроконтроллера. Более подробная информация относительно регулировки встроенного RC-генератора может быть найдена в документации на микроконтроллер AVR. Обратите внимание, что конфигурационный бит CKDIV8, который управляет делением частоты синхронизации на 8, запрограммирован по умолчанию. Для получения частоты синхронизации 9,6МГц данный конфигурационный бит необходимо сбросить.
3.3.2 Использование АЦП для измерения обратной ЭДС
Запуск преобразования АЦП в микроконтроллере ATtiny13, как было сказано выше, выполняется при переполнении таймера-счетчика (см. рисунок 3.3). При использовании таймера в режиме двунаправленного счета переполнение возникает при достижении таймером нижнего предела счета (нуля), т.е. когда ШИМ-сигнал не изменяет своего состояния (кроме случаев, когда используется малое заполнение импульсов). Большинство вентиляторов используют заполнение импульсов между 10% и 40%, поэтому, шумы, возникающие при коммутации, не оказывают влияния на результат преобразования. Если бы не было возможности запускать оцифровку при переполнении таймера, то необходимо было бы выполнять эффективную аналоговую фильтрацию или выполнять сложные вычисления для реализации управления без датчиков двухфазным БКЭПТ, т.к. коммутационные шумы могут накладываться на ЭДС.
Управление переключением канала АЦП выполняется в той же части программного кода, где выполняется оценка результата измерения АЦП и управление коммутацией обмоток. Данный процесс более детально рассматривается в разделе, посвященному управлению коммутацией. АЦП может измерять с разрешающей способностью до 10 разрядов и частотой 15 тысяч преобразований в секунду. При более высоких частотах преобразования уменьшается разрешающая способность. В предложенной реализации обработка результатов измерения ЭДС, а также внешнего сигнала скорости, выполняется в процедуре обработки переполнения таймера-счетчика. Для гарантирования достаточности времени для обработки прерывания необходимо выбрать частоту синхронизации АЦП, равной 1/8 от частоты системной синхронизации, т.е. 1.2 МГц. Использование данной высокой частоты синхронизации АЦП приводит к снижению разрешающей способности примерно до 8 бит, но этого достаточно для успешного считывания ЭДС.
3.3.3 Предварительное позиционирование и запуск
Предварительное позиционирование ротора выполняется путем увеличения напряжения питания обмоток и задержки на заданное время до тех пор, пока ротор не установится в желаемое положение. После этого напряжение питания обмоток уменьшается, чтобы ротор перешел в положение покоя. Этим гарантируется известность положения ротора. После этого двигатель запускается без обратной связи с задержками между переключениями в соответствии с таблицей преобразования. Это позволяет адаптировать управление под механические характеристики управляемого двигателя.
Задержки между переключениями обмоток можно вычислить, если известны характеристики разгона двигателя. Альтернативно, время разгона двигателя можно определить путем контроля напряжения на обмотках с помощью осциллографа.
3.3.4 Коммутация
По завершении последовательности запуска активизируется коммутация без датчиков положения путем разрешения прерывания по переполнению таймера-счетчика. Используется блочная схема коммутации. Для измерения ЭДС используется встроенный АЦП. Измеренное значение ЭДС сравнивается с пороговым значением. Если ЭДС пересекает пороговое значение, то выполняется переключение обмоток. Во избежание ошибок, вызванных переходными процессами при переключении, несколько оцифровок после переключения игнорируются.
3.3.5 Внешнее задание скорости
Внешнее задание скорости реализовано в виде аналогового входа, который микроконтроллер оцифровывает для определения желаемой частоты вращения двигателя. Непосредственное считывание заданной частоты вращения выполняется в процедуре обработки прерывания таймера-счетчика по завершении измерения обратной ЭДС. Контур стабилизации скорости реализован в основном цикле. Стабилизация частоты вращения выполняется по алгоритму пошагового увеличения/уменьшения скорости. При необходимости может быть реализован ПИ-закон управления.
3.3.6 Отработка аварийных режимов
Отработка аварийных режимов в данной реализации ограничена защитой от опрокидывания. В состоянии опрокида коммутация не выполняется. Поскольку в данной реализации используется управление скоростью, то реализован контроль за частотой вращения (если точнее, то определяется количество переполнений таймера-счетчика между переключениями). Данная информация используется для перезапуска устройства при выявлении опрокидывания двигателя. Для этого задействован сторожевой таймер. Состояние сторожевого таймера обнуляется при каждом переключении обмоток. Если двигатель опрокинут, то переключения не происходят и сторожевой таймер не обнуляется. По истечении определенного времени возникает переполнение сторожевого таймера и инициируется сброс микроконтроллера. Во время запуска микроконтроллера имеется возможность определить источник сброса. Для этого необходимо опросить состояние флага "Watchdog Reset" (сброс от сторожевого таймера). Если флаг установлен, то это означает, что причиной последнего сброса является переполнение сторожевого таймера. Опрос состояния данного флага может использоваться для подсчета количества аварийных перезапусков, например, путем инкрементирования счетчика в ЭСППЗУ.
3.3.7 Выход сигнала с информацией о скорости
У вентиляторов зачастую предусматривается выход с открытым коллектором для генерации сигнала, поступающего к ЦПУ ПК (или другому устройству), с информацией о частоте вращения вентилятора. Данную функцию можно реализовать, если задействовать вывод сброса микроконтроллера ATtiny13, который можно перенастроить на выполнение функции линии ввода-вывода. Программная реализация данной функции позволяет избавиться от необходимости применения каких-либо внешних компонентов, тем самым, снижая общую стоимость системы.
3.3.8 Возможность внутрисистемной отладки
У микроконтроллера Attiny13 имеется встроенный отладочный интерфейс debugWIRE, который поддерживается внутрисхемным эмулятором JTAGICE mkII. Уникальностью данного интерфейса является возможность отладки с помощью только одного вывода микроконтроллера (вывод сброса). Использование внутрисистемной отладки позволит более эффективно и просто выполнить адаптацию исходного кода под конкретный тип электродвигателя. По завершении отладки, при необходимости, вывод сброса может быть запрограммирован на выполнение другой функции, например, формирование сигнала о частоте вращения двигателя. Более подробная информация по отладке и использованию интерфейса debugWIRE может быть найдена в документации JTAGICE mkII.
4. Описание вложенного исходного кода
Вложенный исходный код реализует управление двухфазным БКЭПТ в соответствии с описанием в данном документе. Все конфигурационные параметры легко изменяются, что позволяет адаптировать исходный код под любой двухфазный электродвигатель. Описание исходного кода представлено ниже в виде блок-схем, а также в html-документах. html-документация находится в архиве вместе с файлами исходного кода. Корневым файлом для данной документации является readme.html.
4.1 Блок-схемы программного обеспечения
Верхний уровень программной реализации рассматриваемого устройства управления двухфазным БКЭПТ представлен в виде блок-схемы на рисунке 4.1. На рисунке 4.2 представлена блок-схема процедуры предварительного позиционирования и запуска. На рисунке 4.3 приведена блок-схема процедуры обработки прерывания таймера-счетчика 0, где выполняется переключение обмоток без использования датчиков положения.
Рисунок 4.1. Блок-схема программы управления двухфазным БКЭПТ
Рисунок 4.2. Блок-схема процедуры предварительного позиционирования и запуска
Рисунок 4.3. Блок-схема процедуры обработки прерывания по переполнению таймера-счетчика 0
Связанные документы
Промышленная ЭлектроникаAVR440 (54.6 Кб), 01.12.2009
Программа к AVR440
AVR440 (128.3 Кб), 01.12.2009
Управление двухфазным бесколлекторным электродвигателем постоянного тока без датчиков
Связанные компоненты
ATtiny13, 16.04.20158-битный AVR микроконтроллер с 1 КБ внутрисистемно программируемой Flash памяти
Автор документа: Жанна Свирина
, http://www.gaw.ru" |
Дата публикации: 01.12.2009 Дата редактирования: 01.12.2009 |
Кол-во просмотров 8194 | |
Все новости одной лентой |