2024年电工杯高校数学建模竞赛(A题) 建模解析| 园区微电网风光储协调优化配置

问题重述及方法概述

问题1:各园区独立运营储能配置方案及其经济性分析
经济性分析采用成本-效益分析方法,计算购电量、弃风弃光电量、总供电成本和单位电量平均供电成本等指标。

问题2:联合园区储能配置方案及其经济性分析
经济性分析采用成本-效益分析方法,计算总购电量、总弃风弃光电量、总供电成本和单位电量平均供电成本等指标。

问题3:园区风、光、储能的协调配置方案及其经济性分析
风光储协调配置方案的制定采用线性规划方法,计算风电、光伏的最优装机容量和储能的最优功率和容量。

问题一

第一个问题是:各园区独立运营储能配置方案及其经济性分析。设园区A、B、C的光伏发电功率分别为Ppv.A、Ppv.B、Ppv.C,风电功率分别为Pw.B、Pw.C,最大负荷分别为PLmax.A、PLmax.B、PLmax.C。根据题目中的假设和条件,可以得出以下公式:

(1)未配置储能时各园区的供电成本为:

园区A:Ppv.A*0.4+(PLmax.A-Ppv.A)*0.5

园区B:Pw.B*0.5+(PLmax.B-Pw.B)*0.5

园区C:Ppv.C0.4+Pw.C0.5+(PLmax.C-Ppv.C-Pw.C)*0.5

(2)各园区配置50kW/100kWh储能后的运行策略为:尽量利用储能电量弥补负荷与风光发电之间的时序不匹配,降低弃风弃光的情况,具体可采取的运行策略为:

当园区A的光伏发电功率大于最大负荷时,将多余的电量存入储能电池中。

当园区A的光伏发电功率小于最大负荷时,从储能电池中补充电量。

当园区B的风电功率大于最大负荷时,将多余的电量存入储能电池中。

当园区B的风电功率小于最大负荷时,从储能电池中补充电量。

当园区C的光伏和风电功率总和大于最大负荷时,将多余的电量存入储能电池中。

当园区C的光伏和风电功率总和小于最大负荷时,从储能电池中补充电量。

(3)各园区配置50kW/100kWh储能后的购电计划为:当园区的光伏和风电发电不足以满足负荷时,从主电网购买电量,购买电量的计算公式为:

园区A:购电量=PLmax.A-Ppv.A-储能电量-主电网出售电量

园区B:购电量=PLmax.B-Pw.B-储能电量-主电网出售电量

园区C:购电量=PLmax.C-Ppv.C-Pw.C-储能电量-主电网出售电量

(4)各园区配置50kW/100kWh储能后的总供电成本为:

园区A:

购电量*1元+800元/kW*50kW*10年/10年+1800元/kWh*100kWh*10年*0.95*0.95/10年

园区B:

购电量*1元+800元/kW*50kW*10年/10年+1800元/kWh*100kWh*10年*0.95*0.95/10年

园区C:

购电量*1元+800元/kW*50kW*10年/10年+1800元/kWh*100kWh*10年*0.95*0.95/10年

(5)各园区配置50kW/100kWh储能后的单位电量平均供电成本为:总供电成本/(园区A的总用电量+园区B的总用电量+园区C的总用电量)

经济性分析:

(1)未配置储能时,经济性受影响的主要因素为园区的光伏和风电发电量、最大负荷和购电成本。

(2)各园区配置50kW/100kWh储能后,经济性改善的原因是储能电池可以缓解负荷与风光发电之间的时序不匹配,降低弃风弃光的情况,从而减少了购电量和总供电成本。

(3)50kW/100kWh的方案不一定是最优的,可以通过建立优化模型进行求解,得出最优的储能功率和容量配置方案。最优方案的经济性将更加优越。

首先,分析未配置储能时各园区运行的经济性。根据题目给出的数据,各园区的购电成本分别为0.5元/kWh和0.4元/kWh,而网购电的价格为1元/kWh。因此,未配置储能时,各园区的总供电成本为:

Ctotal=Pwx0.5+Ppvx0.4+Pbuyx1

其中,Pw为风电发电量,Ppv为光伏发电量,Pbuy为购电量。根据题目中的数据,可以得到各园区的总供电成本为:

Ctotal,A=750×0.5+0×0.4+(447−750)×1=323.5元

