在尝试用脚本实现这一功能的过程中发现一些新的东西,记录一下。
搜索“Estimate Model Parameters”发现了以下几个例子,可能有用。
一、Estimate Model Parameters and Initial States (GUI)
为每组实验选择需要评估的初始状态。给定一个初始值和评估范围,与参数的处理方法相似。选中后,在参数评估过程中,初始状态也会被评估。
初值的脚步实现方式参考“Estimate Model Parameters and Initial States (Code)”中的“Estimate the Initial State”。
Exp.InitialStates = sdo.getStateFromModel('sdoRCCircuit','C1');
Exp.InitialStates.Value = 1;
二、Estimate Model Parameters Per Experiment (GUI)
关于Experiment中Initial States和Parameters属性的理解
(目前是这么理解的,后续发现有误的话再修改)
从被选内容来看Initial States是Parameters的一个子集
从功能上看,Initial States用于指定当前Experiment对象的初始状态,Parameters用于指定哪些参数会被估算,此处指定的参数只会使用当前Experiment的数据来进行估算。
(注意区别:在Parameters处指定的参数可以选择多个Experiment里的数据来估算。)
以本例为例,估算过程中一共涉及四个变量,K、V、Q0、Loss。其中K、V两个参数的估计会用到Charge Exp和DCharge Exp两组实验的数据;Loss的估算只用到Charge Exp的数据;Q0是初始荷电状态,分别指定为固定值,不对其进行估算,Charge Exp的初值设为0,DCharge Exp的初值设为6.5。
注意此案例中的初值并不进行估算,只是指定为固定值,对比“1、Estimate Model Parameters and Initial States (GUI)”案例中的初值勾选了Estimate,因此会进行估算。