如何解决如何克服 OpenModelica 求解器故障?
从 OMedit 运行模拟效果很好。但是,当我通过 pyfmi 模块将模型作为 FMU 导出到 python 脚本时,出现以下错误:
默认线性求解器失败,总旋转的回退求解器在时间 0.000000 启动。这可能会引发性能问题,有关更多信息,请使用 -lv LOG_LS
代码如下:
import numpy as np
from matplotlib import pyplot as plt
import pyfmi
fmodel = pyfmi.load_fmu('/tmp/OpenModelica_alexandre/OMEdit/AIMC_Inverter/AIMC_Inverter.fmu')
#Define input ramp signal:
def freq(time):
if time <= 60:
f = time
else:
f = 60
return f
#CS parameters
dt = 0.5 #simulation step
tf = 10.0 # final instant
ts = 0.1 # initial instant
x = []
y = []
t = []
while ts <= tf:
#Calculates an integration step
try:
status = fmodel.do_step(ts,dt)
except Exception as e:
print('erro: ' + e.args)
#checks integrations step completed
if status is not pyfmi.fmi.FMI_OK:
break
#set next step input value:
fmodel.set( 'f',freq(ts) )
x.append( fmodel.get( 'currentQuasiRMSSensor.I' ) )
y.append( fmodel.get( 'aimc.wMechanical' ) )
t.append( ts )
ts += dt
plt.grid()
plt.xlabel('time[s]')
plt.ylabel('y')
plt.plot(t,y,'r+')
plt.show()
注意:我尝试使用不同的求解器导出模型,例如:Dassl、Euler、Ida、CVode。但我不断收到相同的错误消息。该错误提到了一个“默认线性求解器”,我认为它是 Dassl 求解器,因此似乎我在 OMEdit 模拟设置中更改了求解器,该模型仍在使用 Dassl 求解器导出为 FMU。
有人可以帮我吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。