Страница 1 из 2
регулируемый БП/ЗУ
Добавлено: 20 фев 2016, 19:52
SirYorik
творческое повторение
вот этого проекта, прошивку сделаю(надеюсь) свою на FLProg.
тема про выбор силовой части БП.
тема про отладку ШИМ, борьба с пульсациями, окончательная схема силовой части там же.
основа для БП - убитый бесперебойник Back-UPS CS 500, оттуда нужен только корпус, трансформатор, релюхи. трансформатор с дурью на 200вт, одна обмотка на 18в, и силовая обмотка на 15в с отводом от середины.
на текущий момент схема в целом собрана. прошивка сделана на базовой стадии: установки выходного напряжения кнопками и относительно точного измерения U|I. причем, если конвертация цифры adc в напряжение аппрокимируется линейно, то конвертация в значение тока уж очень нелинейно, пришлось играться коэффициентами. но зато результат на дисплее более менее совпадает с мультиметрами. flp прилагается.
план в прошивку:
- менюха для выбора режимов
- платы стабилизации U|I
- плата защиты от перегрузок
- плата заряда автомобильного аккумулятора по "науке"
- плата "кпд" (для коммутации обмотки трансформатора в зависимости от напряжения 0..7/7..16)
- плата охлаждения (отслеживание температуры в радиаторном отсеке, включение вентилятора)
если у кого есть наработки, буду рад

регулируемый БП/ЗУ
Добавлено: 21 фев 2016, 20:35
DWD
У меня есть вот такая заготовка:
На индикатор выводятся текущие значения напряжения, тока и мощности. А так же значение тока ограничения для режима источника тока.
Энкодером можно выставлять как выходное напряжение, так и ток ограничения.
Заготовка универсальная - перед компиляцией кода (на С) можно выставить предельные значения выходного напряжения (0...999В) и тока (0...99А).
регулируемый БП/ЗУ
Добавлено: 22 фев 2016, 11:58
SirYorik
неожиданно, но FBD оказался неудобным для написания алгоритма стабилизации напряжения.
просто мозговыверт. :killed:
прикладываю текущую версию. просто без затей выставляет 14.5в и держит.
[spoiler=Спойлер]там есть подозрительное место в стабилизаторе, где алгоритм делает тонкую подгонку изменяя PWM на +1\-1, но смотря на код в IDE видно, что эта подгонка должна портить PWM, ан не портит, не понимаю.
этот кусок выполняется каждый проход loop(), стало-быть, если каждый проход отклонение ниже грубой подгонки(<0.17v), то выполняется этот кусок, и через несколько циклов PWM должно вылезти за пределы, а не вылазит, как так?
....
if((_gtv9) > (0.00))
{_swi1=1;}
else
{_swi1=-1;}
if (( ((_gtv9) <= (0.17)) && ((_gtv9) >= (-0.17)) )) {
_gtv4 = (_gtv4)+(_swi1);
}
....
analogWrite(10, _gtv4);
....
надо глянуть осциллографом что ли, на дисплее-то PWM(_gtv4) стоит как влитой при _gtv9=0.09(отклонение от целевого напряжения)[/spoiler]
ps: FLProg 1.10.4 валится на приеме данных с компорта, а поскольку кнопочку с дискетой вовремя не нажал, то это вторая версия алгоритма, на счетчике, вместо не сохранившийся версии на модификации переменной. но оно и к лучшему, счетчик хоть медленно выводит на нужное значение (13 секунд для 14.5v), зато стабилизирует значение. а на модификации переменной колбасило сильно вокруг целевого значения.
регулируемый БП/ЗУ
Добавлено: 22 фев 2016, 15:34
DWD
Естественно, мозговыверт...

