Skip to content

Latest commit

 

History

History
131 lines (83 loc) · 5.1 KB

从零开始.md

File metadata and controls

131 lines (83 loc) · 5.1 KB

从零开始设置SWITCH-China

阅读指南

SWITCH团队准备了非常详细的安装指南:

https://github.com/switch-model/switch_tutorial

所需软件及安装

  • Python 3.7
  • 求解器:gurobi, cplex, cbc, glpk, 等

软件安装与系统和个人偏好有关,请参考SWITCH GitHub安装步骤.

  • 安装miniconda
  • 创建switch虚拟环境

在switch虚拟环境下标准安装switch-model

conda create -n switch python=3.7
conda activate switch
conda install -c conda-forge switch_model

中国模块

为考虑中国中央政府和地方政府制定的各类技术目标,比方说全国煤电封顶目标或全国核电潜力(最大装机),以及各省风电和光伏或其他技术的装机容量目标(最小装机),SWITCH-China增加了tech_plans.py模块。为考虑机组层面水的限制和影响,增加了water_limits.py模块。为配置储能,增加了mixed_strategy.py模块。这些模块置于china-modules目录之下。

安装中国模块

安装包含定制模块(china对应模块或其他个人新开发模块)的switch程序

conda create -n switch python=3.7
conda install -n switch pip
conda activate switch
cd switch-path-with-china-modules
pip install --upgrade --editable .

也可以把china_modules下的模块直接拷贝到switch安装目录新建china目录下。miniconda对应默认安装目录如下:

Windows

C:\Users\abc\Documents\conda\envs\switch\Lib\site-packages\switch_model\china\

Mac

/Users/abc/miniconda3/envs/switch/lib/python3.7/site-packages/switch_model/china/

更直接的可以把china_modules目录直接拷贝到运行情景的目录下,同时在modules.txt文件中添加 china_modules.tech_plans 请查看该目录是否添加并保留__init__.py文件,python通过该文件识别该目录为可执行目录。

如果要使用这些模块,定制安装这些模块后,在inputs文件夹内,modules.txt文件的模块清单增加相应模块,同时准备相应数据模块即可运行。

switch_model.china.tech_plans
switch_model.china.water_limits

total_capacity_limits.csv为全国安装容量限制。capacity_plans.csv为分省分技术安装目标。水的模块相应需要准备分流域分期水量限制数据。

测试案例模型

cd ..switch/examples/3zone_toy
switch solve --verbose --stream-solver

如果案例模型能顺利求解,说明安装正确。

运行SWITCH-China基础模型

inputs目录及数据拷贝到 /china-scenrios/china-basic目录或自定义目录,然后试运行。

cd ..switch/china-scenrios/china-basic
switch solve --verbose --stream-solver --inputs-dir inputs  --no-save-solution  --solver cplex  --solver-options-string "lpmethod=4 solutiontype=2"

请设置用cplex求解,模型默认用glpk求解,因为switch-china模型较大,求解时间过长。

运行多情景

如果只修改了某个或某几个表格,可以把更新的表格放在同一个inputs目录下,在运行求解时添加如下选项。可以避免重复拷贝相同文件,注意同时更改输出目录,否将将覆盖原有求解结果。

--input-alias standard_file.csv=alternative_file.csv --outputs-dir outputs_new_scenario

如果想一次运行多个情景,可以把情景名称及运行代码放到一个新建的scenarios.txt文件当中并置于运行根目录下(与inputs同一目录下),运行switch solve-scenarios,将逐行依次运行所有在scenarios.txt文件当中的情景。

更多设置请参看README

缩短求解时间

可以通过简化模型来缩短求解时间

  • 按技术、投入运行年、省份归总电厂以减少电厂数量
  • gen_info.csv表格当中的gen_min_build_capacity限制都设置为零或删掉该列,把混合整数优化变成线性优化
  • 把5年一期改为10年一期,减少规划期

常见报错

  • SWITCH模型版本问题。该数据顺利运行版本为2.0.7,如果版本不同有修改表格、参数或其他,数据表格需要做相应修订。可以跟通过GitHub版本对照来修改。
  • 未在modules.txt文件更新需考虑的模块,或添加了模块但未添加相应数据。
  • 设定最大装机和最小装机冲突导致无法求解。
  • 机组名称等不能用空格。

升级到2.0.7

如果从2.0.6升级到2.0.7,请先阅读升级日志

  • china_modules不会自动安装,需要develop 安装;
  • 需要添加switch_inputs_version.txt文件到inputs文件夹;
  • generation_projects_info.csv表格需命名为``gen_info.csv`
  • local_td_loss_ratetrans_params.csv 移到 load_zones.csv
  • quick_start module可以删掉,已经整合到其他模块当中;
  • gen_build_predetermined.csv表格列名称gen_predetermined_cap改成build_gen_predetermined
  • 输电线路可双向输电两点之间只需一条线