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

基于神经网络的电力系统的负荷预测

一、背景介绍:

电力系统负荷预测是生产部门的重要工作之一,通过准确的负荷预测,可以经济合理地安排机组的启停、减少旋转备用容量、合理安排检修计划、降低发电成本和提高经济效益。负荷预测按预测的时间可以分为长期、中期和短期负荷预测。其中,短期负荷预测中,周负 荷预测(未来1周)、日负荷预测(未来24小时)及提前小时预测对于电力系统的实时运行 调度至关重要。负荷预测对电力系统控制、运行和计划都有着重要意义。因为对未来时刻进 行预调度要以负荷预测的结果为依据,负荷预测结果的准确性将直接影响调度的结果,从而 对电力系统的安全稳定运行和经济性带来重要影响。

力系统负荷变化受多方面的影响。一方面,存在着由于未知不确定因素引起 的随机波动;另一方面,又具有周期变化的规律性,这也使得负荷曲线具有相似性。同时,由于受天气、节假日等特殊情况影响,致使负荷变化出现差异。假设某电力系统在过去12天的有功负荷值,以及有关气象特征经归一化后的数据如表1所示。

1   电力系统负荷变化样本集

日期

电 力 负 荷

   

1

0.2452

0.1466

0.1314

0.2243

0.5523

0.6642

0.7015

0.6981

0.6821

0.6945

0.7549

0.8215

2

0.2217

0.1581

0.1408

0.2304

0.5134

0.5312

0.6819

0.7125

0.7265

0.6847

0.7826

0.8325

0.2415

0.3027

0

3

0.2525

0.1627

0.1507

0.2406

0.5502

0.5636

0.7051

0.7352

0.7459

0.7015

0.8064

0.8156

0.2385

0.3125

0

4

0.2016

0.1105

0.1243

0.1978

0.5021

0.5232

0.6819

0.6952

0.7015

0.6825

0.7825

0.7895

0.2216

0.2701

0

5

0.2115

0.1201

0.1312

0.2019

0.5532

0.5736

0.7029

0.7032

0.7189

0.7019

0.7965

0.8025

0.2352

0.2506

0.5

6

0.2335

0.1322

0.1534

0.2214

0.5623

0.5827

0.7198

0.7276

0.7359

0.7506

0.8092

0.8221

0.2542

0.3125

0

7

0.2368

0.1432

0.1653

0.2205

0.5823

0.5971

0.7136

0.7129

0.7263

0.7153

0.8091

0.8217

0.2601

0.3198

0

8

0.2342

0.1368

0.1602

0.2131

0.5726

0.5822

0.7101

0.7098

0.7127

0.7121

0.7995

0.8126

0.2579

0.3099

0

9

0.2113

0.1212

0.1305

0.1819

0.4952

0.5312

0.6886

0.6898

0.6999

0.7323

0.7721

0.7956

0.2301

0.2867

0.5

10

0.2005

0.1121

0.1207

0.1605

0.4556

0.5022

0.6553

0.6673

0.6798

0.7023

0.7521

0.7756

0.2234

0.2799

1

11

0.2123

0.1257

0.1343

0.2079

0.5579

0.5716

0.7059

0.7145

0.7205

0.7401

0.8019

0.8136

0.2314

0.2977

0

12

0.2119

0.1215

0.1621

0.2161

0.6171

0.6159]

0.7155

0.7201

0.7243

0.7298

0.8179

0.8229

0.2317

0.2936

0

在表1中,由于电力负荷每隔2个小时测量1次,故一天共有12组负荷数据。而气象特征分别为预测日的最高气温、最低气温和天气特征值,其中分别用0表示晴、0.5表示阴天和1表示雨天等天气特征。

试根据电力系统以前的电力负荷和当日的气象特征预测当日的电力负荷。

提示:

①确定训练样本集

② 网络设计和训练伪代码

net=newff(minmax(X),[* *],{ });

net.trainParam.epochs=100;

net.trainParam.goal=0.001;

net=train(net,X,T);

y=sim(net,X);

 网络测试

