Измерение скорости снижения напряжения

d_kin
Offline
Зарегистрирован: 07.12.2016

Здравствуйте!

Разоабатываю зарядное устройство для аккумулятора. В конце заряда при достижении 14,4 В нужно отключить заряд. 

Сразу после этого напряжение падает быстро и после этого немного приостанавливается, например 13,5В В реальности зависит от состояния аккумулятора. Это величину необходимо зафиксировать и дальше делать качели 13,5 (значение полученое микроконтролером) - 14,4 В. 

Для измерения напряжения использую делитель напряжения, с этим все просто. Не знаю как прогаммно написать, чтобы уловить когда напряжние не изменяется на 0,1В например 5 секунд.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

d_kin пишет:

Для измерения напряжения использую делитель напряжения, с этим все просто. Не знаю как прогаммно написать, чтобы уловить когда напряжние не изменяется на 0,1В например 5 секунд.

Похоже вы не знаете, как измерять ток заряда. Организуйте измеритель тока заряда. И когда он станет равным 0 и есть конец заряда.

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

скорость снижения - это что-то типа !ускорения?

d_kin
Offline
Зарегистрирован: 07.12.2016

Дело не в токе заряда. Напряжение на ЗУ 20 В. Поэтому при 14,4В ток заряда будет таким же как и при начале заряда. Т.е. заряд всегда большим током. Но это совсем другая история.

Когда я первый раз отключу заряд, напряжение на аккумуляторе сначала падает очень быстро потом замедляется. В момент когда оно не падает больше 0,1В за 5 секунд нужно его замерить и уже дальше работать по алгоритму - поднялось до 14,В - отключаем заряд, включаем при достижении полученного напряжение при измерении.

Далее время заряда уменьшается а время паузы увеличивается по такому алгоритму.

Можно, конечно установить просто 13,5В нижнюю планку, но для всех аккумуляторов она разная. Для старых она падает до 13В за секунду, для новых и с большой плотностью можно вобще не дождаться этого напряжения. Ходелось бы самоподсраиваемую нижнюю планку.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Все крутится или возле тока заряда или тока разряда. 

Если так как вы хотите, то вам надо 1) реле переключающаее аккумулятор с источника заряда на измерительный шунт и 2) мерять наряжение на измерительном шунте.  0,5 часа заряд ,переключение  5 секунд измерение на шунте и опять заряд . Можно индикацию прикрутить красный светодиод зарядка , зеленый все в норме.

d_kin
Offline
Зарегистрирован: 07.12.2016

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

В момент заряда и пауз мне необходимо мерять напряжение через делитель напряжения, подключенный к аккумулятору.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Меряй. Напиши скетч и собери схему и вперед.

d_kin
Offline
Зарегистрирован: 07.12.2016

Спасибо за поддержку.

Пожалуйста, кто понимает помогите с вопросом.

Клапауций 823
Клапауций 823 аватар
Offline
Зарегистрирован: 13.01.2017

d_kin пишет:

Пожалуйста, кто понимает помогите с вопросом.

нет

nik182
Offline
Зарегистрирован: 04.05.2015

d_kin пишет:

Дело не в токе заряда. Напряжение на ЗУ 20 В. Поэтому при 14,4В ток заряда будет таким же как и при начале заряда. Т.е. заряд всегда большим током. Но это совсем другая история.

14.4 Кислотный аккумулятор? Ну это ладно. Всегда большой ток - аккумулятор не жалеть. Вы блоксхему программы пробовали нарисовать? Что то типа ... измерить напряжение, если напряжение равно 14.4 то выключить заряд иначе идти в начало, подождать 5 секунд, измерить напряжение, если напряжение больше 13.5 то  идти ждать 5 минут, иначе напряжение меньше 13,5 включить заряд , идти в начало ожидания 14.4

Атеперь это на языке Си. Можно ещё вывод в порт или на экран вставить, что бы процесс видить и время считать,что бы емкость оценить. 

Волшебник
Offline
Зарегистрирован: 22.12.2016

