2023年数维杯数学建模B题节能列车运行控制优化策略求解全过程文档及程序

news2024/12/24 0:57:52

2023年数维杯数学建模

B题 节能列车运行控制优化策略

原题再现:

  在城市交通电气化进程快速推进的同时,与之相应的能耗增长和负面效应也在迅速增加。城市轨道交通中的快速增长的能耗给城轨交通的可持续性发展带来负担。2018 年,北京、上海、广州地铁负荷占全市总负荷的 1.5%-2.5%,成为了城市电网的最大单体负荷[1]。在“双碳”政策下,城轨系统换用 ATO 驾驶模式、光伏+地铁等方法都取得了较好的减碳节能效果。城轨系统的需求侧响应可以在保证乘客满意度的情况下降低牵引能耗成本[2],可进一步发掘城轨系统减碳节能的潜力。
  在列车运行过程中,列车与外界会产生各种摩擦,进而消耗列车牵引的能量。列车运行过程中,被考虑的因素较多,如列车与轨道的摩擦、列车受到的空气阻力、列车势能的变化、列车运行过程中的位置限速等。在同一段旅途中,列车使用不同的驾驶策略通常会产生不同的能量和时间的消耗。单列车在两个站台之间的运行过程如图一所示。
在这里插入图片描述
  问题1
  假设一辆列车在水平轨道上运行,从站台A运行至站台B,其间距为5144.7m,运行的速度上限为100km/h,列车质量为176.3t,列车旋转部件惯性的旋转质量因数p= 1.08,列车电机的最大牵引力为310KN,机械制动部件的最大制动力为760KN。列车受到的阻力满足Davis阻力方程f = 2.0895 + 0.0098v + 0.006v^2,该公式中的速度单位为m/s,阻力单位为KN。
  你如何通过建模方法编写程序以获得列车运行过程的速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线与能量消耗-距离曲线?程序的运行时间是多长?需要获取列车以最短时间到达站台B、在最短运行时间上分别增加10s、20s、50s、150s、300s到达站台B总共六组曲线。
  在列车运行的实际情况中,需要考虑的因素更多,模型也更加复杂。列车运行的旅途中不同的路段的限速是不同的,旅途中亦有不同的坡度情况,电机的动态特性也更加复杂,此外,储能装置在列车节能领域有着重要的应用,列车制动时,会将一定比例的能量储存至储能装置中,以待后续使用。如图二所示。
在这里插入图片描述
  本赛题提供两个附件。从 XEQ 站至 SMKXY 站的路况数据与包含电机牵引/制动动态特性的列车相关参数数据。介绍如下:
  附件一:从 XEQ 站至 SMKXY 站的路况数据(xls 格式),其包含 XEQ 站到 SMKXY站的路途中的坡度变化信息以及限速变化信息。详情见附件一.xls。
在这里插入图片描述
  附件二:附件二介绍了电机的动态特性与参数并给出了静态电机牵引率与制动再生率。详情见附件二.docx。
  问题 2
  考虑附件一、二的路况信息以及电机的复杂动态过程。若列车计划运行时间为 T,请你设计优化方案得到可行的速度轨迹,使得运行过程的能耗降低(越低越好)。参照问题一,获取列车以最短时间到达站台 B、在最短运行时间上分别增加 10s、20s、50s、150s、300s 到达站台 B 总共六组曲线。
  列车在运行过程中可能会出现各种突发情况导致列车需要提前到达站台或延时到达站台。列车的运行速度轨迹需要根据新的到站时间而发生变化。

  问题 3。
  列车从起点出发,原计划于 320s 后到达终点,列车运行至 2000m 位置时,由于前方突发事故,需要延迟 60s 到达终点。请你设计优化方案在保持列车节能运行下,能够快速地(越快越好)得到调整后的优化速度轨迹。作出列车运行过程的速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线与能量消耗-距离曲线。