网络训练成功后,利用测试样本对网络进行测试。测试样本由表1中的第11 天 的 1 2组实际负荷数据和第12天的预测日当天的3个气象特征值组成,

Xtest

ytest=sim(net,Xtest)

  • 工程实现:

用BP网络预测电力负荷

1)网络创建

BP一般分为3层输入层,中间层(隐藏层),输出层。

通过单隐层的BP网络实现。由于输入量有15个元素,所以网络输出层的神经元有15个,根据Kolmogorov定理网络中间层神经元取31神经元为最佳。根据12个输出向量定义输出层的神经元为12个。网络中间层神经元传递函数采用S型正切函网络经过训练后才可以用于电力负荷预测的实际应用。考虑到网络的结构比较复杂,神经网络元个数比较多,需要适当增大训练次数和学习速率。训练参数的设定如表4。3所示

训练参数表

训练次数

训练目标

学习速率

10000

0.001

0.01

有关程序如下:

net.trainParam。epochs=10000

net.trainParam。goal=0.001;

LP.lr=0.01;

3)网络测试

输出层神经元函数采用S型对数函数logsig。因为输出数据位于[0,1]之间。输入量的[0,1]之间用变量threshold来规定。Bp的网络训练函数为trainlm,所以在newff中调用trainlm函数。

把输出值减去实际值之后再除以实际值就是数据的相对误差了,matlab的程序如下所示:

    z=y—X;

    c=X.\z;

    plot(1:12,c);

    grid;

    title('相对误差曲线’);

    xlabel(’时间’);

    ylabel(’相对误差率’);

训练过程可视化如下

BP神经网络MATLAB语法

1. 数据预处理

在训练神经网络前一般需要对数据进行预处理,一种重要的预处理手段是归一化处理。下面简要介绍归一化处理的原理与方法。

(1) 什么是归一化?

数据归一化,就是将数据映射到[0,1]或[-1,1]区间或更小的区间,比如(0.1,0.9) 。

(2) 为什么要归一化?

<1>输入数据的单位不一样,有些数据的范围可能特别大,导致的结果是神经网络收敛慢、训练时间长。

<2>数据范围大的输入在模式分类中的作用可能会偏大,而数据范围小的输入作用就可能会偏小。

<3>由于神经网络输出层的激活函数的值域是有限制的,因此需要将网络训练的目标数据映射到激活函数的值域。例如神经网络的输出层若采用S形激活函数,由于S形函数的值域限制在(0,1),也就是说神经网络的输出只能限制在(0,1),所以训练数据的输出就要归一化到[0,1]区间。

<4>S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X)在参数a=1时,f(100)与f(5)只相差0.0067。

(3) 归一化算法

  一种简单而快速的归一化算法是线性转换算法。线性转换算法常见有两种形式:

<1> y = ( x - min )/( max - min )

  其中min为x的最小值,max为x的最大值,输入向量为x,归一化后的输出向量为y 。上式将数据归一化到 [ 0 , 1 ]区间,当激活函数采用S形函数时(值域为(0,1))时这条式子适用。

<2> y = 2 * ( x - min ) / ( max - min ) - 1

这条公式将数据归一化到 [ -1 , 1 ] 区间。当激活函数采用双极S形函数(值域为(-1,1))时这条式子适用。

(4) Matlab数据归一化处理函数

Matlab中归一化处理数据可以采用premnmx , postmnmx , tramnmx 这3个函数。

<1> premnmx

语法:[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t)

参数:

pn: p矩阵按行归一化后的矩阵

minp,maxp:p矩阵每一行的最小值,最大值

tn:t矩阵按行归一化后的矩阵

mint,maxt:t矩阵每一行的最小值,最大值

作用:将矩阵p,t归一化到[-1,1] ,主要用于归一化处理训练数据集。

<2> tramnmx

语法:[pn] = tramnmx(p,minp,maxp)

参数:

minp,maxp:premnmx函数计算的矩阵的最小,最大值

pn:归一化后的矩阵

作用:主要用于归一化处理待分类的输入数据。

