我目前正在尝试为化工厂模拟项目拟合一些动力学参数。我的主要软件是 Aspen Plus。虽然这是一个很棒的环境,但它的参数拟合能力却很差,很容易陷入局部最小值。
我的下一个选择是使用 Excel 的求解器来进行参数拟合。我编写了一些宏来进行格式化,并找到了一些 VBA 代码来运行数值积分器。Aspen 有一个 Excel 插件来计算一些属性,这对模拟非常有用。我已经将用户定义的函数编写为 ODESolver 请求;我想在其中包含一个来自 Aspen 插件的函数。我已经添加了参考。但是,当我尝试从另一个函数或作为简单的 Sub 调用它时,它总是返回运行时错误 9、13 或 424,具体取决于我尝试使用单个单元格还是范围。更糟糕的是,插件非常挑剔,出现错误时停止工作,因此您必须关闭 Excel 并重新打开工作簿,这需要 1-2 分钟才能加载模块。
我已经包含了一个简单的演示,说明它是如何在电子表格中工作的。
例如,VaporPressure 函数在对象编辑器中被描述为 VaporPressure(ComponentList, temperature As String)。这是一个失败的简单示例。
Sub PropertiesTest()
Pres = VaporPressure(Range("B1").Value, Range("D2").Value)
Range("B4").Value = Pres
End Sub
我得到错误 13。我并没有真正得到这个功能。这可能是一个非常明显的 Dim 问题,但我太新手了,无法真正理解它。有人可以帮忙吗?