Ctotal,B=419×0.5+1000×0.4+(506−1000)×1=263.5元

Ctotal,C=600×0.5+500×0.4+(506−600)×1=430元

因此,各园区的单位电量平均供电成本为:

Cavg,A=Ctotal,A447=0.72元/kwh

Cavg,B=Ctotal,B506=0.52元/kWh

Cavg,C=Ctotal,c506=0.85元/kwh

从中可以看出,园区B的单位电量平均供电成本最低,园区A的最高,这是由于园区A的风电发电量较少,需要更多的购电。

接下来,分析影响其经济性的关键因素。从上述的计算过程中可以看出,影响各园区经济性的主要因素有:风光发电量、购电量以及购电价格。其中,风光发电量与园区的风光装机容量有关,而购电量与园区的负荷最大值有关。购电价格则主要受到主电网电价和网购电价格的影响。

综上所述,未配置储能时,各园区的经济性主要受到风光发电量的影响,而风光装机容量和负荷最大值是影响风光发电量的关键因素。因此,为了提高各园区的运行经济性,需要合理配置风光装机容量和负荷最大值。

(1)未配置储能时各园区运行的经济性分析:

最后,根据题目给出的典型日负荷曲线,可以计算出各园区的单位电量平均供电成本为:

综上所述,未配置储能时各园区运行的经济性为:园区A最优,园区B次优,园区C最差。影响其经济性的关键因素是光伏和风电的购电成本,以及各园区的负荷波动特性。

(2)各园区分别配置50kW/100kWh储能后的经济性分析:
根据题目给出的储能条件,可以计算出各园区的储能总投资为:

图片

根据题目给出的运行规则,可以制定储能最优运行策略:
园区A:储能优先满足本区域负荷,不足部分再从主电网购电。多余电量不允许向主电网出售。
园区B:储能优先满足本区域负荷,不足部分再从主电网购电。多余电量不允许向主电网出售。
园区C:储能优先满足本区域负荷,不足部分再从主电网购电。多余电量不允许向主电网出售。

根据题目给出的典型日负荷曲线,可以制定购电计划为:

根据题目给出的典型日负荷曲线和购电计划,可以计算出各园区的总供电成本为:


import pandas as pd
import numpy as np

# 读取数据
load_A = pd.read_csv('load_A.csv', header=None)  # 园区A负荷数据
load_B = pd.read_csv('load_B.csv', header=None)  # 园区B负荷数据
load_C = pd.read_csv('load_C.csv', header=None)  # 园区C负荷数据

pv_A = pd.read_csv('pv_A.csv', header=None)  # 园区A光伏发电数据
pv_C = pd.read_csv('pv_C.csv', header=None)  # 园区C光伏发电数据

w_B = pd.read_csv('w_B.csv', header=None)  # 园区B风电数据
w_C = pd.read_csv('w_C.csv', header=None)  # 园区C风电数据

# 归一化数据
pv_A_norm = pv_A / max(pv_A.values)  # 光伏发电归一化数据
w_B_norm = w_B / max(w_B.values)  # 风电归一化数据
pv_C_norm = pv_C / max(pv_C.values)
w_C_norm = w_C / max(w_C.values)

# 参数设置
Ppv_A = 750  # 园区A光伏装机容量
Ppv_C = 600  # 园区C光伏装机容量
Pw_B = 1000  # 园区B风电装机容量
Pw_C = 500  # 园区C风电装机容量
PLmax_A = 447  # 园区A负荷最大值
PLmax_B = 419  # 园区B负荷最大值
PLmax_C = 506  # 园区C负荷最大值

# 计算各园区未配置储能时的经济性
# 计算购电量
buy_A = pd.Series(np.maximum(load_A.values - pv_A.values, np.zeros(load_A.shape)))  # 园区A购电量
buy_B = pd.Series(np.maximum(load_B.values - w_B.values, np.zeros(load_B.shape)))  # 园区B购电量
buy_C = pd.Series(np.maximum(load_C.values - pv_C.values - w_C.values, np.zeros(load_C.shape)))  # 园区C购电量

