用户故事

Hitachi Astemo为具有基于模型设计的自适应巡航控制开发了一种模型预测控制器

挑战

开发一种高性能的自适应巡航控制系统,用于停止和转运

解决方案

使用Si万博1manbetxmulink设计,模拟和调整模型预测控制器并使用嵌入式编码器来生成有效的代码

结果

  • 控制器开发时间减半
  • 几个月的手工编码消除了
  • 测试速度和效率增加

“我们能够通过Simulink模拟进行多个参数研究来调整我们的控制器并降低其计算负载。万博1manbetx仿真使我们深入了解设计的内部细节,这有助于在需要调整时节省准确性和时间。“

Taku Takahama,Hitachi汽车系统

最新的Adaptive Cruise Control(ACC)系统旨在处理交通拥堵中常见的停止和去驾驶。停止和去控制特征的一个限制是它们往往比人类驱动程序的响应时间较慢。当慢响应时间在车辆之间产生差距时,相邻车道中的驱动器被诱惑切入间隙,这可能导致交通堵塞。

Hitachi汽车系统的工程师已经开发了ACC系统,用于停止和去驾驶,当车辆在前加速时,当车辆时,响应典型的人司机。基于模型预测控制器(MPC)的系统是使用基于模型的设计与MATLAB构建®和模拟万博1manbetx®

“我们决定从项目的开始使用Matlab和Simulink,”万博1manbetxHitachi汽车系统,Ltd.的高级工程师Taku Takahama说,“没有这些工具,开发就会更长时间,我们将难以实现我们的系统性能和驱动程序舒适的目标。“

挑战

ACC系统行为根据前面的汽车的速度和加速而变化。Hitachi汽车系统工程师得出结论,标准的比例积分衍生物(PID)控制器难以设计,而是选择了MPC。MPC算法非常适合平衡多个目标,例如在交通堵塞中与铅轿厢保持安全距离,并在无交通公路驾驶中保持设定的速度。然而,在每次步骤中解决优化问题所需的计算负载使得MPC算法更具挑战性,以实现比PID控制器更少的嵌入式目标和存储器的嵌入式目标。

Takahama在Hitachi的团队之前通过手工编写了C的控制算法来开发了一个相对简单的控制系统。该团队认为手编码更复杂的MPC将是一个重大挑战。它们需要设计新的控制器,以满足停止和GO ACC系统的严格时间要求,在嵌入的微处理器上实现它,并最大限度地减少手工编码以降低开发时间。

解决方案

日立汽车系统使用基于模型的设计与MATLAB和Simulink到模型,模拟和生成基于MPC的嵌入式ACC系统的代码。万博1manbetx

使用模型预测控制工具箱万博1manbetx™在Simulink中工作,该工程师建模了控制器并设置可调参数,以调整预测地平线,控制地平线和权重,以及执行器和加速度响应约束。

为了创建预测的工厂模型,它们使用了Simulink S-Function来创建传统C代码的接口,该码万博1manbetx捕获车辆发动机的非线性特性,变矩器和制动器。

该团队在Simulink中运行闭环模拟,以评估各种驱动场景下的控制器性能,包括交万博1manbetx通拥堵和高速驾驶。他们在Matlab后期后进行了处理和可视化的仿真结果。

基于仿真结果,它们改进了控制器权重和约束,以防止车辆突然制动,并且如果铅载体急剧加速,则允许在车辆之间打开。它们还评估了采样时间,预测时间和控制时间的不同选择,以减少解决优化问题的计算负荷。

该团队在具有嵌入式编码器的基于MPC的自适应巡航控制器中优化的3400多行代码优化,用于执行基于MPC的Adaptive Cruise Controller®。生成的代码包括MPC使用的二次编程(QP)求解器。

通过软件循环(SIL)模拟测试生成的代码后,它们将其部署到生产32位微处理器。Hitachi汽车系统目前正在公共道路上进行基于MPC的ACC系统的道路测试。

工程团队已经扩大了利用Matlab的模型设计,并模拟了其他几个项目,包括它们缩短了四轮转向车辆控制器的开发时间。万博1manbetx

结果

  • 控制器开发时间减半。“通过我们的传统方法,它将大约一年地制定一个作为MPC复杂的控制器;采用基于模型的设计,我们花了大约六个月的时间来开发原型,“Takahama说。“QP求解器的生成代码非常有效,因此我们不需要探索其他求解器。”
  • 几个月的手工编码消除了。“用手为每个设计迭代写作MPC的所有代码将增加两个月或更长时间到我们的时间表中,”Takahama说。“通过嵌入式编码器,一旦我们确认了控制器的功能几乎没有时间在嵌入式处理器上实现它。”
  • 测试速度和效率增加。“基于模型的设计将我们节省了巨大的测试时间,”Takahama说。“我们在SIL仿真中重新创建了测试结果,使我们能够确定发生的问题的原因,评估提出的对策,使用所需的更改生成代码,并根据需要重复该过程以验证正确性以验证该过程以验证该过程以验证该过程以验证正确的过程。”