整体求解过程概述(摘要)

  针对问题一,以城市轨道交通电气化进程中能耗增长为背景,以欧拉数值法为基础,建立了模拟列车运行过程的动力学模型。通过考虑列车与轨道的摩擦、空气阻力、势能变化以及位置限速等因素,获取列车的速度-距离曲线、牵引力制动力-距离曲线、时间-距离曲线以及能量消耗-距离曲线。在模型中,我们考虑运行在水平轨道上的列车,通过给定站台 A 到站台 B 的距离、速度上限、列车质量、旋转部件惯性质量因数、列车电机最大牵引力和机械制动部件最大制动力,设定初始条件、定义微分方程,利用欧拉数值法进行迭代更新,得到了列车的运行状态。根据程序模拟运行结果,可观察到列车在不同路段内的速度变化、牵引制动力的变化、运行时间以及能量消耗。此外,还模拟运行在不同时间限制下列车到达站台 B 的情况,得到了六组曲线数据。
  针对问题二,在对列车运行过程建立的动力学模型的基础上,可以使用粒子群优化算法来求解列车在给定路段上的最优速度轨迹。为了保证安全性和节能减排目标,在目标函数中我们将能耗消耗作为约束条件,并且根据路段坡度信息对最大速度进行限制。在粒子群算法中,通过计算该速度轨迹的能耗消耗来确定各个速度的适应度。为了更加准确地估计列车的能耗,我们需要考虑列车运行过程中的变速运动。通过计算列车在不同速度下的牵引功率和制动功率,在满足最大牵引力和最大制动力的情况下,确定列车在每个时间段内的加速度和制动度。然后,根据牵引功率和制动功率计算每个时间段的能耗,最终求得整段路程的总能耗。
  针对问题三,介绍了两种优化方法解决问题三:建立速度曲线进行算法优化、采用分阶段求解路程和遗传算法。同时需要根据实时情况进行动态调整和优化,以确保列车安全、节能、快速地到达终点站。

