PDM регулятор

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

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

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 КБ) 65 скачиваний
PDM_Brezenhem_v2.ubl
обновлено
(26.34 КБ) 146 скачиваний
Брезенхем_PPM_v2.flp
Тестовый пример
(111.12 КБ) 157 скачиваний
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

PDM регулятор

#2

Сообщение Sancho » 22.01.2019{, 12:24}

Обновил, сделал для тэнов.
Если кто затестит на более 1 kw- просьба отписаться как с миганием света в квартире/доме и т.д.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

PDM регулятор

#3

Сообщение Phazz » 22.01.2019{, 14:20}

Попробую на 3 кВт. У меня там стоит твердотельное реле с zero-cross, я так понимаю мне нужно будет только добавить детектор нуля?

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

PDM регулятор

#4

Сообщение Sancho » 22.01.2019{, 14:32}

Phazz, Да.
Если оптрон с диодным мостом - будет 100% две секунды, 1%=1 период.
Если без, а с одним обратным диодом 1%=2 периода.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

solo
Рядовой
Сообщения: 18
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

PDM регулятор

#5

Сообщение solo » 11.04.2019{, 15:14}

а подскажите пж есть проект собранный на двух нанах , хочу управлять 6 нагревателями и шаговым двигателем . Нагреватели планирую подключить в 3х фазную сеть по 2 шт на фазу , на макетке все работает , со светодиоды эмитирующие работу тэнов моргают как то не равномерно , для управления тэнами планирую использовать твердотельное реле с детектором нуля , может можно как то снизить частоту ШИМ, а то боюсь что на малых мошностях импульс открытия может получатся коротким и реле не будет открываться
Вложения
peckaDicpley.flp
(185.07 КБ) 7 скачиваний
peckaBez.flp
(146.4 КБ) 7 скачиваний

Аватара пользователя
Grafsaxar
Сержант
Сообщения: 298
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 3
Откуда: Augsburg
Имя: Alexander

PDM регулятор

#6

Сообщение Grafsaxar » 11.04.2019{, 16:26}

solo писал(а):
11.04.2019{, 15:14}
для управления тэнами планирую использовать твердотельное реле с детектором нуля , может можно как то снизить частоту ШИМ, а то боюсь что на малых мошностях импульс открытия может получатся коротким и реле не будет открываться
Вы шимом собираетесь SSR управлять?????

Плохая идея. Оно проживёт не долго. Личный опыт.
СпойлерПоказать
минимально можно 62 Гц установить. но это вам не поможет.


для 3 или 11 пина добавьте в setup:

TCCR2B = TCCR2B & Желаемая частота;
для 9-10 пина
TCCR1B = TCCR1B & Желаемая частота;

Но имейте ввиду - для работы шим (на любой частоте) таймер, который обслуживает шим (один таймер - два пина шим) не должен быть использоватся для других задач (серво, звук, прерывания по таймеру, некоторые блоки пользователя).

Частота ШИМ'а на ногах 9 и 10:

Код:
Константа Делитель Частота(Гц)
0x01 1 31250
0x02 8 3906.25
0x03 64 488.28125
0x04 256 122.0703125
0x05 1024 30.517578125

Частота ШИМ'а на ногах 11 и 3:

Код:
Константа Делитель Частота(Гц)
0x01 1 31250
0x02 8 3906.25
0x03 32 976.5625
0x04 64 488.28125
0x05 128 244.140625
0x06 256 122.0703125
0x07 1024 30.517578125
Если ты будешь колоть дрова самостоятельно, то они согреют тебя дважды.

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

PDM регулятор

#7

Сообщение Sancho » 11.04.2019{, 16:43}

solo, В проекте Вы используете регулятор на алгоритме Брезенхема, который предназначен для постоянного тока.
Есть регулятор для переменки, использующий в качестве точки отсчёта каждую вторую полуволну напряжения, и, соответственно, требующий детектор нуля.
Для трёх фаз возможно использовать один детектор и один выход с подключением к ТТР с детекторами нуля.
Дабы не усложнять.

Отправлено спустя 8 минут 47 секунд:
Посмотрел этот блочок(подзабыл как там) - он рассчитан на детектор нуля по простой схеме на гасящих резисторах, диодном мосту и оптроне, 817 по входу/пину D2.
Остаётся поставить повторители/инверторы в зависимости от схемы подключения входов ТТР по выходу D6.
Выходной пин легко поменять, изменив D6_ на любое в четырёх местах в блоке.

Отправлено спустя 5 минут 35 секунд:
Вау, посмотрел внимательно - у Вас все шесть каналов независимые.
Ок, сделаю Вам для проекта.
Будут пины как в Вашем текущем.
Нужно?
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

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

PDM регулятор

#8

Сообщение Phazz » 11.04.2019{, 17:05}

Grafsaxar, да как-то не было проблем с шимом на ssr. Была проблема с завышением заявленных характеристик самого реле китайцами. После этого я проверяю что за симистр там установлен, ну и если нагрузка большая - то хорошее охлаждение, по возможности активное.

Matafon
Рядовой
Сообщения: 9
Зарегистрирован: 17.01.2019{, 20:49}
Репутация: 0
Имя: Николай

PDM регулятор

#9

Сообщение Matafon » 11.04.2019{, 18:18}

Sancho писал(а):
11.04.2019{, 16:58}
Посмотрел этот блочок(подзабыл как там) - он рассчитан на детектор нуля по простой схеме на гасящих резисторах, диодном мосту и оптроне, 817 по входу/пину D2.
Добрый день.
Пытаюсь разобраться как при подключении детектора нуля в блоке "Брезенхем_V100" туда приладить сигналы управления. Хочу управлять тэном кнопками (больше / меньше) не пойму как реализовать. Ткните мордой пожалуйста как кнопки приладить

solo
Рядовой
Сообщения: 18
Зарегистрирован: 06.12.2016{, 18:04}
Репутация: 0
Откуда: Харьков

PDM регулятор

#10

Сообщение solo » 11.04.2019{, 18:27}

ну на счет твердотельного реле это я громко сказал , берем оптрон ( типа мок 3061 или подобный) припаиваем к симистору и получаем реле. надеюсь, что проживет долго пока, что нибудь не коротнет
Sancho писал(а):
11.04.2019{, 16:58}
Есть регулятор для переменки, использующий в качестве точки отсчёта каждую вторую полуволну напряжения, и, соответственно, требующий детектор нуля.
да как то я тупонул, что можно взять регулятор для переменки и на вход подать с генератора сигнал для регулировки частоты ШИМ
Sancho писал(а):
11.04.2019{, 16:58}
все шесть каналов независимые
а что нельзя так делать как я , использовать в одном проекте несколько (6) блоков

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

PDM регулятор

#11

Сообщение Sancho » 11.04.2019{, 19:13}

Matafon, В посте 1 пример именно такой.
Только нет запоминания - сами приладите :)
solo, для постоянки - без проблем, для переменки нет,
блок делал одно-канальный, прочитайте.
Как писал выше - готовьте детектор нуля, блок почти сделал, завтра выложу.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость