锂电池基础知识及管理方式总结
这两天在排查一个锂电池无法充电的问题,用的是电池管理芯片BQ25713,网上相关的资料也很少,查看数据手册时,里面也有很多术语参数等不是很理解,所以,在此对锂电池的基础知识做个简单的总结,方面后续开发。
锂电池简介
锂电池大致可分为两类:锂金属电池和锂离子电池。
锂金属的化学特性非常活泼,使得锂金属的加工、保存、使用,对环境要求非常高。可充电电池的第五代产品锂金属电池在1996年诞生,其安全性、比容量、自放电率和性能价格比均优于锂离子电池。由于其自身的高技术要求限制,只有少数几个国家的公司在生产这种锂金属电池。
锂离子电池不含有金属态的锂,并且是可以充电的。锂离子电池一般是使用锂合金金属氧化物为正极材料、石墨为负极材料、使用非水电解质的电池。现在所称的锂电池一般都是锂离子电池。我们的手机里、笔记本电脑里,乃至电动汽车里,使用的大多都是锂离子电池。
我们这篇文章也是针对锂离子电池来说的。
基础参数
锂电池大致可分为两类:锂金属电池和锂离子电池。
锂金属的化学特性非常活泼,使得锂金属的加工、保存、使用,对环境要求非常高。可充电电池的第五代产品锂金属电池在1996年诞生,其安全性、比容量、自放电率和性能价格比均优于锂离子电池。由于其自身的高技术要求限制,只有少数几个国家的公司在生产这种锂金属电池。
锂离子电池不含有金属态的锂,并且是可以充电的。锂离子电池一般是使用锂合金金属氧化物为正极材料、石墨为负极材料、使用非水电解质的电池。现在所称的锂电池一般都是锂离子电池。我们的手机里、笔记本电脑里,乃至电动汽车里,使用的大多都是锂离子电池。
我们这篇文章也是针对锂离子电池来说的。
锂电池的种类非常多,在选购时我们要注意它的相关参数:
这是一组锂电池的参数表:包含了电压、容量、放电倍率、电芯、尺寸、重量、充电电流。
电压
标称电压也称为额定电压,是指电池在标准规定条件下工作应达到的电压。
锂电池的标称电压(也就是上图中的额定电压)一般为3.7V每节,其充满电时的电压一般为4.2V。保存电压3.85V(40%-50%),保护电压3.6V,保护电压防止电池过放。放完电大概是3.0V。满电存放或者电压低于3.2V电池存放过久会鼓包。
我们在日常计算时一般会以4V为单位,也就是默认一块锂电池的电压是4V,在此基础上我们再对电池进行串联,每串联一块电池就会将电池组的电压增加4V,也就是我们常说的12V、24V、48V。但是我们刚开始说过锂电池的标称电压的3.7V,所以在选购电池时电池上面标的容量都是以3.7V为准,那么对应的就是11.1V,22.2V,44.4V。
容量
锂电池的容量一般以mAh计算,同型号的电池容量与其体积正相关,我们也可以通过并联电池的方式来达到增大电池容量的目的。
电池容量是指电池以某个电流来放电可以维持一个小时。比如:1000mAh的电池理论上能保持1A的电流放电1个小时。
C数
C数是指锂电池的充放电倍率,充电和放电分别有自己的C数。
放电倍率,即放电的C数,表示电池的放电能力,即最大的持续放电电流=额定电池容量*放电倍率。假设一块电池容量为1000mAh,它的放电C数是25C,那么它额定的最高放电电流就是1*25=25A,如果该电池长时间在25A电流以上进行放电,电池的寿命会变短。
充电C则是额定的充电电流,假设一块电池容量为1000mAh,它的充电C数是2C,那么它的最大充电电流就是2A,计算方式是一样的,超过这个电流进行充电会有很高的风险。我们在进行选购时要评估自己的应用场景,确定自己所需的充放电C数,这一般是容易被忽略的一点。
基本都是某一个电压和容量型号固定以后,倍率基本都是固定的,只有少部分型号是可以选择的(例如常用型号2200 3s有20c,25c等几个型号),所以倍率不用太考虑,而且在多数情况下,倍率都够用。
组合电芯
4S1P
S:Serial串联; 串联可增加电池的电压
这里的S应该以标称电压为衡量,而不应该以实际的“节数”来衡量。
可以将S理解成一个单位,1S的标称电压是3.7V,满电电压是4.2V。那么1S的标称就是3.7V,2S的标称就是7.4V……依此类推。
如果想知道电池的电压,可以通过多少S来算出,上图中是4S,我们就能知道当前锂电池的标称电压是4*3.7=14.8V,满电电压是4*4.2=16.8V。
想知道电池是几S的,也可以通过电压来算出,比如上面图片里额定电压是14.8V,也就是标称电压,我们知道每S标称电压是3.7V,那么14.8/3.7=4,就知道了当前锂电池是4S的。
P:Parallel并联。并联可以增加电池的容量
使用注意事项
虽然锂电池已经充斥在我们的生活中了,但是绝大多数人并不了解该如何正确使用锂电池。
锂电池的内阻
锂电池内阻的增加会导致其能真正放出的电流越来越少,给我们直观的感受就是电池越来越不耐用了,电池的容量好像变低了,实际上就是内阻增高造成的。
循环次数
循环次数的增加是导致电池内阻增加的原因之一,锂电池的循环次数有限,会随着循环次数的增加不断增加电池的内阻,循环次数是指总计充入电池的电流多少和电池容量的比值,但在日常使用中电池循环次数对电池内阻的影响很小,甚至可以忽略不记。
电池的剩余电量
电池的剩余电量实际上是用当前电压换算出来的,具体的对照值入下表:
100%----4.20V
90%-----4.06V
80%-----3.98V
70%-----3.92V
60%-----3.87V
50%-----3.82V
40%-----3.79V
30%-----3.77V
20%-----3.74V
10%-----3.68V
5%------3.45V
0%------3.00V
可以看出电池的容量和电池的当前电压是非线性的。
了解了上面的知识,我们就可以说下在日常生活中如何正确使用锂电池了。
避免过放
使用锂电池最忌讳的事就是过放,我们在上面说了锂电池的剩余电量,在3.0V时就是0%了,但是我们实际上还可以继续让电池放电,不过这样做是极度损伤锂电池的,会极大的增加它的内阻,并且这种损伤是不可逆的,同时当锂电池电压为0V时这个电池也就完全报废了,在低于3V以后想再对锂电池进行充电,需要使用极低的电流进行充电,并且不一定能将电压冲回3V以上。所以再使用锂电池时绝对不可以使其过放。但事实上我们日常生活中使用的锂电池包都是有电池保护系统的,当电池电量低于某个限定的值时(比如5%--3.45V)电池保护系统会停止输出,需要充电后才可以继续使用,此时我们用户看到的电量就已经是0%了。
避免过充
我们日常生活中使用的锂电池,一般都自带BMS(电池管理单元),它会管理电池的充放电,所以对于我们用户来说,充电是很容易的事,一般只要插上充电器就可以了,但实际上充电并没有那么容易。我们之前说过锂电池满电的电压是4.2V,那么如果超过了这个值还继续用充电会发生么呢?后果非常可怕,它会爆炸,哪怕多充一点也会导致锂电池极不稳定。所以过充是一定要避免的。
储存
一次性电池的使用使很多人对电池造成了误解任务电池就应该是满电的才对,但是锂电池不是这样的它的最佳使用区间是20%~80%,也就是说想要它的寿命达到最高它的容量应该一直在这个区间,但我们不能为了提升的一点点使用寿命而丧失好的用户体验,但是需要注意的是,如果某个锂电池会长时间不使用,那么应该让它的电量保持在55%即3.85V,并且每三个月要拿出来充放一次。
报废
锂电池中包含很多重金属,若一块锂电池报废了,一定不能随意丢弃,当然实际上任何电池报废了都不能随意丢弃,它们会透过土壤直接影响地下水,从而影响我们的日常生活,所以报废的电池应该丢到专用的电池垃圾桶中。
安全
最后我们不得不提到锂电池的安全问题,锂电池是一种能量密度极高的储能元件,相对其他类型的电池来说,它具有质量轻,能量密度高,放电量大等多种优点,但它也有易燃易爆炸的缺点,这也是为什么常见的动力电池都会用金属进行封装的原因,同时锂电池一定要避免被穿刺,虽然现在一些高端的锂电池安全测试已经将电池穿刺列入了测试条款,但是通过测试是电池也是寥寥无几。
电池充电用专用的充电器进行充电。
充放电过程
参考:锂电池为什么要分阶段充电(也有的说是容积充电,就是先低电流,然后恒流,最后还要涓流等等)? - 知乎
我们在对锂离子电池进行充电的时候,大多数使用的是CC-CV的充电制度。那么为什么恒流充电之后要加上恒压充电?只用恒流充电能够充满电吗?恒压充电的作用是什么?
备注:CC,恒流,Constant Current;CV,恒压,Constant Voltage;
一.锂离子充电的四个阶段:涓流充电(低压预充)、恒流充电、恒压充电以及充电终止。
阶段1:
涓流充电——涓流充电用来先对完全放电的电池单元进行预充(恢复性充电)。在电池电压低于3V左右时,先采用最大0.1C的恒定电流对电池进行充电。
阶段2:
恒流充电——当电池电压上升到涓流充电阈值以上时,提高充电电流进行恒流充电。恒流充电的电流在0.2C至 1.0C之间。恒流充电时的电流并不要求十分精确,准恒定电流也可以。
阶段3:
恒压充电——当电池电压上升到4.2V时,恒流充电结束,开始恒压充电阶段。电流根据电芯的饱和程度,随着充电过程的继续充电电流由最大值慢慢减少,当减小到0.01C时,认为充电终止。为使性能达到最佳,稳压容差应当优于+1%。
阶段4:
充电终止——有两种典型的充电终止方法:采用最小充电电流判断或采用定时器(或者两者的结合)。最小电流法监视恒压充电阶段的充电电流,并在充电电流减小到0.02C至0.07C范围时终止充电。第二种方法从恒压充电阶段开始时计时,持续充电两个小时后终止充电过程。
二.为什么使用涓流充电对电压低于3V的电池进行预充?
锂离子电池在过放电的过程中,如果电压低于电池的额定使用电压,电池负极的SEI膜会出现破裂分解(过放电对锂离子电池的影响请阅读锂电--锂离子电池在过放电过程中,电池内部发生了什么?过放电的失效机制是什么?)。这种情况下直接使用大电流进行充电,溶剂化的Li离子会直接和负极相接触,有较严重的副反应产生。所以,首先使用涓流充电,用小电流对SEI膜可能存在的破裂分解处进行修补,重新生成致密的内层和多孔的外层。这个时候,溶剂化的Li离子会在外层去溶剂化,通过内层后嵌入负极材料,从而减少副反应的产生。
三.在恒流阶段加大电流,能否减少CC-CV整个充电过程所用的时间?
当以大电流充电时,锂离子电池内部极化会变得很严重,其电压会更快速地上升,很快就达到充电截止电压。虽然表现为恒流充电阶段变短很多,但是实际上并没有充入很多电量,所以在恒压充电阶段的时间会相应增加,因此总的充电周期时间并不会缩短。
四.为什么恒流充电之后要加上恒压充电?
当锂离子电池有外电流的存在时,电池内部就会产生极化,如下图所示。在充电中,测试端读出的电压V测,包括了V真实、V极化和VΩ,在电池管理系统中,以V测为基准来判定电池是否充满(即V测达到某一个确定的数值之后,结束充电)。当V测达到结束电压数值的时候,由于V极化存在,V真实并没有达到截止电压的数值大小。在结束充电后,电池的电压会有一定的回落(V极化消失),此时测试出的电压为V真实,在实际使用中就表现为恒流充电没充满。所以需要在恒流充电之后要加上恒压充电,目的是为了将锂离子电池的储电能力发挥完全。
五.使用恒流充电,在锂离子电池达到充电截止电压之后,静置一段时间消除极化,然后再次使用恒流充电,不停地重复这样的过程,能否将电池充满电?
只要存在外电流就会产生极化,并且产生极化的时间非常短暂。产生极化后,恒流充电中的电池会再次达到截止电压,而被停止充电。在这样短暂的时间内,只能充进非常少的电量。所以,不停重复恒流充电,也并不能将锂离子电池完全充满。
六.恒压充电有什么作用?
恒压充电是在电池的两端提供恒定的电势,通过电势差进行充电。
充放电曲线
参考:
锂电池充放电曲线、设置充电电流、检测TP4054的3种充电状态_锂电池充电曲线-CSDN博客
锂电池充电曲线
比如充电的方案TP4054,典型电路是比较简单的,根据不同的应用需求手册上有提供更完善的电路;
下图是以时间为X轴,以电压、电流为Y轴的充电曲线。
在电压小于2.9V的时候,充电电流为设置的恒定电流的1/10,也就是400mA的1/10即40mA来充电;
当电压大于2.9V后,以400mA的恒定电流充电;
当电压快充到4.2V的时候,降低电流,改为恒压充电,当电流降到设置电流的1/10停止充电,电流降为0,停止充电循环;
最近在给4S即16.8V的锂电池充电,从0充到13左右特别快,再往上充就很慢了。
锂电池放电曲线
通常说的锂电池3.7V,指的是放电的平台电压(有点拐点的感觉),4.2V说的是充满电的时候,下图是放电曲线。
在4.18V到4V的区间,电池电压下降的很快;
在4.0V到3.71V的区间,电压下降的趋势比较缓和;
在3.71V再往下的区间,电压下降的趋势又变陡;
最近给4S的电池放电,就是中间一段放电很慢,曲线两端放电真的特别快,13V的时候开始放,就出去一会儿,回来直接给放到0了……过放,然后试着充了下,真的是秒充到13左右了。
动态电源路径管理
参考:
充电器IC应用电路之电源路径管理
手机充电芯片的路径管理(NVDC)功能 - 知乎
动态电源路径管理(DPPM)技术采用了一套附加的检测模块,测量系统电压或者输入电流,实时监测总功率需求。一旦功率需求超过预设值,通过充电器降低充电电流来保证适配器输出功率恒定而不过载。
动态电源路径管理 (DPPM) 在系统和电池充电之间共享适配器电流,并通过调整充电电流和系统电流分配关系,最大程度保证系统的正常工作,当适配器无法提供峰值系统电流时,电源路径架构还允许电池补偿这类系统电流要求。
今天花一些时间聊一聊BUCK充电IC中的路径管理(NVDC)功能,NVDC,narrow voltage DC。
如下图,Q4管即为实现路径管理功能的一个重要部件,Q4管又称BATFET。
注意上面,红色线就是系统电压路径,绿色线是给电池充电的路径,黄色线是电池给系统补充电量的路径。
当电池过放时,即电池电压很低时,充电IC将输出一个稳定的最小系统电压(典型值为3.5V),保证插上充电器后手机系统就能够跑起来,不需要等到电池充上来了系统才能运行。
具体实现细节是怎么样的呢?
◆
在DPPM系统中,系统负载连接至系统总线(VSYS)。VSYS通过电池FET从电池供电,或者通过DC / DC变换器或LDO从输入源供电。当输入源不可用时,电池FET完全导通,由电池为系统负载供电。
◆
当接入输入源时,VSYS由输入DC/DC变换器或LDO调节。同时,VSYS通过电池FET向电池提供充电电流。在这种充电模式下,系统负载优先供电,剩余电量用于充电。充电电流可根据输入源能力和系统负载水平进行动态调整,以实现最短的充电时间。
◆
在上述充电过程中,如果系统负载超过输入源的电源能力,VSYS 将降低。一旦VSYS下降至DPPM阈值(也就是最小系统电压),DPPM控制环路就会激活并自动减少充电电流,以防止VSYS 进一步下降,把功率让给系统,优先保证系统正常工作。这个过程也称为DPPM模式。
◆
如果系统负载进一步加重,即使把电池充电电流降为零,输入功率仍然不能满足系统时,电池将由充电转换为放电,与充电器一起给系统供电,从而使系统的用电得到保证。这个功能被称为辅助供电模式或者补充模式(Supplement Mode),是用比较器做的,当系统电压因为抽载的原因下降到低于电池电压时,则batfet会重新打开,电池将由充电转换为放电,按照第一张图中橙色的箭头所示的路径辅助参与供电。
DPPM模式下的VSYS 可根据系统要求灵活调节。如果从输入到系统的前端变换器是LDO,则可以将VSYS设置为一个满足系统要求的特定水平。
如果输入到系统之间的前端变换器是DC / DC变换器,则通常将VSYS设置为跟随电池电压,从而提高效率。我们通常称其为窄电压DC(NVDC)。
DPPM控制有几个优点。首先,无论电池是否耗尽,一旦接入了输入源,系统都会立即获得电力。其次,充电电流可根据输入源和系统负载进行动态调整,以实现最短的充电时间。
DPPM控制的局限性在于,确保不同操作模式之间的平稳过渡会比较复杂。通常,电池FET控制需要VSYS环路、理想二极管环路、充电电压和充电电流环路。
结论
通过DPPM控制,即使电池电量耗尽,系统也可以在施加输入源后立即获得电力。带DPPM控制的充电器IC还可以优化充电电流,以充分利用输入源的电流能力。尽管DPPM的控制很复杂,DPPM仍广泛应用于需要电源选择功能的充电器IC中。
相关文章:

