PDM регулятор

Используется алгоритм Брезенхема

Пользовательские блоки ПИД регуляторов, прочих регуляторов и для работы с ШИМ выходами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#1

Сообщение Sancho » 13.03.2018{, 10:17}

PDM регулятор, он же по-русски: Частотно-Импульсная Модуляция, ЧИМ.
Альтернатива ШИМ регуляторам - с ними у Вас меняется соотношение между длительностью "1" и "0", а при PDM длительность импульсов маленькая и постоянная, но их количество в единицу времени - меняется, но зависит от времени цикла( минимальное время равно времени цикла).
Использование алгоритма Брезенхема дало возможность равномерно распределять импульсы по времени в зависимости от входного сигнала.
Рекомендуется применять при отсутствии в системе устройств, увеличивающих время цикла типа дисплеев и т.д.
Может использоваться с любым цифровым пином. Цифровой из аналогового тоже.
В наборе два блока - с входным сигналом 0-100 и 0-255(в реальности до 254, но единицей, я думаю, можно пренебречь).
На входах блоков стоят ограничители вх. сигн., так что перебор не страшен, так-же как и недобор. :haha:
Тестовый проектик в комплекте.

Обновлено: были проблемы со вторым блоком в проекте при объявлении, исправлено.

UPD 22.01.2019
Добавлен блок для управления нагревательным элементом.
Необходим детектор нуля, пин 2, выходной оптрон по пину 6 может быть с zero cross, может без.
Переключение происходит в момент спада напряжения каждую вторую полуволну,
т.е. напряжение подаётся целыми периодами.
Имеем 2 сек - 100%, если меньше - равномерное распределение в пределах этих 2 секунд.
Вход 0-100.
Фото прилагаю. Один ньюанс на фото - я использую другой детектор нуля, по другому принципу, поэтому сигнал как-бы инвертирован. На яндексе в папке полный размер
Вложения
Тест Брезенхема 1.flp
Для переменки, с детектором нуля
(101.56 КБ) 383 скачивания
PDM_Brezenhem_v2.ubl
обновлено
(26.34 КБ) 450 скачиваний
Брезенхем_PPM_v2.flp
Тестовый пример
(111.12 КБ) 476 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

PDM регулятор

#61

Сообщение Dryundel » 17.06.2022{, 13:49}

Kot писал(а):
17.06.2022{, 12:41}
с моторами я так понимаю нужно стартовать от нуля полуволны но при этом резать ей концовку на всем её протяжении
Мысль в принципе правильная, но как это сделать? Есть идеи? На полевиках? Уж больно они капризные на переменке.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

PDM регулятор

#62

Сообщение Phazz » 17.06.2022{, 21:27}

Dryundel, симистор, только отрезать не конец волны а начало. Все уже давно придумано, в народе это устройство называют фазорезка.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

PDM регулятор

#63

Сообщение Dryundel » 17.06.2022{, 22:55}

Phazz писал(а):
17.06.2022{, 21:27}
симистор, только отрезать не конец волны а начало. Все уже давно придумано...
Ан нет. Я специально обратил внимание на данный момент. Уважаемый Kot говорил именно про отрезание концовки и старт при нуле (переходе через ноль). Вот мне и интересно как он предлагает это сделать. А про обычную фазорезку мне известно более чем достаточно. Есть даже готовые девайсы для этого. Их минус как раз в этом, т. к. помехи весьма серьёзные, особенно при индкутивной нагрузке, типа двигателя.
Так что подождём товарища с громкой идеей.

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

PDM регулятор

#64

Сообщение Kot » 18.06.2022{, 14:40}

пока не получилось
по задумке каждый переход через ноль запускает таймер работы симистора
тоесть я подаю от 0- до 100 шагов каждый шаг 100мкс
но уже на первом шагу вместо 100 импульсов в секунду длиною каждый по 100мкс я имею хаотичные редкие импульсы на выход управления симистора притом длиною в 150мкс

видимо цикл программы делает своё дело
притом то проект то по сути пустой
2022-06-18_183944.png
2022-06-18_183944.png (3.39 КБ) 1122 просмотра
Отправлено спустя 11 минут 40 секунд:
хотя нет всё почти идельно если 12 вход заменить на быстрый счетчик
не думал что ардуино на столько слаб по сравнению с есп32 где подщёт потока воды по холу справляется без проблем на обычном счетчике

осталось найти мотор и посмотреть насколько быстро закрывается симистор в мкс

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

PDM регулятор

#65

Сообщение Dryundel » 18.06.2022{, 15:02}

Kot писал(а):
18.06.2022{, 14:40}
пока не получилось
по задумке каждый переход через ноль запускает таймер работы симистор а...
Ясно. :)
Kot, не изобретайте велосипед. Ну сам подумай. Даже если сделаешь подачу импульсов 100 раз в секунду с точностью атомных часов, уверен что частота в сети ровно 50 Гц?

Но не в этом суть. Вопрос в следующем - как технически (не программно) отрезать концовку полуволны?
Ну стартанули (открыли) мы симистор с момента перехода через ноль. Как его закрыть на пике полуволны?

Kot
Сержант
Сообщения: 125
Зарегистрирован: 09.10.2021{, 11:54}
Репутация: 1
Имя: Дима

PDM регулятор

#66

Сообщение Kot » 18.06.2022{, 15:10}

оптроном и закрою
с твердотелкой не получилось управлять там свой детектор стоит

завтра соберу на отдельном симисторе с обычным оптроном

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

PDM регулятор

#67

Сообщение Dryundel » 18.06.2022{, 15:27}

Kot писал(а):
18.06.2022{, 15:10}
оптроном и закрою...
:D :D :D
Ясно.
Симистор не закроется пока потенциал не будет нулевым (пока не будет перехода через ноль).
Учи матчасть.

А я то думал и впрямь идея есть. 😊

Vasiliy
Рядовой
Сообщения: 15
Зарегистрирован: 28.03.2018{, 10:06}
Репутация: 0
Откуда: Дрогобич
Имя: Василій

PDM регулятор

#68

Сообщение Vasiliy » 26.09.2023{, 13:37}

Привет все! а так пойдет?
Високоскоросной счетчик к 3му пину - переход через 0 по схеме, а дальше делаем испитантя)).

Меня хватило на два канала.
Вложения
Фазорегулятор через 0.flp
(359.5 КБ) 16 скачиваний

Vasiliy
Рядовой
Сообщения: 15
Зарегистрирован: 28.03.2018{, 10:06}
Репутация: 0
Откуда: Дрогобич
Имя: Василій

PDM регулятор

#69

Сообщение Vasiliy » 14.10.2023{, 10:48}

Дошли руки и у меня заработал, а у вас также получилось?
Вложения
Фазорегулятор через 0_робочий.flp
(354.01 КБ) 27 скачиваний

Ответить

Вернуться в «ПИД регуляторы (PID), блоки для ШИМ»