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对新安江模型进行试验设计、参数研究、敏感性分析、不确定性量化和参数率定。
新安江模型
在E:\software\dakotacase\dakota_gui_workspace\XAJ\templatedir 路径下,存放着新安江模型程序及运行所需文件。
Dakota对新安江模型进行上述一系列分析的接口是simulator_script.bat 。simulator_script.bat 批处理脚本主要完成三件事:一、前处理;二、运行可执行程序,即黑箱代码;三、后处理。
前处理
使用Dakota自带的dprepro 根据params.in 、parameter.template 写parameter.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.py 从est.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.py 、qoi.py - 时间序列处理程序:
template/tsproc.exe - 时间序列处理程序配置文件:
template/tsproc.dat - 新安江模型输入文件:
template/P.txt 、EM.txt 、watershed.txt 、time.txt 、parameter.txt - 新安江模型输出文件:
template/Q.txt
运行程序
- 下载安装Dakota,并将
dakota/bin 、dakota/lib 、dakota\test 添加进环境变量 - 下载安装Python,并将Python添加进环境变量
- 在本目录下,点击菜单 文件
→
\rightarrow
→ 打开 Windows PowerShell?
→
\rightarrow
→ 打开 Windows PowerShell? ,在命令行输入
dakota -i DesignofExperiments.in -o DesignofExperiments.out > DesignofExperiments.stdout ,回车运行试验设计程序。
查看结果
- 运行结束后,以记事本打开
DesignofExperiments.out 查看每次参数评估参数值及结果,文件最后为整个评估所花费的时间。 - 以记事本打开
DesignofExperiments.stdout 可查看每次评估的命令行输出,用于检查错误。在文件最后有MOAT方法计算得到的灵敏度。 - 以记事本打开
dakota.err 可查看Dakota运行错误日志;以记事本打开tabular.data ,可查看每次评估的参数值及输出 dakota.rst 为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详- 类似
LHS.* 文件为Dakota采样生成的临时文件,都可以删除 - 打开
workdir/ 文件夹,查看每次评估的新安江模型输入和输出文件
参数研究
文件夹目的
本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\ParameterStudy
该文件夹包含使用Dakota对新安江模型进行参数研究所需所有文件。
通过对参数按照等距采样等方式,计算模型输出值,分析参数相关性,得到参数相关矩阵。
文件说明
- Dakota 输入文件:
parameterstudy.in - 操作说明文档:
ReadMe.md - 其余同试验设计
运行程序
- 下载安装Dakota,并将
dakota/bin 、dakota/lib 、dakota\test 添加进环境变量 - 下载安装Python,并将Python添加进环境变量
- 在本目录下,点击菜单 文件
→
\rightarrow
→ 打开 Windows PowerShell?
→
\rightarrow
→ 打开 Windows PowerShell? ,在命令行输入
dakota -i parameterstudy.in -o parameterstudy.out > parameterstudy.stdout ,回车运行参数研究程序。
查看结果
- 运行结束后,以记事本打开
parameterstudy.out 查看每次参数评估参数值及结果,文件最后为参数相关矩阵和整个评估所花费的时间。 - 以记事本打开
parameterstudy.stdout 可查看每次评估的命令行输出,用于检查错误 - 以记事本打开
dakota.err 可查看Dakota运行错误日志 - 以记事本打开
tabular.data ,可查看每次评估的采样数据,包含参数值及输出 dakota.rst 为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详- 类似
LHS.* 文件为Dakota采样生成的临时文件,都可以删除 - 打开
workdir/ 文件夹,查看每次评估的新安江模型输入和输出文件
敏感性分析
文件夹目的
本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\SensitivityAnalysis
该文件夹包含使用Dakota对新安江模型进行敏感性分析所需所有文件。
主要计算Sobol’全局参数灵敏度
文件说明
- Dakota 输入文件:
SensitivityAnalysis.in - 操作说明文档:
ReadMe.md - 其余同试验设计
注:SensitivityAnalysis.in 比UncertaintyQuantification.in 多了一句variance_based_decomp 基于方差分解,因此可以计算灵敏度。
运行程序
- 下载安装Dakota,并将
dakota/bin 、dakota/lib 、dakota\test 添加进环境变量 - 下载安装Python,并将Python添加进环境变量
- 在本目录下,点击菜单 文件
→
\rightarrow
→ 打开 Windows PowerShell?
→
\rightarrow
→ 打开 Windows PowerShell? ,在命令行输入
dakota -i SensitivityAnalysis.in -o SensitivityAnalysis.out > SensitivityAnalysis.stdout ,回车运行灵敏度分析程序。
查看结果
- 运行结束后,以记事本打开
SensitivityAnalysis.out 查看每次参数评估参数值及结果,文件最后为全局敏感性分析结果和整个评估所花费的时间。 - 以记事本打开
SensitivityAnalysis.stdout 可查看每次评估的命令行输出,用于检查错误。 - 以记事本打开
dakota.err 可查看Dakota运行错误日志 - 以记事本打开
tabular.data ,可查看每次评估的采样数据,包含参数值及输出 dakota.rst 为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详- 类似
LHS.* 文件为Dakota采样生成的临时文件,都可以删除 - 打开
workdir/ 文件夹,查看每次评估的新安江模型输入和输出文件,默认不输出,删除SensitivityAnalysis.in 中interface 的directory_tag 和directory_save 前的# 注释即可输出每次评估的文件,但所有文件通常较大
不确定性量化
文件夹目的
本地路径E:\software\dakotacase\dakota_gui_workspace\XAJ\SensitivityAnalysis
该文件夹包含使用Dakota对新安江模型进行不确定性量化所需所有文件。
主要计算目标函数均值、方差、置信区间、PDF、CDF、相关性
文件说明
- Dakota 输入文件:
UncertaintyQuantification.in - 操作说明文档:
ReadMe.md - 其余同试验设计
运行程序
- 下载安装Dakota,并将
dakota/bin 、dakota/lib 、dakota\test 添加进环境变量 - 下载安装Python,并将Python添加进环境变量
- 在本目录下,点击菜单 文件
→
\rightarrow
→ 打开 Windows PowerShell?
→
\rightarrow
→ 打开 Windows PowerShell? ,在命令行输入
dakota -i UncertaintyQuantification.in -o UncertaintyQuantification.out > UncertaintyQuantification.stdout ,回车运行不确定性量化程序。
查看结果
- 运行结束后,以记事本打开
UncertaintyQuantification.out 查看每次参数评估参数值及结果,文件最后为目标函数均值、方差、置信区间、PDF、CDF、相关性和整个评估所花费的时间。 - 以记事本打开
UncertaintyQuantification.stdout 可查看每次评估的命令行输出,用于检查错误。 - 以记事本打开
dakota.err 可查看Dakota运行错误日志 - 以记事本打开
tabular.data ,可查看每次评估的采样数据,包含参数值及输出 dakota.rst 为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详- 类似
LHS.* 文件为Dakota采样生成的临时文件,都可以删除 - 打开
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.py 、qoi.py - 时间序列处理程序:
template/tsproc.exe - 时间序列处理程序配置文件:
template/tsproc.dat - 新安江模型输入文件:
template/P.txt 、EM.txt 、watershed.txt 、time.txt 、parameter.txt - 新安江模型输出文件:
template/Q.txt
运行自动率定程序
- 下载安装Dakota,并将
dakota/bin 、dakota/lib 、dakota\test 添加进环境变量 - 下载安装Python,并将Python添加进环境变量
- 在本目录下,点击菜单 文件
→
\rightarrow
→ 打开 Windows PowerShell?
→
\rightarrow
→ 打开 Windows PowerShell? ,在命令行输入
dakota -i calibration.in -o calibration.out > calibration.stdout ,回车运行自动率定程序。
查看自动率定结果
- 运行结束后,以记事本打开
calibration.out 查看每次参数率定参数值及结果,文件最后为最优参数和整个率定所花费的时间。 - 以记事本打开
calibration.stdout 可查看每次率定的命令行输出,用于检查错误 - 以记事本打开
dakota.err 可查看Dakota运行错误日志 - 以记事本打开
tabular.data ,可查看每次评估的采样数据,包含参数值及输出 dakota.rst 为二进制重启(restart)文件,用于暂停后从暂停位置开始评估,具体用法暂不详- 类似
LHS.* 文件为Dakota自动率定过程中采样生成的临时文件,都可以删除 - 打开
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进行模型的参数率定。
|