问题重述
- 分析研究区域的碳排放现状及与经济发展、人口、能源消费等的关系。具体包括:
(1)建立评估碳排放的指标体系
(2)分析近年区域碳排放总量变化情况及影响因素
(3)预测未来碳排放量变化趋势
- 建立碳排放预测模型,考虑经济发展、人口、能源消费等因素的影响。包括:
(1)基于人口和经济预测能源消费量
(2)建立与人口、经济、能源消费相关的碳排放预测模型
- 探索实现区域碳达峰和碳中和的路径。具体包括:
(1)设计不同减排情景
(2)评估不同情景下的碳排放量
(3)提出碳达峰和碳中和的目标路径
总体而言,这个案例的重点在于通过建模分析区域碳排放现状和趋势,并在此基础上探索碳达峰和碳中和的实现路径,为区域低碳发展提供参考。
完整版内容在文末领取噢~
问题一
- 建立指标体系
可以考虑建立如下指标体系:
- 经济指标:GDP总量、第一产业增加值、第二产业增加值、第三产业增加值
- 人口指标:总人口量
- 能源消费指标:总能源消费量、各产业能源消费量、各部门能源消费量
- 碳排放指标:总碳排放量、各产业碳排放量、各部门碳排放量
- 建立碳排放预测模型
可以采用Kaya模型来建立碳排放预测模型:
C O 2 = P ∗ G D P P ∗ E G D P ∗ C O 2 E CO_2=P*\frac{GDP}{P}*\frac{E}{GDP}*\frac{CO_2}{E} CO2=P∗PGDP∗GDPE∗ECO2
其中:
C O 2 CO_2 CO2:碳排放总量
P P P:人口总量
G D P P \frac{GDP}{P} PGDP:人均GDP
E G D P \frac{E}{GDP} GDPE:单位GDP能耗
C O 2 E \frac{CO_2}{E} ECO2:单位能耗碳排放量
- 分析碳排放影响因素
可以从人口、经济发展、能源利用效率、能源结构等方面分析碳排放的影响因素。
- 预测模型参数确定
可以根据历史数据确定模型参数,并考虑政策影响、技术进步等因素对参数的影响,确定不同阶段的参数取值。
- 建立部门碳排放模型
可以采用类似思路,建立各产业部门和各经济部门的碳排放预测模型。
# 导入需要的库
import pandas as pd
import numpy as np
# 读取各类原始数据
gdp = pd.read_csv('gdp.csv')
pop = pd.read_csv('pop.csv')
energy = pd.read_csv('energy.csv')
emission_factor = pd.read_csv('emission_factor.csv')
# 计算碳排放量
co2_total = 0
for i in energy:
co2_total += energy[i] * emission_factor[i]
# 计算碳强度
co2_intensity = co2_total / gdp['total']
# 计算各部门碳排放量
co2_industry = 0
问题二
- 基于人口预测碳排放模型
E t + 1 = E t × ( 1 + α × ( P t + 1 − P t ) ) E_{t+1} = E_t \times (1+\alpha\times(P_{t+1}-P_t)) Et+1=Et×(1+α×(Pt+1−Pt))
其中, E t E_t Et和 E t + 1 E_{t+1} Et+1分别表示当前期和未来期的能源消费总量, P t P_t Pt和 P t + 1 P_{t+1} Pt+1分别表示当前期和未来期的人口总量, α \alpha α为人口弹性系数。
(1) 获取未来年份的人口数量预测数据P_{t+1}
(2) P_{t+1}与当前年份人口数据P_t进行比较,计算增长量(P_{t+1}-P_t)
(3) 假设能源消费量与人口数量之间存在比例关系,引入人口弹性系数α
(4) 根据当前年份能源消费量数据E_t,结合未来人口增长量和弹性系数α,可以预测未来年份的能源消费量E_{t+1}
(5) 该模型反映了人口规模变化对未来能源需求和碳排放的影响
- 基于GDP预测碳排放模型
E t + 1 = E t × ( 1 + β × ( G t + 1 − G t ) ) E_{t+1} = E_t \times (1+\beta\times(G_{t+1}-G_t)) Et+1=Et×(1+β×(Gt+1−Gt))
其中,
G
t
G_t
Gt和
G
t
+
1
G_{t+1}
Gt+1分别表示当前期和未来期的GDP总量,
β
\beta
β为GDP弹性系数。
(1) 获取未来年份的GDP预测数据G_{t+1}
(2) 计算与当前年份GDP数据G_t的增长量(G_{t+1}-G_t)
(3) 假设能源消费量与GDP之间存在比例关系,引入GDP弹性系数β
(4) 根据当前年份能源消费量数据E_t,结合GDP增长量和弹性系数β,可以预测未来年份的能源消费量E_{t+1}
(5) 该模型反映了经济增长对未来能源需求和碳排放的影响
- 综合预测碳排放量
C O 2 , t + 1 = ∑ i E i , t + 1 × E F i , t + 1 CO_{2,t+1}=\sum_i E_{i,t+1} \times EF_{i,t+1} CO2,t+1=i∑Ei,t+1×EFi,t+1
其中
C
O
2
,
t
+
1
CO_{2,t+1}
CO2,t+1为未来期碳排放总量,
E
i
,
t
+
1
E_{i,t+1}
Ei,t+1为未来期第i种能源的消费量,
E
F
i
,
t
+
1
EF_{i,t+1}
EFi,t+1为未来期第i种能源对应的碳排放因子。
(1) 将前两步得到的未来年份能源消费量预测值E_{i,t+1}带入碳排放计算公式
(2) 获取未来年份各种能源对应的碳排放因子EF_{i,t+1},考虑政策影响等因素
(3) 计算未来年份的碳排放总量CO_{2,t+1}
# 导入所需库
import pandas as pd
# 加载预测数据
pop_predict = pd.read_csv('pop_predict.csv')
gdp_predict = pd.read_csv('gdp_predict.csv')
# 当前年份数据
pop_t = 10500 #单位:万人
gdp_t = 25000 #单位:亿元
energy_t = 3500 #单位:万吨标准煤
# 人口相关参数
pop_elasticity = 0.8
# GDP相关参数
gdp_elasticity = 0.5
# 预测未来能源消费总量
energy_pop = energy_t * (1 + pop_elasticity * (pop_predict - pop_t)/pop_t)
energy_gdp = energy_t * (1 + gdp_elasticity * (gdp_predict - gdp_t)/gdp_t)
# 考虑能效提升因素
energy_efficiency = 0.9
问题三
- 情景设计
-
可以设置3-5种不同情景,表示不同的发展路径
-
每种情景可确定碳达峰年份、碳中和年份、能效提升目标、非化石能源占比目标等参数
-
例如:基准情景保持当前趋势不变;积极情景提前达峰中和时间表
-
设置不同的情景,每种情景需要确定关键参数值,例如:
碳达峰年份
t
p
e
a
k
t_{peak}
tpeak
碳中和年份
t
n
e
u
t
r
a
l
t_{neutral}
tneutral
能效提升比例
r
e
f
f
i
c
i
e
n
c
y
r_{efficiency}
refficiency
非化石能源占比
r
n
o
n
f
o
s
s
i
l
r_{nonfossil}
rnonfossil
- 多情景碳排放预测
-
利用问题二建立的碳排放预测模型,将不同情景的参数输入,运行模拟
-
可以考虑关键部门的差异,例如电力部门可提高非化石占比达到100%,但其他部门可能难以实现
-
得到每个情景下未来年份的碳排放量预测结果
-
在每个情景下,利用问题二建立的模型预测碳排放趋势:
C O 2 , t + 1 s = ∑ i E i , t + 1 s ⋅ E F i , t + 1 s CO_{2,t+1}^{s}=\sum_{i}E_{i,t+1}^{s}\cdot EF_{i,t+1}^{s} CO2,t+1s=i∑Ei,t+1s⋅EFi,t+1s
其中 s s s表示情景, C O 2 , t + 1 s CO_{2,t+1}^{s} CO2,t+1s为情景 s s s下一期碳排放量。
- 确定双碳路径
-
比较各情景表现,找到既可实现双碳目标又考虑经济社会可承受能力的最优参数组合
-
将最优参数在规划年份(2025年、2030年等)确定目标值
-
提出配套政策措施,例如提高能效的经济政策,发展非化石能源的产业政策
-
确保各项目标能够分阶段渐进实现,最终达成双碳目标
-
根据各情景表现,确定最优参数组合
确定间隔年份(2025年、2030年等)参数目标值
提出实施路径,确定逐步达成参数目标的政策措施
# 情景参数设置
scen_base = {'peak_year':2040, 'neutral_year':2060,
'efficiency_improve':0.3, 'nonfossil_ratio':0.4}
scen_advanced = {'peak_year':2030, 'neutral_year':2050,
'efficiency_improve':0.5, 'nonfossil_ratio':0.8}
# 情景碳排放预测
import emission_model # 调用问题二模型
emissions_base = []
for year in range(2020, 2070):
data = {'efficiency': scen_base['efficiency_improve'],
'nonfossil': scen_base['nonfossil_ratio']}
emission = emission_model.predict(year, data)
emissions_base.append(emission)
emissions_adv = []
# 同样方式模拟advanced情景
emissions_adv = []
for year in range(2020, 2070):
完整内容点击下方名片详细了解噢~
一起来关注数学建模小秘籍冲刺华为杯大奖!