用户故事

维斯塔斯采用基于模型的设计和持续集成的方法开发风电场控制软件

挑战

开发可再生能源发电厂控制软件,以符合电网代码的演变和变化的地区

解决方案

使用基于模型的设计与模型控制器的持续集成,自动化基于模拟的测试,并为工业控制器生成产品代码

结果

  • 可靠的,没有问题的代码生成
  • 多站点CI工作流自动化
  • 硬件锁定了

“通过Sim金宝appulink和Embedded Coder,我们可以向我们的客户和电网运营商展示一个模拟,其中包含将在我们的发电厂控制器中运行的实际代码。这正是电网运营商想要的,这使维斯塔斯相对于仍使用传统方法的竞争对手具有优势。”

来自维斯塔斯的Per Hagen Nielsen
维斯塔斯涡轮机和发电厂控制。

维斯塔斯涡轮机和发电厂控制。


维斯塔斯风系统A/S在80个国家安装了66000多台涡轮机,总装机容量超过100吉瓦,比其他任何公司都多。维斯塔斯工程师使用基于模型的设计和持续集成(CI)来开发电厂控制软件,并向维斯塔斯的客户和电网运营商证明电网代码的符合性。

Vestas Wind systems a /S的控制系统软件架构师Per Hagen Nielsen说:“电网运营商希望看到电站的运行模拟,他们希望知道控制代码将与模拟一一匹配。”“如今,没有多少公司能证明这一点。在维斯塔斯,我们可以,因为我们使用基于模型的设计与MATLAB和Simulink来建模和模拟我们的发电厂控制系统,然后使用这些相同的模金宝app型生成c++代码,用于系统级的仿真和生产。”

挑战

在采用基于模型的设计进行电厂控制设计之前,维斯塔斯的工程师采用了一种传统的方法,即将电力工程师开发的基于纸张的规范和设计文件交给软件工程师,由软件工程师手工编写单个部件或功能的代码。电力工程师使用PSCAD软件进行模拟,但这些模拟侧重于电力,而不是软件控制。模拟没有包含控制代码,这意味着一旦软件集成和部署,就很难保证PSCAD模拟能够反映系统性能。维斯塔斯希望消除人工编码带来的人为错误,同时确保其电力系统模拟与控制软件相匹配。

此外,维斯塔斯还希望能够让横跨欧洲和亚洲五个国家的工程团队在相同的项目上合作,在某些情况下,在相同的模型上合作。这个地理上分散的团队需要对模型应用版本控制,管理频繁的合并,并自动化基于模拟的测试。为了满足这些需求,Vestas决定在Jenkins™中使用CI,并将CI原则结合到基于建模、仿真和代码生成的工程工作流中。

解决方案

在获得高级管理层的支持后,维斯金宝app塔斯电力系统工程师建立了一个新的发电厂控制设计工作流,将CI和基于模型的设计与MATLAB相结合®和仿真软金宝app件®

当网格代码更改被提出,或者客户请求一个新的特性或组件时,Vestas的工程师创建一组正式的需求。根据需求,一组用Simulink和Simulink test™开发测试用例,这些用例将用于验证新特性,而另一组用Simuli金宝appnk和statflow设计新特性®

为了创建闭环仿真的系统模型,第二组工程师将控制模型与Simulink模型相结合,该模型捕获了与电厂连接点的电网的阻抗和动态特性。金宝app使用Simuli金宝appnk S-function,他们将风力涡轮机模型集成到一个专用工具中,并由另一个维斯塔斯团队打包为DLL。

在使用该系统模型运行闭环仿真和运行检查以确保符合基于MathWorks Automotive Advisory Board (MAAB)指导方针的建模标准之后,工程师将控制模型检入Git存储库。模型检入触发Jenkins工作,该工作运行先前用Simulink test开发的测试用例,以及由动力工程师创建的附加基于仿真的测试,以及另一轮建模指南遵从性检查。金宝app

如果控制模型通过了所有测试和检查,Jenkins将调用Embedded Coder®1从模型生成c++代码。生成的c++代码被编译成一个DLL,然后在PSCAD中使用该DLL来运行整个工厂及其控制软件的仿真。

维斯塔斯利用这些模拟向输电系统操作员演示,在正常情况下,在电压下降、振荡和其他干扰的情况下,电厂将如何与电网连接。最后,在将生成的代码部署到生产环境之前,在目标工业控制系统上进行测试。

结果

  • 可靠的,没有问题的代码生成。尼尔森说:“如果我们的控制系统没有发挥应有的作用,我们将面临处罚。”“有了Sim金宝appulink和Embedded Coder,我们很快就知道我们可以信任我们生成的代码——事实上,我们还没有发现任何问题。”
  • 多站点CI工作流自动化。尼尔森表示:“我们在全球拥有数十名工程师,他们同时在同一模式下进行大量合并。”“结合使用基于模型的设计和CI,我们缩短了迭代和自动化测试过程。”
  • 硬件锁定避免。“在过去,我们通过为PLC平台编写定制的结构化文本来开发控制器,这意味着我们与该平台紧密绑定,”Nielsen说。“今天,我们从我们的Simulink模型生成可移植的c++代码,使我们能够灵活地使用替代的工业金宝app控制平台。”

1在Jenkins或其他CI机器上使用嵌入式编码器可能需要客户端访问许可。