锂电池基础知识及管理方式总结
这两天在排查一个锂电池无法充电的问题,用的是电池管理芯片BQ25713,网上相关的资料也很少,查看数据手册时,里面也有很多术语参数等不是很理解,所以,在此对锂电池的基础知识做个简单的总结,方面后…...

小红书基于零信任 SASE 办公安全解决方案,斩获 “IDC 中国 20 大杰出安全项目”
近日,由 IDC 主办的 2023 全球 CSO 网络安全峰会(中国站)在京举行,峰会荟萃 300 生态伙伴和行业领袖,共同探讨新形势下的数据安全保护,畅议未来网络安全的可靠航道。 会上,“2023 IDC 中国20大杰…...

html通过CDN引入Vue使用Vuex以及Computed、Watch监听
html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求,就是需要在.net MVC的项目中,对已有的项目的首页进行优化,也就是写原生html和js。但是咱是一个写前端的,写html还可以,.net的话,开发也…...

【LabVIEW学习】5.数据通信之TCP协议,控制电脑的一种方式
一。tcp连接以及写数据(登录) 数据通信--》协议--》TCP 1.tcp连接 创建while循环,中间加入事件结构,创建tcp连接,写入IP地址与端口号 2.写入tcp数据 登录服务器除了要知道IP地址以及端口以外,需要用户名与密…...

