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

Leo*_*Leo 4 simulation matlab simulink

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

  1. 在进入HIL之前是否必须执行SIL?
  2. 什么样的错误可以在SIL中找到,在MIL中无法检测到?

请帮我举一个例子.

am3*_*304 7

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

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

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

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

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