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
如果案例模型能顺利求解,说明安装正确。
把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.6升级到2.0.7,请先阅读升级日志
china_modules
不会自动安装,需要develop 安装;- 需要添加
switch_inputs_version.txt
文件到inputs
文件夹; generation_projects_info.csv
表格需命名为``gen_info.csv`local_td_loss_rate
从trans_params.csv
移到load_zones.csv
quick_start
module可以删掉,已经整合到其他模块当中;gen_build_predetermined.csv
表格列名称gen_predetermined_cap
改成build_gen_predetermined
;- 输电线路可双向输电两点之间只需一条线