uview1 的u-tabs组件在微信小程序中会出现横向滚动条
uview1 的u-tabs组件在微信小程序中会出现横向滚动条,真机才会生效,微信开发者工具没问题包括官方示例也会 原因:未屏蔽微信小程序的滚动条 解决办法:uview-ui中uview-ui/components/u-tabs/u-tabs.vue文件把h5屏蔽滚动条的条件编…...
服务器ipv6地址显示“scope global dadfailed tentative noprefixroute”无法连通的问题处理一例
服务器规模启用ipv6地址后,遇到一起案例 ,配置的服务ipv6地址显示“scope global dadfailed tentative noprefixroute”,无法连通,现将解决过程记录如下。 一、问题情况 1、ipv6信息检查 某台服务器配置ipv6地址后,…...

深度学习学习顺序梳理
https://www.bilibili.com/video/BV1to4y1G7xq/?spm_id_from333.999.0.0&vd_source9607a6d9d829b667f8f0ccaaaa142fcb 1.吴恩达机器学习课程 已学完,时间较久了,后续可以重新听一遍,整理一下笔记 2. 白板推导读西瓜书 统计学习方法看…...

机器学习实验六:聚类
系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…...

逆向思考 C. Fence Painting
Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…...

当当狸AR智能学习图集跨越千年文明传承,邀您“面对面”与虚拟诗人互动对诗
中华传统文化底蕴深厚,余韵悠长。即使经过千年的历史裂变,依然历久铭心慰藉着一代又一代人的灵魂。千百年后的今天,成为了我们独一无二的财富。 如今,国人学习中华传统文化的方式有很多,诗词集、动画影片、诗歌传颂等…...

