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, если что. запомните на всякий. многие знают номер тлф.

MaksVish
Рядовой
Сообщения: 91
Зарегистрирован: 14.07.2018{, 19:09}
Репутация: 1
Имя: Максим

PDM регулятор

#41

Сообщение MaksVish » 05.03.2021{, 02:08}

Renigant писал(а):
03.12.2019{, 11:09}
Sancho писал(а):
03.12.2019{, 10:58}
Renigant, Очень хороший букварь тут
В следующей строчке для 2560 нужно заменить для 19 пина ноль на ....
Все отлично заработало, спасибо Вам большое.
Подскажите пожалуйста какую принципиальную схему использовали для своего регулятора? И можете сказать какой номинал симистора?

Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 29
Имя: Дмитрий

PDM регулятор

#42

Сообщение Di123 » 05.03.2021{, 11:24}

Sancho, покажите свою схему электрическую на детекторе
а то у стандартного мок3083 не хватает времени на востановление

MaksVish
Рядовой
Сообщения: 91
Зарегистрирован: 14.07.2018{, 19:09}
Репутация: 1
Имя: Максим

PDM регулятор

#43

Сообщение MaksVish » 05.03.2021{, 11:54}

Хорошая тема, но не понятно по какой электрической принципиальной схеме у Sancho заработало! И какие схемы еще вообще возможны...

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#44

Сообщение Sancho » 05.03.2021{, 12:49}

Детектор нуля, ёмкость в последнем варианте была 3,3н( на схеме 10)
Детектор нуля.png
Детектор нуля.png (7.52 КБ) 1874 просмотра
Рекомендуемая схема для без-трансформаторного(50Гц) питания
Детектор 2.jpg
Отправлено спустя 15 минут 18 секунд:
Вот такой, примерно, результат:
2021-03-05_13-02-54.png
Всё дело в том, что я имею по отношению к "простым стандартным" детекторам немного другие уровни и временные показатели.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

MaksVish
Рядовой
Сообщения: 91
Зарегистрирован: 14.07.2018{, 19:09}
Репутация: 1
Имя: Максим

PDM регулятор

#45

Сообщение MaksVish » 05.03.2021{, 14:10}

Класс, спасибо! Я сейчас собрал диммер по схеме Грачика, есть видео на ютубе! Что не делал ничего не вышло у меня не запустился! Теперь попробую вашу схему!

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#46

Сообщение Sancho » 05.03.2021{, 16:00}

MaksVish писал(а):
05.03.2021{, 14:10}
Класс, спасибо! Я сейчас собрал диммер по схеме Грачика, есть видео на ютубе! Что не делал ничего не вышло у меня не запустился! Теперь попробую вашу схему!
Схемы выше не рассчитаны на работу вместо стандартных простых детекторов. Посмотрите осциллограммы.
Вот блок в проекте для схем выше
Вложения
Тест Брезенхема 1_zero.flp
(209.87 КБ) 63 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

MaksVish
Рядовой
Сообщения: 91
Зарегистрирован: 14.07.2018{, 19:09}
Репутация: 1
Имя: Максим

PDM регулятор

#47

Сообщение MaksVish » 05.03.2021{, 16:10}

Sancho писал(а):
05.03.2021{, 16:00}
Схемы выше не рассчитаны на работу вместо стандартных простых детекторов. Посмотрите осциллограммы.
Вот блок в проекте для схем выше
Отлично спасибо! Обкатаю этим блоком!

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#48

Сообщение Sancho » 05.03.2021{, 16:13}

MaksVish писал(а):
05.03.2021{, 16:10}
Отлично спасибо! Обкатаю этим блоком!
Максим - данные типы регуляторов не рассчитаны на изменение яркости ламп, они для тэнов.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

MaksVish
Рядовой
Сообщения: 91
Зарегистрирован: 14.07.2018{, 19:09}
Репутация: 1
Имя: Максим

PDM регулятор

#49

Сообщение MaksVish » 05.03.2021{, 16:22}

Да я знаю! Мне для тенов и надо!) На лампочке разве проверю результат действия!) Тоже делаю регулятор для самогонного трехфазного аппарата!

JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 89
Откуда: Близко к Ставрополю
Имя: Евгений

PDM регулятор

#50

Сообщение JonyBest » 27.01.2022{, 10:36}