问题分析:

  问题一的分析
  对问题 1 研究的意义的分析:问题 1 属于列车运行过程的数学建模问题。通过建立数学模型,可以获得列车在不同条件下的运行速度、牵引制动力、时间和能量消耗等曲线。这有助于了解列车在不同情况下的性能表现,为优化列车运行提供依据。
  对于解决此类问题一般数学方法的分析:针对列车运行过程中的速度、牵引制动力、时间和能量消耗等变化,我们可以使用数值方法进行建模和求解。其中,欧拉数值法是一种常用的数值方法,适用于对微分方程进行数值近似求解。
  对题目中所给数据特点的分析:附件中给出了列车在水平轨道上的运行数据,包括列车间距、速度上限、列车质量、惯性旋转质量因数、最大牵引力、最大制动力以及阻力方程。这些数据反映了列车运行过程中的关键参数和限制条件,是建立数学模型的基础。
  对问题 1 的题目要求进行分析:问题 1 要求通过建模方法编写程序,获得列车最短运行时间下的速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线和能量消耗-距离曲线,以及程序的运行时间。这些曲线能够描述列车在不同位置的运行状态和能耗情况,有助于评估列车的性能和效率。此外,还需获取列车以最短时间到达站台 B、在最短运行时间上分别增加 10s、20s、50s、150s、300s 到达站台 B 总共六组曲线。
  由于以上原因,我们首先建立一个基于欧拉数值法的数学模型 I,模拟列车在理想条件下的运行过程。然后,建立一个模型 II,通过调整运行时间来观察对应的速度-距离曲线、牵引制动力-距离曲线、时间-距离曲线和能量消耗-距离曲线的变化。最后,将模型 I 和模型 II 的结果进行比较,分析不同条件下列车的运行情况和能耗差异。
   问题二的分析
  对问题 2 研究的意义的分析:问题 2 属于列车运行过程的数学建模问题。通过建立数学模型,以路况信息及复杂动态过程为问题一的约束条件,来获得列车可行的运行轨迹、牵引制动力、时间和能量消耗等曲线。这有助于了解列车在不同情况下的性能表现,为优化列车运行提供依据。对于解决此类问题一般数学方法的分析:针对列车运行过程中的速度、牵引制动力、时间和能量消耗等变化,我们可以使用粒子群优化算法来设计一条能耗最小的速度轨迹,并根据路况信息和列车动态特性进行相应的限制和调整,以达到行驶安全和经济的目的。
  对题目中所给数据特点的分析:附件中给出了列车从XEQ 站到SMKXY站的路途中的坡度变化信息以及限速变化信息和电机的动态特性。其中,列车的质量和运行距离是确定的,而坡度信息决定速度上限、电机的恒转矩区和弱磁区则反映了列车加速度和减速度的范围;阻力则决定了列车运行过程中所受到的衰减力大小。
  对问题 2 的题目要求进行分析:问题 2 要求通过建模方法编写程序,以获得列车在给定运行时间 T 下能耗最低的可行速度轨迹,并生成牵引制动力-距离曲线、时间-距离曲线和能量消耗-距离曲线,以及程序的运行时间。这些曲线可以用于描述列车在不同位置的运行状态和能耗情况,进而评估列车的性能和效率。此外,还需要获取列车以最短时间到达站台 B 的曲线,以及在最短运行时间上分别增加 10s、20s、50s、150s、300s 到达站台 B 总共六组曲线,以探索速度轨迹变化对列车能耗的影响。
  为达成以上目标,我们首先需要在设计速度轨迹时,考虑列车的加速度和减速度限制,以保证列车的安全性和运行效率。同时,还需考虑列车行驶路段的坡度、阻力等因素,以优化能耗表现。然后,通过数值计算方法,可以对列车在不同速度下的能耗进行计算,并选择最小能耗的轨迹方案。最后,在得到初步的结果后,需要对速度轨迹进行进一步检验和优化,以满足列车的安全性和运行效率等要求。此外,还需根据题目要求获取列车在不同速度轨迹下到达站台 B 的曲线,以探索速度轨迹变化对列车能耗的影响。

模型假设:

  1. 假设问题一中,站点之间的坡度为 0,列车做的是直线运动;
  2. 假设牵引力和制动力产生的时间忽略不计,也即列车可在瞬间达到最大牵引力和最大制动力;
  3. 忽略空气阻力和摩擦力;
  4. 列车匀速运动时,F阻力 = F牵引力
  5. 假设列车在某个固定长度的间隔内,所受的阻力恒定,阻力值为该间隔内初始速度的对应值。

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

列车加速阶段的求解模型:

