我刚开始学习modelica,我有一个(新手)问题。对我来说,问题是将思维方式从传统的编程思维方式转变为模型思维方式。
我想做简单的程序。我的输入数组具有 5 分钟分辨率的 PV 输出值。我的输入数组具有 60 分钟分辨率的热负荷值。我有一个能量储存器,可以存储多余的能量或实时获取能量来满足热量需求。
我在 openmodelica 中写了这个:
`class Add
Real PV[:] = 100:10:1000;
Real Heat[:] = 200:300:6000;
Real Storage;
Real p;
Integer j;
Integer i;
Boolean power,heat;
equation
power=sample(0,5);
heat=sample(0,60);
when power then
j=j+1;
end when;
when heat then
i=i+1;
end when;
Storage= PV[j] * 2.375-Heat[i];
p=Storage+ pre(p);
end Add;`
但是当我 c/p 到 dymola 时,它会在这个“p=Storage+ pre(p);”部分出现错误,因为它说 pre() 不能用于连续模型。当我删除 pre() 时,它说它不能除以 0。
你能解释一下我做错了什么吗?
谢谢!