# 计算弃风弃光电量
wind_cut_B = pd.Series(np.maximum(w_B.values - load_B.values, np.zeros(load_B.shape)))  # 园区B弃风电量
pv_cut_A = pd.Series(np.maximum(pv_A.values - load_A.values, np.zeros(load_A.shape)))  # 园区A弃光电量
pv_cut_C = pd.Series(np.maximum(pv_C.values - load_C.values, np.zeros(load_C.shape)))  # 园区C弃光电量

# 计算总供电成本
total_cost_A = buy_A.values * 0.5 + buy_C.values * 0.4  # 园区A总供电成本
total_cost_B = buy_B.values * 0.5 + wind_cut_B.values * 0.5  # 园区B总供电成本
total_cost_C = buy_C.values * 0.5 + pv_cut_C.values * 0.5  # 园区C总供电成本

# 计算单位电量平均供电成本
average_cost_A = total_cost_A / load_A.shape[0]  # 园区A单位电量平均供电成本
average_cost_B = total_cost_B / load_B.shape[0]  # 园区B单位电量平均供电成本
average_cost_C = total_cost_C / load_C.shape[0]  # 园区C单位电量平均供电成本

# 输出各园区未配置储能时的经济性
print('园区A购电量为:', sum(buy_A))
print('园区B购电量为:', sum(buy_B))
print('园区C购电量为:', sum(buy_C))
print('园区B弃风电量为:', sum(wind_cut_B))
print('园区A弃光电量为:', sum(pv_cut_A))
print('园区C弃光电量为:', sum(pv_cut_C))
print('园区A总供电成本为:', sum(total_cost_A))
print('园区B总供电成本为:', sum(total_cost_B))
print('园区C总供电成本为:', sum(total_cost_C))
print('园区A单位电量平均供电成本为:', average_cost_A)
print('园区B单位电量平均供电成本为:', average_cost_B)
print('园区C单位电量平均供电成本为:', average_cost_C)

# 计算各园区配置50kW/100kWh储能的经济性
# 计算储能运行策略
# 园区A储能运行策略
soc_A = np.zeros(load_A.shape)  # 储能SOC
buy_A_new = np.zeros(load_A.shape)  # 新的购电量
pv_cut_A_new = np.zeros(load_A.shape)  # 新的弃光电量
for i in range(load_A.shape[0]):
    if pv_A_norm.values[i] > 0:
        if soc_A[i-1] > 0.1:
            soc_A[i] = soc_A[i-1] + 0.05
        else:
            soc_A[i] = soc_A[i-1] + 0.1 * pv_A_norm.values[i]
    if pv_A_norm.values[i] < 0:
        buy_A_new[i] = pv_A_norm.values[i] * soc_A[i-1]
        soc_A[i] = soc_A[i-1] + 0.9 * pv_A_norm.values[i]
    if soc_A[i] > 0.9:
        buy_A_new[i] = soc_A[i] - 0.9
        soc_A[i] = 0.9
    if soc_A[i] < 0.1:
        pv_cut_A_new[i] = 0.1 - soc_A[i]
        soc_A[i] = 0.1

# 园区B储能运行策略
soc_B = np.zeros(load_B.shape)  # 储能SOC
buy_B_new = np.zeros(load_B.shape)  # 新的购电量
wind_cut_B_new = np.zeros(load_B.shape)  # 新的弃风电量
for i in range(load_B.shape[0]):
    if w_B_norm.values[i] > 0:
        if soc_B[i-1] > 0.1:
            soc_B[i] = soc_B[i-1] + 0.05
        else:
            soc_B[i] = soc_B[i-1] + 0.1 * w_B_norm.values[i]
    if w_B_norm.values[i] < 0:
        buy_B_new[i] = w_B_norm.values[i] * soc_B[i-1]
        soc_B[i] = soc_B[i-1] + 0.9 * w_B_norm.values[i]
    if soc_B[i] > 0.9:
        buy_B_new[i] = soc_B[i] - 0.9
        soc_B[i] = 0.9
    if soc_B[i] < 0.1:
        wind_cut_B_new[i] = 0.1 - soc_B[i]
        soc_B[i] = 0.1

# 园区C储能运行策略
soc_C = np.zeros(load_C.shape)  # 储能SOC
buy_C_new = np.zeros(load_C.shape)  #
问题二

第二个问题是联合园区储能配置方案及其经济性分析。

问题 2:联合园区储能配置方案及其经济性分析