<3> postmnmx

语法: [p,t] = postmnmx(pn,minp,maxp,tn,mint,maxt)

参数:

minp,maxp:premnmx函数计算的p矩阵每行的最小值,最大值

mint,maxt:premnmx函数计算的t矩阵每行的最小值,最大值

作用:将矩阵pn,tn映射回归一化处理前的范围。postmnmx函数主要用于将神经网络的输出结果映射回归一化前的数据范围。

2. 使用Matlab实现神经网络

使用Matlab建立前馈神经网络主要会使用到下面3个函数:

newff :前馈网络创建函数

train:训练一个神经网络

sim :使用网络进行仿真

下面简要介绍这3个函数的用法。

(1) newff函数

<1>语法

newff函数参数列表有很多的可选参数,具体可以参考帮助文档,这里介绍一种简单形式。

语法:net = newff ( A, B, {C} ,‘trainFun’)

参数:

A:一个n×2的矩阵,第i行元素为输入信号xi的最小值和最大值;

B:一个k维行向量,其元素为网络中各层节点数;

C:一个k维字符串行向量,每一分量为对应层神经元的激活函数;

trainFun :为学习规则采用的训练算法。

表3.1 BP网络的常用函数表

函数类型

函数名称

函数用途

前向网络创建函数

newcf

创建级联前向网络

Newff

创建前向BP网络

传递函数

logsig

S型的对数函数

tansig

S型的正切函数

purelin

纯线性函数

学习函数

learngd

基于梯度下降法的学习函数

learngdm

梯度下降动量学习函数

性能函数

mse

均方误差函数

msereg

均方误差规范化函数

显示函数

plotperf

绘制网络的性能

plotes

绘制一个单独神经元的误差曲面

plotep

绘制权值和阈值在误差曲面上的位置

errsurf

计算单个神经元的误差曲面

newff函数用于创建一个BP网络。调用格式为:

net=newff

net=newff(PR,[S1 S2..SN1],{TF1 TF2..TFN1},BTF,BLF,PF)

其中,net=newff;用于在对话框中创建一个BP网络。

net为创建的新BP神经网络;

PR为网络输入向量取值范围的矩阵;

[S1 S2…SNl]表示网络隐含层和输出层神经元的个数;

{TFl TF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;

BTF表示网络的训练函数,默认为‘trainlm’;

BLF表示网络的权值学习函数,默认为‘learngdm’;

PF表示性能数,默认为‘mse’。

<2>常用的激活函数

  常用的激活函数有:

a) 线性函数 (Linear transfer function)

  该函数的字符串为’purelin’。

b) 对数S形转移函数( Logarithmic sigmoid transfer function )

该函数的字符串为’logsig’。

c) 双曲正切S形函数 (Hyperbolic tangent sigmoid transfer function )

该函数的字符串为’tansig’。

Matlab的安装目录下的toolbox\nnet\nnet\nntransfer子目录中有所有激活函数的定义说明。

<3>常见的训练函数

常见的训练函数有:

traingd :梯度下降BP训练函数(Gradient descent backpropagation)

traingdx :梯度下降自适应学习率训练函数

<4>网络配置参数

一些重要的网络配置参数如下:

net.trainparam.goal :神经网络训练的目标误差

net.trainparam.show: 显示中间结果的周期

net.trainparam.epochs :最大迭代次数

net.trainParam.lr: 学习率

(2) train函数

网络训练学习函数。

语法:[ net, tr, Y1, E ] = train( net, X, Y )

参数:

X:网络实际输入

Y:网络应有输出

tr:训练跟踪信息

Y1:网络实际输出

E:误差矩阵

(3) sim函数

语法:Y=sim(net,X)

参数:

net:网络

X:输入给网络的K×N矩阵,其中K为网络输入个数,N为数据样本数

Y:输出矩阵Q×N,其中Q为网络输出个数

  • 源代码:

% 定义输入数据矩阵P