BlinkWithoutDelay пример в ардуино ИДЕ посмотрите. Там показано как время замерять через милисекунд(), а как падение напряжение думаю и сами знаете, А - Б, если < то одно, если >= то другое. Токо рисковано, если ардуина повиснет то аккум до 20 зарядится?

d_kin
Offline
Зарегистрирован: 07.12.2016

Клапауций 823 пишет:

d_kin пишет:

Пожалуйста, кто понимает помогите с вопросом.

нет

 

почему? )))

d_kin
Offline
Зарегистрирован: 07.12.2016

С алгоритмами я вполне рзобрался. Поставим вопрос по другому.

Как поймать момент огда напряжение падает медленне 0,1В за 5 секунд?

d_kin
Offline
Зарегистрирован: 07.12.2016

Волшебник пишет:

BlinkWithoutDelay пример в ардуино ИДЕ посмотрите. Там показано как время замерять через милисекунд(), а как падение напряжение думаю и сами знаете, А - Б, если < то одно, если >= то другое. Токо рисковано, если ардуина повиснет то аккум до 20 зарядится?

 

Понял, спасибо.

Да 20В - опасный момент, аккумулятор будет сильно кипеть и может взорваться в случае зависания ардуины или пробоя транзистора. Думаю поставить еще одну ардуино с мощным реле и при превышени 15В отключать и подавать сигнал о неисправности.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

qwone пишет:

d_kin пишет:

Для измерения напряжения использую делитель напряжения, с этим все просто. Не знаю как прогаммно написать, чтобы уловить когда напряжние не изменяется на 0,1В например 5 секунд.

Похоже вы не знаете, как измерять ток заряда. Организуйте измеритель тока заряда. И когда он станет равным 0 и есть конец заряда.

ток заряда никогда не станет равным нулю )))

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

ua6em пишет:

ток заряда никогда не станет равным нулю )))

Вы бы еще в философию ударились. Ничего и никогда нельзя измерить точно, всегда была , есть и будет неточность.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

qwone пишет:

ua6em пишет:

ток заряда никогда не станет равным нулю )))

Вы бы еще в философию ударились. Ничего и никогда нельзя измерить точно, всегда была , есть и будет неточность.

вы не согласны, что определять окончание разряда по нулевому току не айс?
ТС сказал, что выпрямитель заряжает без снижения тока, то-есть он поднимает напряжение для удержания тока заряда...так как перезаряд губителен для АКБ значит надо вводить еще переменные, как-то время заряда, плотность и температура электролита, газовыделение, напряжение на АКБ, в конце заряда оно, взависимости от состава, 14.4 - 14.5 вольт, сейчас в состав АКБ вводят кадмий, я по этим странным аккумуляторам сказать ничего не могу, не эксплуатировал

Непростое это дело - сделать качественное зарядно-разрядное устройство

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну любой аккумулятор можно представить как RC цепочку. И в случае идеальной RC цепочки конденсатор никогда полностью не зарядится. Всегда будет немного не дозаряжен. Так что считается что 3 тау и конденсатор заряжен, хотя в идеале это не так. Опять же есть саморазряд. Так что уже не будет окончательный заряд равным 0, тем более для БУ.  Аккумуляторы не конденсаторы. Их ценность не в добротности, а сколько можно удержать энергию на единицу веса и денежной стоимости этого удержания.  Проблема не в создании качественного зарядно устройства, а найти такой оптимум когда эксплуатация аккумулятора  и его зарядного устройства наиболее выгодна и для потребителей и для производителей.

  Но это глобальный вопрос. А вот где наш хитрозадый ТС. Видно посмотрел, что идиотов решать за него его проблемы здесь нет и свалил.     

d_kin
Offline
Зарегистрирован: 07.12.2016

qwone Вы вообще не понимаете о чем идет речь. Зачем засоряете тему?

 

Мне уже дали достаточно ответов для экспериментов.

 

nik182
Offline
Зарегистрирован: 04.05.2015

qwone пишет:

Ну любой аккумулятор можно представить как RC цепочку.


