我为一些1300mAh电池构建了一个简单的Ni-Cd充电器(基本上是0.1C电流源),当电池上达到一定电压时,我想停止充电。我试图用运算放大器设计开关,但是它所做的只是将电流源施加在电池上的电压限制为应该触发截止的电压。我知道我可以使用一个由运算放大器驱动的继电器,但我真的不希望使用它们。
那么,达到一定电压后如何切断电源呢?
这是我所做的示意图,以给您一个想法。
我为一些1300mAh电池构建了一个简单的Ni-Cd充电器(基本上是0.1C电流源),当电池上达到一定电压时,我想停止充电。我试图用运算放大器设计开关,但是它所做的只是将电流源施加在电池上的电压限制为应该触发截止的电压。我知道我可以使用一个由运算放大器驱动的继电器,但我真的不希望使用它们。
那么,达到一定电压后如何切断电源呢?
这是我所做的示意图,以给您一个想法。
Answers:
您不想对NiCd电池使用固定电压充电终端。为了安全起见,您确实需要有一些电压上限,但是充电终止是通过电压斜率和/或温度完成的。
当用合理的电流几乎充满电时,NiCds会显示电压“凸点”。电压实际上下降了一点。因此,寻找电压导数的零交叉点,然后在固定时间内添加一点低电流电荷以使电池充满电。例如,这是3单元镍镉电池组的完整放电和充电周期:
电池在3.4小时后放电以有效耗尽。直到大约4.2h,使用低充电电流,直到电池达到足够高的电压以能够吸收“满”充电电流为止。请注意,电压如何上升,出现凸起,然后在约6.4h时再次下降。充电算法检测到蓝线过零,并在固定的2小时内切换到低电流自上而下模式。
您以非常低的费率(.1C)进行充电,因此部分费用可能不适用。测量充电曲线以查看您的位置将是一个好主意。让它运行足够长的时间,以使您知道电池已充满电并查看电压和电压的导数。在如此低的充电速率下,固定的终止电压可能是唯一的选择,但是最好先查看数据再决定。
测量和检测这种情况的方法是在微控制器中。每次测量都会有一些噪声,但是信号太慢,您可以应用许多低通滤波。信号是如此之慢,以至于难以进行有效的模拟滤波,这是因为要实现这些信号需要很高的阻抗,以及由于漏电流而导致的结果误差。数字值不会随着时间的流逝而降低,因此您可以像上图中的蓝线一样执行伏特/小时的斜率计算。
您的电路看起来应该完全按照您想要的去做,
并且您在对Chintalagirl的回复中说,它可以满足您的要求,即重新切断电压和滞后,
所以我无法理解您还没有想要的东西。
我最近使用类似于该电路的商业电路实现了批量生产。它使用二极管在不改变跳闸电压的情况下设置滞回反馈下的低电平电压,并使用TL431提供更稳定的参考电压-如下所述。
V_USB不能可靠地保证为5V,可能更高或更低,并且可能会有所不同,因此需要适当的参考。例如,您可以将R8分为两部分,并使用TL431“可编程齐纳” /并联稳压器将中点设置为4V。这些在这种角色中既便宜又有效。使用TLV431允许1.25V的上基准电压设置。
更好-您可以使用TL431 BUT将U1A引脚3设置为所需的跳闸电压,然后使磁滞反馈不起作用,因此可以例如。使用带有两个电阻的TL * V * 431将其设置为所需的Vtrip。
从V_USB向TLV431馈入约1k的阴极。
通过例如10k向TLV431馈入运算放大器同相输入。
与串联二极管一起使用100k或任何以前的迟滞电阻。见下文。
如图所示,使用R1很难设置所需的高低阈值,因为在电池到达触发点之前R1与R8并联,而在达到触发点之后与R9并联,因此R1与R9并联,因此高低设置点受到影响。另外,如果运算放大器无法完全摆动到高轨,则会影响跳变点的计算。将二极管与R1串联放置会更容易且同样有效,因此它仅以一个运算放大器极性导通,因此仅由R8和R9设置高或低阈值。最好是将二极管阴极连接到U1A输出,以便在达到阈值时二极管导通,然后在U1A输出变低时降低阈值。这样,您就可以使用R8和 R9(这是您最关心的),然后R1会将其降低一些可以计算的量。二极管在降低阈值的计算中增加了少量的复杂性,但这并不是很重要,因为主要目的是终止充电。
如果R1太大,则阈值将不会降低得足够低,并且在移除电荷后电池电压可能会“充分下垂”,从而导致充电重新开始。如果您用电表而不是示波器来观察,您可能会认为您看到的是稳定的直流电压,但实际上电路在振荡。(请问我怎么知道:-))。
对于此类电路,使用示波器进行检查始终是一个极好的主意,因为这样很容易发生振荡。
此处无关紧要,但请注意,LM358的输入共模范围比Vdd低1.5V,因此此处Vin max〜= 3.5。
一旦添加了上面建议的二极管,就可以通过在U1A引脚3上进行测量来测试跳变点。您可以调节R8或R9来设置跳变点。您可以使用低泄漏电容器代替电池来检查操作是否正确。这应该充电到Vtrip,然后电路应该关闭,并且Vcap应该等于目标电压。如果电容泄漏,当Vcap低于下限阈值时,您会偶尔看到其充电。
Q1 / R5是进行电流设置的一种讨厌的方法,因为Vbe参考非常不精确-但在此应用中它已经足够了。D3在这里可能不是严格必需的,但不应造成伤害。如果没有D3,当晶体管关闭时,Q1和Q2可能会被电池反向偏置,但这在这里应该不是问题。
当达到设定点时,R1磁滞应使该电路停止进入线性模式,特别是在增加二极管的情况下,但要检查振荡。通常在驱动器或反馈环路中的某处添加电容器会有所帮助。例如,此处的U1A引脚3可能有一个接地帽,但更好的地方是引脚2,而电池通过2个10k电阻将其馈入引脚2。您可以用形式电路理论的零极/零术语来表达这一点,也可以将其视为感测到的电池电压变化速率的延迟。
根据要求询问...
一种解决方案虽然可能并不理想,但可以使用比较器或配置为比较器的运算放大器。将负输入作为设置电压,将正输入作为PWRBAT +。当电池电压超过该阈值时,较早浮动的比较器输出将被拉至地。将此输出连接到R2和R4的结点应关闭晶体管Q2,并使Q1不相关,因此停止充电。
由于比较器输入为高阻抗,因此可以使用简单的电阻分压器来产生设定电压。
比较器应该能够吸收通过输出电阻将输出运算放大器降至0所需的电流,这对于大多数典型的比较器来说可能是不错的选择。
这种方法的优点是无需修改就可以使用您已经拥有的电路。
我终于做到了。罗素,我尝试添加该二极管,但没有成功。我不明白为什么您说添加该二极管会使OA从Vcc摆动到GND。TL431是一个很好的建议。添加该继电器(消耗150mA)后,我需要一个比电源分压器更可靠的参考电压。为此加油!无论如何,我在当地的电子产品商店发现一个很小的密封12V继电器,我不得不将其制动,并调节线圈使其在5V电压下工作。真是个地狱..我最终还是用手来绕线。但这是值得的,现在它确实可以实现我想要的功能:
- initial battery level is somewhere bellow 1.3V
- USB is plugged in
- battery is charged at ~150mA until the voltage applied by the current source is 1.49V
- 1.49V is reached, the relay goes off, and the battery voltage drops to ~1.44V
- charger won't start again until cell goes bellow 1.38V
这是最终的原理图:
谢谢大家的帮助!