P=[0.2452 0.1466 0.1314 0.2243 0.5523 0.6642 0.7105 0.6981 0.6821 0.6945 0.7549 0.8215 0.2415 0.3027 0;

    0.2217 0.1581 0.1408 0.2304 0.5134 0.5312 0.6819 0.7125 0.7265 0.6847 0.7826 0.8325 0.2385 0.3125 0;

    0.2525 0.1627 0.1507 0.2406 0.5502 0.5636 0.7051 0.7352 0.7459 0.7015 0.8064 0.8156 0.2216  0.2701 1;

    0.2016 0.1105 0.1243 0.1978 0.5021 0.5232 0.6819 0.6952 0.7015 0.6825 0.7825 0.7895 0.2352 0.2506 0.5;

    0.2115 0.1201 0.1312 0.2019 0.5332 0.5736 0.7029 0.7032 0.7189 0.7019 0.7965 0.8025 0.2542 0.3125 0;

    0.2335 0.1322 0.1534 0.2214 0.5623 0.5827 0.7198 0.7276 0.7359 0.7506 0.8092 0.8221 0.2601 0.3198 0;

    0.2368 0.1432 0.1653 0.2205 0.5823 0.5971 0.7136 0.7129 0.7263 0.7153 0.8091 0.8217 0.2579 0.3099 0;

   0.2342 0.1368 0.1602 0.2131 0.5726 0.5822 0.7101 0.7098 0.7127 0.7121 0.7995 0.7126 0.2301 0.2867 0.5;

   0.2113 0.1212 0.1305 0.1819 0.4952 0.5312 0.6886 0.6898 0.6999 0.7323 0.7721 0.7956 0.2234 0.2799 1;

   0.2005 0.1121 0.1207 0.1605 0.4556 0.5022 0.6553 0.6673 0.6798 0.7023 0.7521 0.7756 0.2314 0.2977 0]';

 

% 定义目标数据矩阵T

T=[0.2217 0.1581 0.1408 0.2304 0.5134 0.5312 0.6819 0.7125 0.7265 0.6847 0.7826 0.8325;

    0.2525 0.1627 0.1507 0.2406 0.5502 0.5636 0.7051 0.7352 0.7459 0.7015 0.8064 0.8156;

    0.2016 0.1105 0.1243 0.1978 0.5021 0.5232 0.6819 0.6952 0.7015 0.6825 0.7825 0.7895;

    0.2115 0.1201 0.1312 0.2019 0.5532 0.5736 0.7029 0.7032 0.7189 0.7019 0.7965 0.8025;

    0.2335 0.1322 0.1534 0.2214 0.5623 0.5827 0.7198 0.7276 0.7359 0.7506 0.8092  0.8221;

    0.2368 0.1432 0.1653 0.2205 0.5823 0.5971 0.7136 0.7129 0.7263 0.7153 0.8091 0.8217;

    0.2342 0.7368 0.1602 0.2131 0.5726 0.5822 0.7101 0.7098 0.7127 0.7121 0.7995 0.8126;

    0.2113 0.1212 0.1305 0.1819 0.4952 0.5312 0.6886 0.6898 0.6999 0.7323 0.7721 0.7956;

    0.2005 0.1121 0.1207 0.1605 0.4556 0.5022 0.6552 0.6673 0.6798 0.7023 0.7521 0.7756;

    0.2123 0.1257 0.1343 0.2079 0.5579 0.5716 0.7059 0.7145 0.7205 0.7401 0.8019 0.8136]';

threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;];

 

% 构建网络结构

net=newff(threshold,[31,12],{'tansig','logsig'},'trainlm');

 

% 设置训练参数

net.trainParam.epochs=10000;

net.trainParam.goal=0.001;

LP.lr=0.01;

net=train(net,P,T);

 

% 定义测试数据

P_test=[0.2123 0.1257 0.1343 0.2079 0.5579 0.5716 0.7059 0.7145 0.7205 0.7401 0.8019 0.8136 0.2317 0.3936 0]';

 

% 测试并得到预测结果

y=sim(net,P_test);

 

% 定义真实结果

