用户案例

阿尔斯通为安全关键性功率变频控制系统生成产品级代码

Challenge

设计和实现用于有轨电车、地铁和铁路的实时功率变频和控制系统

Solution

使用MathWorks工具开展基于模型的设计,设计、仿真并自动生成产品级代码,用于安全关键性轨道交通系统

Results

  • 开发时间减少50%
  • 生成没有缺陷、安全关键性的代码并通过认证
  • 建立一种通用语言

“当阿尔斯通向捷克铁路交付Pendolino列车的时候,它的软件是我们第一次使用自动生成的代码并通过TUV认证。我们仅用一年时间就完成了一个永磁驱动器控制系统的开发,如果没有MathWorks工具这些都无法做到。”

Han Geerligs, Alstom

Pendolino摆式列车


用于有轨电车、地铁和火车的功率变频器是复杂和高安全性的系统,并需要满足严格的实时响应。作为世界领先的轨道交通产品、服务和系统提供商,阿尔斯通依靠MathWorks的工具来设计、仿真和实现这些系统以及其他同等复杂性的系统,支持世界各地的能源与交通设施建设。

采用MathWorks的工具,阿尔斯通的工程师通过建模自动生成没有缺陷的产品代码,用于他们的嵌入式实时功率变频系统和能量管理控制系统。

“MathWorks的工具帮助我们控制每一行代码,生成的代码是可读、快速和精简的。”阿尔斯通的资深工程师Han Geerligs解释说。“同时,MathWorks的工具是工业标准,有丰富的扩展包,广泛支持各类嵌入式系统。”

Challenge

阿尔斯通的工程师需要设计能量管理控制器以及功率变频控制器,满足严格的性能要求以及亚毫秒级的延迟。

“10到20微秒的延迟就太大了,因为我们的一个循环时间大约是200微秒。”Geerligs解释说。“我们也有复杂的多处理器架构,可以用一个DSP运行中断进程和一个PowerPC处理器运行多速率进程。”

在此之前,阿尔斯通的工程师使用各类不同的工具开发算法,进行建模与仿真。但是,这些工具不具备任何自动代码生成能力,他们不得不再手写代码。

“我们的工具没有很好集成,所以我们花了很多时间开发转换工具。我们没有办法去自动生成代码,只有先设计仿真,再编写规格书,然后手写代码。”Geerligs回想道。“我们花了很长时间从规格书到实现。没有快速原型,大量的文档工作,缺乏对工作的整体认识,难以快速实现变更。”

Solution

在评估了多个商业软件包之后,阿尔斯通选择了MathWorks的工具用于基于模型的设计工作。阿尔斯通的工程师使用这些工具设计、仿真和自动生成代码,完成了多项工程,包括一个有轨电车控制系统和一个捷克铁路Pendolino摆式列车的能量管理系统。

在设计阶段,工程师使用Simulink®,Simscape Power Systems™和Stateflow®开发他们的控制系统。

“Simulink可以将一部分设计通过函数进行传递;可以改变运行时序,从定时任务变成中断驱动,同时保持效率。”Geerligs说道。“没有Simulink的话,这种全局设计更改会很困难。”

工程师使用Simscape Power Systems对系统的电气元件进行建模,包括电阻、电容和电感等电力电子器件。

使用Stateflow,工程师团队对监视系统与控制系统状态进行建模,包括起动、减速与错误处理。功率变频控制器与系统中央故障处理单元之间的通信协议也在Stateflow中实现。

“Stateflow的顶层状态机对故障处理逻辑的设计帮助最大。当我们在子状态中遇到故障,我们向顶层状态机添加一条线,Stateflow就可以保证每次都正确处理。”Geerligs说。

阿尔斯通团队使用MATLAB®预处理测试数据,数据从光纤接口或者仿真环境中的示波器获得。他们也使用MATLAB验证仿真结果和生成报告。Geerligs使用Control System Toolbox™创建和分析波特图,开发经典控制算法。

在Simulink和Stateflow中进行系统仿真之后,工程师团队使用Simulink Coder™和Embedded Coder®自动生成产品级的代码。他们将代码集成到多种实时操作系统,包括Microware OS-9和Wind River的OSEKWorks。

阿尔斯通的工程师在不同的项目间重复利用他们的模型。“MathWorks的工具帮助我们定义设计模式并在模型库中分享知识。”Geerligs解释说。“比如,故障处理和电气建模就在有轨电车项目和能量管理项目之间得到分享。”

Results

  • 开发时间减少50%。“一个项目我们采用手工编码需要2000小时。使用Simulink和Stateflow,我们只用1000小时就可以重复这个项目。”Geerligs解释说。“同时,从设计完成到我们拥有第一个原型系统的时间从3个月缩减到不超过1小时。曾经需要18个月的项目,现在使用MathWorks的工具能在1年内完成。”
  • 生成没有缺陷、安全关键性的代码并通过认证。“我们从来没有发现MathWorks工具自动生成的代码存在任何缺陷。”Geerligs说。“当阿尔斯通向捷克铁路交付Pendolino列车的时候,它的软件是我们第一次使用自动生成的代码并通过TUV认证。”
  • 建立一种通用语言。“使用一种通用语言来交流对我们非常重要。尽管每个人从他们自己的视角观察一个模型,我们知道我们在讨论同一件事情。”Geerligs解释说。“我们使用Simulink在团队间交换模型、分享知识和观点,这些团队来自英国、法国、意大利和西班牙。”