В случае кислотного аккумулятора вы в корне не правы. Это просто резистор. Внутри электролит. Он прводит всегда. И ток при любом заряде может быть любым. Вопрос только в том сколько идет на заряд, сколько на нагрев, сколько на расщепление атомов. Поэтому в зарядных устройствах кислотных аккумуляторов всегда ограничивают ток, что бы минимизировать отрицательные моменты заряда. Алгоритм, который пытается реализовать ТС , очень опасен для аккумулятора. При любом зависании или просто глюке алгоритма можно испортить аккумулятор безвозвратно. Я бы смотрел в сторону управления током и напряжением блока питания.

renoshnik
Offline
Зарегистрирован: 11.04.2013

Если что-то получится сообщите...

"Вангую" - толку будет мало, из-за ошибок (шумов много например)...

d_kin
Offline
Зарегистрирован: 07.12.2016

А как у Вас приставка успешно работает?

evgta
Offline
Зарегистрирован: 02.09.2016

для кислотного АКБ напряжение поддержания заряда составляет 13,8в при этом напряжении он и не кипит и не разряжается, напряжение полностью заряженного АКБ 12,8в но при отключении зарядки оно где-то 13,2-13,5 и быстро падает до 12,8 чтобы проверить быстро степень зарядки по напряжению надо дать ему нагрузку в 1/20 емкости и тогда можно сразу измерять напряжение на нем,  узнать о полностью заряженном состоянии АКБ можно узнать только по активному газовыделению в банках.

АКБ впринципе небоится перезарядов(в определенных пределах), от перезаряда начинает кипеть элетролит и соответственно уменьшается уровень и повышается плотность что не есть гуд 

нормальным считается ток заряда в 1/10 от емкости

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

nik182 пишет:
В случае кислотного аккумулятора вы в корне не правы. Это просто резистор. Внутри электролит. Он прводит всегда. И ток при любом заряде может быть любым. Вопрос только в том сколько идет на заряд, сколько на нагрев, сколько на расщепление атомов. Поэтому в зарядных устройствах кислотных аккумуляторов всегда ограничивают ток, что бы минимизировать отрицательные моменты заряда.

Аккумулятор это резистор @_@.  Большего бреда я не слышал. Между электродом и электролитом есть маленький слой в котором и накапливается заряд. И чем больше поверхность слоя и ниже толщина его тем больше емкость. Площадь увеличивают за счет использования твердого и жидкого электрода(электролит). А вот с толщиной не очень хорошо получается, чем она тоньше, тем меньшим напряжением ее можно пробить. А так как пленка большой площади, то там есть утоньшения и даже микропробои.Вот и ограничивают ток, что микропробои не превратились в пробои. И тогда точно можно использовать аккумулятор как резистор . 

Самая соль "умного" зарядного устройства научить определять "здоровье" этой "аккумулирующей пленки". И если у этой пленки здоровье не очень, то не убить окончательно быстрой зарядкой.  

nik182
Offline
Зарегистрирован: 04.05.2015

qwone пишет:
Аккумулятор это резистор @_@.  Большего бреда я не слышал..... И тогда точно можно использовать аккумулятор как резистор .

Т.е. ты согласен, если напряжение не контролировать, то аккумулятор это резистор? И где здесь бред? Всё что ты описываешь о заряде правильно, но аккумулятор не идеальный. Это банка с электролитом и электродами. Через такую банку всегда течёт ток. Из-за не идеальности. Да, где рассуждения о сульфатации пластин в неправильных режимах зарядки? 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Я говорю аккумулятор станет резистором, если его испортить. Но портить аккумулятор для того что бы он стал резистором , а потом говорить, вот видишь это резистор.

nik182
Offline
Зарегистрирован: 04.05.2015

Все ваши рассуждения очень косноязычны. Для практика дяди Вани в гараже совершенно безразличны микропробои в пленке на поверхности электродов. У него аккумулятор и зарядка. Раньше обычно трансформатор с регулируемым зазором для регулирования тока и выпрямитель. Ток через аккумулятор течёт всегда. Не важно заряжается он или разрушается. С этой точки зрения бредом видятся слова: "Ну любой аккумулятор можно представить как RC цепочку."   RC цепочка после заряда конденсатора ток не пропускает.  

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

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

d_kin
Offline
Зарегистрирован: 07.12.2016

qwone пишет:

Я говорю аккумулятор станет резистором, если его испортить. Но портить аккумулятор для того что бы он стал резистором , а потом говорить, вот видишь это резистор.

Полная ахинея, даже с точки зрения русского языка.

 

qwone пишет:

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

Этот алгоритм заряда как раз для обслуживания нового аккумулятора без выделения водорода, так что не надо тут.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

d_kin пишет:

Этот алгоритм заряда как раз для обслуживания нового аккумулятора без выделения водорода, так что не надо тут.

А у вас ареометр для электролита есть?  Это очень помогает выравнивать плотность в электролита в банках. Потому что если со временем в одной банке станет больше воды и меньше серной кислоты, то водорода будет много.

d_kin
Offline
Зарегистрирован: 07.12.2016

Товарищи, может кто знает, я в математике не силен.

а что такое du/dt  - это производная, но как ее посчитать в ардуино и как применить в моем случае?

ZIA
ZIA аватар
Offline
Зарегистрирован: 04.02.2017

А каков коэффициент пульсаций вашего зарядного устройства?

d_kin
Offline
Зарегистрирован: 07.12.2016

Пульсаций на самом ЗУ нет. Мне нужно измерять скорость падения напряжения на аккумуляторе, отключенном от ЗУ.

nik182
Offline
Зарегистрирован: 04.05.2015

Очень просто. Измеряете напряжение u1, ждете dt , измеряете ещё раз u2. Считаете (u2-u1)/dt

dt=1; //Время в секундах
u1=analogRead(A0);
delay(dt*1000);
u2=analogRead(A0);
dudt=(u2-u1)/dt;

Можно следить в цикле. Это самый простой путь. Про блиньк без делея вам уже писали.

d_kin
Offline
Зарегистрирован: 07.12.2016

Спасибо! Буду пробовать.

nik182
Offline
Зарегистрирован: 04.05.2015

По хорошему измерения нужно сглаживать. Т.е. сначала просуммировать восемь измерений и потом поделить на восемь. Иначе просто шум АЦП даст большую ошибку в производную. Типа

dt=1; //Время в секундах
s=0;
for (int i = 0; i <8; i ++)  s+=analogRead(A0);
u1=s/8;
delay(dt*1000);
s=0;
for (int i = 0; i <8; i ++)  s+=analogRead(A0);
u2=s/8;
dudt=(u2-u1)/dt;

 

Волшебник
Offline
Зарегистрирован: 22.12.2016

Набросаю черновик, 

const int ledPin =  LED_BUILTIN;
int ledState = LOW;            
unsigned long previousMillis = 0;      
 
//const long interval = 1000;           //  Вот эта и есть dt 
const long interval = 5000;       // ставим 5 секунд
 
const float proselo_max = 0.1; // a это maximum dV
//Надо ещё переменную, чтобы её считать
int skolko_bulo = 0;
    
void setup() {
  pinMode(ledPin, OUTPUT);
}
 
void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
     int skolko_sejchas = analogRead(A0);
     int skolko_proselo = skolko_bulo - skolko_sejchas;  // А вот ента есть сама dV
 
     skolko_bulo = skolko_sejchas; // сохранить для следующего цикла !
    if (skolko_proselo < proselo_max) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }
    digitalWrite(ledPin, ledState);
    previousMillis = currentMillis;
  }
}
 Там где светодиод вешаем реле модуль. Всё.
ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:

По хорошему измерения нужно сглаживать. Т.е. сначала просуммировать восемь измерений и потом поделить на восемь. Иначе просто шум АЦП даст большую ошибку в производную. Типа

dt=1; //Время в секундах
s=0;
for (int i = 0; i <8; i ++)  s+=analogRead(A0);
u1=s/8;
delay(dt*1000);
s=0;
for (int i = 0; i <8; i ++)  s+=analogRead(A0);
u2=s/8;
dudt=(u2-u1)/dt;

или пропустить через цифровой фильтр:
 