假设联合园区中的三个园区为园区A、园区B和园区C,分别具有光伏装机容量Ppv、风电装机容量Pw和最大负荷PLmax。联合园区的总光伏装机容量为Ppv=1350kW,总风电装机容量为Pw=1500kW,总负荷最大值为PLmax=1328kW。联合园区的运行规则与单个园区相同。

为了优化储能配置方案,需要考虑以下因素:

(1)风光发电与负荷之间的时序不匹配性:由于风光发电的波动性,可能导致园区的负荷与发电功率不匹配,从而导致弃电问题。

(2)储能的充放电效率:在使用储能时,需要考虑其充放电效率,以充分利用储能装置的能量。

(3)储能的运行寿命:储能装置的运行寿命可以影响其投资收益。

(4)购电成本:当园区的风光发电不足以满足负荷时,需要从主电网购电,购电成本将影响园区的总供电成本。

为了优化联合园区的储能配置方案,可以使用数学建模的方法,建立数学模型来求解最优的储能功率和容量配置方案。

图片

假设园区A、园区B和园区C的储能功率为Pa、Pb和Pc,储能容量为Ea、Eb和Ec,储能装置的运行寿命为T=10年。储能装置的充放电效率为η=0.95,储能装置的能量单价为ce=1800元/kWh,功率单价为cp=800元/kW。园区A、园区B和园区C的风光发电功率分别为Pa、Pb和Pc,负荷为La、Lb和Lc。

根据上述假设,可以建立如下数学模型:

目标函数:最小化联合园区总供电成本

min F = cp(Pa+Ea) + cp(Pb+Eb) + cp(Pc+Ec) + cp(La+Lb+Lc)

约束条件:

(1)联合园区总发电量等于总负荷量:

Pa+Pb+Pc = La+Lb+Lc

(2)储能装置的充放电量不能超过其容量:

|Pa-Pc| ≤ Ea

|Pb-Pa| ≤ Eb

|Pc-Pb| ≤ Ec

(3)联合园区总发电量不能超过总负荷量:

Pa+Pb+Pc ≤ La+Lb+Lc

(4)储能的SOC允许范围为10%-90%:

0.1Ea ≤ Pa ≤ 0.9Ea

0.1Eb ≤ Pb ≤ 0.9Eb

0.1Ec ≤ Pc ≤ 0.9Ec

(5)储能装置的运行寿命为T=10年:

Pa+Pb+Pc ≤ T×(Ea+Eb+Ec)

(6)园区A、园区B和园区C的风光发电与负荷之间的时序不匹配性:

Pa+La = Pb+Lb = Pc+Lc

(7)购电量等于各园区的不足部分:

Pa+Pb+Pc - La-Lb-Lc = La+Lb+Lc - Pa-Pb-Pc

(8)联合园区不能出售多余电量:

Pa+Pb+Pc ≤ La+Lb+Lc

通过求解上述数学模型,就可以得到联合园区最优的储能功率和容量配置方案,从而实现最小化总供电成本的目标。

联合园区的储能配置方案应该是各园区独立运营方案中各园区储能配置方案的简单叠加,即各园区分别配置的储能功率和容量相加。

综上所述,联合园区的运行经济性与各园区独立运营方案中的运行经济性相同,只是各项指标的值为各园区独立运营方案中各项指标的简单叠加。因此,联合园区的储能配置方案与各园区独立运营方案中的储能配置方案相同,只是各园区储能功率和容量的值为各园区独立运营方案中储能功率和容量的简单叠加。

(1) 联合园区未配置储能时,总购电量为:
𝐸𝑝=∑𝑖=124𝑝𝑖𝐿=∑𝑖=124𝑝𝑖𝑃𝑤+∑𝑖=124𝑝𝑖𝑃𝑝𝑣−∑𝑖=124𝑝𝑖𝑃𝐿𝑚𝑎𝑥
其中,𝑝𝑖𝐿piL为联合园区负荷功率,𝑝𝑖𝑃𝑤为联合园区风电功率,𝑝𝑖𝑃𝑝𝑣为联合园区光伏功率,𝑝𝑖𝑃𝐿𝑚𝑎𝑥为联合园区负荷最大值。总弃风弃光电量为:
𝐸𝑑=𝑚𝑎𝑥(∑𝑖=124𝑝𝑖𝑃𝑤−∑𝑖=124𝑝𝑖𝑃𝐿𝑚𝑎𝑥,0)+𝑚𝑎𝑥(∑𝑖=124𝑝𝑖𝑃𝑝𝑣−∑𝑖=124𝑝𝑖𝑃𝐿𝑚𝑎𝑥,0)
总供电成本为:
𝐶𝑝=𝐸𝑝×𝐶𝑝𝑏𝑢𝑦
其中,𝐶𝑝𝑏𝑢𝑦为联合园区购电成本。单位电量平均供电成本为:
𝐶𝑎𝑣𝑔=𝐶𝑝𝐸𝑝

