【发布时间】:2016-11-29 12:33:47
【问题描述】:
什么是测试点及其在 matlab 中的用途? 我正在研究一个模型,并且必须结合使用 3 个 AND 门以及类似的另外 2 个 AND 门。在检查模型时,我收到警告“Identify single logical operator blocks with more than 9 inputs signals.”,如果我在每个 AND 上使用测试点,则不会显示门输出。
【问题讨论】:
什么是测试点及其在 matlab 中的用途? 我正在研究一个模型,并且必须结合使用 3 个 AND 门以及类似的另外 2 个 AND 门。在检查模型时,我收到警告“Identify single logical operator blocks with more than 9 inputs signals.”,如果我在每个 AND 上使用测试点,则不会显示门输出。
【问题讨论】:
将 Simulink 中的信号视为对应于内存位置。 为了减少内存消耗,Simulink 使用的标准优化之一是尽可能重复使用相同的内存地址。
例如,假设增益块的输入存储在内存位置 X。那么增益块的输出将覆盖 X 中的数据。因此,输入值将不再可用。但它不需要,因为它的价值永远不会再次使用。 (这假设输入值没有在其他地方使用,例如像 Scope 一样提供块。)
在您的情况下,警告告诉您有关 Simulink 将逻辑值存储在内存位置中的一些信息,随后它会在可能的情况下覆盖这些位置。
请注意,Simulink 永远不会在后续计算中需要信号值时重用内存,即如果这样做会影响仿真结果时。
当您将信号指定为测试点时,它也不会重复使用内存(针对特定信号)。 这就是您的情况下警告消失的原因。
测试点的一个特殊用途是如果您使用的是浮动范围。 Floating Scopes 不能用于查看内存被重用的信号,因为这样就不清楚正在显示哪个信号。 通过仅查看测试点,可以确保您查看的是预期的数据/内存。
【讨论】: