2022/3/2-2022/3/11
本地地址:E:\software\dakotacase\dakota_gui_workspace\XAJ

文档说明

Calibration:新安江模型参数率定

DesignofExperiments:试验设计

ParameterStudy:参数研究

SensitivityAnalysis:敏感性分析

UncertaintyQuantification:不确定性量化

templatedir:模板目录,包含模拟脚本及其所需文件,用于给上述分析调用

研究对象

新安江模型采用笔者自己用C++编写的三水源版本
Dakota采用6.14版本的命令行可执行程序dakota.exe。

采用Dakota对新安江模型进行试验设计、参数研究、敏感性分析、不确定性量化和参数率定。

新安江模型java 版 新安江模型运行_Dakota

新安江模型

E:\software\dakotacase\dakota_gui_workspace\XAJ\templatedir路径下,存放着新安江模型程序及运行所需文件。

Dakota对新安江模型进行上述一系列分析的接口是simulator_script.batsimulator_script.bat批处理脚本主要完成三件事:一、前处理;二、运行可执行程序,即黑箱代码;三、后处理。

前处理

使用Dakota自带的dprepro根据params.inparameter.templateparameter.txt参数文件,如下所示,%1%表示命令行params.in

dprepro.py %1% parameter.template parameter.txt

运行待分析模型

在这里就是指运行新安江模型

XAJ.exe

后处理

从出口断面流量过程Q.txt到确定性系数DC 写入results.out

首先,读取Q.txt,将其转化为Q.ssf格式;

txt2ssf.py

然后,运行时间序列处理程序tsproc.exe,计算确定性系数DC,写入est.txt;

tsproc.exe tsproc.dat tsproc_record.txt est

最后,运行qoi.pyest.txt中取出确定性系数DC,写入%2%即命令行results.out

试验设计

文件夹目的

本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\DesignofExperiments

该文件夹包含使用Dakota对新安江模型进行试验设计所需所有文件。

简单评估参数灵敏度

文件说明

  • Dakota 输入文件:DesignofExperiments.in
  • 操作说明文档:ReadMe.md
  • 可执行程序黑箱代码:template/XAJ.exe
  • 分析驱动:template/simulator_script.bat
  • 参数模板文件:parameter.template
  • 后处理程序:template/txt2ssf.pyqoi.py
  • 时间序列处理程序:template/tsproc.exe
  • 时间序列处理程序配置文件:template/tsproc.dat
  • 新安江模型输入文件:template/P.txtEM.txtwatershed.txttime.txtparameter.txt
  • 新安江模型输出文件:template/Q.txt

运行程序

  1. 下载安装Dakota,并将dakota/bindakota/libdakota\test添加进环境变量
  2. 下载安装Python,并将Python添加进环境变量
  3. 在本目录下,点击菜单 文件 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® ,在命令行输入dakota -i DesignofExperiments.in -o DesignofExperiments.out > DesignofExperiments.stdout,回车运行试验设计程序。

查看结果

  1. 运行结束后,以记事本打开DesignofExperiments.out查看每次参数评估参数值及结果,文件最后为整个评估所花费的时间。
  2. 以记事本打开DesignofExperiments.stdout可查看每次评估的命令行输出,用于检查错误。在文件最后有MOAT方法计算得到的灵敏度。
  3. 以记事本打开dakota.err可查看Dakota运行错误日志;以记事本打开tabular.data,可查看每次评估的参数值及输出
  4. dakota.rst为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详
  5. 类似LHS.*文件为Dakota采样生成的临时文件,都可以删除
  6. 打开workdir/文件夹,查看每次评估的新安江模型输入和输出文件

参数研究

文件夹目的

本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\ParameterStudy

该文件夹包含使用Dakota对新安江模型进行参数研究所需所有文件。

通过对参数按照等距采样等方式,计算模型输出值,分析参数相关性,得到参数相关矩阵。

文件说明

  • Dakota 输入文件:parameterstudy.in
  • 操作说明文档:ReadMe.md
  • 其余同试验设计

运行程序

  1. 下载安装Dakota,并将dakota/bindakota/libdakota\test添加进环境变量
  2. 下载安装Python,并将Python添加进环境变量
  3. 在本目录下,点击菜单 文件 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® ,在命令行输入dakota -i parameterstudy.in -o parameterstudy.out > parameterstudy.stdout,回车运行参数研究程序。

查看结果

  1. 运行结束后,以记事本打开parameterstudy.out查看每次参数评估参数值及结果,文件最后为参数相关矩阵和整个评估所花费的时间。
  2. 以记事本打开parameterstudy.stdout可查看每次评估的命令行输出,用于检查错误
  3. 以记事本打开dakota.err可查看Dakota运行错误日志
  4. 以记事本打开tabular.data,可查看每次评估的采样数据,包含参数值及输出
  5. dakota.rst为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详
  6. 类似LHS.*文件为Dakota采样生成的临时文件,都可以删除
  7. 打开workdir/文件夹,查看每次评估的新安江模型输入和输出文件

敏感性分析

文件夹目的

本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\SensitivityAnalysis

该文件夹包含使用Dakota对新安江模型进行敏感性分析所需所有文件。

主要计算Sobol’全局参数灵敏度

文件说明

  • Dakota 输入文件:SensitivityAnalysis.in
  • 操作说明文档:ReadMe.md
  • 其余同试验设计

注:SensitivityAnalysis.inUncertaintyQuantification.in多了一句variance_based_decomp基于方差分解,因此可以计算灵敏度。