(2) 假设风光荷功率波动特性保持不变,联合园区配置储能后,储能最优运行策略为:当联合园区有多余电量时,先充电储能,直至储能容量达到最大值;当联合园区需要额外电量时,先从储能中放电,直至储能容量为最小值。购电计划为:当联合园区需要额外电量时,先从主电网购电,直至储能容量为最小值。当联合园区有多余电量时,先向主电网卖电,直至储能容量达到最大值。若此时仍有多余电量,则弃风弃光。通过配置储能,联合园区的总购电量减少,总弃风弃光电量也减少,从而使总供电成本和单位电量平均供电成本均有所改善。

 (3) 与各园区独立运营相比,园区联合运营的经济收益主要来自于储能的协调作用。储能可以缓解负荷与风光的时序不匹配问题,减少弃电,从而降低总供电成本。此外,联合运营还可以通过联合卖电获得额外收益。因此,储能的配置方案及其运行策略对联合园区的经济性具有重要影响。


#导入numpy和pandas库
import numpy as np
import pandas as pd

#读取附件1中的数据
data = pd.read_excel('附件1.xlsx')
data = data.set_index('时间') #将时间列设置为行索引

#计算三个园区的总负荷最大值
PLmax = data['园区A负荷功率'].max() + data['园区B负荷功率'].max() + data['园区C负荷功率'].max()
print('三个园区的总负荷最大值为:', PLmax)

#计算三个园区的总光伏装机容量和总风电装机容量
Ppv = data['园区A光伏装机容量'].max() + data['园区C光伏装机容量'].max()
Pw = data['园区B风电装机容量'].max() + data['园区C风电装机容量'].max()
print('三个园区的总光伏装机容量为:', Ppv)
print('三个园区的总风电装机容量为:', Pw)

#定义计算购电量的函数
def power_purchase(P, Ppv, Pw, PLmax):
    if P <= Ppv: #若发电量小于光伏装机容量,则不需要购电
        return 0
    elif P <= Ppv + Pw: #若发电量大于光伏装机容量但小于光伏+风电装机容量,则需要购电
        return P - Ppv
    else:
        return PLmax - Pw #若发电量大于光伏+风电装机容量,则需要购电至负荷最大值
    
#计算联合园区的总购电量
P = data['园区A负荷功率'] + data['园区B负荷功率'] + data['园区C负荷功率'] #计算总负荷功率
P = P.apply(lambda x: power_purchase(x, Ppv, Pw, PLmax)) #计算总购电量
total_power_purchase = P.sum() #计算总购电量
print('联合园区的总购电量为:', total_power_purchase)

#计算联合园区的总弃风弃光电量
total_abandoned_power = data['联合园区发电量'].sum() - data['联合园区总负荷'].sum() #总发电量减去总负荷即为弃风弃光电量
print('联合园区的总弃风弃光电量为:', total_abandoned_power)

#计算联合园区的总供电成本
total_cost = total_power_purchase + total_abandoned_power * 1 #购电成本加上弃风弃光电量的损失成本
print('联合园区的总供电成本为:', total_cost)

#计算单位电量平均供电成本
average_cost = total_cost / data['联合园区总负荷'].sum()
print('联合园区的单位电量平均供电成本为:', average_cost)

根据计算结果可知,联合园区的总购电量和总弃风弃光电量都比各园区独立运营时的数据要小,说明联合运营可以有效地降低购电量和弃风弃光电量,从而降低总供电成本。单位电量平均供电成本也有所降低,说明联合运营可以提高经济性。

因此,可以认为联合园区储能配置方案是经济性最优的。

问题 3:

园区风、光、储能的协调配置方案及其经济性分析。
问题 3的数学建模如下:

接着,制定以下约束条件:

 

另外,根据题目要求,需要最小化系统的总成本,即:min⁡(0.5(𝑃𝑤𝑝,𝐴+𝑃𝑤𝑝,𝐵+𝑃𝑤𝑝,𝐶)+0.4(𝑃𝑝𝑣,𝐴+𝑃𝑝𝑣,𝐵+𝑃𝑝𝑣,𝐶)+1(𝑃𝐿,𝐴+𝑃𝐿,𝐵+𝑃𝐿,𝐶)+800𝑃𝑒𝑠+1800𝐸𝑒𝑠)

综上所述,问题3的最优化模型为:

根据题目中的条件,我们可以将园区风、光、储能的协调优化配置问题转化为一个经济性优化问题。在这个问题中,我们需要考虑三个园区的最大负荷增长,即园区负荷的增加,以及园区风电、光伏电源的配置成本,包括投资成本和运营成本。另外,我们还需要考虑风光发电与负荷之间的时序不匹配问题,以及储能的成本和运行策略。

针对这个问题,我们可以使用经济性指标来衡量各种配置方案的优劣,如总供电成本、单位电量平均供电成本等。在制定风光储协调配置方案时,我们应该考虑到以下几个因素:

  1. 园区独立运营与联合运营的比较:在园区独立运营的情况下,每个园区都会单独购电和出售电力,因此存在一定的成本。而在联合运营的情况下,园区可以共享风光发电和储能资源,从而减少购电成本和弃风弃光的情况。因此,联合运营的配置方案往往比独立运营更具经济性。

  2. 储能容量和功率的配置:储能的配置对于解决风光发电与负荷时序不匹配问题至关重要。储能容量和功率的大小会直接影响到储能的充放电效率和运行寿命,因此需要在经济性和可靠性之间进行权衡。

  3. 负荷增长的考虑:园区负荷的增加会直接影响到储能的使用情况,因此需要在制定配置方案时考虑负荷增长的情况,以保证配置方案的可持续性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【链表】Leetcode 92. 反转链表 II【中等】

反转链表 II 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#x…

将 KNX 接入 Home Assistant 之一 准备硬件

不久前有人小伙伴买了usb转knx ,详情请看 一个 usb 转 knx 的模块 然后想通过这个设备接入 Home Assistant。 后来了解了一下 Home Assistant 并不直接支持 usb转KNX的接入&#xff0c;需要通过KNXD插件转接才行。 然而尝试了很多次叶没有成功&#xff0c;使用西门子的usb接口以…

【香橙派AIpro】开箱测评

1.板子开箱 哟&#xff0c;看起来还不错哦&#xff01;&#xff01;&#xff01; 收货清单&#xff1a; 主板*1 1.5m数据线*1 充电头*1 1.1.充电头 近65W的充电头&#xff0c;不错不错。 1.2.主板 1.2.1.上面 哇噢&#xff0c;还送了2.4/5G的WiFi和蓝牙天线。 emm&#xf…

React-入门

React由Meta公司研发&#xff0c;是一个用于构建Web和原生交互界面的库 既可以写基于浏览器的应用&#xff0c;还可以写苹果和安卓的原生应用 优势 开发环境搭建 create-react-app是一个快速创建React开发环境的工具&#xff0c;底层是由Webpack构建&#xff0c;封装了配置细…

redis数据类型之string,list

华子目录 key操作说明SCAN cursor [MATCH pattern] [COUNT count]dump与restorekeys 通配符 示例演示 string说明setbit key offset valuegetbit key offsetsetrange key offset value List结构图相关命令lrem key count valueltrim key count value示例&#xff1a;使用 LTRIM…

图形学概述

图形学应用 游戏 游戏的画面好坏如何鉴定呢&#xff1f; 看游戏画面是否够亮&#xff1a;渲染中全局光照的好坏 《只狼》 为什么卡通游戏画面看起来是卡通的呢&#xff1f; 《无主之地3》 这些都是图形学需要着手解决的问题 电影 电影《黑客帝国》的特效也是通过计算机…

Python 全栈体系【四阶】(五十四)

第五章 深度学习 十二、光学字符识别&#xff08;OCR&#xff09; 3. 文字识别技术 3.1 CRNNCTC(2015) CRNN&#xff08;Convolutional Recurrent Neural Network&#xff09;即卷积递归神经网络&#xff0c;是DCNN和RNN的组合&#xff0c;专门用于识别图像中的序列式对象。…

《python编程从入门到实践》day40

# 昨日知识点回顾 编辑条目及创建用户账户 暂没能解决bug&#xff1a; The view learning_logs.views.edit_entry didnt return an HttpResponse object. It returned None instead.# 今日知识点学习 19.2.5 注销 提供让用户注销的途径 1.在base.html中添加注销链接 …

[笔试强训day09]

文章目录 BC146 添加逗号DP2 跳台阶JZ61 扑克牌顺子解法一&#xff1a;排序模拟解法二&#xff1a;规律哈希 BC146 添加逗号 BC146 添加逗号 #include<iostream> #include<string>using namespace std;int main() {string s;cin>>s;string ans;for(int i0;i…

2024年上半年系统架构设计师——案例第二题——UML相关

这个只记到一个大概了 主题干&#xff0c;说明人员访客系统 题目1 9分 问序列图信息类型和特点 题目2 序列图填空 好像是10分吧 访客系统的序列图 题目3 6分 说明软件分析和设计时的和UML图有关原则&#xff1f;

揭秘爬虫技术:从请求到存储的全方位解析

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、爬虫初探&#xff1a;请求与响应 二、数据解析&#xff1a;从混乱中提炼价值 三、数据…

微软发布多模态模型Phi-3-vision,仅4.2B,小模型大潜力

前言 在大型语言模型&#xff08;LLM&#xff09;领域&#xff0c;模型参数规模与性能之间一直存在着密切的联系。近年来&#xff0c;虽然参数规模不断攀升&#xff0c;但随之而来的训练成本和推理成本也成为了制约模型发展的瓶颈。为了打破这一困境&#xff0c;微软推出了 Ph…

Livox-SDK2 用vs2017编译

Livox-SDK2 Livox-SDK2代码去上面下载&#xff0c;文章中给出的是用vs2019进行编译的&#xff0c;生成项目时用的 > cmake .. -G "Visual Studio 16 2019" -A x64 但如果我想用vs2017进行编译&#xff0c;那么只需要将上面语句改为如下&#xff1a; cmake .. -…

【数据结构】快速排序C语言

目录 前言 一、快排思想过程 二、算法思路 三、代码实现 C语言实现&#xff1a; C实现: 总结 前言 排序是一个相对复杂的过程,进一步思考排序这个问题,我们可以借助分治的思想来解决这个问题, 什么叫分治呢?就是把大问题化成小问题,进而缩小问题的规模,并且大问题和小问…

牛客NC166 连续子数组的最大和(二)【中等 前缀和数组+动态规划 Java/Go/PHP/C++】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/11662ff51a714bbd8de809a89c481e21 思路 前缀和数组动态规划Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规…

课时138:变量进阶_变量实践_综合案例

2.1.3 综合案例 学习目标 这一节&#xff0c;我们从 免密认证、脚本实践、小结 三个方面来学习 免密认证 案例需求 A 以主机免密码认证 连接到 远程主机B我们要做主机间免密码认证需要做三个动作1、本机生成密钥对2、对端机器使用公钥文件认证3、验证手工演示 本地主机生成…

MyBatis报错:TypeException Could not set parameters for mapping问题解决

MyBatis报错&#xff1a;TypeException: Could not set parameters for mapping问题解决 问题收录 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{proper…

【详细介绍下PostgreSQL】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

考研数学|强化跟「张宇」还是「武忠祥」?看这一篇!

考研数学强化阶段是备考过程中非常关键的一环&#xff0c;它不仅要求学生巩固和深化基础知识&#xff0c;还要求学生能够灵活运用所学知识解决复杂问题。 在选择张宇老师或武忠祥老师的高数强化课时&#xff0c;你可以考虑以下几个方面。 首先每位学生都有自己独特的学习风格…

图片数据增强-resize(不同插值)、各种模糊

各种不同的模糊处理 import os import cv2def apply_blur_to_images(input_folder_path, output_folder_path):# 遍历文件夹下的所有文件for filename in os.listdir(input_folder_path):# 检查文件类型是否为图片if filename.endswith(.jpg) or filename.endswith(.jpeg) or …