Что такое ШИМ-регулятор и как он работает. Где применяются ШИМ-регуляторы. Как настроить ШИМ-регулятор для различных задач. Какие бывают типы ШИМ-регуляторов. Преимущества использования ШИМ-регуляторов.
Что такое ШИМ-регулятор и принцип его работы
ШИМ-регулятор (широтно-импульсный модулятор) — это электронное устройство для управления мощностью, подаваемой на нагрузку, путем изменения скважности импульсов. Принцип работы ШИМ-регулятора основан на быстром включении и выключении питания нагрузки.
Как работает ШИМ-регулятор:
- Генерируется последовательность прямоугольных импульсов фиксированной частоты (обычно 20-30 кГц).
- Изменяется соотношение длительности импульса и паузы (скважность).
- При увеличении длительности импульса увеличивается мощность, подаваемая на нагрузку.
- При уменьшении длительности импульса мощность снижается.
Частота ШИМ выбирается достаточно высокой, чтобы нагрузка не успевала реагировать на отдельные импульсы. Это позволяет плавно регулировать мощность в широком диапазоне.
Области применения ШИМ-регуляторов
ШИМ-регуляторы нашли широкое применение в различных областях электроники и электротехники:
- Регулирование яркости светодиодов и ламп
- Управление скоростью вращения электродвигателей
- Регулирование мощности нагревательных элементов
- Зарядные устройства для аккумуляторов
- Преобразователи напряжения
- Системы управления в автомобильной электронике
- Импульсные блоки питания
Где конкретно применяются ШИМ-регуляторы? Рассмотрим некоторые примеры:
Управление светодиодным освещением
ШИМ-регуляторы позволяют плавно изменять яркость светодиодных лент и светильников. Это дает возможность создавать различные световые эффекты и экономить электроэнергию.
Регулировка оборотов электродвигателей
С помощью ШИМ можно точно контролировать скорость вращения коллекторных и бесколлекторных двигателей постоянного тока. Это используется в электроинструментах, станках с ЧПУ, роботах.
Управление нагревательными элементами
ШИМ-регуляторы позволяют точно поддерживать заданную температуру в системах отопления, паяльных станциях, 3D-принтерах и других устройствах с нагревательными элементами.
Основные типы ШИМ-регуляторов
Существует несколько основных типов ШИМ-регуляторов:
- Аналоговые — на основе компараторов и таймеров
- Цифровые — на базе микроконтроллеров
- Интегральные — в виде специализированных микросхем
Каковы особенности каждого типа ШИМ-регуляторов?
Аналоговые ШИМ-регуляторы
Строятся на операционных усилителях, компараторах и RC-цепочках. Преимущества: простота, низкая стоимость. Недостатки: ограниченные возможности настройки, температурная нестабильность.
Цифровые ШИМ-регуляторы
Реализуются программно на микроконтроллерах. Преимущества: гибкость настройки, стабильность параметров. Недостатки: более высокая стоимость, необходимость программирования.
Интегральные ШИМ-регуляторы
Выпускаются в виде специализированных микросхем. Преимущества: оптимизированы под конкретные задачи, высокая надежность. Недостатки: ограниченные возможности изменения параметров.
Ключевые параметры ШИМ-регуляторов
При выборе и настройке ШИМ-регулятора важно учитывать следующие параметры:
- Частота ШИМ
- Разрядность ШИМ
- Максимальный ток нагрузки
- Напряжение питания
- Диапазон регулирования
Как влияют эти параметры на работу ШИМ-регулятора?
Частота ШИМ
Определяет скорость переключения. Высокая частота (>20 кГц) позволяет избежать слышимого шума, но увеличивает потери на переключение. Низкая частота может вызывать мерцание светодиодов или вибрацию двигателей.
Разрядность ШИМ
Влияет на плавность регулирования. Чем выше разрядность, тем больше ступеней регулировки доступно. Типичные значения: 8 бит (256 уровней), 10 бит (1024 уровня), 12 бит (4096 уровней).
Максимальный ток нагрузки
Определяет мощность, которую может регулировать ШИМ. Важно выбирать регулятор с запасом по току для надежной работы и снижения нагрева.
Настройка ШИМ-регулятора для различных применений
Правильная настройка ШИМ-регулятора критически важна для эффективной работы системы. Рассмотрим особенности настройки для разных задач:
Регулирование яркости светодиодов
Для управления светодиодами рекомендуется:
- Частота ШИМ: 200-1000 Гц для мощных светодиодов, >20 кГц для маломощных
- Разрядность: 8-10 бит для плавного диммирования
- Учитывать нелинейность восприятия яркости человеческим глазом
Управление скоростью двигателя
Для регулирования оборотов электродвигателей важно:
- Частота ШИМ: 10-20 кГц для снижения акустического шума
- Обеспечить плавный старт для снижения пусковых токов
- Реализовать обратную связь по скорости для точного поддержания оборотов
Регулирование температуры нагревателя
При управлении нагревательными элементами следует:
- Использовать низкую частоту ШИМ (1-10 Гц) для снижения тепловых потерь
- Реализовать ПИД-регулирование для точного поддержания температуры
- Учитывать тепловую инерцию системы при настройке параметров регулятора
Преимущества использования ШИМ-регуляторов
ШИМ-регуляторы обладают рядом важных преимуществ по сравнению с другими методами регулирования мощности:
- Высокий КПД (до 95-99%)
- Широкий диапазон регулирования (0-100%)
- Низкие потери мощности на регулирующем элементе
- Возможность управления как малыми, так и большими мощностями
- Простота реализации на современной элементной базе
Почему ШИМ-регуляторы так эффективны?
Высокий КПД ШИМ-регуляторов обусловлен тем, что силовой ключ работает в ключевом режиме — он либо полностью открыт, либо закрыт. В открытом состоянии падение напряжения на ключе минимально, а в закрытом через него не течет ток. Это позволяет снизить потери мощности на регулирующем элементе.
Широкий диапазон регулирования достигается за счет изменения скважности импульсов в пределах от 0 до 100%. При этом минимальная мощность ограничена только паразитными параметрами схемы.
Ограничения и недостатки ШИМ-регуляторов
Несмотря на множество достоинств, у ШИМ-регуляторов есть и определенные недостатки:
- Генерация электромагнитных помех
- Пульсации выходного тока/напряжения
- Акустический шум при низких частотах ШИМ
- Сложность реализации гальванической развязки
Как минимизировать недостатки ШИМ-регуляторов?
Для снижения электромагнитных помех рекомендуется:
- Использовать высокие частоты ШИМ (>20 кГц)
- Применять экранирование и фильтрацию
- Оптимизировать разводку печатной платы
Пульсации выходного сигнала можно уменьшить с помощью LC-фильтров на выходе регулятора. Акустический шум устраняется повышением частоты ШИМ выше слышимого диапазона (>20 кГц).
Драйвер двигателя ШИМ регулятор двигателя
ООО «ЭЛГРАД Про» Производственные поставки пн — пт: 900—1730
Магазин «ВольтМастер»
Розничные продажи пн — пт: 900—1900сб: 1000—1700
График работы в праздники
ООО «ЭЛГРАД Про»
Производственные поставки
22февраля ср 900—1600
23февраля чт выходной
24февраля
25февраля сб выходной
26февраля вс выходной
Магазин «ВольтМастер»
Розничные продажи
22февраля ср 9 00—1800
23февраля чт выходной
24февраля пт 1000—1700
25февраля сб 1000—1700
26февраля вс выходной
ШИМ-регуляторы 2А 15В
Оба регулятора чертовски похожи, тем не менее чуть отличается топология платы, номиналы элементов, да и сами эти элементы. Но отличия по сути чисто символические, за одним исключением — у второй платы выносной регулятор, что бывает удобно. При этом в обе платы можно впаять и переменные резисторы, и разъем для выносного регулятора.
Девайс номер один представляет собой платку на классическом TL555, силовой ключ — 9926A, пара мосфетов 20В/6.5А в одном корпусе (в связи с этим я просто поражаюсь, что в параметрах указано всего 2А, а не 12А ). Перменный резистор с выключателем. Конденсатор 100мкФ, 25В. Размеры платы 32х32мм, между центрами отверстий — 26х26мм.
фоточки:
Крупнее:
Если я правильно понимаю, то тут можно увидеть еще и самовосстанавливающийся предохранитель на 2А. Но я могу круто ошибаться, например это может быть и 2А 80В, а может и наоборот — 8А 20В. Или вообще не предохранитель. Отпишитесь в комментах кто точно знает.
Девайс номер два отличается выносным регулятором и установленной 75551D, которая совместама с 555 таймером, но имеет улучшенные параметры, если верить даташиту. Разъем с шагом 2.5мм, Резистор B100k, длина провода чуть меньше 20см. Резистор без выключателя, поэтому на плате стоит перемычка там где были контакты выключателя. Конденсатор 220мкФ, 25В
Теперь тесты. Честно говоря, забыл проверить потребляемый второй платкой ток, первая ест до 15мА. частота ШИМ — 23-29кГц.
Схему, если честно, чертовски не хочется разрисовывать, не думаю что там изобретено что-то инновационное, скорее всего классическая даташитовская схема типа этой, ну плюс-минус номиналы и прочая несущественная обвязка
Как это работает.
Осциллограмма на нагрузке 100 Ом:
Попробуем подключить светодиодную полоску
Понятно, что на видео не получится нормально увидеть как оно работает.
Ну и вентилятор:
Изолента на тахометре — потому что там кнопка без фиксации.
Итог: рабочий ШИМ на 555 таймере для тех кому лень паять такую мелочёвку. По факту может оказаться дешевле чем 555 таймер + переменник с выключателем в оффлайне. Частота — те самые «заветные» 20-30кГц, которые пока еще видит не всякий человеческий глаз. Не так давно я нечто подобное делал сам, сейчас пожалуй закуплю пару штук в коробочку, на будущее, чтобы месяц-другой не ждать. Ну или поищу что-то более мощное. Вот так вот китайцы убивают позывы к радиолюбительству 😉
Традиционно оговорюсь, что покупать в китае и у этого продавца может быть невыгодно в данный момент или из вашей страны, либо у вас по окном китайцы торгуют теми же товарами но по рублю ведро. Данные регуляторы были выбраны при покупке, исходя из цены и рейтинга продавца.
Контроллер поворотной шайбы— документация Navigation 2 1.0.0
Редактировать
Исходный код на Github.
nav2_rotation_shim_controller
проверит приблизительную разницу курса относительно робота и вновь полученного пути. Если в пределах порога, он передаст запрос на primary_controller
для выполнения задачи. Если он выходит за пороговое значение, этот контроллер будет вращать робота на месте в направлении этого направления пути. Как только он окажется в пределах допуска, он передаст управление-исполнение с этого контроллера поворотной прокладки на подключаемый модуль основного контроллера. На этом этапе основной плагин робота возьмет на себя управление для плавного перехода к задаче.
Контроллер RotationShimController
наиболее подходит для:
Роботов, которые могут вращаться на месте, таких как дифференциальные и всенаправленные роботы.
Предпочтение вращаться на месте, когда начинается отслеживание нового пути, направление которого значительно отличается от текущего направления робота, или когда настройка контроллера для его задачи затрудняет крутые повороты.
Использование планировщиков, не реализуемых с кинематической точки зрения, таких как NavFn, Theta* или Smac 2D (планировщики, реализуемые, такие как Smac Hybrid-A* и State Lattice, начнут поиск с фактического начального направления робота, не требуя поворота, поскольку их пути гарантированно управляются физическими ограничениями).
См. пакет README
для получения более полной информации.
Параметры контроллера поворотной прокладки
- angular_dist_threshold
Тип
По умолчанию
двойной
0,785
- Описание
Максимальное угловое расстояние, в радианах, от направления пути до начала поворота внутрь.
- forward_sampling_distance
Тип
По умолчанию
двойной
0,5
- Описание
Прямое расстояние в метрах вдоль пути для выбора точки отбора проб, используемой для аппроксимации направления пути
- rotate_to_heading_angular_vel
Тип
По умолчанию
двойной
1,8
- Описание
Угловая скорость вращения, в рад/с, для поворота к курсу пути
- первичный_контроллер
Тип
По умолчанию
строка
Н/Д
- Описание
Плагин внутреннего контроллера, используемый для фактического управления поведением после перехода к заголовку
- max_angular_accel
Тип
По умолчанию
двойной
3. 2
- Описание
Максимальное угловое ускорение для поворота на курс (рад/с/с)
- симулировать_вперед_время
Тип
По умолчанию
двойной
1,0
- Описание
Время в секундах для прямой имитации команды поворота для проверки на коллизии. Если обнаружено столкновение, перенаправляет управление обратно на основной плагин контроллера.
Пример
controller_server: ros__параметры: use_sim_time: Истина частота_контроллера: 20.0 min_x_velocity_threshold: 0,001 min_y_velocity_threshold: 0,5 min_theta_velocity_threshold: 0,001 progress_checker_plugin: "прогресс_чекер" target_checker_plugins: ["goal_checker"] controller_plugins: ["FollowPath"] progress_checker: плагин: "nav2_controller::SimpleProgressChecker" required_movement_radius: 0,5 traffic_time_allowance: 10. 0 цель_проверка: плагин: "nav2_controller::SimpleGoalChecker" xy_goal_tolerance: 0,25 yaw_goal_tolerance: 0,25 с состоянием: правда Путь следования: плагин: "nav2_rotation_shim_controller::RotationShimController" primary_controller: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController" angular_dist_threshold: 0,785 forward_sampling_distance: 0,5 rotate_to_heading_angular_vel: 1,8 max_angular_accel: 3.2 Simulation_ahead_time: 1.0 # Параметры первичного контроллера можно разместить здесь ниже # ...
© Copyright 2020.
Использование контроллера поворотной прокладки — Навигация 2 Документация 1.0.0
Редактировать
Обзор
Что такое контроллер поворотной прокладки?
Конфигурация контроллера поворотного шимма
Настройка основного контроллера
Демо исполнение
Обзор
В этом руководстве рассказывается, как настроить робота для использования RotationShimController
, чтобы помочь создать интуитивно понятное поведение с вращением на месте для вашего робота, когда он начинает отслеживать путь. Цель этого руководства — объяснить читателю ценность контроллера, как его настроить, как настроить с ним основной контроллер и, наконец, привести пример его использования.
Перед началом работы с этим учебным пособием настоятельно рекомендуется пройти руководство по началу работы, особенно если вы не знакомы с ROS и Nav2. Требования: последняя установка Nav2 / ROS 2, содержащая этот пакет.
Что такое контроллер поворотной прокладки?
Это было разработано из-за особенностей TEB и DWB, но применимо к любому другому типу подключаемого модуля контроллера, с которым вы хотели бы иметь вращение на месте. Поведение TEB
имеет тенденцию подбрасывать робота с небольшими поворотами или когда путь начинается с направления, сильно отличающегося от текущего, несколько неожиданным образом из-за подхода с эластичной лентой. DWB
можно настроить на любой тип поведения, но, как правило, настройка на превосходное отслеживание пути также делает его менее оптимальным для плавного перехода к новым путям в дальних направлениях — всегда есть компромиссы. Предоставление TEB и DWB лучшей отправной точки для начала отслеживания пути значительно упрощает настройку контроллеров и создает более интуитивно понятные результаты для наблюдателей.
Обратите внимание, что это не обязательно использовать с любым плагином . Многие пользователи вполне успешно обходятся без использования этого контроллера, но если робот может вращаться на месте перед тем, как приступить к выполнению своей задачи отслеживания пути (или другой задачи), это может быть выгодно.
nav2_rotation_shim_controller
проверит приблизительную разницу курса относительно робота и вновь полученного пути. Если в пределах порога, он передаст запрос на primary_controller
для выполнения задачи. Если он выходит за пороговое значение, этот контроллер будет вращать робота на месте в направлении этого направления пути. Как только он окажется в пределах допуска, он передаст управление-исполнение с этого контроллера поворотной прокладки на подключаемый модуль основного контроллера. На этом этапе основной плагин робота возьмет на себя управление для плавного перехода к задаче.
RotationShimController
наиболее подходит для:
Роботов, которые могут вращаться на месте, таких как дифференциальные и всенаправленные роботы.
Предпочтение вращаться на месте, когда начинается отслеживание нового пути, направление которого значительно отличается от текущего направления робота, или когда настройка контроллера для его задачи затрудняет крутые повороты.
Использование планировщиков, не реализуемых с кинематической точки зрения, таких как NavFn, Theta* или Smac 2D (планировщики, реализуемые, такие как Smac Hybrid-A* и State Lattice, начнут поиск с фактического начального направления робота, не требуя поворота, поскольку их пути гарантированно управляются физическими ограничениями).
Примечание
Regulatory Pure Pursuit имеет встроенную функцию, поэтому нет необходимости выполнять сопряжение с RPP. Однако он применим ко всем остальным. См. Плагины навигации для получения полного списка текущих плагинов контроллера.
Настройка контроллера поворотной прокладки
Этот контроллер представляет собой прокладку , поскольку он расположен между основным подключаемым модулем контроллера и сервером контроллера. Он принимает команды и предварительно обрабатывает их, чтобы перейти к заголовку, а затем передает управление выполнением основному плагину, как только это условие выполняется — действуя как простой проход.
Таким образом, его конфигурация очень похожа на конфигурацию любого другого плагина. В приведенном ниже блоке кода вы можете видеть, что мы добавили RotationShimController
в качестве плагина для отслеживания пути на сервере контроллера. Вы можете видеть, что мы также настроили его ниже с его внутренними параметрами, от angular_dist_threshold
до max_angular_accel
.
контроллер_сервер: ros__параметры: use_sim_time: Истина частота_контроллера: 20. 0 min_x_velocity_threshold: 0,001 min_y_velocity_threshold: 0,5 min_theta_velocity_threshold: 0,001 progress_checker_plugin: "прогресс_чекер" target_checker_plugins: ["goal_checker"] controller_plugins: ["FollowPath"] progress_checker: плагин: "nav2_controller::SimpleProgressChecker" required_movement_radius: 0,5 traffic_time_allowance: 10.0 цель_проверка: плагин: "nav2_controller::SimpleGoalChecker" xy_goal_tolerance: 0,25 yaw_goal_tolerance: 0,25 с состоянием: правда Путь следования: плагин: "nav2_rotation_shim_controller::RotationShimController" angular_dist_threshold: 0,785 forward_sampling_distance: 0,5 rotate_to_heading_angular_vel: 1,8 max_angular_accel: 3.2 Simulation_ahead_time: 1.0
Контроллер поворотной прокладки очень прост и имеет всего несколько параметров, определяющих условия, при которых он должен работать.
angular_dist_threshold
: Угловое расстояние (в радианах) кроме текущего направления робота и приблизительного направления пути для запуска режима вращения. Как только робот находится в пределах этого порога, управление передается плагину основного контроллера.forward_sampling_distance
: Расстояние (в метрах) от робота, на котором нужно выбрать точку на пути для приближения к начальному курсу пути. Это аналогично точке «просмотра вперед».rotate_to_heading_angular_vel
: Угловая скорость (в рад/с), при которой робот поворачивается к заданному курсу, когда активируется поведение.max_angular_accel
: Угловое ускорение (в рад/с/с), при котором робот поворачивается в заданном направлении, когда активируется поведение.Simulation_ahead_time
: Время (с) для пересылки команды вращения для проверки столкновения
Настройка основного контроллера
Есть еще один оставшийся параметр RotationShimController
, не упомянутый выше, primary_controller
. Это тип контроллера, который ваше приложение хотело бы использовать в качестве основного метода работы.