Modelica:识别不稳定/循环模式并发出警告

Modelica:识别不稳定/循环模式并发出警告,modelica,dymola,openmodelica,Modelica,Dymola,Openmodelica,我试图创建一个通用警告块来识别设备循环。其目的是用户可以拖放此Modelica块并将其连接到传感器或设备,该块将查找循环模式并在模拟日志中发出警告 我创建了一个块,每当变量通过Modelica.Utilities.Streams.print和过零逻辑跨越范围时,该块都会发出警告(以限制每个限制跨越一次警告,并避免重复写入,直到时间变量不在给定范围内) 为了确定一个循环模式,我想用一个计数器来计算给定周期内最大值和最小值的数量。有更好的方法吗 对信号进行采样的另一个选项,但在稳定性分析中,您可能不

我试图创建一个通用警告块来识别设备循环。其目的是用户可以拖放此Modelica块并将其连接到传感器或设备,该块将查找循环模式并在模拟日志中发出警告

我创建了一个块,每当变量通过
Modelica.Utilities.Streams.print
和过零逻辑跨越范围时,该块都会发出警告(以限制每个限制跨越一次警告,并避免重复写入,直到时间变量不在给定范围内)


为了确定一个循环模式,我想用一个计数器来计算给定周期内最大值和最小值的数量。有更好的方法吗

对信号进行采样的另一个选项,但在稳定性分析中,您可能不知道什么是临界频率,因此也不知道临界采样频率,这可能是一个问题


不幸的是,我认为没有最好的案例可以这样做。前段时间,媒体上正在讨论这个问题。因此,对于连续信号,确定信号导数的过零点是一个很好的方法

可能使用
assert(条件、消息)而不是?对于这个广义块,我需要继续模拟,即使设备正在循环<代码>断言
命令在违反条件时停止模拟。但是,我没有注意到链接中提到的
AssertionLevel.warning
。我会试试的。谢谢你。我采用类似的方法,在给定的时间间隔内,导数过零,并将局部极小值和极大值与之前的结果进行比较。