Я только начал изучать modelica и у меня есть один (новичок) вопрос. Проблема для меня в том, чтобы изменить образ мышления с обычного программирования на модельный.
Я хочу сделать простую программу. У меня есть входной массив с выходными значениями PV с разрешением 5 минут. У меня есть входной массив со значениями тепловой нагрузки с разрешением 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;`
Но когда я перехожу к dymola, он получает ошибку в этой части «p = Storage + pre (p);», потому что в нем говорится, что pre () не может использоваться для непрерывной модели. Когда я удаляю pre (), он говорит, что не может делиться на 0.
Вы можете мне объяснить, что я делаю не так?
Спасибо!
p
был непрерывным или дискретным? Вы пытаетесь интегрироватьp
или что-то в этом роде. Было бы лучше, если бы вы включили несколько уравнений. - person Michael Tiller   schedule 11.02.2014