import math
import pandas as pd
import time
start_time = time . time () # 记 录 代 码 开 始 时 间
# 列车质量
mass = 176300 # kg
# 列 车 加 速 度 阶 段 的 牵 引 力
traction_force = 33369 # N
# 列 车 速 度 上 限
velocity_limit = 27.8 # m / s
# 列 车 阻 力 公 式 参 数
k1 = 2.0895
k2 = 0.0098
k3 = 0.006
# 列 车 加 速 度 阶 段 的 数 量 ( 小段数 )
num_segments = 1000
# 列 车 站 点 间 的 总 距 离
total_distance = 5144.7 # m
# 列 车 在 每 个 小 段 内 的 长 度
segment_length = total_distance / num_segments # m
# 初始 化 变量
distance_traveled = 0
velocity = 0
elapsed_time = 0 # 修 改 变 量 名 为 elapsed_time
# 存 储 每 一 小 段 的 距 离 、 速度 、 时间
data = []
# 开 始 模 拟 列 车 运 动
for i in range ( num_segments ):
# 当 前 小 段 的 起 始 速 度
initial_velocity = velocity
# 计 算 当 前 小 段 内 的 阻 力
resistance = ( k1 + k2 * velocity + k3 * velocity ** 2) * 1000
# 计 算 当 前 小 段 内 的 加 速 度
acceleration = ( traction_force - resistance ) / mass
# 计 算 当 前 小 段 内 的 末 速 度
final_velocity = math . sqrt ( initial_velocity ** 2 + 2 * acceleration * segment_length )
t = ( final_velocity - initial_velocity ) / acceleration
# 如 果 末 速 度 超 过 速 度 上 限 , 则 以 速 度 上 限 为 准
if final_velocity > velocity_limit :
final_velocity = velocity_limit
# 更 新 列 车 的 距 离 和 速 度
distance_traveled += segment_length
velocity = final_velocity
# 累 加 时 间 并 将 其 添 加 到 列 表 中
elapsed_time += t
data . append ([ distance_traveled , velocity , elapsed_time ])
# 如 果 列 车 达 到 速 度 上 限 , 结 束 运 动 模 拟
if velocity >= velocity_limit :
break
# 将 数 据 转 换 为 DataFrame 格式
df = pd . DataFrame ( data , columns =[ 'Distance ', 'Velocity ', 'Time '])
# 获 取 时 间 的 累 加 值
df [' Time_cumsum '] = df ['Time ']. cumsum ()
# 将数 据 写入 Excel 表格中
df . to_excel ('p1 - aacc +10. xlsx ', sheet_name ='Sheet1 ', index = False )
print (" 列车 在 运行 %.2f 米 的 距 离 后 达 到 速 度 上 限 %.2 f m/s" % ( distance_traveled , velocity_limit ))
print (" 达 到 速 度 上 限 所 需 的 时 间 为 %.2f 秒" % elapsed_time )
end_time = time . time () # 记 录 代 码 结 束 时 间
execution_time = end_time - start_time # 计 算 代 码 运 行 时 间
print (" 代 码 运 行 时 间 为 %.2f 秒" % execution_time )

列车减速阶段的求解模型:

