如果已经执行MIL(循环模型)模拟,为什么在HIL(循环中的硬件)之前使用SIL(循环中的软件)?

时间:2015-10-06 05:43:59

标签: matlab simulation simulink

我在simulink中实现了一个新的控制器逻辑,并使用MIL(模型在环路)模拟进行测试。

  1. 在进入HIL之前是否必须执行SIL?
  2. 在MIL中无法检测到什么样的错误?
  3. 请帮我举一个例子。

1 个答案:

答案 0 :(得分:7)

我不会说这是强制性的,但这是一种很好的做法。

通过进行MIL测试,您正在测试控制器逻辑在功能和算法上是否正确。当您转向SIL测试时,您实际上正在测试从模型生成的代码(对于控制器部分),而在MIL中,您正在测试在Simulink中实现的控制器算法,而不是C代码。当然,C代码通常被编译为用于SIL测试的Windows DLL,因此您不会测试控制器的最终实现,但它仍然是朝着正确方向迈出的一步。如果要生成C代码并在最终控制器硬件上进行编译(通过与运行工厂模型的PC的串行连接),那就更好了。你没有测试的另一件事是实时执行。

基本上,使用MIL,您可以检测到在Simulink中实现的控制器是否适合代码生成(数据类型,采样时间等)以及代码生成过程是否存在任何错误/问题(不太可能)但仍有可能)。

移动到HIL可以让您更加自信,因为现在工厂模型和控制器模型都可以实时运行,因此您可以在尽可能实际的条件下运行从控制器逻辑生成的代码,在最终硬件上实现

随着您在开发周期中的进展,这一切都是为了降低风险和增强信心。