Sancho писал(а):
13.03.2018{, 10:17}
PDM регулятор, он же по-русски: Частотно-Импульсная Модуляция, ЧИМ.
Доброго времени!
Есть желание добавить стабилизацию для работы блока PDM_Brezenhem_v2.ubl.
Завел в контроллер измерение напряжения сети на розетке тена. Показания скачут очень сильно.
Как сделать правильно? Вычислять среднее напряжение?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#51

Сообщение Sancho » 27.01.2022{, 12:43}

JonyBest писал(а):
27.01.2022{, 10:36}
Есть желание добавить стабилизацию для работы блока PDM_Brezenhem_v2.ubl.
Завел в контроллер измерение напряжения сети на розетке тена. Показания скачут очень сильно.
Как сделать правильно? Вычислять среднее напряжение?
Вычисляете пиковое напряжение на тэне за время, равное 100% мощности. Т.е. за 100 или 250 периодов.
Приводите его к средне квадратичному.
Умножаете на уровень, подаваемый на вход в блок, делите на макс. уровень, равный 100%, т.е. на 100 или 250.

Пришлите Ваш проект, сделаю набросок.
Не по темеПоказать
Не по теме
Участвовал однажды, частично софтверно, в одном концепте домашнего "вкусно-крепкого" проекта. Зачинщик - почти перфекционист. Размножен ли проект сейчас, его состояние вообще - не знаю.
Как было всё устроено:
Регулятор ТЭНов сделан на фазорезе, дискретизация 400 на полупериод, 100%.
Рассчитывается полная мощность по напряжению и току с такой-же выборкой. Внешний двух-канальный АЦП по SPI.
При каждом замере результат суммируется. Получаем мощность за полупериод. Измерения не в каждом полупериоде.
Один из датчиков температуры закреплён в круглом металлическом хомуте, другой конец хомута обхватывает тэн. Датчик над тэном в нескольких мм-см.
ПИДы, т.е. бибки, разные пробовали, на каком остановились не помню, наверно на самописном.
При тестах с водой получалось контролируемое кипение, температура датчика тэна более 100С, при понижении уровня до датчика высушить ёмкость и зажарить тэны не возможно, т.к. датчик нагревается через держатель-хомут.
Мне продукта на пробу так и не досталось, остались лишь железки для макетирования, тт, ацп и т.д..
Опыт:
1. фазорез при таких дискретностях очень требователен к детектору ноля и обязательному сбросу прескалера счётчика, иначе джитер.
2. дискретизация 400 - для фазореза явный перебор, для брезенхема или шима и 1000 не проблема.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 89
Откуда: Близко к Ставрополю
Имя: Евгений

PDM регулятор

#52

Сообщение JonyBest » 28.01.2022{, 08:50}

Sancho писал(а):
27.01.2022{, 12:43}
Пришлите Ваш проект, сделаю набросок.
Спасибо за отзывчивость. Вот кусочек проекта
Брезенхем_PPM_v2_test.rar
(9.29 КБ) 41 скачивание

superlyga
Рядовой
Сообщения: 32
Зарегистрирован: 15.12.2015{, 23:37}
Репутация: 0

PDM регулятор

#53

Сообщение superlyga » 04.04.2022{, 18:05}

Как вы думаете будет ли ваш блок коректно работать с ттр HT-xx44.ZD3 [M02] (трёхфазный ттр) со внутренним встроенным детектором нуля.
Допустим по логики, если вместо детектора нуля поставить генератор на 10 мс. чтобы он производил импульсы в пол периода, а мы управляем мощностью. ваш блок раскладывает полупериоды согласно блоку Бразенхейма. И неважно что наши импульсы не совпадают с сеть и переходами волны через ноль. нам важно чтоб блок правильно раскладывал полупериоды согласно выбранной мощности. ттр сам со встроенным переходом включиться и отключиться в ближайшем нуле полупериода.Согласно даташитуИзображение

PavelKrd
Рядовой
Сообщения: 6
Зарегистрирован: 24.01.2022{, 23:24}
Репутация: 0
Имя: Павел

PDM регулятор

#54

Сообщение PavelKrd » 09.05.2022{, 13:10}