CESM笔记——component活动状态+compset前缀解析+B1850,BHIST区别
时隔一年没写CSDN笔记了,一些CESM的知识点我都快忘了。诶,主要是在国外办公室的网屏蔽了好多国内的网络,CSDN登不上,回家又不想干活。。。好吧,好多借口。。。 昨天师弟问我一些问题,想想要不可以水一篇小…...

vue 页面跳转时,浏览器上方显示进度条
vue 页面跳转时,浏览器上方显示进度条 文章目录 vue 页面跳转时,浏览器上方显示进度条先看效果一、安装 nprogress二、main.js 引入nprogress1.引入库 三、在router.js中对路由钩子进行设置四、测试 先看效果 vue 页面跳转时,浏览器上方显示进…...

tqdm输出字符串被截断
tqdm输出截断 1.遇到的问题2.tqdm默认的字符串长度是80(ncols属性)3.修改tqdm的ncols属性4.本人字符串长度是64 1.遇到的问题 字符串打印,显示不完整, 2.tqdm默认的字符串长度是80(ncols属性) 3.修改tqdm的…...

Qt::UniqueConnection和lambda一块用无效
如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因: 参考官方文档: QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect...

四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛
四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛 文章目录 四川技能大赛——2023年四川网信人才技能大赛(网络安全管理员赛项)决赛C1-比64少的bas - DONEC2-affine - DONEC3-简单的RSA - DONEM1-不要动我的f…...

