当前位置: 首页 > news >正文

【锂电池SOH预测】PSO-BP锂电池健康状态预测,锂电池SOH预测(Matlab完整源码和数据)

预测效果

在这里插入图片描述

基于PSO-BP算法的锂电池健康状态预测研究

一、引言
1.1 研究背景与意义

在当今社会,锂电池凭借其高能量密度、长寿命及环境友好等特性,在现代能源系统中占据着举足轻重的地位。从消费电子领域如智能手机、笔记本电脑,到动力领域中的电动汽车,再到储能领域的大型储能电站,锂电池的身影无处不在。在新能源并网、削峰填谷、平抑功率波动等场景中,锂电池储能技术发挥着关键作用,是实现能源结构转型、提升能源利用效率的重要支撑。

准确预测锂电池健康状态具有极大的必要性。随着锂电池应用场景的不断拓展,其在各种复杂环境下的运行状态变得难以把控。一旦电池健康状态出现问题,不仅会影响设备的正常运行,降低用户体验,还可能引发安全事故,造成严重的经济损失和社会影响。因此,通过准确预测锂电池健康状态,可以及时发现潜在问题,采取有效措施,保障锂电池的正常使用,延长其使用寿命,为锂电池在各领域的安全、稳定、高效应用提供有力保障。

1.2 锂电池健康状态预测的重要性

锂电池健康状态预测在提高电池系统可靠性和安全性方面意义重大。对于电池系统可靠性而言,通过准确预测健康状态,能够实时掌握电池的剩余可用容量、性能衰退情况等关键信息。这使得电池管理系统能够根据电池的实际状态,合理调整充放电策略,优化电池的使用,避免电池在过度充放电等不利条件下工作,从而延长电池的使用寿命,提高电池系统的整体运行效率。

从安全性角度来看,锂电池在过充、过放、高温等极端条件下,可能会出现热失控、爆炸等严重安全事故。健康状态预测可以提前识别出电池可能存在的隐患,如内部短路、容量衰减过快等问题,使电池管理系统及时采取保护措施,如切断电路、启动冷却系统等,防止安全事故的发生,保障人员和设备的安全。这对于电动汽车、储能电站等涉及大量锂电池的应用场景尤为重要,能够有效避免因电池安全问题导致的重大损失,提升用户对锂电池产品的信任度。

1.3 锂电池健康状态预测在BMS中的作用

电池管理系统(BMS)是保障锂电池安全、高效运行的核心组成部分,而锂电池健康状态预测在BMS中具有关键功能和广泛的应用。

在状态估计方面,BMS通过采集电池的电压、电流、温度等数据,利用健康状态预测算法,可以准确估算出电池的荷电状态(SOC)、健康状态(SOH)、剩余能量(SOE)等重要参数。SOH估计能够反映电池当前的健康程度,为电池的使用和维护提供重要依据。

在控制及管理功能上,基于健康状态预测结果,BMS能够进行智能均衡管理。通过识别电池组中各单体电池的健康状态差异,对高电量电池进行放电,对低电量电池进行充电,实现电池组内部的能量均衡,提高电池组的整体性能和利用率。

在热管理方面,健康状态预测可以帮助BMS实时监测电池的温度变化趋势,及时启动冷却或加热系统,将电池温度控制在适宜范围内,防止因温度过高或过低导致的电池性能下降和安全问题。

在故障诊断与预警方面,通过持续监测电池健康状态,BMS能够提前发现潜在的故障隐患,如电池内部短路、容量急剧下降等,并及时发出预警,提醒用户进行维护或更换电池,避免故障发生,保障电池系统的稳定运行。

二、锂电池健康状态预测的研究现状
2.1 常用预测方法概述

目前,锂电池健康状态预测方法种类繁多,主要可归为基于模型的方法、数据驱动法以及融合方法三大类。

基于模型的方法需建立准确的电池物理或电化学模型,如电化学阻抗谱模型、等效电路模型等。这类方法能深入揭示电池内部机理,预测结果具有一定的物理意义,但模型构建复杂,计算量大,且难以准确描述电池在复杂工况下的动态特性。

数据驱动法无需了解电池内部原理,仅依据收集的老化数据进行预测。其中,人工神经网络(ANN)可模拟人脑神经网络,具有强大的非线性映射能力,但存在易陷入局部最优、训练时间长等问题;支持向量机(SVM)能较好地解决小样本、非线性及高维模式识别问题,不过其核函数选择和参数设置较为困难;高斯过程回归(GPR)可提供预测结果的置信区间,适用于处理非线性、小样本数据,但计算复杂度高,容易陷入局部最优。

融合方法则结合多种方法的优势,如将机器学习算法与电池模型相结合,既能利用模型反映电池内部特性,又能借助算法处理复杂数据,提高预测精度和泛化能力。

2.2 现有方法的局限性

尽管现有锂电池健康状态预测方法取得了一定成果,但仍存在诸多局限性。

基于模型的方法在复杂工况下难以准确描述电池特性,且模型参数辨识困难,计算量大,影响预测效率。数据驱动法中,ANN易陷入局部最优,训练时间长,SVM的核函数选择和参数设置依赖经验,高斯过程回归计算复杂度高。这些方法大多对数据依赖性高,数据质量、样本数量及特征选择对预测结果影响很大,当数据存在噪声或样本不足时,预测精度会大幅下降。

