2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序
2024年华中杯数学建模
A题 太阳能路灯光伏板的朝向设计问题
原题再现
太阳能路灯由太阳能电池板组件部分(包括支架)、LED灯头、控制箱(包含控制器、蓄电池)、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。太阳能电池板也叫光伏板, 它利用光伏效应接收太阳辐射能并转化为电能输出,经过充放电控制器储存在蓄电池中。太阳能辐射由直射辐射和散射辐射组成,其中直射辐射对聚集太阳能系统起到了至关重要的影响。大气层对太阳能直射辐射的衰减变化量与其辐射强度、所穿过的大气层厚度成正比,其中衰减系数(W/(m2/km))反映了一个地区大气层的透光性能。通常地球表面大气层厚度按1000公里计算,大气层可视为包裹地球的球壳。太阳光到达大气层外层上的平均太阳能辐射强度I0为1353W/m2。受地球运行轨道及太阳光传播的距离影响,大气层外层太阳能辐射强度随时间发生改变。附件sheet2给出了1-12月份大气层外层太阳能辐射强度具体数值。
安装光伏板的朝向直接影响到光伏板获得太阳辐射能量的多少。光伏板的朝向包括方位角和水平仰角,方位角为光伏板的法线在水平面上的投影与正南方向的夹角。并按如下方法规定:如果一个光伏板朝向正南,那么它的方位角为零;如果一个光伏板朝向正东,那么它的方位角为90º ;如果一个光伏板朝向正西,那么它的方位角为−90º;水平仰角为光伏电池板平面与水平面的夹角。当太阳光线和光伏板的法线方向一致时,光伏板瞬时受到的太阳照射能量最大,否则会有余弦损失。
某城区地处北纬30‘,35’,东经114‘19’,附件sheet1给出了该城区2023年5月23日晴天状况下测得地表水平面受到的太阳直射强度值。关于赤纬角、太阳高度角、太阳时角等相关概念,可参见全国大学生数学建模竞赛2012B 题附件6、2015A题讲解和2023A题附录。请在仅考虑太阳直射辐射的情况下建立数模,回答如下问题:
1. 请计算2025年每月15日,在晴天条件下,该城区一块面积为1m2的光伏板朝向正南方且水平倾角分别为20‘、40’、60‘时受到的最大太阳直射强度和太阳直射辐射总能量;
2. 如果光伏板受到的太阳直射辐射总能量最大时,可使路灯蓄电池储电量最大。请设计该城区固定安装太阳能光伏板的朝向,使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大;
3. 当光板受到太阳直射强度过低时,它转换电能的效率也很低;而当光伏板受到太阳直射强度过高时,它转换电能实现储电的效率也会受到限制。理想的情况是,光伏板受到太阳直射强度上午大于150W/m2、下午大于100W/m2的时间尽可能长,这样可以使路灯蓄电池的储电效率更高。综合考虑路灯蓄电池的储电效率高和储电量大这两个目标,请设计出光伏板固定安装的最优朝向,并计算晴天条件下光伏板受到的太阳直射辐射日均总能量和太阳直射辐射(上午大于150 W/m2、下午大于100W/m2)时长。
整体求解过程概述(摘要)
对于问题一,大气层对太阳能直射辐射的衰减变化量与其辐射强度、所穿过的大气层厚度成正比。对此,我们通过分析太阳光线变化过程中的几何关系,建立了太阳辐射衰减模型。我们利用所给的5月23日地表太阳直射强度数据,确定了衰减系数的值。然后,我们通过分析太阳光线与倾斜面的关系,建立了倾斜面上的辐射模型。通过分析斜面上的瞬时太阳辐射强度变化规律,可以得到相应的最大辐射强度。每日太阳辐射总能量即为所建立的函数对时间的积分。但由于函数关系较为复杂,我们使用离散型数值积分方法进行近似计算,得到了比较符合实际的结果。
对于问题二,需要设计出固定安装太阳能光伏板的朝向,使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大。我们分别基于遗传算法和模拟退火算法建立了优化模型。遗传算法和模拟退火算法都是启发式搜索算法,在处理一些复杂的的优化问题时具有良好的鲁棒性和通用性。基于两种模型的计算结果,通过多维比较,我们确定了在该题背景下基于模拟退火算法的优化模型得出的解更优,确定了太阳能光伏板的水平方位角和倾角分别为−0.23◦,27.86◦。
对于问题三,为了解决该多目标优化问题,我们在遗传算法的基础上,设计出基于精英策略的多目标非支配排序遗传算法NSGA-II。通过快速非支配排序算法识别出非支配个体,同时通过精英策略,将父代种群和子代种群合并,从合并后的种群中根据非支配排序和拥挤度选择个体组成新的父代种群,确保了优秀个体能够保留到下一代中,从而提高了算法的收敛速度和解的精度。根据NSGA-II 得出的最优解分布以及 Pareto 前沿面,我们采用 CRITIC 权重法来确定储电效率和储电量的权重,得到方位角为0.84◦,倾角 28.26◦, 日均总能量和相应时长为 4396.54W·h,9.27h。
模型假设:
假设1 我们只考虑太阳直射辐射对太阳能光伏板工作的影响。
解释. 直射辐射是太阳能辐射中最主要的部分,为了简化问题,我们不再考虑其他类型的辐射。
假设2 我们忽略温度对太阳能光伏板发电效率的影响。
解释. 温度过高会显著影响太阳能光伏板的发电效率,但由于缺乏相关信息且为使问题尽可能简化,我们在此问题中暂不考虑温度的影响。
假设3 我们仅在晴天的情况下进行分析,计算并由此确定最佳朝向。
解释. 由于阴雨天气及极端天气出现较为随机,难以准确预测未来的天气状况,故我们仅在晴天的前提下进行计算。
假设4 我们所获得的5月23日地表太阳直射强度和1-12月份大气层外层太阳能辐射强度的数据是可靠的,且每年相同日期的太阳辐射强度规律是相同的。
解释. 参考资料中建立的公式仅与一年中的具体日期与时间点有关,未涉及年份的计算,我们暂且忽略年度差异。
问题分析:
对于问题一,首先我们假定我们所获得的5月23日地表太阳直射强度和1-12月份大气层外层太阳能辐射强度的数据是可靠的,且每年相同日期的太阳辐射强度规律是相同的。由此我们可以利用题目中所给的两个数据进行分析与计算。由题目背景信息可知,大气层对太阳能直射辐射的衰减变化量与其辐射强度、所穿过的大气层厚度成正比。随着时间的变化,太阳辐射强度和太阳光线所穿过的大气层厚度也会随之改变。对此,我们通过分析太阳光线变化过程中的几何关系,建立了太阳辐射衰减模型。我们利用所给的5月23日地表太阳直射强度数据,确定了衰减系数的值,并由此计算出特定时间穿过大气层后的太阳辐射强度。然后,我们通过分析太阳光线与倾斜面的关系,建立了倾斜面上的辐射模型。对于问题中给定斜面的倾角,我们得到了任意时刻斜面上的瞬时太阳辐射强度。通过分析斜面上的瞬时太阳辐射强度变化规律,我们可以得到相应的最大辐射强度。而我们发现每日太阳辐射总能量即为所建立的函数对时间的积分。但由于函数关系较为复杂,我们使用离散型数值积分方法进行近似计算,得到了比较符合实际的结果。
对于问题二,需要在问题一建立的模型基础上,设计出固定安装太阳能光伏板的朝向,使光伏板在晴天条件下受到的太阳直射辐射日均总能量最大。依据问题背景,这是一个双变量单目标优化问题,又考虑到此题非线性等实际情况,我们分别基于遗传算法和模拟退火算法建立了优化模型。遗传算法和模拟退火算法都是启发式搜索算法,在处理一些复杂的的优化问题时具有良好的鲁棒性和通用性。基于两种模型的计算结果,通过多维比较,我们确定了在该题背景下基于模拟退火算法的优化模型得出的解更优,从而确定了符合实际的太阳能光伏板的水平方位角和倾角。
对于问题三,需要在前两个问题建立的模型基础上,设计出同时能满足路灯蓄电池的储电效率高和储电量大两个目标的光伏板固定安装最优朝向。根据问题背景,储电效率与光伏板受到太阳直射强度上午大于150W/m2、下午大于100W/m2的时间呈正相关关系,储电量同光伏板受到的太阳直射辐射日均总能量呈正相关关系。因此为了解决该多目标优化问题,我们在遗传算法的基础上,设计出基于精英策略的多目标非支配排序遗传算法NSGA-II。算法的主要策略是通过快速非支配排序算法识别出非支配个体,即Pareto最优解。同时通过精英策略,即通过将父代种群和子代种群合并,然后从合并后的种群中根据非支配排序和拥挤度选择个体组成新的父代种群,确保了优秀个体能够保留到下一代中,从而提高了算法的收敛速度和解的精度。根据NSGAII 得出的最优解分布以及Pareto 前沿面,我们采用 CRITIC 权重法(一种比熵权法和标准离差法处理效果更优的客观赋权法)来确定储电效率和储电量的权重,从而得出比较符合实际问题答案。
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:
import numpy as np
import math
K_legal = 0.0005624701263657791
I0=1334
b=6371
B=7371
phi=30.35
pi=3.1415926
standard_meridian=120
#计算光线直射穿过大气层长度
def calculate_length(phi, delta, omega, b, B):
phi_rad = np.radians(phi)
delta_rad = np.radians(delta)
omega_rad = np.radians(omega)
r_double_prime = b * np.cos(phi_rad - delta_rad)
L_1 = np.sqrt(B**2 - r_prime**2)
r_1 = r_double_prime * np.sin(omega_rad)
r_2 = r_double_prime * np.cos(omega_rad)
L_3 = np.sqrt(L_1**2 - r_1**2)
L_4 = L_3 - r_2
return L_4
#计算赤纬角
def calculate_declination(local_time):
day_of_year = local_time.timetuple().tm_yday
earth_tilt = 23.45
day_angle = 2 * np.pi * day_of_year / 365
sin_declination = np.sin(day_angle) * np.sin(np.radians(earth_tilt)) declination = np.degrees(np.arcsin(sin_declination))
return declination
#计算时角
def calculate_hour_angle(local_time):
time_difference = local_time - local_time.replace(hour=12, minute=0, second=0, microsecond=0) time_difference_in_hours = time_difference.total_seconds() / 3600
hour_angle = time_difference_in_hours * 15 # degrees
return hour_angle
#函数计算出日均太阳直射辐射强度比值
def Ra(x, y):
angle_x = np.radians(x) # 将角度转换为弧度
angle_y = np.radians(y) # 将角度转换为弧度
omega = calculate_hour_angle(local_time)
delta=calculate_declination(local_time)
phi1=math.radians(phi)
delta1=math.radians(delta)
omega1=math.radians(omega)
alpha=math.asin(math.sin(phi1)*math.sin(delta1)+math.cos(phi1)*math.cos(delta1)*math.cos(
omega1))
if local_time.hour<12:
A = math.acos((math.sin(delta1) - math.sin(phi1) * math.sin(alpha)) / (math.cos(alpha) * math.cos(phi1)))
else:
A = math.acos((math.sin(delta1) - math.sin(phi1) * math.sin(alpha) ) / (math.cos(alpha)* math.cos(phi1)))
A=2*pi-A
Ra=-math.cos(alpha)*math.cos(A)*np.sin(angle_y)*np.cos(angle_x)+math.cos(alpha)*math.sin(A)*np
.sin(angle_x)*np.sin(angle_y)+np.cos(angle_y)*math.sin(alpha)
if Ra<0:
Ra=0
return Ra
import mathfrom random import randomimport matplotlib.pyplot as pltfrom datetime import datetime, timedeltaimport numpy as np
K_legal = 0.0005624701263657791b=6371B=7371phi=30.35pi=3.1415926standard_meridian=120#计算光线直射穿过大气层长度def calculate_length(phi, delta, omega, b, B):phi_rad = np.radians(phi)delta_rad = np.radians(delta)omega_rad = np.radians(omega)r_prime = b * np.sin(phi_rad - delta_rad)r_double_prime = b * np.cos(phi_rad - delta_rad)L_1 = np.sqrt(B**2 - r_prime**2)r_1 = r_double_prime * np.sin(omega_rad)r_2 = r_double_prime * np.cos(omega_rad)L_3 = np.sqrt(L_1**2 - r_1**2)L_4 = L_3 - r_2return L_4#计算赤纬角def calculate_declination(local_time):day_of_year = local_time.timetuple().tm_ydayearth_tilt = 23.45 # Earth's tilt in degrees# Day angle in radiansday_angle = 2 * np.pi * day_of_year / 365# Calculating sin of declinationsin_declination = np.sin(day_angle) * np.sin(np.radians(earth_tilt))# Convert sin of declination to declination angle in degrees declination = np.degrees(np.arcsin(sin_declination))return declination
#计算时角def calculate_hour_angle(local_time):time_difference = local_time - local_time.replace(hour=12, minute=0, second=0, microsecond=0) time_difference_in_hours = time_difference.total_seconds() / 3600hour_angle = time_difference_in_hours * 15 # degreesreturn hour_angledef func(x,y):# 设置起始日期和结束日期sum2 = 0angle_x = np.radians(x) # 将角度转换为弧度angle_y = np.radians(y) # 将角度转换为弧度start_date = datetime(2024, 1, 1)end_date = datetime(2024, 12, 31)# 设置每天的起始时间和结束时间start_time_of_day = datetime(2024, 1, 1, 6, 00)end_time_of_day = datetime(2024, 1, 1, 19, 00)# 初始化一个列表来保存每一天的日期dates = []# 遍历每一天local_time = start_datewhile local_time <= end_date:dates.append(local_time.date()) # 只保存日期部分local_time += timedelta(days=1)# 现在,我们遍历每一天,并为每一天生成从早上8点到下午17点的每30分钟的时间点for date in dates:sum1 = 0local_time = datetime.combine(date, start_time_of_day.time())# print(local_time)while local_time <= datetime.combine(date, end_time_of_day.time()):# print(local_time)month_to_I0 = {1: 1405,2: 1394,3: 1378,4: 1353,5: 1334,6: 1316,7: 1308,
8: 1315,9: 1330,10: 1350,11: 1372,12: 1392}omega = calculate_hour_angle(local_time)delta = calculate_declination(local_time)phi1 = math.radians(phi)delta1 = math.radians(delta)omega1 = math.radians(omega)alpha = math.asin(math.sin(phi1) * math.sin(delta1) + math.cos(phi1) * math.cos(delta1) * math.cos( omega1))if local_time.hour < 12:A = math.acos((math.sin(delta1) - math.sin(phi1) * math.sin(alpha)) / (math.cos(alpha) * math. cos(phi1)))else:domain = (math.sin(delta1) - math.sin(phi1) * math.sin(alpha)) / (math.cos(alpha) * math.cos(phi1))if domain > 1:domain = 1if domain < -1:domain = -1A = math.acos(domain)A = 2 * pi - ARa1 = -math.cos(alpha) * math.cos(A) * np.sin(angle_y) * np.cos(angle_x) + math.cos( alpha) * math.sin(A) * np.sin(angle_x) * np.sin(angle_y) + np.cos(angle_y) * math.sin(alpha)if Ra1 < 0:Ra1 = 0if Ra1 > 1:Ra1 = 1I0 = month_to_I0.get(local_time.month)L = calculate_length(phi, delta, omega, b, B)I_values = I0 * np.exp(-K_legal * L) * Ra1# print(I_values)sum1 += I_values /2# 将当前时间增加30分钟local_time += timedelta(minutes=30)sum2 += sum1
return -sum2/365class SA:def __init__(self, func, iter=10, T0=100, Tf=2, alpha=0.9):self.func = funcself. iter = iter # 内循环迭代次数,即为L =100self.alpha = alpha # 降温系数,alpha=0.99self.T0 = T0 # 初始温度T0为100self.Tf = Tf # 温度终值Tf为0.01self.T = T0 # 当前温度self.x = [random() * 180 - 90 for i in range( iter)] # 随机生成100个x的值self.y = [random() * 90 for i in range( iter)] # 随机生成100个y的值self.most_best = []self.history = {'f': [], 'T': []}def generate_new(self, x, y): # 扰动产生新解的过程while True:x_new = x + self.T * (random() - random())y_new = y + self.T * (random() - random())if (-90 <= x_new <= 90) & (0 <= y_new <= 90):break # 重复得到新解,直到产生的新解满足约束条件return x_new, y_newdef Metrospolis(self, f, f_new): # Metropolis准则if f_new <= f:return 1else:p = math.exp((f - f_new) / self.T)if random() < p:return 1else:return 0def best(self): # 获取最优目标函数值f_list = [] # f_list数组保存每次迭代之后的值for i in range(self. iter):f = self.func(self.x[i], self.y[i])f_list.append(f)f_best = min(f_list)idx = f_list.index(f_best)return f_best, idx # f_best,idx分别为在该温度下,迭代L次之后目标函数的最优解和最优解的下 标
def run(self):count = 0# 外循环迭代,当前温度小于终止温度的阈值while self.T > self.Tf:# 内循环迭代100次for i in range(self. iter):f = self.func(self.x[i], self.y[i]) # f为迭代一次后的值x_new, y_new = self.generate_new(self.x[i], self.y[i]) # 产生新解 f_new = self.func(x_new, y_new) # 产生新值if self.Metrospolis(f, f_new): # 判断是否接受新值self.x[i] = x_new # 如果接受新值,则把新值的x,y存入x数组和y数组 self.y[i] = y_new# 迭代L次记录在该温度下最优解ft, _ = self.best()self.history['f'].append(ft)self.history['T'].append(self.T)# 温度按照一定的比例下降(冷却)self.T = self.T * self.alphacount += 1# 得到最优解print(self.T)f_best, idx = self.best()print(f"F={f_best}, x={self.x[idx]}, y={self.y[idx]}")sa = SA(func)sa.run()plt.plot(sa.history['T'], sa.history['f'])plt.title('SA')plt.xlabel('T')plt.ylabel('f')plt.gca().invert_xaxis()plt.show()
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序
2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分(包括支架)、LED灯头、控制箱(包含控制器、蓄电池)、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…...