死锁(面试常问)
1.什么是死锁 简单来说就是一个线程加锁后解锁不了 一个线程,一把锁,线程连续加锁两次。如果这个锁是不可重入锁,会死锁。两个线程,两把锁。 举几个例子,1.钥匙锁车里了,车钥匙锁家里了。2. 现在有一本书…...
GO设计模式——3、抽象工厂模式(创建型)
目录 抽象工厂模式(Abstract Factory Pattern) 抽象工厂模式的核心角色 优缺点 代码实现 抽象工厂模式(Abstract Factory Pattern) 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他…...

AUTOSAR_PRS_LogAndTraceProtocol文档翻译
1简介和概述 本协议规范规定了AUTOSAR协议Dlt的格式、消息序列和语义。 该协议允许将诊断、日志和跟踪信息发送到通信总线上。 因此,Dlt模块从应用程序或其他软件模块收集调试信息,向调试信息添加元数据,并将其发送到通信总线。 此外&#x…...
自定义比较器
package org.jeecg.modules.develop.api.livePort; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; // 创建一个泛型类 class MyObject { private T data; public MyObject(T data) {this.data data; }p…...

【NLP】如何管理大型语言模型 (LLM)
什么是LLM编排? LLM 编排是管理和控制大型语言模型 (LLM)的过程,以优化其性能和有效性。这包括以下任务: 提示LLM:生成有效的提示,为LLMs提供适当的背景和信息以产生所需的输出。链接LLM: 结合多个LLM的输…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
el-amap-bezier-curve运用及线弧度设置
文章目录 简介示例线弧度属性主要弧度相关属性其他相关样式属性完整示例链接简介 el-amap-bezier-curve 是 Vue-Amap 组件库中的一个组件,用于在 高德地图 上绘制贝塞尔曲线。 基本用法属性path定义曲线的路径,可以是多个弧线段的组合。stroke-weight线条的宽度。stroke…...
【Pandas】pandas DataFrame dropna
Pandas2.2 DataFrame Missing data handling 方法描述DataFrame.fillna([value, method, axis, …])用于填充 DataFrame 中的缺失值(NaN)DataFrame.backfill(*[, axis, inplace, …])用于**使用后向填充(即“下一个有效观测值”)…...