在实际应用中,锂电池工作条件复杂多变,采集的数据往往存在噪声和不确定性,而现有方法难以有效处理这些复杂数据,导致预测结果不稳定,无法满足高精度、实时性的要求。随着锂电池应用场景的不断拓展,对健康状态预测的精度和效率提出了更高要求,迫切需要引入新的方法来解决现有方法的局限性,提升预测性能。

2.3 引入PSO-BP算法的动机

选择PSO-BP算法进行锂电池健康状态预测,主要基于其独特的优势和创新点。

BP神经网络虽具有强大的非线性映射能力和自学习能力,但在训练过程中易陷入局部最优,且收敛速度慢。粒子群优化算法(PSO)是一种高效的群体智能优化算法,通过模拟粒子在搜索空间中的运动来优化问题,具有全局搜索能力强、收敛速度快等优点。将PSO与BP结合,利用PSO优化BP神经网络的权值和阈值,可以有效避免BP算法陷入局部最优,提高网络的训练效率和预测精度。

PSO-BP算法的创新之处在于,它将两种算法的优势互补,既发挥了BP神经网络强大的学习能力,又借助PSO算法的全局优化能力。在锂电池健康状态预测中,能够充分利用电池运行数据,提取有效特征,建立高精度的预测模型。与传统预测方法相比,PSO-BP算法具有更高的预测精度和更强的泛化能力,能够更好地应对锂电池在不同工况下的健康状态预测需求,为锂电池的安全、高效使用提供更有力的技术支持。

三、粒子群优化算法与反向传播神经网络
3.1 粒子群优化算法基本原理

粒子群优化算法(PSO)是一种源于对鸟群捕食行为研究的自适应搜索技术。其核心思想在于通过个体间的信息传递与共享来搜寻最优解。在该算法中,每个优化问题的潜在解都被视为搜索空间中的一个粒子。假设优化问题为d维优化,种群由M个粒子组成,第i个粒子表示为Xi=(xi1,xi2,…,xid),每个粒子都有一个飞行速度,第i个粒子的飞行速度为Vi=(vi1,vi2,…,vid)。

粒子在搜索过程中,会依据自身找到的最优解pbest和群体中所有粒子找到的最优解gbest来调整自己的速度和位置。速度更新公式为vit+1=ωvit+c1r1(pit-xit)+c2r2(pgt-xit),其中ω为惯性权重,c1和c2为加速常数,r1和r2为[0,1]之间的随机数。位置更新公式为xit+1=xit+vit+1。通过不断迭代,粒子群逐渐向最优解区域聚集。

在参数设置上,惯性权重ω可平衡全局搜索与局部搜索能力,较大的ω有利于全局搜索,较小的ω则增强局部搜索能力。加速常数c1和c2调节粒子向自身最优和全局最优移动的步长。粒子群规模M一般根据问题复杂程度确定,较大的规模可提高搜索能力,但会增加计算量。最大速度Vmax限制粒子速度范围,防止粒子因速度过大而错过最优解。

PSO算法因其搜索速度快、参数少、易于实现的特点,在函数优化、神经网络训练、组合优化等领域有着广泛应用。它能够高效地处理复杂优化问题,为寻找最优解提供有力支持。

3.2 反向传播神经网络工作原理

反向传播神经网络(BP神经网络)是一种具有强大非线性映射能力的神经网络模型。其基本结构包括输入层、隐含层和输出层。输入层负责接收外界输入信息,隐含层对输入信息进行内部处理,输出层则输出神经网络的处理结果。

BP神经网络的训练过程主要通过误差反向传播机制来实现。训练开始时,给定一组输入样本和对应的期望输出,网络从前向后逐层计算各层神经元的输出值。当输出层输出值与期望输出值存在误差时,采用误差梯度下降法(trainlm)来修正各层连接权值和阈值。具体而言,先求出输出节点误差,然后从输出层到隐含层逐层修正,直至误差减少到指定目标精度范围内。

以输出层节点为例,输出节点的均方误差为E=1/2Σ(Ot-O)2,其中Ot为输出层神经元的期望输出,O为实际输出,p为样本数。对输出节点连接权值求导得Δwij=-(Ot-O)·Oj1,以此调整权值。经过多次正向传播计算和反向传播修正,BP神经网络能够不断优化自身参数,提高对输入输出映射关系的拟合能力,从而实现各种复杂的功能。

3.3 BP神经网络的局限性

尽管BP神经网络在许多领域表现出色,但在训练过程中也容易遇到一些问题,其中最为突出的便是局部最优和收敛速度慢。

局部最优问题是BP神经网络的一大难题。由于BP算法采用梯度下降法进行权值和阈值调整,网络在训练过程中可能会陷入误差曲面的局部极小值点。一旦陷入局部最优,即使继续训练,网络也难以跳出该区域,导致无法找到全局最优解。这使得网络在处理复杂问题时,预测精度和性能受到严重影响。

收敛速度慢也是BP神经网络面临的重要问题。在训练过程中,网络需要根据误差反向传播来调整参数,这一过程需要多次迭代。当网络结构复杂、训练样本数量庞大时,迭代次数会大幅增加,导致训练时间过长。而且,如果学习率设置不当,过小会导致收敛速度过慢,过大则可能使网络在最优解附近来回振荡,难以稳定收敛。这些问题限制了BP神经网络在实时性要求高、数据量大的场景中的应用。