X=[0.2119 0.1215 0.1621 0.2161 0.6171 0.6159 0.7155 0.7201 0.7243 0.7298 0.8179 0.8229]';

 

% 计算预测误差

 z=y-X;

 c=X.\z;

 

 % 绘制预测相对误差曲线

plot(1:12,c);

grid;

title('相对误差曲线');

xlabel('时间');

ylabel('相对误差率');

相关文章:

基于神经网络的电力系统的负荷预测

一、背景介绍&#xff1a; 电力系统负荷预测是生产部门的重要工作之一&#xff0c;通过准确的负荷预测&#xff0c;可以经济合理地安排机组的启停、减少旋转备用容量、合理安排检修计划、降低发电成本和提高经济效益。负荷预测按预测的时间可以分为长期、中期和短期负荷预测。…...

OpenCV第 1 课 计算机视觉和 OpenCV 介绍

文章目录 第 1 课 计算机视觉和 OpenCV 介绍1.机器是如何“看”的2.机器视觉技术的常见应用3.图像识别介绍4. 图像识别技术的常见应用5.OpenCV 介绍6.图像在计算机中的存储形式 第 1 课 计算机视觉和 OpenCV 介绍 1.机器是如何“看”的 我们人类可以通过眼睛看到五颜六色的世界…...

C++面试:stl的栈和队列介绍

目录 栈 栈&#xff08;stack&#xff09;的声明&#xff1a; push()&#xff1a; 将元素推入栈顶 pop()&#xff1a; 弹出栈顶元素 top()&#xff1a; 访问栈顶元素&#xff0c;但不弹出 empty()&#xff1a; 检查栈是否为空 size()&#xff1a; 返回栈中元素的数量 …...

从0开始学习C++ 第十二课:指针强化

第十二课&#xff1a;指针强化 学习目标&#xff1a; 理解常量指针与指针常量的区别。学习如何使用函数指针。掌握指针与数组的高级使用技巧。 学习内容&#xff1a; 常量指针与指针常量 概念&#xff1a; 常量指针是一个指向常量的指针&#xff0c;这意味着不能通过这个指针…...

mongodb和python交互

1. mongdb和python交互的模块 pymongo 提供了mongdb和python交互的所有方法 安装方式: pip install pymongo 2. 使用pymongo 2.1 导入pymongo并选择要操作的集合 数据库和集合能够自动创建 2.1.1 无需权限认证的方式创建连接对象以及集合操作对象 from pymongo import Mong…...

力扣279. 完全平方数

动态规划 思路&#xff1a; 假设 dp[i] 为最少组成数 i 的平方数个数&#xff1b;则其上一个状态为 dp[i - j^2] 1&#xff0c;1 为 j^2&#xff1a; 即 i 的最少完全平方数 i - j^2 的最少完全平方数 1&#xff0c;其中 j^2 < i 为最接近 i 的平方数&#xff1b;初始值…...

【C++】list容器功能模拟实现

介绍 上一次介绍了list队容器的迭代器模拟&#xff0c;这次模拟实现list的简单功能&#xff0c;尤其要注意构造函数、析构函数、以及赋值运算符重载的实现。 list容器需要接纳所有类型的数据&#xff0c;因此&#xff0c;结构设置与迭代器设置同理&#xff0c;需要引入结点&…...

linux 安装ffmpeg

一、下载 ffmpeg-4.3.1 下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1xbkpHDfIWSCbHFGJJHSQcA 提取码&#xff1a;3eil 二、上传到服务器root目录下 三、给ffmpeg-4.3.1 读写权限 chmod -R 777 /root/ffmpeg-4.3.1 四、创建软连接 1.进入/bin 目录 2.…...

激光雷达行业梳理2-产业链、公司、未来展望

四、产业链及竞争格局 激光雷达产业链可以分为上游&#xff08;光学和电子元器件&#xff09;、中游&#xff08;集成激光雷达&#xff09;、下游&#xff08;不同应用场景&#xff09;。其中 上游即激光发射、激光接收、扫描系统和信息处理四大部分&#xff0c;主要包括激光器…...

