减小 Dymola 结果的 mat 文件大小
decrease the mat file size of Dymola result
Dymola仿真的结果是.mat文件,可能会很大。下面是一个Power plant模型的一系列结果,仿真时间间隔是0-100000s,但是我只需要90000到100000s的数据,有什么办法让Dymola只输出90000到100000s的数据吗?
Dymola 用户手册中有一节名为“输出点的可变频率”。在那里你会找到关于 Advanced.Simulation.VariableInterval=true
和
这样的陈述的解释
when time >=… then
Dymola.Simulation.SetOutputInterval(…);
end when;
将使您能够根据模拟时间设置输出间隔。
此处显示的示例是:
model VariableOutputInterval "demonstrate the use of variable output interval in a model"
Real x;
equation
x = sin(10*time);
when initial() then
Dymola.Simulation.SetOutputInterval(0.1);
end when;
when time >= 0.5 then
Dymola.Simulation.SetOutputInterval(0.05);
end when;
when time >= 1.1 then
Dymola.Simulation.SetOutputInterval(0.002);
end when;
end VariableOutputInterval;
还有两个注释:
- 将间隔长度“重置”为模拟设置中的唯一方法是显式设置该间隔,这是在上面最后一个 when 语句中完成的。
- 每次都必须有一个单独的 when 语句。
Dymola仿真的结果是.mat文件,可能会很大。下面是一个Power plant模型的一系列结果,仿真时间间隔是0-100000s,但是我只需要90000到100000s的数据,有什么办法让Dymola只输出90000到100000s的数据吗?
Dymola 用户手册中有一节名为“输出点的可变频率”。在那里你会找到关于 Advanced.Simulation.VariableInterval=true
和
when time >=… then
Dymola.Simulation.SetOutputInterval(…);
end when;
将使您能够根据模拟时间设置输出间隔。
此处显示的示例是:
model VariableOutputInterval "demonstrate the use of variable output interval in a model"
Real x;
equation
x = sin(10*time);
when initial() then
Dymola.Simulation.SetOutputInterval(0.1);
end when;
when time >= 0.5 then
Dymola.Simulation.SetOutputInterval(0.05);
end when;
when time >= 1.1 then
Dymola.Simulation.SetOutputInterval(0.002);
end when;
end VariableOutputInterval;
还有两个注释:
- 将间隔长度“重置”为模拟设置中的唯一方法是显式设置该间隔,这是在上面最后一个 when 语句中完成的。
- 每次都必须有一个单独的 when 语句。