为了解决这些问题,研究者们提出了多种改进方法,如引入动量项、自适应调节学习率、优化神经网络结构等,但这些方法往往难以同时兼顾全局搜索能力和收敛速度,仍存在一定的局限性。

3.4 PSO-BP算法的结合方式

PSO算法与BP神经网络的结合,能够有效优化BP神经网络的权值和阈值,提升模型性能。

在PSO-BP算法中,BP神经网络的权值和阈值被视为PSO算法中的粒子。每个粒子代表一组可能的权值和阈值组合,粒子的适应度函数通常为BP神经网络训练后的误差函数。通过PSO算法的全局搜索能力,粒子群在搜索空间中不断寻找最优的权值和阈值组合。

具体而言,首先确定BP神经网络的拓扑结构,包括输入层、隐含层和输出层的节点数。然后初始化参数,包括BP神经网络的初始权值和阈值,以及PSO算法的粒子种群、惯性权重、加速常数等。在迭代过程中,每个粒子根据自身找到的最优解和群体中的最优解来更新自己的速度和位置,进而调整所代表的权值和阈值。当粒子群找到较优的权值和阈值组合时,将其赋值给BP神经网络进行训练。经过多次迭代,BP神经网络的权值和阈值逐渐向最优值逼近。

这种结合方式充分利用了PSO算法的全局优化能力和BP神经网络的学习能力。一方面,PSO算法避免了BP算法易陷入局部最优的问题,提高了网络的泛化能力;另一方面,BP神经网络强大的非线性映射能力使得模型能够更好地拟合复杂的数据关系。通过PSO-BP算法,可以构建出预测精度更高、训练效率更快的锂电池健康状态预测模型。

四、基于PSO-BP的锂电池健康状态预测模型设计
4.1 特征参数的选择与提取

锂电池健康状态受众多因素影响,准确选择与提取关键特征参数至关重要。
此外,恒流充电时间、恒流放电时间、恒压充电时间等也能从一定程度上反映电池健康状态。在不同循环周期,随着电池老化,恒流充电和放电时间会缩短,而恒压充电时间会增长。通过对电池充放电过程中的电压、电流数据进行详细分析,可提取出这些关键特征参数,为后续健康状态预测提供重要依据。

4.2 数据预处理与特征选择

数据预处理是构建高精度预测模型的关键步骤。首先要对采集的电池电压、电流、温度等数据进行去噪处理,常用的方法有滑动平均滤波、中值滤波等,以消除数据中的噪声干扰,使数据更加平滑和准确。

在特征选择上,可采用相关系数法、主成分分析法等方法。相关系数法可通过计算各特征参数与锂电池健康状态指标(如SOH)之间的相关系数,选择相关性较高的特征作为输入参数。主成分分析法能将多个相关特征转化为少数几个不相关的综合指标,既能保留原始数据的主要信息,又能降低数据维度,避免模型过于复杂,提高预测效率。

对于复杂的非线性数据,还可利用卷积循环网络等深层机器学习方法自动提取隐藏特征。通过这些方法,能从海量数据中筛选出对锂电池健康状态影响最大的关键特征,提高预测模型的准确性和泛化能力。

4.3 模型构建与参数优化

构建PSO-BP模型,首先需确定BP神经网络的拓扑结构。根据锂电池健康状态预测的实际需求,选择合适的输入层、隐含层和输出层节点数。输入层节点数通常为所选特征参数的个数,输出层节点数为健康状态指标(如SOH)的个数,隐含层节点数可通过经验公式或试错法确定。

随后初始化PSO算法参数,包括粒子种群规模、惯性权重、加速常数等。粒子种群规模应根据问题复杂程度选择,较大的规模可提高搜索能力,但会增加计算量。惯性权重可设置为动态变化,在迭代初期设置较大值以增强全局搜索能力,后期逐渐减小以提高局部搜索精度。加速常数一般设置为固定值。

将BP神经网络的权值和阈值编码为粒子,每个粒子代表一组可能的权值和阈值组合。以BP神经网络训练后的误差函数作为粒子的适应度函数,通过PSO算法的全局搜索能力,不断更新粒子的速度和位置,寻找最优的权值和阈值组合。在迭代过程中,记录每次迭代的最优解,当达到预设迭代次数或适应度值满足要求时,停止迭代,将找到的最优权值和阈值赋值给BP神经网络。

参数优化过程中,可采用自适应调整策略,如根据适应度值的变化动态调整惯性权重和加速常数,以加快收敛速度,提高优化效率。通过合理构建模型和优化参数,使PSO-BP模型能够更准确地拟合锂电池健康状态的变化规律。

4.4 模型训练与测试

模型训练前,需将收集到的锂电池运行数据集划分为训练集和测试集。训练集用于训练PSO-BP模型,使模型能够学习到锂电池健康状态与特征参数之间的映射关系;测试集用于评估模型的泛化能力,检验模型在未见过的数据上的预测性能。

训练过程中,首先利用PSO算法优化BP神经网络的初始权值和阈值,然后将优化后的参数代入BP神经网络进行训练。在训练过程中,不断调整网络参数,使网络的输出结果尽可能接近真实健康状态值。训练时可设置合适的迭代次数、学习率等参数,以确保模型能够充分学习数据特征。