【JavaWeb后端学习笔记】Java上传文件到阿里云对象存储服务
阿里云对象存储 1、创建阿里云对象存储节点2、上传文件2.1 修改项目配置文件2.2 定义一个Properties类获取配置信息2.3 准备一个alioss工具类2.4 创建注册类,将AliOssUtil 注册成Bean2.5 使用AliOssUtil 工具类上传文件2.6 注意事项 使用阿里云对象存储服务分为以下…...
网盘管理系统
文末获取源码和万字论文,制作不易,感谢点赞支持。 设计题目:网盘管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软…...
learn-(Uni-app)跨平台应用的框架
使用 Vue.js 开发所有前端应用的框架,开发者编写一份代码,可发布到iOS、Android、Web(包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等)等多个平台。 跨平台:Uni-app 支持编译到iOS、Android、W…...
趋同进化与趋异进化的区别及分析方法-随笔03
趋同进化与趋异进化的区别及分析方法 1. 引言 在生物学中,进化是指生物种群随着时间的推移,通过遗传变异、自然选择、基因漂变等机制的作用,逐渐改变其基因型和表型的过程。进化的方式有很多种,其中趋同进化(Converg…...

2024年华中杯数学建模B题使用行车轨迹估计交通信号灯周期问题解题全过程文档及程序
2024年华中杯数学建模 B题 使用行车轨迹估计交通信号灯周期问题 原题再现 某电子地图服务商希望获取城市路网中所有交通信号灯的红绿周期,以便为司机提供更好的导航服务。由于许多信号灯未接入网络,无法直接从交通管理部门获取所有信号灯的数据&#x…...

高效查找秘密武器一:位图
有这样的一个问题: 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数 中。 那么我们一般会想到这样做的 1.遍历,时间复杂度O(n) 2.排序(N*logN),…...

自回归模型(AR )
最近看到一些模型使用了自回归方法,这里就学习一下整理一下相关内容方便以后查阅。 自回归模型(AR ) 自回归模型(AR )AR 模型的引入AR 模型的定义参数的估计方法模型阶数选择平稳性与因果性条件自相关与偏自相关函数优…...
Linux内核 -- Linux驱动从设备树dts文件中读取字符串信息的方法
从Linux设备树读取字符串信息 在Linux内核中,从设备树(DTS)中读取字符串信息,通常使用内核提供的设备树解析API。这些API主要位于<linux/of.h>头文件中。 常用函数解析 1. of_get_property 获取设备树中的属性。原型:con…...
图片懒加载+IntersectionObserver
通过IntersectionObserver实现图片懒加载 在JavaScript中,图片懒加载可以通过监听滚动事件和计算图片距离视口顶部的距离来实现 在HTML中,将src属性设置为一个透明的1x1像素图片作为占位符,并将实际的图片URL设置为data-src属性。 <img c…...

MySQL的获取、安装、配置及使用教程
一、获取MySQL 官网地址:https://www.mysql.com MySQL产品:企业版(Enterprise)和社区版(Community)社区版是通过GPL协议授权的开源软件,可以免费使用。企业版是需要收费的商业软件 MySQL版本历史:5.0、5.5、5.6、5.7和8.0(最新版本)两种打包版本:MSI(安装版)和ZI…...

Odoo在线python代码开发
《Odoo在线python代码开发从入门到精通》 从简入手,由浅入深,Odoo开发不求人 以实例促理解,举一反三 从Python到Odoo,低代码开发的正解之路 代码视频讲解与代码注释配合,帮助用户真正理解每一句代码的作用 《Odoo在…...

在.NET 6中使用Serilog收集日志
此示例的完整详细信息:https://download.csdn.net/download/hefeng_aspnet/89998498 Serilog 是一个日志库,它提供对文件、控制台和其他几个地方的记录。它易于配置,并且具有干净且易于使用的界面。 Serilog具有无与伦比的输出目的地选择&…...

【D3.js in Action 3 精译_043】5.1 饼图和环形图的创建(中):D3 饼图布局生成器的配置方法
当前内容所在位置: 第五章 饼图布局与堆叠布局 ✔️ 5.1 饼图和环形图的创建 ✔️ 5.1.1 准备阶段(上篇)5.1.2 饼图布局生成器(中篇) ✔️5.1.3 圆弧的绘制5.1.4 数据标签的添加 文章目录 5.1.2 饼图布局生成器 The …...

离线安装ollama到服务器
搜了很多教程不满意,弄了半天才弄好,这里记录下,方便以后的人用,那个在线下载太慢,怕不是得下载到明年。 一.从官网下在liunx版的tgz安装包 Releases ollama/ollama (github.com) 查看自己的服务器信息(参考 https:/…...
自动化点亮LED灯之程序编写
程序编写: #!/bin/shecho none > /sys/class/leds/led1/triggerecho none > /sys/class/leds/led2/triggerecho none > /sys/class/leds/led3/triggerecho 0 > /sys/class/leds/led1/brightnessecho 0 > /sys/class/leds/led2/brightnessecho 0 >…...

linux 系列服务器 高并发下ulimit优化文档
系统输入 ulimit -a 结果如下 解除或提高 Linux 系统的最大进程数 在高并发场景中,合理设置 Linux 系统的最大进程数对于提升服务器性能至关重要。以下是具体步骤: 临时修改 ulimit 设置 可以通过 ulimit 命令临时调整当前会话的最大进程数。 查看当前…...
人工智能入门数学基础:统计推断详解
人工智能入门数学基础:统计推断详解 目录 前言 1. 统计推断的基本概念 1.1 参数估计 1.2 假设检验 2. 统计推断的应用示例 2.1 参数估计示例:样本均值和置信区间 2.2 假设检验示例:t检验 3. 统计推断在人工智能中的应用场景 总结 前言…...
Spark区分应用程序 Application、作业Job、阶段Stage、任务Task
目录 一、Spark核心概念 1、应用程序Application 2、作业Job 3、阶段Stage 4、任务Task 二、示例 一、Spark核心概念 在Apache Spark中,有几个核心概念用于描述应用程序的执行流程和组件,包括应用程序 Application、作业Job、阶段Stage、任务Task…...

【Liunx篇】基础开发工具 - yum
文章目录 🌵一.Liunx下安装软件的方案🐾1.源代码安装🐾2.rpm包安装🐾3.包管理器进行安装 🌵二.软件包管理器-yum🌵三.yum的具体操作🐾1.查看软件包🐾2.安装软件包🐾3.卸载…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...