运行程序

  1. 下载安装Dakota,并将dakota/bindakota/libdakota\test添加进环境变量
  2. 下载安装Python,并将Python添加进环境变量
  3. 在本目录下,点击菜单 文件 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® ,在命令行输入dakota -i SensitivityAnalysis.in -o SensitivityAnalysis.out > SensitivityAnalysis.stdout,回车运行灵敏度分析程序。

查看结果

  1. 运行结束后,以记事本打开SensitivityAnalysis.out查看每次参数评估参数值及结果,文件最后为全局敏感性分析结果和整个评估所花费的时间。
  2. 以记事本打开SensitivityAnalysis.stdout可查看每次评估的命令行输出,用于检查错误。
  3. 以记事本打开dakota.err可查看Dakota运行错误日志
  4. 以记事本打开tabular.data,可查看每次评估的采样数据,包含参数值及输出
  5. dakota.rst为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详
  6. 类似LHS.*文件为Dakota采样生成的临时文件,都可以删除
  7. 打开workdir/文件夹,查看每次评估的新安江模型输入和输出文件,默认不输出,删除SensitivityAnalysis.ininterfacedirectory_tagdirectory_save前的#注释即可输出每次评估的文件,但所有文件通常较大

不确定性量化

文件夹目的

本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\SensitivityAnalysis

该文件夹包含使用Dakota对新安江模型进行不确定性量化所需所有文件。

主要计算目标函数均值、方差、置信区间、PDF、CDF、相关性

文件说明

  • Dakota 输入文件:UncertaintyQuantification.in
  • 操作说明文档:ReadMe.md
  • 其余同试验设计

运行程序

  1. 下载安装Dakota,并将dakota/bindakota/libdakota\test添加进环境变量
  2. 下载安装Python,并将Python添加进环境变量
  3. 在本目录下,点击菜单 文件 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® ,在命令行输入dakota -i UncertaintyQuantification.in -o UncertaintyQuantification.out > UncertaintyQuantification.stdout,回车运行不确定性量化程序。

查看结果

  1. 运行结束后,以记事本打开UncertaintyQuantification.out查看每次参数评估参数值及结果,文件最后为目标函数均值、方差、置信区间、PDF、CDF、相关性和整个评估所花费的时间。
  2. 以记事本打开UncertaintyQuantification.stdout可查看每次评估的命令行输出,用于检查错误。
  3. 以记事本打开dakota.err可查看Dakota运行错误日志
  4. 以记事本打开tabular.data,可查看每次评估的采样数据,包含参数值及输出
  5. dakota.rst为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详
  6. 类似LHS.*文件为Dakota采样生成的临时文件,都可以删除
  7. 打开workdir/文件夹,查看每次评估的新安江模型输入和输出文件

参数率定

文件夹目的

本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\SensitivityAnalysis

该文件夹包含使用Dakota自动率定新安江模型参数所需所有文件。

主要计算最优参数、最小残差

文件说明

  • Dakota 输入文件:calibration.in
  • 操作说明文档:ReadMe.md
  • 可执行程序黑箱代码:template/XAJ.exe
  • 分析驱动:template/simulator_script.bat
  • 参数模板文件:parameter.template
  • 后处理程序:template/txt2ssf.pyqoi.py
  • 时间序列处理程序:template/tsproc.exe
  • 时间序列处理程序配置文件:template/tsproc.dat
  • 新安江模型输入文件:template/P.txtEM.txtwatershed.txttime.txtparameter.txt
  • 新安江模型输出文件:template/Q.txt

运行自动率定程序

  1. 下载安装Dakota,并将dakota/bindakota/libdakota\test添加进环境变量
  2. 下载安装Python,并将Python添加进环境变量
  3. 在本目录下,点击菜单 文件 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® 新安江模型java 版 新安江模型运行_新安江模型java 版_02 打开 Windows PowerShell® ,在命令行输入dakota -i calibration.in -o calibration.out > calibration.stdout,回车运行自动率定程序。

查看自动率定结果

  1. 运行结束后,以记事本打开calibration.out查看每次参数率定参数值及结果,文件最后为最优参数和整个率定所花费的时间。
  2. 以记事本打开calibration.stdout可查看每次率定的命令行输出,用于检查错误
  3. 以记事本打开dakota.err可查看Dakota运行错误日志
  4. 以记事本打开tabular.data,可查看每次评估的采样数据,包含参数值及输出
  5. dakota.rst为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详
  6. 类似LHS.*文件为Dakota自动率定过程中采样生成的临时文件,都可以删除
  7. 打开workdir/文件夹,查看每次评估的新安江模型输入和输出文件

与SCE-UA算法对比

  • 从效率上讲,Dakota高于SCE-UA,同样是率定新安江模型的7个敏感参数,Dakota共调用模型136次,而SCE-UA则调用模型1240次,是Dakota的9.1倍。
  • 从质量上讲,SCE-UA高于Dakota,同样是率定新安江模型的7个敏感参数,SCE-UA的纳什效率系数为0.882869,Dakota的纳什效率系数为0.8677575,SCE-UA比Dakota高0.015,1.74%。
  • 从时间上讲,Dakota耗时81.068 s,SCE-UA耗时80.252 s,大致相同。

总的来讲,SCE-UA算法收敛效率明显低于Dakota,率定质量与Dakota大致相当,优先选择Dakota进行模型的参数率定。