import math
import pandas as pd
# 列车质量
mass = 176300 # kg
# 列 车 初 始 速 度
initial_velocity = 27.8 # m / s
# 列 车 终 点 速 度
final_velocity = 0 # m / s
# 列车 制 动力
braking_force = 27629 # N
# 列 车 站 点 间 的 距 离
distance = 5144.7 # m
num_segments = 1000
# 每 个 小 段 的 长 度
segment_length = distance / 1000 # m
# 列 车 当 前 速 度
velocity = initial_velocity # m / s
# 列 车 运 行 距 离
total_distance = 0 # m
# 列 车 运 行 时 间
total_time = 0 # s
# 创建空的 DataFrame , 用 于 保 存 数 据
df = pd . DataFrame ( columns =[" 距离 (m)", " 速度 (m/s)", " 时间 (s)"])
# 逐 个 小 段 计 算 列 车 运 行 距 离 和 时 间 , 直 到 速 度 降 为 0
for i in range ( num_segments ):
# 当 前 小 段 开 始 速 度
segment_initial_velocity = velocity
# 计 算 当 前 小 段 的 阻 力
resistance = (2.0895 + 0.0098 * velocity + 0.006 * velocity ** 2) * 1000
# N
# 计 算 当 前 小 段 的 减 速 度
acceleration = ( braking_force + resistance ) / mass # m / s ^2
# # 计 算 当 前 小 段 内 的 末 速 度
# final_velocity = math . sqrt ( segment_initial_velocity ** 2 - 2 * acceleration * segment_length )
# 计 算 当 前 小 段 内 的 末 速 度
temp = segment_initial_velocity ** 2 - 2 * acceleration * segment_length
if temp < 0:
final_velocity = 0
else :
final_velocity = math . sqrt ( temp )
# 计 算 当 前 小 段 的 运 行 时 间
segment_time = ( velocity - final_velocity ) / acceleration # s
# 如 果 末 速 度 超 过 速 度 上 限 , 则 以 速 度 上 限 为 准
if final_velocity < 0:
final_velocity = 0
# # 计 算 当 前 小 段 的 运 行 距 离
# segment_distance = velocity * segment_time - 0.5 * acceleration * segment_time ** 2
# m
# 更 新 列 车 当 前 速 度
velocity -= acceleration * segment_time
# 更 新 列 车 总 运 行 距 离
total_distance += segment_length
# 更 新 列 车 总 运 行 时 间
total_time += segment_time
# 将 当 前 小 段 的 数 据 保 存 到 DataFrame 中
df . loc [ i ] = [ segment_length , velocity , segment_time ]
# 输 出 当 前 小 段 的 距 离 、 速 度 和时 间
print ("第 {} 小段 : 距离 {:.2 f} 米 , 速度 {:.2 f} 米/秒 , 时间 {:.2 f} 秒". format ( i +1 , segment_length , velocity , segment_time ))
# 如 果 速 度 已 经 降 为 0, 则 跳 出循 环
if final_velocity <= 0:
break
# 计 算 每 个 小 段 的 累 计 距 离 , 速 度和 时 间
df [" 总距离 (m)"] = df [" 距离 (m)"]. cumsum ()
df [" 总速度 (m/s)"] = df [" 速度 (m/s)"]. cumsum ()
df [" 总时间 (s)"] = df [" 时间 (s)"]. cumsum ()
# 将 DataFrame 保存到 Excel 文件中
filename = "p1 -de. xlsx "
with pd . ExcelWriter ( filename ) as writer :
df . to_excel ( writer , index = False )
# 输出结果
print (" 列车 在 运行 %.2 f 米 的 距 离 时 速 度 降 为 0。" % total_distance )
print (" 速度降为 0 时 所 需 的 时 间 为 %.2 f 秒 。" % total_time 

列车速度运行轨迹的求解模型:

import math
distance = 5144.7 # 距离 , 单位为米
speed_limit = 100 # 速度上限 , 单位为 km / h
mass = 176.3 # 质量 , 单位为吨
inertia_factor = 1.08 # 旋 转 惯 量 因 子
max_traction_force = 310 # 最大 牵 引力 , 单位为 kN
max_brake_force = 760 # 最大 制 动力 , 单位为 kN
# 计算 Davis 阻力
def davis_friction ( v ):
v_ms = v / 3.6 # 将速度从 km / h 转换为 m / s
return 2.0895 + 0.0098* v_ms + 0.006* v_ms **2
# 计 算 列 车 受 到 的 总 阻 力
def total_friction ( v ):
return davis_friction ( v ) * mass * 9.8
# 计 算 列 车 加 速 度
def acceleration ( v ):
net_traction_force = max_traction_force - total_friction ( v )
return net_traction_force / mass
# 计 算 列 车 制 动 加 速 度
def brake_acceleration ( v ):
return max_brake_force / mass
# 计 算 列 车 能 耗
def energy_consumption (v , a ):
return total_friction ( v ) * v / 1000 + mass * ( inertia_factor /2) * ( a /(9.8*1000))**2 * distance
def Force ( final_velocity ):
traction_force = (310000 * 10) / final_velocity # 计 算 弱 磁 区 的 力
back_force = (760000 * 17) / final_velocity # 计 算 弱 磁 区 的 力
return traction_force , back_force
# 在 速 度 上 限 内 遍 历 所 有 速 度 , 找 到 最 小 的 能 耗 值 和 对 应 速 度
min_energy = math . inf
for v in range (1 , speed_limit + 1):
a = acceleration ( v )
energy = energy_consumption (v , a )
if energy < min_energy :
min_energy = energy
optimal_v = v
print (" The optimal speed is % dkm /h, and the minimum energy consumption is %.2 fkWh ." % ( optimal_v , min_energy ))
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1003695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Firefox使用SSH代理配置

原料 火狐浏览器 SSH账号 配置MyEntunnel MyEntunnel是用来登录SSH服务器并在本机自动架设一个socks5代理的软件。 把SSH帐号信息&#xff08;包括SSH服务器地址&#xff0c;SSH帐号&#xff0c;SSH密码&#xff09;一一填写到MyEntunnel对应的地方后&#xff0c;点击 “保存…

centos通过docker安装rabbitMq和延迟队列说明

安装步骤 首先进行docker安装可参考docker官网 下载镜像启动rabbitmq下载rabbitMq插件进入docker命令安装插件重新启动rabiitmq 1.下载镜像 docker pull rabbitmq:3.9.152.启动镜像 docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USERad…

开源家政服务平台小程序源码系统分享 带完整安装教程

继续分享一个完全开源的的家政服务平台的小程序源码系统&#xff0c;带前后端带完整教程&#xff0c;可以商业运营&#xff0c;功能十分的强大。 家政服务小程序开发源码的核心功能在于提供一个简洁、直观的界面&#xff0c;让用户可以方便地浏览并选择各类家政服务。不论是清洁…

掌握信息利器,快速发现潜在商机——介绍一款高效的数据检索软件

掌握信息利器&#xff0c;快速发现潜在商机——介绍一款高效的数据检索软件 在当今信息爆炸的时代&#xff0c;获取准确、实时的信息变得至关重要。为了帮助您快速发现潜在商机&#xff0c;我们推出了一款功能强大的数据检索软件。无论您是市场调研人员、销售专员还是企业经营者…

批量文件重命名:智能去除特殊符号,轻松管理文件名

在我们的日常生活中&#xff0c;我们经常会遇到各种各样的文件&#xff0c;这些文件名可能包含一些特殊符号&#xff0c;影响了我们对这些文件的正常使用。为了解决这个问题&#xff0c;我们可以使用批量文件重命名工具&#xff0c;智能去除这些特殊符号&#xff0c;让您的文件…

企业选择堡垒机要关注哪些点你知道吗?

企业选择堡垒机要关注哪些点你知道吗&#xff1f; 关注点1、需求 目前市面上堡垒机厂商很多&#xff0c;堡垒机类型也很多&#xff0c;首先你要明确自身需求&#xff0c;才能去选择合适的堡垒机厂商。 关注点2、预算 一般硬件堡垒机相对云堡垒机贵一点&#xff1b;云堡垒机…

windowds-server2008安装配置jdk1.8

一、安装准备 1&#xff09;获取jdk1.8安装包&#xff0c;上传到服务器D:\xwsoft\jdk 2&#xff09;创建jdk和jre安装目录 二、安装 1、双击下载的exe文件&#xff0c;开始安装。如下图&#xff0c;点击下一步 2、选择jdk的安装目录,安装位置&#xff1a;D:\xwsoft\jdk…

Type-C协议Ver2.0(学习笔记)

​​​​​​​1 简介 随着USB接口的持续成功&#xff0c;需要调整USB技术&#xff0c;以服务于新型计算平台和设备趋向于更小、更薄、更轻的外形。这些较新的平台和设备中的许多已经到了现有USB插座和插头阻碍创新的地步&#xff0c;特别是考虑到标准A和标准B版本USB连接器的…

一篇文章带你了解红黑树并将其模拟实现

了解红黑树并将其模拟实现 红黑树的概念和性质1. 概念2. 性质 红黑树的结构红黑树的节点定义及红黑树结构成员定义红黑树的插入1. 按照二叉搜索的树规则插入新节点2. 检测新节点插入后&#xff0c;红黑树的性质是否造到破坏情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&…

正中优配:A股三大指数集体反弹 医药板块全线走强

周一&#xff0c;A股商场展开反弹&#xff0c;三大指数大部分时间单边上扬&#xff0c;特别是午后在人民币汇率增值的提振下&#xff0c;指数呈现一轮脉冲式上涨&#xff0c;同时伴随北向资金显着回流。医药、轿车板块全天表现强势&#xff0c;券商板块午后显着反弹。 到昨日收…

电动取暖器、加热器、暖风机、亚马逊各国要求标准都有哪些?

UL1278测试报告介绍 UL1278是针对电气安全方面的测试报告标准&#xff0c;主要用于评估各种电器的安全性能&#xff0c;以确保它们在使用过程中不会对人身安全造成威胁。桌面暖风机作为一款加热设备&#xff0c;需要满足UL1278标准才能进入美国市场。 每年的十月份开始国外气温…

接口测试(详细总结)

序章 ​ 说起接口测试&#xff0c;网上有很多例子&#xff0c;看了不不知道他们说的什么&#xff0c;觉得接口测试&#xff0c;好高大上。认为学会了接口测试就能屌丝逆袭&#xff0c;走上人生巅峰&#xff0c;迎娶白富美。因此学了点开发知识后&#xff0c;发现接口测试其实都…

VMware中安装WindowsXP虚拟机详细步骤

有些小伙伴肯定会好奇&#xff1a;这都 Windows11 的年代了&#xff0c;怎么还要学习安装 Windows XP 操作系统呢&#xff1f; 虽然我们普通用户基本都是用 Windows10 或者 Windows11&#xff0c;但是你会发现很多公司、部门包括一些特殊场合用的都是 Windows XP 系统&#xff…

[每周一更]-(第62期):SRE 是什么?

在公司Devops平台搭建&#xff0c;采用了JenkinsGitGitlabDocker&#xff0c;进行了自动化构建和部署代码&#xff0c;解放了繁杂的代码更改到test/prod环境的问题&#xff1b; 这部分更多是运维比例极大&#xff0c;少量的开发操作&#xff0c;基本都是配置命令行以及yml配置、…

【LeetCode75】第五十三题 猜数字大小

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目就是让我们猜数字&#xff0c;要猜中的数字为1~n&#xff0c;并且给我们提供一个api&#xff0c;传入一个数字表示是我们猜的数&…

ABB UF C911B108 3BHE037864R010控制主板模块

ABB UF C911B108 3BHE037864R010 控制主板模块通常用于ABB的工业自动化和控制系统中&#xff0c;作为关键组件之一&#xff0c;用于执行控制、监测和通信任务。以下是通常情况下控制主板模块的一些产品功能&#xff1a; 高性能处理器&#xff1a;ABB UF C911B108 3BHE037864R01…

使用ExcelJS快速处理Node.js爬虫数据

什么是ExcelJS ExcelJS是一个用于处理Excel文件的JavaScript库。它可以让你使用JavaScript创建、读取和修改Excel文件。 以下是ExcelJS的一些主要特点&#xff1a; 支持xlsx、xlsm、xlsb、xls格式的Excel文件。可以创建和修改工作表、单元格、行和列。可以设置单元格样式、字…

C++之构造函数初始化列表()与{}区别(一百九十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

物资管理系统数据分析报告

目 录 1.需求分析 1.1系统目标与要求 1.2系统分析 1.3业务流程图 2.系统逻辑方案 2.1数据流程图&#xff08;DFD&#xff09;&#xff1a; 2.2数据字典&#xff08;简称DD&#xff09; 3系统总体结构设计 3.1软件系统总体结构设计 3.2数据存储的总体设计…

【Spark的五种Join策略解析】

join基本流程 Spark将参与Join的两张表抽象为流式遍历表(streamIter)和查找表(buildIter)&#xff0c;通常streamIter为大表&#xff0c;buildIter为小表&#xff0c;我们不用担心哪个表为streamIter&#xff0c;哪个表为buildIter&#xff0c;这个spark会根据join语句自动帮我…