JW Player goes here
www.avrki.ru
Ссылка на исходники контроллера и настроенную оболочку Eclipse+gcc и пр. лежат там же, где ролик:
Регулярно сталкиваясь, с необходимостью сделать ту или иную мелкую «штучку» сложной формы, первоначально задумался о 3D принтере. И даже начал его делать. Но почитал форумы и оценив скорость работы 3D принтера, качество и точность результата, процент брака и конструкционные свойства термопластмассы, понял, то это не более чем игрушка.Заказ на комплектующие из Китая пришел за месяц. И уже через 2 недели станок работал с управлением от LinuxCNC. Собирал из всякой фигни, что была под рукой, поскольку хотелось побыстрее (профиль + шпильки). Собирался потом переделать, но, как оказалось, станок получился достаточно жесткий, и гайки на шпильках не пришлось подтягивать ни разу. Так что конструкция осталась без изменений.
Начальная эксплуатация станка показала что:
В первую очередь, я хотел для следующих задач:
Однако, нашел им еще одно применение, пусть и в довольно узкой задаче.
Заметил, что при вырезании рельефа, при задании ускорения по Z больше определенной величины, ось Z начинает медленно, но уверенно ползти вниз. Но, время вырезания рельефа при этом ускорении на 20% меньше. По окончанию вырезания рельефа 17x20 см с шагом 0.1мм фреза может уйти вниз на 1-2 мм от расчетной траектории. Анализ ситуации в динамике по энкодерам, показал, что при подъеме фрезы иногда теряется 1-2 шага. Простой алгоритм коррекции шагов с использованием энкодера дает отклонение не более 0.03 мм и позволяет уменьшить время обработки на 20%. А даже 0.1 мм выступ на дереве заметить сложно.
Идеальным вариантом для хоббийных целей посчитал настольный вариант с полем чуть больше чем A4. И до сих пор мне этого хватает.
За все время эксплуатации ни разу не было необходимость выпилить по частям рельеф на 3-х метровой доске или сделать гравировку на каменной плите.
Подвижный стол обладает следующими преимуществами для настольных станков:
На мой взгляд, станок для силовой обработки металла и станок с высоко оборотистым шпинделем для обработки дерева/пластмасс — это совершенно разные типы оборудования.
Создать в домашних условия универсальный станок как минимум не имеет смысла.
Выбор шпинделя для станка с данным типом ШВП и направляющими с линейными подшипниками однозначен. Это высоко оборотистый шпиндель.
Для типичного высоко оборотистого шпинделя (20000 об/мин) фрезеровка цветных металлов (про сталь даже речи не идет) – это экстремальный режим для шпинделя. Ну, разве что очень надо и тогда съем по 0.3 мм за проход с поливом ОЖ. Шпиндель для станка рекомендовал бы с водяным охлаждением. С ним слышно во время работы только «пение» шаговых двигателей и бульканье аквариумного насоса в контуре охлаждения.
В первую очередь у меня ушла проблема корпусов. Любой формы корпус фрезеруется из «оргстекла» и по идеально по гладким срезам склеивается растворителем.Стеклотекстолит отказался универсальным материалом. Точность станка позволяет вырезать посадочное место под подшипник, в которое он холодный зайдет, как положено с легким натягом, а после уже не вытащить. Шестерни из текстолита отлично вырезаются с честным эвольвентным профилем.
Обработка дерева (рельефы и пр.) – широкий простор для реализации своих творческих порывов или, как минимум, для реализации чужих порывов (готовые модели).
Вот только ювелирку не пробовал. Негде опоки прокаливать/плавить/лить. Хотя брусок ювелирного воска ждет своего часа.
habr.com
Прошло уже примерно три года, как я купил у Purelogic станочек PLRA4, и почти с самого начала меня не покидала идея сделать к нему свой контроллер с работой по USB. Началось всё с простого переходника USB-LPT на ATMEGA с софтовым USB и жуткими тормозами, потом AT90USB162, потом AT91SAM7S. Недавно случилось чудо — в наш город завезли L6474 и я решил, что теперь смогу сделать свой драйвер. Микросхемка оказалась очень маленькая, но с приличными амбициями: до 3А, до 45В, 16 микрошагов, куча защит. В процессе макетирования я сжёг два экземпляра и решил обратиться к ЛУТ. Вот, что получилось: Схема Плата Вид снизу К сожалению, осталось маловато места для радиатора, который планировалось припаять прямо на микросхему снизу, через отверстие в плате, поэтому я на него забил. Для управления драйвером использовалась плата STM32VLDISCOVERY, прошивку можно взять здесь и здесь. Без радиатора и с напряжением 16В микросхема работала секунд 20, уходя, видимо, в thermal shutdown. Однако, микросхема, припаянная к большому прямоугольному паду с металлизированными отверстиями работает достаточно неплохо даже без радиатора.
В следующий раз я планирую рассказать о дальнейшей разработке драйвера ШД с использованием STM32F051:
К топику прикреплен проект платы в KiCAD.
we.easyelectronics.ru
Изложенный ниже материал основан на документации AVR447 от фирмы Atmel. Пример управления PMSM двигателем с тремя датчиками Холла для микроконтроллера STM32 базируется на информации, изложенной в этой документации.
Существует некоторая путаница в терминологии связанной с бесколлекторными двигателями. Само понятие “бесколлекторный двигатель” – весьма обширное и включает в себя несколько групп двигателей, в том числе и бесколлекторные двигатели с постоянными магнитами. Далее подразумевается бесколлекторные двигатели с постоянными магнитами.
В большинстве литературных источников двигатели с постоянными магнитами разделены на две категории по форме обратной ЭДС. Обратная ЭДС может быть трапецивидной или синусоидальной. Хотя терминология в литературе иногда противоречива, в большинстве случаев считается, что бесколлекторный двигатель постоянного тока (BLDC) имеют трапецивидную обратную ЭДС, а синхронный двигатель с постоянными магнитами (PMSM) имеет синусоидальную обратную ЭДС. И BLDC и PMSM могут возбуждаться синусоидальными токами.
PMSM и BLDC могут иметь некоторые конструктивные отличия. Так как при работе BLDC возникают пульсации момента на валу, BLDC двигатели проектируют таким образом, чтобы снизить пульсации момента. Тем не менее, PMSM и BLDC могут возбуждаться как трапецивидным так и синусоидальными токами. Можно сказать, что возбуждая BLDC двигатель синусоидальным напряжением, мы превращаем его в PMSM. Если Вы считаете что для превращения BLDC в PMSM нужно обязательно внести в него конструктивные изменения, то замена регулятора – это и может быть тем самым необходимым конструктивным изменением.
Если BLDC двигатель возбуждать синусоидальными токами, ожидается увеличение момента на валу, снижение вибрации, снижение шума, увеличение максимальных оборотов. Почему так происходит? Вспомним, как работает система управления BLDC двигателем. Для его управления используется блочная коммутация (block commutation). Т.е. При достижении определенного положения ротора происходит коммутация (напряжение подается на определенные обмотки) и магнитное поле статора смещается и остается неподвижным до момента следующей коммутации пока ротор не провернется до определенного положения. Таким образом, магнитное поле статора вращается не плавно, а шагами. Это доступно продемонстрировано на этом фрагменте видео.
Наглядно это можно объяснить с помощью двух магнитов. Магнит статора как бы тянет к себе ротор. При этом магнит статора перемещается скачками и ждет пока ротор приблизиться, потом совершает следующий скачок. При этом в момент скачка дистанция между магнитами увеличивается, а их магнитное взаимодействие снижается, а при приближении магнитное взаимодействие увеличивается. Из-за этого и получаются пульсации момента. Если сделать движение более равномерным, выдерживая между “магнитами” постоянную дистанцию, усилие между магнитами пульсировать не будет, и движение будет происходить с меньшими потерями. Благодаря синусоидальному возбуждению, и достигается плавность вращения магнитного поля статора, что и дает эффект.
Возникает вопрос, как получить трехфазную синусоиду с управляемой частотой и амплитудой? Чтобы управлять трехфазным двигателем с помощью синусоидальных токов, для каждой фазы требуется генерировать независимые напряжения. Это делается с помощью трех полумостов, по одному на каждый вывод двигателя. Каждый полумост состоит из двух ключей (верхний и нижний), обычно это MOSFET транзисторы.
Для генерации определенного уровня напряжения используется ШИМ (PWM). В зависимости от скважности ШИМ можно управлять средним напряжением Vout. Но форма сигнала Vout будет повторять сигнал ШИМ, т.е. будет прямоугольной как ШИМ сигнал, а не гладкой. Если это напряжение подать на низкочастотный фильтр, то на выходе фильтра будет напряжение пропорциональное коэффициенту заполнения ШИМ верхнего ключа. Управляя скважностью ШИМ можно получить произвольную форму напряжения на выходе, в том числе и требуемое напряжение синусоидальной формы.
По некоторым причинам, в устройствах управления двигателем не используют фильтры низких частот. Во-первых, сам двигатель действует как фильтр. Индуктивность и сопротивление обмоток двигателя создают RL фильтр. К тому же механическая инерция двигателя и нагрузка создают “механический” фильтр низких частот. При достаточно большой частоте PWM, флуктуации скорости ротора будут абсолютно не значительные. Во-вторых, Протекание тока через низкочастотный фильтр, например RC-фильтр, привело бы к существенным потерям мощности на самом фильтре.
Поскольку при генерации PWM используется комплементарная работа двух ключей (верхнего и нижнего) нужно учесть тот факт, что для закрытия ключа требуется некоторое время. Поэтому нужно выключать открытый ключ, и через некоторое время, необходимое для его закрытия, открывать комплементарный ключ. Это время получило термин Dead-time. У микроконтроллера STM32 этот вопрос решает таймер, который занимается генерацией PWM.
Теперь перейдем непосредственно к генерации синусоиды. Зная положение ротора в данный момент времени, можно математическим путем вычислять амплитуду (скважность PWM) для каждой из трех фаз. Однако математические вычисления занимают много времени и поэтому поступают иначе. Можно создать таблицу, в которую поместить заранее вычисленную синусоиду для всех трех фаз.
Генерировать синусоиды для каждой фазы – это прямой метод, но есть более эффективный способ. Мы будем генерировать три синусоидальных напряжения вывод-вывод (дифференциальное напряжение между двумя выводами) со сдвигом фазы на 120 градусов между ними. Таблицы 3-1 3-2 показывают, как этого можно достичь, не делая полные синусоиды для каждого вывода двигателя.
На рисунке 3-3 наглядно изображен этот алгоритм в сравнении с блочной коммутацией (как для BLDC).
У такого подхода есть два преимущества:1) максимальная амплитуда сгенерированного напряжения выше, чем при генерации чистой синусоиды на каждой фазе. Как следствие получим более высокий вращающий момент и скорость.2) Каждый вывод двигателя треть времени подключен к земле, что сокращает потери мощности на коммутацию.
При создании таблицы значений нужно найти компромисс между объемом таблицы и скоростью работы с ней. Поскольку форма волны одинакова для всех трех фаз, и отличается только сдвигом на 120 градусов, то можно сохранять в таблице только одну волну и использовать ее для расчета всех трех выходных напряжений. Однако, для сокращения времени на вычисления, принято решение сохранить в таблице значения для всех трех фаз. Так обеспечивается наиболее быстрая обработка данных. Используемая в примере таблица «синусов» имеет 192 значения для каждой фазы. Т.е. генерируемый сигнал будет разбит на секции и меть ступенчатую форму.
Этого вполне достаточно. При необходимости Вы можете скорректировать таблицу.
Таким образом, за один электрический оборот нам придется 192 раза вычислять и изменять значение PWM для каждой из трех фаз.
При расчете PWM для каждой фазы, нужно учитывать и величину подаваемой на двигатель мощности. В примере в качестве регулятора мощности используется сигнал с потенциометра. При реализации замкнутой системы, например, со стабилизаций оборотов, этот показатель будет вычисляться математически с учетом текущей нагрузки, требуемых оборотов и параметров ПИД регулятора.
Было бы идеально, если датчик положения ротора мог в любой момент информировать микроконтроллер о текущем положении ротора. В данном случае мы не имеем такой возможности. Три датчика Холла изменяют свое состояние 6 раз за один электрический оборот. Между этими событиями положение ротора достоверно не известно. Для определения текущего положения ротора между срабатываниями датчиков, мы вынуждены производить вычисления с учетом текущей скорости вращения ротора.
Для того чтобы генерировать напряжение, подаваемое на выводы двигателя нужной частоты, нужно знать скорость вращения двигателя. Для определения скорости вращения используются датчики положения. Вычисляя время между двумя переключениями датчиков положения (будем считать, что скорость вращения ротора за это время не изменяется), можно рассчитать частоту, с которой нам надо генерировать выходной сигнал. Таким образом, зная скорость, мы можем вычислить положение ротора в любой момент времени. Скорость вращения ротора может изменяется, и мы вынуждены периодически подстраивать выходное напряжение в соответствии с реальным положением ротора. Такая подстройка называется фазовая подстройка.
Удобнее всего фазовую подстройку выполнять, когда контроллер точно знает реальное положение ротора. В случае с тремя датчиками Холла – это момент изменения состояния датчиков. Именно в этот момент можно узнать точный угол ротора. Подстройка выполняется путем коррекции индекса положения в таблице выходных значений (в таблице синусов).
В момент старта скорость ротора не известна до тех пор, пока не произойдет последовательно два изменения состояния датчиков холла. Чтобы обеспечить нормальный запуск двигателя, пока скорость вращения ротора не известна, применяется блочная коммутация. Т.е. контроллер управляет двигателем как (BLDC). Этот метод был описан ране. Пример для STM32 найдете здесь. Карта напряжений, используемая в режиме блочной коммутации, показана на рис.3-3(штриховая синяя линия) на фоне с синусоидальным напряжением. Как только скорость вращения ротора будет определена, происходит переход к синусоидальному возбуждению.
Данный алгоритм позволяет программно установить угол опережения коммутации, чтобы настроить фазу синусоиды и заставить ее опережать ротор. Подбором угла опережения можно добиться максимальной скорости или эффективности двигателя. В примере этот угол не изменяется на протяжении все работы. Но, он программно доступен и при необходимости его можно корректировать на ходу, например, в зависимости от текущей скорости вращения ротора двигателя.
Скачать пример можно по этой ссылке: https://github.com/avislab/STM32F103/tree/master/Example_PMSM
Как и в предыдущем примере таймер TIM1 занимается генерированием PWM сигналов для 6 ключей. Так же TIM1 обеспечивает Dead-Time и отключает выходы таймера, генерирующие PWM сигналы, при перегрузке по току. Сигнал о перегрузке по току подается на вход таймера TIM1_BKIN.
Генерирование выходных напряжений заданной формы для трех фаз двигателя выполняется путем изменения скважности PWM. В таблице PMSM_SINTABLE храниться 192 значений. Т.е. за один электрический оборот нужно 192 раза изменять скважность PWM для каждой из трех фаз. Таймер TIM4 отмеряет требуемое время и вызывает обработчик прерывания TIM4_IRQHandler, где и выполняются необходимые вычисления и установка новых значений PWM для всех трех фаз, и выполняется приращение индекса положения в таблице синусов PMSM_SinTableIndex.
Для того чтобы сообщить таймеру TIM4 необходимое время, нужно знать с какой скоростью вращается ротор. Таймер TIM3 используется для определения скорости вращения. Таймеры TIM3 и TIM4 тактируются одинаково. Это упрощает работу с ними. Таймер TIM4 должен “шагать” по таблице синусов (PMSM_SINTABLE) с такой скоростью, чтобы пройти все 192 пункта таблицы за один полный электрический оборот.
Поскольку у нас есть датчики положения, мы можем в определенном положении запустить таймер счетчик TIM3 и считать с него счетчик при завершении полного оборота. Затем значение этого счетчика разделить на 192 и получить число, которое нужно задать таймеру TIM4. Поскольку TIM3 и TIM4 настроены на одинаковую частоту, прерывание TIM4 будет срабатывать 192 раза за электрический оборот. Что и требуется.
Поскольку датчики положения изменяют свое состояние 6 раз за электрический оборот, мы можем измерять время необходимое для прохождения не полного оборота, а 1/6 оборота. И делить значение счетчика на 32 (192/6=32). Таким образом, измерение скорости будет выполняться 6 раз за один электрический оборот.
Сигналы датчиков Холла генерируют прерывания. Обработчик прерывания определяет текущее актуальное положение ротора, считывает данные с таймера TIM3, корректирует скорость работы TIM4, и выполняет фазовую подстройку путем смещения индекса положения в таблице синусов PMSM_SinTableIndex. Поскольку частота вращения ротора изменяется, работа таймера TIM4 может вызывать смещение выходного напряжения по фазе. Т.е. выходная синусоида будет отставать или опережать актуальное положение ротора. Для устранения этого эффекта применяется фазовая подстройка. Поскольку в момент изменения состояния датчиков Холла мы точно знаем актуальное положение ротора, можно скорректировать текущее положение в таблице синусов путем коррекции PMSM_SinTableIndex. Соответствие данных датчиков Холла и положение в таблице синусов определено в таблицах PMSM_STATE_TABLE_INDEX_FORWARD и PMSM_STATE_TABLE_INDEX_BACKWARD для прямого и обратного направления вращения ротора.
Схема и двигатели, используемые в этом примере точно такие же, как и в предыдущем примере. Это позволит сравнить эффективность двух способов управления бесколлекторными двигателями с постоянными магнитами.
Примечание: Вопросы проектирования силовой части регулятора в этой статье не рассматриваются. Статья затрагивает лишь вопросы программной реализации управления PMSM. Пример принципиальной схема силовой части будет рассмотрен отдельно.
Возбуждение бесколлекторного двигателя с постоянными магнитами синусоидальными токами имеет несомненные преимущества. И позволяет повысить эффективность работы двигателя. Коррекция угла опережения (timing), позволяет находить компромисс между максимальным моментом на валу и скоростью вращения ротора.
Схема керування безколекторним двигуном BLDC, PMSM на STM32
Скачать пример можно по этой ссылке: https://github.com/avislab/STM32F103/tree/master/Example_PMSM
Смотри также ВИДЕО:
Бесколлекторные моторы “на пальцах”
Что такое бесколлекторные моторы и как управлять бесколлекторными моторами:
Успехов.
Смотри также:
Смотри также:
www.avislab.com
С объектами, приводимыми в движение электрическими машинами, человек постоянно сталкивается как в сфере промышленности и транспорта, так и в быту. Устройства с электроприводом — это стиральная машина, вентилятор, кофемолка, пылесос и т.д.
Так как основным средством приведения в движение рабочих машин является электрический двигатель, то, соответственно, основным типом привода служит электрический привод или сокращенно электропривод.
Основные элементы управляемого электропривода представлены на рисунке 1.
Рис. 1. Обобщенная схема управляемого электропривода
Требуемые значения регулируемых переменных задаются с помощью задающего устройства.
На основании этих значений и сигналов обратной связи устройство управления формирует сигналы на силовой преобразователь (драйвер), предназначенный для создания регулирующего воздействия на электродвигатель.
Электродвигатель преобразует электрическую энергию в механическую. В качестве электродвигателя могут использоваться асинхронные и синхронные двигатели, двигатели постоянного тока, шаговые двигатели и др.
Механическая энергия от электродвигателя передается к исполнительному механизму через механическое передаточное устройство (механический редуктор, цепная передача, ходовая пара «винт-гайка» и т.д.). Оно позволяет, при необходимости, согласовать выходные параметры двигателя (частоту вращения и момент) в параметры, требуемые для приведения в движение исполнительного механизма. Например, преобразовать вращение вала двигателя в линейное перемещение каретки.
Датчики обратной связи Д1 и Д2 возвращают в устройство управления информацию, соответственно, о состоянии двигателя и исполнительного механизма. Строго говоря, во многих системах используется только один из этих датчиков.
Отметим, что часто под приводом понимают только устройство управления, силовой преобразователь и датчик обратной связи Д1.
Ключевым элементом управляемого электропривода является устройство управления. В современных приборах это, как правило, микроконтроллер. Решения на жесткой логике и аналоговые решения, популярные до 90-х годов, теоретически возможны, но выглядят явным анахронизмом.
Прежде чем рассматривать линейку микроконтроллеров, рекомендуемых компанией STMicroelectronics для задач управления приводами, попытаемся сформулировать некоторые основные требования к ним:
1. Устройство управления должно получать от задающего устройства некую информацию. Это могут быть: требуемая скорость движения исполнительного механизма, выбор варианта режима работы, коэффициенты автоматического регулирования и любая другая информация, необходимая для автономного управления приводом. В качестве задающего устройства могут быть компьютер, другие контроллеры многопроцессорной системы, пульт дистанционного управления и другие, вплоть до нескольких кнопок или регуляторов бытового прибора. В первом случае нужен стандартный интерфейс: USB, SPI, I2C. Во втором, оптимальным вариантом представляется протокол CAN. Для пульта дистанционного управление необходим IrDA — канал передачи данных в инфракрасном диапазоне. Для кнопок и регуляторов — наличие цифровых линий ввода-вывода и аналогового ввода.
2. Устройство управления должно получать информацию от датчиков обратной связи и выдавать управляющие воздействия на электродвигатель через силовой драйвер. Поскольку эти процессы проходят непрерывно, то желательно минимизировать вычислительную нагрузку от этих операций на микроконтроллер. Именно для автономной реализации этих задач во многих микропроцессорах (не только STMicroelectronics) используются модули захвата/сравнения/ШИМ (или Capture/Compare/PWM). При выборе микроконтроллера необходимо соотносить требования решаемой задачи и параметры таймерной системы: количество входов захвата, выходов сравнения, выходов сигналов с широтно-импульсной модуляцией, а также количество и разрядность внутренних таймеров общего назначения.
3. В большинстве случаев при подключении электродвигателя используют падение напряжения на токовом датчике. Эти сигналы редко применяются в контуре управления, но их желательно использовать в качестве сигналов аварийного отключения. Соответственно, микроконтроллер, используемый как устройство управления электроприводом, должен иметь достаточное количество входов аналогового ввода (АЦП или аналоговых компараторов).
Рассуждения о том, какая разрядность (8, 16 или 32 бита) и форма представления данных (фиксированная или плавающая точка) оптимальны для задач управления приводом, имеют долгую историю. В основе алгоритмов автоматического регулирования лежит операция свертки — арифметическая сумма произведений. По мнению автора, восьми разрядов достаточно для представления коэффициентов и непосредственно данных. Но их произведение и свертка, в целом, уже будут 16-разрядными.
Казалось бы — 8-разрядные микропроцессоры должны отживать. Но это не совсем так. Применение отечественными разработчиками микроконтроллеров для управления приводами началось в конце 80-х годов. Причем, альтернативы отечественным 8-ми разрядным микроконтроллерам 1816ВЕ51 (аналог — Intel8051) просто не было. Но практически сразу появилась программная библиотека 16-разрядной арифметики, которая подключалась к основной программе при сборке. Конечно, это было вынужденное решение, но к моменту доступности 16-разрядных микроконтроллеров (середина 90-х) у всех фирм, работавших «по приводам», был весьма объемный багаж программных наработок именно для 8-разрядных устройств, отбросить который было непросто, да и незачем. Кроме того, в обработке сигналов существует принцип нормирования данных — если на входе используются 8-разрядные данные, но и на выходе должны быть 8-разрядные данные. А тогда разрядность промежуточных данных — внутренний вопрос алгоритмов обработки. Отсюда вытекает вывод — в тех задачах управления приводами, где достаточно восьми разрядов для представления данных, оптимальным представляется применение именно 8-разрядных микроконтроллеров при обязательном наличии в системе команд операций 16-разрядной арифметики.
Основная область применения 32-разрядных микроконтроллеров (для управления приводами) будет рассмотрена ниже.
В линейке компании STMicroelectronics представлены как 8-, так и 16- и 32-разрядные микроконтроллеры. Остановимся на наиболее современных их них: 8-разрядном семействе STM8S и 32-разрядном семействе STM32F.
Архитектура данного семейства довольно подробно рассмотрена в [1]. Мы рассмотрим их с точки зрения управления приводами. Состав семейства и технические характеристики входящих в него микросхем также представлены в [1]. На рисунке 2 приведена карта этого семейства.
Рис. 2. Микроконтроллеры семейства STM8S
В семействе можно выделить два подмножества: экономичная линия (S105) и производительная линия (S207 и S208).
Экономичная линия: Flash-память для хранения программ: 16К или 32К; ОЗУ данных — 2К; EEPROM-память данных — 1К (используется для хранения постоянных значений: коэффициентов, таблиц пересчета и пр.). Корпуса — 32, 44 или 48 Производительная линия: Flash-память для хранения программ: 32К, 64К или 128К, ОЗУ данных — 2К, 4К или 6К; EEPROM-память данных — 1К; 1,5К или 2К. Корпуса — 32, 44, 48, 64 или 80 выводов.
Ключевые параметры:
Отметим следующее: внутренняя структура периферии отдельных представителей этого семейства в целом идентична, но различное число внешних выводов накладывает ограничение на количество универсальных линий ввода/вывода и одновременное использование ряда периферийных устройств. То есть многие линии имеют альтернативное использование. Кроме того, для микросхем с малым числом внешних выводов имеется основная и ряд альтернативных конфигураций периферийных модулей, переключаемых путем настройки соответствующих программных регистров.
В целом же таймерная и аналоговая подсистемы, набор стандартных последовательных интерфейсов, достаточное количество универсальных входов/выходов позволяют с успехом использовать это семейство для решения задач управления одним или несколькими приводами, связанными единым алгоритмом работы. Наличие в серии S208 интерфейса CAN позволит интегрировать автономные привода в распределенные многопроцессорные системы.
Отметим также ожидаемое в ближайшее время появление на рынке экономичной серии S103 с объемом Flash-памяти 4К и 8К в 20- и 32-выводных корпусах. Микроконтроллеры этой серии ориентированы на наиболее простые и экономичные приложения.
Семейство микроконтроллеров STM32F, в котором используется ARM-ядро CORTEX-M3, — один из первых случаев внедрения 32-разрядной ARM-архитектуры в приложения управления приводами, где до этого применялись в основном 8-ми или 16-ти разрядные микроконтроллеры. Особенности архитектуры этого семейства подробно рассматривались в [2]. В настоящее время это семейство насчитывает более 50 микроконтроллеров, технические характеристики которых приведены в [3]. На рисунке 3 приведена карта этого семейства.
Рис. 3. Микроконтроллеры семейства STM32F
Отличительные особенности архитектуры семейства STM32F с точки зрения задач управления приводами (помимо ARM-ядра):
Область применения 32-разрядных микроконтроллеров — прецизионные приводы, а именно — оборудование для точной механики, оптических систем, научного приборостроения. Еще 15 лет назад принципу «один двигатель — один микроконтроллер» альтернативы не было. Кроме того, ограниченные вычислительные ресурсы не позволяли реализовывать уже существовавшие алгоритмы нетривиального регулирования (адаптивные, с изменяемыми параметрами и прочие) даже для одного привода. Разработчики сложных систем стремились «положить» в один микроконтроллер управление несколькими приводами, поскольку это избавляло от необходимости строить многопроцессорную систему. Но даже если состав периферии позволял это сделать, то камнем преткновения становился вычислительный ресурс.
Возможности приборов класса STM32F позволяют не только управлять многими приводами, увязывая работу в единый алгоритм, но и использовать при этом достаточно сложные в вычислительном отношении алгоритмы обработки.
Силовые преобразователи компании STMicroelectronics можно разбить на две основные группы. К первой относятся одинарные мосты — L6201/02/03, которые, как правило, используются для управления однофазными двигателями постоянного тока. При этом электрические параметры существенно зависят от типа используемого корпуса. В таблице 1 представлены основные параметры одинарных мостов.
Таблица 1. Одинарные мосты STMicroelectronics
L6201 | 1 | 0,9 | 0,3 |
L6202 | 1,5 | 1,3 | 0,3 |
L6203 | 4 | 2,3 | 0,3 |
Ко второй группе относятся двойные мосты — L6204/05/06/07. Их используют для управления двухфазными двигателями, например, шаговыми. В таблице 2 приведены основные параметры двойных мостов.
Таблица 2. Двойные мосты STMicroelectronics
L6204 | 0,5 | 1,23 | 1,2 |
L6205/06*/07** | 2,8 | – | 0,3 |
* L6206 отличается от L6205 наличием встроенной программируемой защиты по току. ** L6207 имеет два интегрированных ШИМ контроллера. |
В принципе силовой преобразователь — компонент, в значительной степени зависящий от типа используемого электродвигателя. В качестве примера рассмотрим управление коллекторным (щеточным) двигателем постоянного тока. Частота вращения вала такого двигателя зависит от величины напряжения, приложенного к обмоткам, а направление — от его полярности. В настоящее время редко регулируют именно величину напряжения — используют сигнал с максимальной амплитудой, но с широтно-импульсной модуляцией (ШИМ). Скважность ШИМ-сигнала определяет частоту вращения. Обобщенная структура привода (полный мост) коллекторного двигателя постоянного тока приведена на рисунке 4.
Рис. 4. Структура привода коллекторного двигателя постоянного тока
Очевидно, что транзисторы по отношению к микросхеме драйвера могут быть как внешними (при работе с мощными двигателями), так и интегрированными. В качестве примера рассмотрим полномостовой драйвер L6203 компании STMicro с рабочим током до 4 А. Его структура и таблица состояний представлены на рисунке 5.
Рис. 5. Структура полномостового драйвера L6203
Если на вход разрешения ENABLE подан высокий уровень напряжения, а состояния входов IN1 и IN2 различны, то через двигатель протекает ток и происходит вращение вала. Если состояния на входах одинаковы, то обмотки двигателя замкнуты между собой через землю или питание (режим динамического торможения). Будем считать, что протекание тока от OUT1 к OUT2 — это прямое вращение, а наоборот — обратное.
Таким образом, если двигатель управляется от высокого уровня логического сигнала, то для его прямого включения необходимо подать ШИМ на вход IN1 и низкий уровень на вход IN2. Для обратного вращения — наоборот. Останов — два низких уровня. Если двигатель управляется от низкого логического сигнала, то для его прямого включения необходимо подать ШИМ на вход IN1 и низкий уровень на вход IN2. Останов — два высоких уровня.
Возможно также управление через вход разрешения ENABLE, но это менее эффективно, поскольку при простом выключении всех транзисторов обмотки двигателя просто «повисают в воздухе» и вал продолжает вращаться по инерции. При этом и останов, и выход двигателя на заданный режим занимают существенно большее время.
Принцип использования драйверов с внешними транзисторами идентичен. С силовыми компонентами (драйвера, MOSFET- и IGBT-транзисторы, IGBT-модули), выпускаемыми компанией STMicroelectronics, можно познакомиться в [4].
Мы рассмотрели управление простейшим однофазным двигателем. При управлении многофазными (например, шаговыми) двигателями необходимо несколько ШИМ-сигналов, сдвинутых по отношению друг к другу определенным образом. Напомним, что генерация ШИМ-сигналов в микроконтроллерах, а также увязка их в заданную временную циклограмму осуществляется средствами модулей захвата/сравнения/ШИМ.
Если обратная связь снимается с вала двигателя (датчик Д1 на рис. 1), то для стабилизации частоты вращения в качестве датчиков обратной связи используются либо тахогенераторы (аналоговый сигнал, пропорциональный угловой скорости), либо частотные датчики. В качестве частотных датчиков главным образом применяются датчики Холла либо оптоэлектронные датчики. Здесь выходной сигнал имеет прямоугольную форму. Есть два способа измерения: измерение периода импульса (частоты) и подсчет числа импульсов за определенный период времени (измерение угловой скорости). Оба эти способа в микроконтроллерах также реализуются средствами модулей захвата/сравнения/ШИМ.
Компания STMicroelectronics поддерживает свои изделия комплексом программных и аппаратных средств разработки. Стартовые наборы STM8/128-MCKIT и STM3210B-MCKIT являются недорогими платформами, спроектированными для ускорения разработки приложений управления приводами, основанных на микроконтроллерах семейств STM8S и STM32F, соответственно.
В комплект набора STM3210B-MCKIT входят следующие модули:
Компания STMicroelectronics предлагает широкий спектр компонентов, предназначенных для построения управляемых электрических приводов: микропроцессоры, специализированные микросхемы, активные дискретные компоненты, а также инструментальные средства, способствующие ускорению освоения как конкретной модели микроконтроллера, так и определенной области его применения.
1. Савичев А. Новые 8-битные микроконтроллеры семейства STM8S// Новости электроники. 2009. №2.
2. Бородулин А. STM32 — универсальное решение на ARM-ядре// Новости электроники. 2008. №8.
3. STM32 MCU Family// brstm320808.pdf — документ, доступный на сайте компании ST Microelectronics.
4. Motor Control. Selection Guide// sgmotor1008.pdf- документ, доступный на сайте компании ST Microelectronics.
Получение технической информации, заказ образцов, поставка — e-mail: [email protected]
Рубрика: новинки элементной базы Метки: ARM, STM, Supervisor, Микроконтроллеры, Управление питанием
Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее
www.compel.ru
18 Ноя
Плата X-NUCLEO-IHM03A1 представляет собой высокопроизводительное и надёжное решение, обеспечивающее полностью цифровое управление движением за счёт формирования профиля скорости, вычисления позиционирования и полного набора функций защиты.
Устройство совместимо с разъёмом Arduino UNO R3, а также поддерживает возможность добавления дополнительных дочерних плат для совместного управления тремя шаговыми двигателями с помощью одной платы STM32 Nucleo.
Внутренняя архитектура Системы-в-Корпусе powerSTEP01 |
Отличительные особенности платы powerSTEP01:
Область применения:
Запросить образцы, средства разработки или техническую поддержку
Документация на плату расширения X-NUCLEO-IHM03A1 (англ.)
Документация на powerSTEP01 (англ.)
www.ebvnews.ru