, ведь для этого существуют специализированные ШИМ контроллеры. А МК должен заниматься управлением, а не черновой работой.
Не зря же даже функции ШИМ или таймера в МК реализованы аппаратно, а не программно. Даже "сторожевая собака" реализована отдельным устройством с собственным генератором.
К тому же, не завидую я нагрузке при зависании МК...
А ещё для БП задаётся такой параметр, как скорость реакции на импульсную нагрузку.
Попробуйте протестировать свой БП при импульсной нагрузке, снимая осциллограмму выходных напряжения и тока. Каковы будут амплитуда выбросов и длительность переходных процессов?
регулируемый БП/ЗУ
Добавлено: 22 фев 2016, 16:46
SirYorik
глянул в осциллограф.
включение бп (нагрузки нет), медленный рост до цели 14.5в (14.6 на мультиметре), потом несколько раз цепляю нагрузку (резюк на 11ом, 1.3ампера, 19вт) на секунду-две, на мультиметре просадка на 0.05в, на линии в осциллографе ничего, потом выкл.БП (нагрузки нет). нагрузка конечно так себе импульсная, ампер 10 бы на полсекунды цеплять. да и осцил шумный 50мв-60мв по жизни.
регулируемый БП/ЗУ
Добавлено: 22 фев 2016, 17:02
SirYorik
и осциллограмма напряжения на шунте (типа форма тока?)
тоже ничего интересного. три провала - это ОТключение нагрузочного резюка.
Добавлено (22.02.2016, 17:02)
---------------------------------------------
DWD писал(а):К тому же, не завидую я нагрузке при зависании МК...
ну, при зависании лишь бы ШИМ не уехал в максимальную, или в "1".
можно сделать "сторожевую собаку" на fuse-релюхе, она и так есть, только рулить ей не "1"-ой, а некоей пульсацией, heatbeat, пропало - fuse отпускается само. может и сделаю.
регулируемый БП/ЗУ
Добавлено: 24 фев 2016, 15:20
SirYorik
после целого дня борьбы с глюками неведомой природы получилась альфаальфа версия которая может выставить напряжение и ограничить ток в случае превышения.
но мне не нравится как это выглядит. такое впечатление что FBD не предназначен для работы с аналоговым сигналом.
а еще ключевым элементом оказался банальный генератор, с магическим фонарём подобранными задержками. без него нишиша не работало.
надо наверное еще раз переделать, просто для разнообразия.
регулируемый БП/ЗУ
Добавлено: 25 фев 2016, 10:01
DWD
Почему же? FBD прекрасно отрабатывает аналогвый сигнал. Хотя бы потому, что в нём МК "работает" в статическом режиме - это только программа для написания кода...
А вот МК не в состоянии быстро его оцифровать из-за малой частоты дискретизации.
И если для управляющих функций этого хватает, то для непосредственного регулирования в цепи обртной связи - уже нет.
В ШИМ контроллерах усилителями ошибки работают ОУ с частотой единичного усиления не менее 1МГц. В современных - не менее 10МГц. И то не хватает быстродействия, что бы отрабатывать ошибки регулирования на рабочих частотах преобразователей в десятки и, тем более, сотни КГц. Приходится замедляющую коррекцию вводить, ухудшая скорость реагирования преобразователя на перепады тока нагрузки.
регулируемый БП/ЗУ
Добавлено: 25 фев 2016, 10:59
SirYorik
DWD писал(а):не в состоянии быстро его оцифровать
DWD писал(а):Приходится замедляющую коррекцию вводить,
ээм.. ну, вот да, при нагрузке в 1.5А стоит настройка ограничения тока в 1А, МК это дело чует, даёт команду на снижение напряжения, а напряжение снижается медленно, МК за несколько циклов уже вгоняет снижениями в ноль, а процесс в БП считай только начался. приходится вкручивать заержку, методом тыка подбирая место задержки, и сами цифры.
напрягает, что цифры задержек, что кажется логичным, должны быть разными в разных режимах.
регулируемый БП/ЗУ
Добавлено: 25 фев 2016, 21:32
SirYorik
еще продираний через
странности, и готова альфабета прошивки.
- умеет выставлять выходное напряжение кнопками
- стабилизатор напряжения (0..16в)
- ограничитель тока (1А для теста)
- предохранитель от коротыша (работает. пока порог в 4А)
- измерения на экран
- диагностика в ком-порт
другой "алгоритм" стабилизатора напряжения.
избавился от внешних модулей.
17 плат, штук 5 лишних из-за "странностей".
компилится в 12кб флеша. весь код потом вряд-ли влезет в атмегу16х.
следующий этап: подточить под заряд автомобильного аккума.
I-U алгоритм и таймер часов на 10.
если зарядит, то дальше ваять меню, и вообще завершать.
регулируемый БП/ЗУ
Добавлено: 27 фев 2016, 21:12
SirYorik
приколхозил возможность восстанавливать напряжение которое было до начала ограничения тока.
вся морда в синяках от новых граблей, вся схема в костылях и распухла до 20 плат.
открыл для себя ПИД-регулятор.
понял, что наваял два каскадом соединенных П-регулятора с адаптивными коэффициентами.
задумался, не пойти ли в ПИД-библиотеку, а то схема выглядит круто, но страшно.
регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 08:41
SirYorik
при 14.5в и всего 3.1а наступил на проблему электрики.
на выходе начинаются мощные 100гц пульсации.
пропадают при снижении выходного напряжения всего на 0.3в.
увеличение емкости фильтра с 8т мкф до 40т мкф помогает немного, пульсации снижаются в ~2..2.5 раза.
спрямлять их алгоритмически нереально, имхо.
это получается надо вводить понятие предельных режимов, и либо ваять детектор пульсаций в софте, либо прошвырнутся по диапазонам вручную и захардкодить пороговые.
что то я по наивности думал что с таким БП всё будет на порядок проще.
регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 11:35
SirYorik
после того как начал разбираться с токами больше 3х ампер, обнаружил что шунт из нихрома калится до красна.
купил керамический резюк на 20вт 0.1ом, замечательно, но показания амперметра уехали.
снял график показания на порту ардуины(A1) и реальный ток по мультиметру.
выяснилось, что он шииибко нелинеен, и коэффициентами править это 30 компараторов ставить.
полез делать аппроксимацию.
Excel выдаёт формулы, но режет коэффициенты и формула слишком сильно отличается от правды.
от Excel, ничего толкового не добился, помог LibreOffice Calc.
8255518.jpg
с графиком хорошо совпал полином 3го порядка, отклонения небольшие совсем.
0,0000132797916455788*x^3-0,0118254576*x^2+6,4463516962*x
c float бодаться я зарекся, с double в CODE блоке, лень.
решил уместиться в long integer, что и проверил в Calc.
коэффициенты умножил на 150000 (подбором), чтобы для максимального х=1023, каждая из 3х частей формулы влазила в 2млрд.(предел long int). результат формулы делится на 150000.
заменил плату коррекции измеренного тока на вычисления.
2753955.jpg
сравнил в натуре с мультиметром, небольшая разница только в
3м 2м знаке на мультиметре.
регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 12:47
DWD
Ура комсомольцам, самостоятельно находящим для себя трудности, и потом героически их преодолевающим...

регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 14:55
SirYorik
DWD писал(а):находящим для себя трудности,
стебаетесь?
вот именно. оригинальный скетч автора в сях давно бы уже прикрутил.
Добавлено (03.03.2016, 14:55)
---------------------------------------------
ну, в общем, последняя версия по этому пути, дикое количество фиксов, подпиливаний, подкручиваний и подпорок, но работает. в сях это было-бы полюбому проще.
регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 16:22
DWD
SirYorik писал(а):стебаетесь?
Да, а что?..

регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 18:18
support
SirYorik писал(а):выяснилось, что он шииибко нелинеен, и коэффициентами править это 30 компараторов ставить.
Вроде специально для этого делал блок нелинейного масштабирования. Поставте туда эти 30 точек и думаю всё будет нормально. Кстати можно загрузить напрямую из Exel в формате csv
регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 18:59
SirYorik
DWD писал(а):Да, а что?..
вот кстати по конкретному посту, или так, вообще?
Добавлено (03.03.2016, 18:59)
---------------------------------------------
support писал(а):блок нелинейного масштабирования
блин, напрочь не заметил. но теперь уж нехай по полиному считает.
регулируемый БП/ЗУ
Добавлено: 03 мар 2016, 23:29
DWD
Вообще, но на конкретную тему.

Я уже высказывал своё мнение по этому поводу - не вижу смысла изобретать велосипед, если уже есть готовый.
Не вижу смысла делать из МК ЩИМ контроллер, когда их выпускают сотни разновидностей под любую задачу.
МК это управлененц. Он должен руководить устройством, а не выполнять какую-то черновую работу.
Ещё раз обращаю внимание на простой факт - почему в МК встроенный ШИМ аппаратный, а не программный?
И ещё один...
Простой ШИМ контноллер для БП делается на трёх простых узлах: генератор пилы, компаратор и усилитель мощности. Реализован может быть даже на одной цифровой микросхеме К561ЛА7.
регулируемый БП/ЗУ
Добавлено: 04 мар 2016, 05:57
SirYorik
понятно, не переключайтесь
[spoiler=Спойлер]
DWD писал(а):ШИМ аппаратный,
так и ардуинский analogWrite тож аппаратный.
вообще изначально никакая схемотехника не предполагалась, максимум соединение толстыми проводами готовых модулей (SCV0033-ADJ-5A + H712A05 + тд ). но вмешалось наличие некоей рассыпухи. а самое главное надо было заюзать валяющуюся ардуину

[/spoiler]