Java 设计者模式以及与Spring关系(四) 代理模式

目录 简介: 23设计者模式以及重点模式 代理模式&#xff08;Proxy Pattern&#xff09; 静态代理示例 spring中应用 动态代理 1.基于JDK的动态代理 target.getClass().getInterfaces()作用 内名内部类写法(更简洁&#xff0c;但不推荐) 2.基于CGLIB实现 spring中应用 …...

PHP编程实践:实际商品价格数据采集

引言 在电子商务领域&#xff0c;对商品价格进行数据采集和对比是一项常见的需求。本文将介绍如何使用PHP编程语言实现对1688和淘宝商品价格数据的采集和对比&#xff0c;帮助读者了解实际的编程实践过程。 一、数据采集原理 数据采集是指从互联网上获取数据的过程&#xff…...

有效防范网络风险的关键措施

在数字化时代&#xff0c;企业面临着日益复杂和频繁的网络风险。提高员工的网络安全意识是防范网络威胁的关键一步。本文将探讨企业在提升网络安全意识方面可以采取的措施&#xff0c;以有效预防潜在的网络风险。 1. 开展网络安全培训&#xff1a;企业应定期组织网络安全培训&…...

Spring Boot整合webservice

Spring Boot整合webservice 前言1.整合依赖2.建立暴露接口2.实现类 3.发布服务4.查看打完收工&#xff01; 前言 工作中遇到的问题&#xff0c;由于下游系统属于第三方系统&#xff0c;使用的是soap webservice&#xff0c;同时也在开发&#xff0c;虽然也发布了一套webservic…...

Qt拖拽事件简单实现

1.相关说明 重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数)&#xff0c;可以将本地图片拖拽到label标签中 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QDragEnterEvent>…...

上门回收小程序,打造回收新模式

近年来&#xff0c;我国一直秉持着环保绿色的发展理念&#xff0c;为了减少资源浪费&#xff0c;旧物回收成为了人们处理废弃物品的方式。目前&#xff0c;我国回收市场规模大约能达到3.58亿元&#xff0c;在我国经济的稳定增长和环保意识的提高下&#xff0c;回收市场规模还将…...

unity项目《样板间展示》开发:火焰和UI设计

第二章&#xff1a;火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目&#xff1a;《样板间展示》。 顾名思义&#xff0c;项目内容是展示样板间&#xff0c;即玩家可以与房间中的物体、家具进行交互。 至…...

即插即用篇 | UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大卷积神经网络 | DRepConv

大卷积神经网络(ConvNets)近来受到了广泛研究关注,但存在两个未解决且需要进一步研究的关键问题。1)现有大卷积神经网络的架构主要遵循传统ConvNets或变压器的设计原则,而针对大卷积神经网络的架构设计仍未得到解决。2)随着变压器在多个领域的主导地位,有待研究ConvNets…...

MPU6050传感器—姿态检测

本节主要介绍以下内容&#xff1a; 姿态检测的基本概念 姿态传感器的工作原理及参数 MPU6050传感器介绍 实验&#xff1a;获取MPU6050原始数据 实验&#xff1a;移植官方DMP例程 一、姿态检测基本概念 1.1 姿态 在飞行器中&#xff0c;飞机姿态是非常重要的参数&#x…...

PaddleOCR封装,在线服务化部署实战(python部署,超新手教程)

OCR&#xff0c;即光学字符识别&#xff08;Optical Character Recognition&#xff09;&#xff0c;是一种将图像中的文字转换为机器编码文字的技术。这种技术可以识别和转换各种来源的文本&#xff0c;包括扫描文档、照片中的文字、手写笔记等。光学字符识别&#xff08;OCR&…...

采集B站up主视频信息

一、网页信息&#xff08;示例网址&#xff1a;https://space.bilibili.com/3493110839511225/video&#xff09; 二、查看响应数据 三、查看数据包内容 四、相关代码&#xff08;代码内容未进行翻页爬取&#xff09; # Time: 2024/1/19 16:42 # Author: 马龙强 # File: 采集B…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...