完成训练后,使用测试集对模型进行测试。计算模型预测值与实际健康状态值之间的误差,如均方误差、平均绝对误差等,以评估模型的预测精度。若模型在测试集上的表现良好,说明模型具有较好的泛化能力,能够准确预测锂电池的健康状态;若表现不佳,则需调整模型参数或优化算法,重新进行训练和测试,直至满足预测要求。

五、实验与分析
5.1 实验设计与数据集

实验所用数据集源自美国航空航天局(NASA)卓越故障预测中心。该中心采用额定容量为2Ah的18650型市售钴酸锂离子电池进行循环测试,在室温条件下测试了3种不同的电池工作曲线,包括充电、放电和阻抗。数据集提供了丰富的参数信息,如环境温度(ET)、充电电流(CC)、放电电流(DC)以及放电结束电压等,为实验分析提供了坚实基础。

实验选取了数据集中的B0005、B0006、B0007号电池老化数据作为实验对象。这些电池均经历了连续的充电、放电和阻抗测试实验。充电过程先以1.5A电流恒流充电,当电压达到4.2V后转为恒压充电,直至电流下降到20 mA时结束。放电过程则用2A电流恒流放电至2.7V。实验中详细记录了电池在不同循环次数下的电压、电流、温度等数据。

为确保实验的可重复性,实验设计遵循了严格的标准化流程。首先对原始数据进行预处理,包括去噪、特征提取等步骤。去噪采用了滑动平均滤波方法,以消除数据中的随机噪声。特征提取则根据锂电池健康状态的影响因素,选取了内阻、充电电压样本熵、等压降放电时间等关键参数。随后将处理后的数据集按一定比例划分为训练集和测试集,训练集用于训练PSO-BP模型,测试集用于评估模型的泛化能力。整个实验过程及参数设置均详细记录,以便其他研究者能够按照相同的方法和步骤进行重复实验。

5.2 模型性能评估指标

为全面评估PSO-BP模型的预测性能,实验中采用了多个评估指标。其中,均方误差(Mean Squared Error, MSE)和相关系数是两个重要的指标。

均方误差是一种常用的统计度量,用于衡量模型预测误差的平均平方值。其计算公式为 M S E = 1 n ∑ i = 1 n ( y i − y i ^ ) 2 MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2 MSE=n1i=1n(yiyi^)2,其中 y i y_i yi表示真实值, y i ^ \hat{y_i} yi^表示预测值,n为样本数量。MSE值越小,说明模型的预测值与实际观测值之间的差距越小,预测精度越高。

相关系数则用于衡量模型预测值与真实值之间的线性相关程度。常用的是皮尔逊相关系数(Pearson Correlation Coefficient, PCC),其取值范围为[-1,1]。当PCC值为1时,表示预测值与真实值完全正相关;值为-1时,表示完全负相关;值为0时,表示两者之间无线性相关关系。一般来说,PCC值越接近1,说明模型的预测效果越好。

通过这两个指标,可以从不同角度综合评估PSO-BP模型在锂电池健康状态预测中的表现,为模型的优化和改进提供重要依据。

5.3 实验结果与分析

实验结果显示,PSO-BP模型在锂电池健康状态预测中表现出色。从预测精度来看,在测试集上,模型的均方误差(MSE)值较小,说明预测值与实际健康状态值之间的偏差较小。以SOH预测为例,MSE值控制在较低水平,表明模型能够准确地预测电池的健康状态。相关系数(PCC)值接近1,说明预测值与真实值之间存在高度的线性相关关系,进一步验证了模型的高精度预测能力。

在预测效率方面,PSO-BP模型也展现出优势。由于PSO算法优化了BP神经网络的权值和阈值,使得网络的训练过程更加高效。与传统的BP神经网络相比,PSO-BP模型的收敛速度更快,在相同迭代次数下,能够更早地达到预设的误差精度。这意味着在实际应用中,PSO-BP模型能够在较短的时间内完成对锂电池健康状态的预测,满足实时性要求。

通过对不同循环次数下模型预测结果的对比分析,发现随着电池循环次数的增加,模型的预测精度依然保持在较高水平。这表明PSO-BP模型具有良好的泛化能力,能够适应电池在不同老化程度下的健康状态预测需求。

5.4 与传统方法的比较

将PSO-BP模型与其他传统预测方法进行比较,结果凸显出其显著优势。与基于模型的方法相比,如电化学阻抗谱模型和等效电路模型,PSO-BP模型无需建立复杂的物理或电化学模型,避免了模型参数辨识困难和计算量大等问题。在处理复杂工况下的电池数据时,PSO-BP模型能够更灵活地提取特征,准确地反映电池健康状态的变化趋势。

相较于数据驱动法中的BP、RF和SVM等方法,PSO-BP模型在避免局部最优和提高训练效率方面表现出色。

六、结论与展望
6.1 研究总结

本文围绕基于PSO-BP算法的锂电池健康状态预测展开深入研究。首先阐述了锂电池在现代社会中的广泛应用及其准确预测健康状态的必要性,剖析了锂电池健康状态预测在提升电池系统可靠性和安全性方面的重要性,以及在电池管理系统中的关键作用。接着梳理了锂电池健康状态预测的研究现状,分析现有预测方法的优缺点,明确引入PSO-BP算法的动机。

详细探讨了粒子群优化算法与反向传播神经网络的基本原理、BP神经网络的局限性以及PSO-BP算法的结合方式。构建基于PSO-BP的锂电池健康状态预测模型,从特征参数的选择与提取、数据预处理与特征选择、模型构建与参数优化、模型训练与测试等方面进行系统阐述。最后通过实验验证模型性能,采用美国航空航天局卓越故障预测中心的数据集,利用均方误差和相关系数等指标进行评估。结果表明,PSO-BP模型在预测精度和效率上均优于传统预测方法,为锂电池健康状态预测提供了一种高效、准确的新途径。

6.2 模型的局限性

PSO-BP模型在实际应用中仍面临一些局限与挑战。在参数设置方面,PSO算法的惯性权重、加速常数等参数的选择对模型性能影响较大,若设置不当,可能导致优化效果不佳。模型对训练数据集的依赖性较高,当数据集存在噪声或样本不足时,模型的预测精度会下降。在处理复杂工况下,锂电池数据存在高度非线性、多变量耦合等情况时,模型可能难以充分挖掘数据中的复杂关系,导致预测结果不够准确。

对于不同种类的锂电池,由于其电化学特性差异较大,模型可能需要重新调整参数或结构,才能适应新的电池类型,增加了应用的复杂性。随着锂电池应用场景的不断拓展,如在极端温度、恶劣环境等条件下,模型能否保持稳定的预测性能也是一个值得关注的问题。这些局限性限制了PSO-BP模型在更广泛领域的应用,需要进一步优化和改进。

6.3 未来研究方向

为进一步提升PSO-BP模型性能,可从多个方向进行优化与拓展。在算法改进方面,可探索将PSO算法与其他优化算法结合,如遗传算法、蚁群算法等,形成更高效的混合优化算法,以增强模型的全局搜索能力和局部寻优能力。深入研究自适应参数调整策略,使模型在训练过程中能够根据实际情况动态调整参数,提高优化效率。

在特征提取与数据预处理上,可利用深度学习方法自动提取更丰富的特征,如利用卷积神经网络处理时间序列数据,挖掘数据中的潜在规律。结合多源数据融合技术,将电池运行数据、环境数据等多方面信息进行整合,提高模型的预测精度和泛化能力。

拓展应用领域方面,可将PSO-BP模型应用于更多类型的锂电池健康状态预测,如磷酸铁锂电池、锰酸锂电池等。通过建立通用的模型框架和参数调整机制,降低模型在不同电池类型间的迁移成本。还可探索模型在新能源汽车、智能电网等领域的实际应用,为锂电池的安全、高效使用提供更全面的技术支持,推动锂电池产业的持续发展。

相关文章:

【锂电池SOH预测】PSO-BP锂电池健康状态预测,锂电池SOH预测(Matlab完整源码和数据)

预测效果 基于PSO-BP算法的锂电池健康状态预测研究 一、引言 1.1 研究背景与意义 在当今社会,锂电池凭借其高能量密度、长寿命及环境友好等特性,在现代能源系统中占据着举足轻重的地位。从消费电子领域如智能手机、笔记本电脑,到动力领域中…...

找搭子系统 搭子经济新风口 基于精准匹配的社交新生态探索

一、市场前景:为什么现在需要"找搭子"? 孤独经济爆发 超60%年轻人存在"精准陪伴"需求(2024社交报告) 传统社交App无法满足"非婚恋、非熟人"的中间态需求 线下活动复苏 剧本杀/飞盘等兴趣活动年增…...

《Spring Boot+策略模式:企业级度假订单Excel导入系统的架构演进与技术实现》

前言 在数字化时代背景下,订单管理系统的高效性与灵活性成为企业竞争力的核心要素。本文档详细剖析了一个基于 策略模式 的度假订单导入系统,通过分层架构设计实现了多源异构数据的标准化处理。系统以 Spring Boot 为核心框架,结合 MyBatis …...

软件需求分析习题汇编

需求工程练习题 一、选择题 1. 软件需求规格说明书的内容不应包括对( )的描述。 A. 主要功能B. 算法的详细过程C. 用户界面及运行环境D. 软件的性能 *正确答案:*B:算法的详细过程; 2. 需求分析最终结果是产生( ) A. 项目开发…...

51单片机的汇编伪指令

目录 一、ORG 汇编起始地址命令 1、功能 2、语法格式 3、使用示例 4、注意事项 二、END 汇编终止命令 1、功能 2、语法格式 3、使用示例 4、注意事项 三、EQU 赋值命令 1、功能 2、语法格式 3、使用示例 4、注意事项 四、BIT 位定义命令 1、功能 2、语法格式…...

深入探究Python的re模块及其在爬虫中的应用

深入探究Python的re模块及其在爬虫中的应用 一、引言 在Python的强大生态系统中,re模块作为处理正则表达式的核心工具,发挥着举足轻重的作用。正则表达式是一种描述文本模式的强大语言,能够高效地进行字符串的匹配、查找、替换等操作。无论…...

aosp13增加摄像头控制功能实现

A13中,可以要求做一个开关来控制摄像头是否可用,约束所有使用摄像头的应用。思路:设置中增加开关设置一个属性值,在摄像头调用实现层增该值判断即可 一 开关的开发: 设置-安全中增加开关选项 代码部分&#x…...

Kotlin 之 vararg 参数向下传递的几种方式

在 Kotlin 中,vararg 参数是一种特殊的参数类型,用于表示可变数量的参数。vararg 参数是否可以向下传递,需要根据目标方法的参数类型来决定。 1、目标方法参数也是vararg类型,可直接向下传递 在 method 方法中,通过 …...

Kotlin学习

kotlin android 开源,Kotlin开源项目集合_晚安 呼-华为开发者空间 干货来袭,推荐几款开源的Kotlin的Android项目...

AI写程序:图片批量重命名工具 - 自动化整理您的图片库

图片批量重命名工具 - 自动化整理您的图片库 GitHub项目地址: https://github.com/dependon/renameImage 项目介绍 这是一个基于Python开发的图形界面工具,用于批量重命名文件夹中的图片文件。它能够递归处理选定文件夹及其所有子文件夹中的图片,按照…...

git命令自动拉去远程分支到本地

是的&#xff0c;可以通过 Git 命令自动拉取远程分支并在本地创建同名分支。以下是几种方法&#xff1a; 方法 1&#xff1a;直接拉取远程分支并创建同名本地分支 git fetch origin <远程分支名> # 拉取远程分支 git checkout -b <本地分支名> origin/<远程分…...

[创业之路-364]:穿透表象:企业投资的深层逻辑与误区规避

前言&#xff1a; 透过现象看本质 企业一生与人生相似 看企业如同看人 三岁看大&#xff0c;七岁看老 三十年河东&#xff0c;三十年河西 企业也有品行、文化、气质、性格、赚钱、生命周期与赚钱曲线 投资公司的目的是未来赚钱&#xff0c;赚未来赚钱。投资创业中的企业主要看…...

UE5 蓝图里的声音

文章目录 支持的格式设置循环播放在场景中放置音频设置音频的衰减与不衰减在UI动画中播放声音使用蓝图节点播放声音按钮本身就可以播放声音 支持的格式 支持&#xff1a;WAV 不支持&#xff1a;MP3 设置循环播放 双击音频&#xff0c;打开音频设置&#xff0c;勾选Looping …...

Spring Boot 邮件发送配置遇到的坑:解决 JavaMailSenderImpl 未找到的错误

在使用 Spring Boot 开发时&#xff0c;我们经常需要通过邮件发送功能来实现某些业务逻辑。为了方便快速集成&#xff0c;Spring Boot 提供了一个非常好用的 spring-boot-starter-mail 模块&#xff0c;帮助我们轻松发送邮件。但是&#xff0c;在配置过程中可能会遇到一些问题&…...

路由表的最终地址 root 路由跟踪,最终到哪里去

在路由跟踪(如tranceroute或trancert命令)中,最终地址是目标主机或服务器的IP地址或域名所对应的实际网络地址; 路由跟踪的目的是显示数据包从本地主机到目标主机所经过的每一跳路由器或网络节点,而最终地址是数据包要到达的目标设备。 1.路由跟踪的最终地址 目标主机:路…...

Docker面试全攻略(一):镜像打包、容器运行与高频问题解析

引言 在云原生和微服务架构盛行的今天,Docker 已成为后端开发的必备技能。本文从 面试高频考点 出发,系统梳理 Docker 镜像构建、容器运行的核心知识点,助你轻松应对 Docker 相关的技术面试! 一、Docker 镜像构建核心(面试必问) 1. Dockerfile 核心命令与参数 FROM:基…...

方法的重写

目录 1、重写的概念2、方法重写的规则3、重写 VS 重载 1、重写的概念 重写&#xff0c;也称为覆盖&#xff0c;是子类对父类的非构造、非静态、非 final 修饰、非 private 修饰的方法的实现过程的重新编写。重写可以让子类根据需要来实现父类的方法。方法重写是子类与父类的一…...

搭建hadoop集群模式并运行

3.1 Hadoop的运行模式 先去官方看一看Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster. 本地模式&#xff1a;数据直接存放在Linux的磁盘上&#xff0c;测试时偶尔用一下 伪分布式&#xff1a;数据存放在HDFS&#xff0c;公司资金不足的时候用 完全分布式&a…...

【学Rust写CAD】39 over_in_in 函数(alpha256补充方法)

源码 // Similar to over_in but includes an additional clip alpha value#[inline]pub fn over_in_in(self,src: Argb, dst: Argb, clip: Alpha) -> Argb {let src_alpha self * clip;let dst_alpha !(src_alpha*src.alpha_t());// we sum src and dst before reducing…...

Visual Studio 2022 UI机器学习训练模块

VS你还是太超标了&#xff0c;现在机器学习都不用写代码了吗&#xff01;&#xff01; 右键项目解决方案&#xff0c;选择机器学习模型...

c# 企业级ADB通信示例

using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ADB_Demo {/// <summary>/// ADB管理器&#xff0c;提供与Android设备的通信功能/// </summary>publ…...

linux上todesk无法使用问题

安装 x11 查看是否已安装 X11 dpkg -l | grep xserver-xorg-core 安装 X11&#xff0c;大概需要 17 - 222 MB&#xff08;前者是在服务器上装&#xff0c;后者在自己的 WSL 装&#xff0c;具体视情况而定&#xff09; sudo apt-get install xorg sudo apt-get install xauth s…...

数字IC后端项目典型问题之后端实战项目问题记录

Q1:为了更高效过掉Calibre LVS&#xff0c;我们要求学员在chipfinish阶段需要先做Online LVS检查。该学员在做verifyConnectivity检查发现设计中存在大量的M1 VDD_CORE Un-Connect Pin的violation&#xff0c;具体violation如下图所示。 数字后端培训实战项目六大典型后端实现…...

【机器学习】决策树

一、什么是决策树&#xff1f; 想象一下你玩“二十个问题”游戏的场景&#xff0c;你通过问一系列“是”或“否”的问题来猜测对方心中的物体。决策树的工作方式与此非常相似。它本质上是一个流程图结构&#xff0c;其中&#xff1a; 每个内部节点&#xff08;Internal Node&…...

大模型格式化输出的几种方法

大模型格式化输出的几种方法 在开发一些和LLM相关的应用的时候,如何从大模型的反馈中拿到结构化的输出数据是非常重要的,那么本文就记录几种常用的方法。 OpenAI提供的新方法 在 OpenAI 的 Python 库中,client.beta.chat.completions.parse 是一个用于生成结构化输出的方法…...

250408_解决加载大量数据集速度过慢,耗时过长的问题

250408_解决加载Cifar10等大量数据集速度过慢&#xff0c;耗时过长的问题&#xff08;加载数据时多线程的坑&#xff09; 在做Cifar10图像分类任务时&#xff0c;发现每个step时间过长&#xff0c;且在资源管理器中查看显卡资源调用异常&#xff0c;主要表现为&#xff0c;显卡…...

Linux网络多进程并发服务器和多线程并发服务器

多进程 还是以大小写转换为例子 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> #include <sys/socket.h> #include <arpa/inet.h> #include "wrap.h" #include…...

LLMs基础学习(五)模型微调专题(中)

文章目录 LLMs基础学习&#xff08;五&#xff09;模型微调专题&#xff08;中&#xff09;Adapter 类的微调1 背景2 技术原理3 具体细节4 Adapter 类其他方法的微调 Prefix 类的微调1 Prefix Tuning2 Prompt Tuning3 P - tuning4 P - Tuning v25 总结 LoRA 篇a. 什么是 LoRA?…...

不同路由器网段之间的组建

实现PC1到PC7之间的通信 先将基础的ip都配置好 在AR6中将跳板配置好&#xff0c;ip route-static 192.168.5.0 24 64.1.1.2 在AR3中将跳板配置好&#xff0c;ip route-static 192.168.1.0 24 64.1.1.1 如此我们将可以实现通信了 还有第二种&#xff0c;实现PC1到…...

java设计模式-建造者模式

建造者模式(build) 建造者模式的四个角色 1、Product(产品角色)&#xff1a; 一个具体的产品对象。 2、Builder(抽象建造者)&#xff1a; 创建一个Product对象的各个部件指定的 接口或者抽象类。 3、ConcreteBuild(具体建造者)&#xff1a;实现接口&#xff0c;构建和装配各个部…...

【泛函分析】

E&#xff0e;Kreyszig, Introductory functional analysis with applications, Wiley, 1989 1.1 Metric space 满足下面四个性质的映射称为度量&#xff1a;正定、0、对称性和三角不等式 推论&#xff1a;广义的三角不等式 度量可以看成一个映射&#xff0c;验证欧式距离&am…...

【NLP 面经 6】

当上帝赐予你荒野时&#xff0c;就意味着&#xff0c;他要你成为高飞的鹰 —— 25.4.3 一、机器翻译任务&#xff0c;Transformer结构模型改进 在自然语言处理的机器翻译任务中&#xff0c;你采用基于 Transformer 架构的模型。在翻译一些具有丰富文化内涵、习语或隐喻的句子时…...

地质科研智能革命:当大语言模型“扎根”地质现场、大语言模型本地化部署与AI智能体协同创新实践

在地质学迈向“深时数字地球”&#xff08;Deep-time Digital Earth&#xff09;的进程中&#xff0c;传统研究方法正面临海量异构数据&#xff08;地质图件、遥感影像、地震波谱等&#xff09;的解析挑战。大语言模型&#xff08;LLM&#xff09;与AI智能体的本地化部署技术&a…...

蓝桥王国(Dijkstra优先队列)

问题描述 小明是蓝桥王国的王子&#xff0c;今天是他登基之日。 在即将成为国王之前&#xff0c;老国王给他出了道题&#xff0c;他想要考验小明是否有能力管理国家。 题目的内容如下&#xff1a; 蓝桥王国一共有 N 个建筑和 M 条单向道路&#xff0c;每条道路都连接着两个…...

美团mtgsig1.1 分析 mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向过程 mtgsig有问题的请求3次左右…...

基于STM32、HAL库的CH224Q快充协议芯片简介及驱动程序设计

一、简介&#xff1a; CH224Q是一款USB Type-C快充协议芯片&#xff0c;支持多种快充协议&#xff0c;包括&#xff1a; USB PD 3.0 QC4 QC3.0/2.0 AFC FCP SCP APPLE 2.4A BC1.2 该芯片通过I2C接口与主控MCU通信&#xff0c;可以灵活配置输出电压和获取充电状态信息…...

SvelteKit 最新中文文档教程(18)—— 浅层路由和 Packaging

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …...

蓝桥杯-数字诗意

问题描述 在诗人的眼中&#xff0c;数字是生活的韵律&#xff0c;也是诗意的表达。 小蓝&#xff0c;当代顶级诗人与数学家&#xff0c;被赋予了"数学诗人"的美誉。他擅长将冰冷的数字与抽象的诗意相融合&#xff0c;并用优雅的文字将数学之美展现于纸上。 某日&a…...

深入探索 Node.js 文件监听机制:从前端工程化到原理剖析

在现代化前端开发中&#xff0c;文件监听&#xff08;File Watching&#xff09;是实现高效开发体验的核心技术之一。从 webpack 的热模块替换到 Vite 的即时刷新&#xff0c;从 CSS 预处理到静态资源打包&#xff0c;背后都依赖于稳健的文件监听机制。本文将深入探讨基于 Node…...

2025 年河北交安安全员考试:巧用行业报告丰富知识储备​

河北交通行业发展迅速&#xff0c;各类行业报告蕴含大量有价值信息。考生可从河北省交通运输行业发展报告、安全专项检查报告等资料入手。在行业发展报告中&#xff0c;了解本省交通建设规模、重点项目规划等内容&#xff0c;这些信息与交安安全员工作紧密相关。比如&#xff0…...

Java9新特性

新的Jshell Java9引入了交互式编程工具jshell&#xff0c;可用于快速测试和学习Java。 特性 该工具可用于快速测试代码片段&#xff0c;无需创建java文件。支持自动补全和历史命令支持保存和加载会话 不可变集合工厂方法 Java9新增了List.of()、Set.of()、Map.of()和Map.o…...

CS内网渗透 - 如何通过冰蝎 Webshell 上线 Weblogic 服务器到 Cobalt Strike 并绕过杀软检测(360、火绒)?

目录 1. 冰蝎连接上 Weblogic 服务器如何上线到 Cobalt Strike 2. 服务器安装杀毒工具如何绕过杀软上线到 Cobalt Strike 2.1 杀软对 Webshell 命令执行的检测及绕过 2.2 杀软对 Cobalt Strike 上线木马的检测及绕过 2.3 杀软对这两方面的限制及综合绕过 3. 如何生成免杀…...

Linux开发过程中常用命令整理

docker ps -a查看所有(包括已经停止的) systemctl 功能&#xff1a;控制系统服务的启动关闭等 语法&#xff1a;systemctl start | stop | restart | disable | enable | status 服务名​ start&#xff0c;启动stop&#xff0c;停止status&#xff0c;查看状态disable&#xf…...

触想工业一体机助力打造安全智能的数字化配电系统

一、项目开发背景 现代社会运行依赖稳定的电力供应&#xff0c;尤其在工业生产、城市基础设施、商业建筑等关键领域&#xff0c;即便是0.1秒的电力中断也可能导致严重后果。同时&#xff0c;随着全球用电负荷加剧及能源结构转型&#xff0c;对电力系统的运维效率、能源利用和数…...

从代码学习深度学习 - 序列到序列学习 GRU编解码器 PyTorch 版

文章目录 前言一、数据加载与预处理1.1 读取数据1.2 预处理数据1.3 词元化1.4 词频统计1.5 构建词汇表1.6 截断与填充1.7 转换为张量1.8 创建数据迭代器1.9 整合数据加载二、训练辅助工具2.1 时间记录器2.2 累加器2.3 准确率计算2.4 GPU 上的准确率评估2.5 GPU 设备选择2.6 梯度…...

华为AI-agent新作:使用自然语言生成工作流

论文标题 WorkTeam: Constructing Workflows from Natural Language with Multi-Agents 论文地址 https://arxiv.org/pdf/2503.22473 作者背景 华为&#xff0c;北京大学 动机 当下AI-agent产品百花齐放&#xff0c;尽管有ReAct、MCP等框架帮助大模型调用工具&#xff0…...

基于PyTorch 实现一个基于 Transformer 架构的字符级语言模型

这篇教程将带你一步步在 JupyterLab 中实现一个简单的语言模型。我们将从零开始&#xff0c;使用 PyTorch 实现一个基于 Transformer 架构的字符级语言模型。尽管在实际应用中&#xff0c;大多数人更倾向于使用 Hugging Face 的预训练模型&#xff0c;但本文的目的是让你了解语…...

苹果签名的工具有哪些

嗯&#xff0c;用户问的是关于苹果企业签名的工具有哪些。首先&#xff0c;我需要确认用户的需求。苹果企业签名通常指的是使用苹果的企业开发者账号&#xff08;Apple Developer Enterprise Program&#xff09;来对应用进行签名&#xff0c;这样应用可以不通过App Store直接分…...

解决.net接口防暴力调用问题

在 .NET 中&#xff0c;为解决接口防暴力调用问题&#xff0c;可通过限制请求频率实现。下面给出几种不同实现方式。 基于内存的简单速率限制 此方法适用于单服务器环境&#xff0c;它借助内存字典来记录每个客户端的请求次数和时间。 MemoryRateLimitMiddleware.cs using …...

java设计模式-桥接模式

桥接模式(Bridge) 基本介绍 1、桥接模式(Bridge)是指&#xff1a;将实现与抽象放在两个不同的类层次中&#xff0c;是两个层次可以独立改变。 2、是一种结构设计模 3、Bridge模式给予类的最小单元设计原则&#xff0c;通过使用封装&#xff0c;聚合及继承等行为让不同的类承担不…...