Добрый день!
"Собрал" эту схему в симуляторе LTSpice - всё работает.
Sancho писал(а):
05.03.2021{, 13:05}
Рекомендуемая схема для без-трансформаторного(50Гц) питания
Спаял вживую - не работает. Менял все элементы(транзистор, оптрон, конденсатор, диоды на мост) - без толку.
Уменьшил резисторы R1, R2, R3 в два раза - схема завелась и вживую и в симуляторе. Только потребление увеличилось и резисторы R2 и R3 стали ощутимо тёплыми(стоят 1/4W).
Я не электронщик, предполагаю, что светодиоду оптрона не хватает энергии запасённой в конденсаторе.
Собирали Вы эту схему? Что в симуляторе(или в живую) не так? Можно ли оставить R1, R2, R3 уменьшенными в два раза?
И ещё вопрос - в FLprog скоростной счётчик(стандартный блок) иногда рассчитывает 99 импульсов в секунду - как это повлияет на работу блока из примера во вложениях в первом посте?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#55

Сообщение Sancho » 09.05.2022{, 14:11}

PavelKrd писал(а):
09.05.2022{, 13:10}
Собирали Вы эту схему?
Да, собирал. Оптрон был из старого радиотелефона, 100% был sharp, марку не помню. были заморочки с длинной импульса, ушёл от этой схемы. Есть много старых плат от дизель генераторных блоков, там трансоф 220/15 много, на каждой три, вата по три. поэтому самая рабочая у меня это как на рисунке из поста. Но схема, которая проблемная, имеет право на жизнь. Как мне кажется, дело в оптроне. Но насколько помню, эту схему не раз обсуждали на многих ресурсах. Местами хаяли, а у кого-то работало из-под паяльника. По ходу, как пид.

Отправлено спустя 1 минуту 5 секунд:
который тринадцатый.

Отправлено спустя 1 минуту 34 секунды:
http://iprog.pp.ru/forum/read.php?f=1&i ... eply_43232

Отправлено спустя 10 минут 22 секунды:
Александр, который кулибинорск, точно сможет ответить на Ваш вопрос.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

PavelKrd
Рядовой
Сообщения: 6
Зарегистрирован: 24.01.2022{, 23:24}
Репутация: 0
Имя: Павел

PDM регулятор

#56

Сообщение PavelKrd » 09.05.2022{, 14:36}

Посчитал на бумажке.
Длину импульса взял 1мс, время заряда 9мс, кондёр 47мкФ. Запасает раз в 10 больше, чем надо для работы светодиода оптрона в течении 1мс при 10мА/1,2В
Т.е. симулятор прав. В сети для подобной схемы в описании сказано, что работает в диапазоне от 110 до 240 В.
Оптроны ставил и 4N35 и PC817C.
Уже раз 6 перепаивал и штук 20 схем с разными номиналами симулировал - результат тот же. Вживую работает только если увеличить мощность на входе.
Жаль нет у меня осцилографа.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

PDM регулятор

#57

Сообщение Sancho » 10.05.2022{, 04:13}

PavelKrd писал(а):
09.05.2022{, 16:53}
Таки транзистор, ...
Добавил второй по дарлнгтону - всё работает.
Оптимизирую схему, отправлю + симуляцию в LTSpice.
Можно будет в шапке темы разместить, чтоб другие на эти грабли не наступали.
Похоже и пропуски были из-за этого же.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

genii86
Рядовой
Сообщения: 4
Зарегистрирован: 09.07.2021{, 15:20}
Репутация: 1
Имя: Andrei

PDM регулятор

#58

Сообщение genii86 » 26.05.2022{, 09:52}

Здравствуйте. А как запустить Брезенхем_V250_AC_zero_v3 на esp8266?

Vitaliy1905
Рядовой
Сообщения: 16
Зарегистрирован: 11.09.2021{, 22:03}
Репутация: 0
Имя: Виталий

PDM регулятор

#59

Сообщение Vitaliy1905 » 26.05.2022{, 12:59}

А эти блоки диммира для esp8266 подойдут.

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

PDM регулятор

#60

Сообщение Kot » 17.06.2022{, 12:41}

Sancho, а с моторами пробовали ?
у вас блок выдаёт 693гц при 1 а при 2 уже 1,38кгц ...
то есть вы каждый раз основу умножаете на шаг но только до 50 там будет 34кгц а вот далее частота начинает падать с каждым шагом повторяя предыдущие значения почти
и вот тут уже не понятно будет ли мотор посвистывать на такой звуковой частоте по краям от 50 шага

да и для тенов брезенхем слишком избыточен и сложен а по простому и не нужен
намного проще поставить всего две детальки мок + симистор и гонять на обычной шим с заполнением периода в 1гц
и никаких голово ломаний с тремя фазами и прочим согласованиями и при этом нужен всеволиш один пин на фазу

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

или может у вас есть какиенить свои наработки практические

Ответить

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