2016-09-23 82 views
2

我在Modelica中有一个模型,我使用Dymola来编译此模型。在我的模型中,我需要模拟信息“输出间隔长度”。我已经搜索了它,但我无法获得有用的信息。有没有其他可能的方式可以访问模拟信息。访问Modelica中的仿真参数

+0

为什么你需要它?可能有更好的方法来完成你想要做的事情。 – jrhodin

+0

很抱歉我迟到的回复。我用正弦波块来产生信号。也希望在每个时间步之后改变信号的值。目前我已经使用延迟时间步长值的延迟功能。我已经对时间步长值进行了硬编码。因此,在阅读了宝贵的意见之后,我发现我们无法访问时间步。那么有没有其他方法可以在每个时间步之后找到正弦模块输出的变化? –

+0

您是否需要此值用于模型中的某些计算,或者是否可以使用后处理来访问该值? –

回答

2

Modelica设计禁止访问任何数值解算器内部,因此您无法访问它。输出间隔长度也不能由模型以任何可靠的方式确定,因为解算器将采用比输出间隔长的内部步长,然后为结果文件插值。

3

您可以使用集成器的时钟系统。 有关示例,请参阅Dymola中的文件 - >库 - > Modelica_Synchronous - >示例 - >系统 - > Controlled_mixing_unit 有周期(即在这种情况下,显式欧拉方法的时间步长)是周期性时钟)

3

如果您只是试图以特定间隔报告结果,则可以使用sample运算符来实现该结果。这将迫使解决方案在特定时间进行计算,而不需要直接指定类似时间步骤的内容。

这里要理解的重要一点是,模型的行为取决于数值积分的模型是高度可疑的,我从来没有见过一种情况,即如果没有解决方法的知识就无法描述行为。换言之,“大自然”对“时间步骤”一无所知。 :-)

0

您可以创建一个读取dsin.txt文件并提取该信息的函数。