void read_m471(){
  for (int j=1; j <= 16; j++) {
   Data_max471=analogRead(Pin_max471);
   G+=Data_max471-(G>>8);
   Data_max471=G>>8;       // Таким образом читаем напряжение из цифрового фильтра
}
  }

 

nik182
Offline
Зарегистрирован: 04.05.2015

Не уловил где здесь цифровой фильтр. Это обычное бегущее среднее. Для правильного сглаживания поток данных должен быть непрерывным. У нас данные попадают кусками. Использовать алгоритмы надо не бездумно.

d_kin
Offline
Зарегистрирован: 07.12.2016

А Millis не опасно использовать? Он вроде при превышении какого-то значения обнуляется и программа будет долго ждать?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

d_kin пишет:

А Millis не опасно использовать? Он вроде при превышении какого-то значения обнуляется и программа будет долго ждать?

48 дней заряжать, или даже не выключать устройство это жесть. А если правильно организовать то можно и год заряжать.Проблем не будет с millis()

d_kin
Offline
Зарегистрирован: 07.12.2016

Понял, спасибо!

renoshnik
Offline
Зарегистрирован: 11.04.2013

d_kin пишет:

А как у Вас приставка успешно работает?

Почему вы считаете, что у меня в ЗУ контролируется скорость изменения напряжения ?

d_kin
Offline
Зарегистрирован: 07.12.2016

Я просто предположил...

renoshnik
Offline
Зарегистрирован: 11.04.2013

d_kin пишет:

Я просто предположил...

Просто овчинка выделки не стоит из-за шумов ...

d_kin
Offline
Зарегистрирован: 07.12.2016

А как тогда? Работать с фиксированными значениеми напряжений при качелях или значений времени заряда и пауз? Для эффективности заряда это немного хуже.

К тому же точность требуется небольшая. Определить нижнюю границу качелей для разных аккумуляторов например 13,2В или 13,7 она. Нужно обязательно попробовать, что посоветовали выше.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

d_kin, для того, чтобы сделать хоть что-то осмысленное, Вам нужно сначала подучить математику, а затем заняться программированием.

Без этого - обсуждать что-то совершенно бесполезно, Вы к этому не готовы.

d_kin
Offline
Зарегистрирован: 07.12.2016

Не поспоришь, подучить хотя бы производные.

renoshnik
Offline
Зарегистрирован: 11.04.2013

d_kin пишет:

А как тогда? Работать с фиксированными значениеми напряжений при качелях или значений времени заряда и пауз? Для эффективности заряда это немного хуже.

К тому же точность требуется небольшая. Определить нижнюю границу качелей для разных аккумуляторов например 13,2В или 13,7 она. Нужно обязательно попробовать, что посоветовали выше.

 

Если вы все это замутили ради "качелей" то .....

- для реализации "качелей" скорость изменения напряжения не нужна...  там просто фиксируется МОМЕНТ достижения определенного напряжения...

вот цитата от "великого" http://adopt-zu.soroka.org.ua/faq.html

Вопрос: Что такое «Качели»?... 

Ответ: 

Заряд аккумулятора постоянным током до величины напряжения на клеммах 14.4В с последующей паузой, длительностью "пока напряжение на клеммах достигнет 12.7В", затем снова заряд до величины напряжения на клеммах 14.4В, пауза до напряжения на клеммах 12.7В и так далее. Этот режим используется для поддержания аккумулятора в заряженном состоянии. Этот режим используется в ЗУ "СТЕК".

 

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

renoshnik, забудь про 12.7В и 14.4В. Даже АКБ выпущенные в одной партии довольно ощутимо отличаются по параметрам. Не бывает двух абсолютно одинаковых АКБ.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Andy пишет:

renoshnik, забудь про 12.7В и 14.4В. Даже АКБ выпущенные в одной партии довольно ощутимо отличаются по параметрам. Не бывает двух абсолютно одинаковых АКБ.

Не бывает, но если батарея дает при работе генератора и полностью включенных источниках потребления авто 14.4 вольта ходить этот аккумулятор будет лет 9-10 )))
Да, важно, доливать дистиллят придётся за этот срок раза два...