卡索practicos

维斯塔斯开发基于模型设计和持续集成的风力发电厂控制软件

挑战

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

解决方案

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

结果

  • 生成可靠的、无问题的代码
  • 多站点CI工作流自动化
  • 避免硬件锁定

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

维斯塔斯,哈根·尼尔森报道
维斯塔斯涡轮机和发电厂控制。

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


维斯塔斯风力系统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件®

当提出网格代码更改或客户要求新功能或组件时,维斯塔斯工程师会创建一组正式需求。基于需求,一个小组使用Simulink和Simulink test™开发测试用例,用于验证新特性,而另一个小组在Simuli金宝appnk和Stateflow中设计新特性®

为了创建用于闭环仿真的系统模型,第二组的工程师将控制模型与Simulink模型结合起来,该模型捕获了与电厂连接点的电网的阻抗和动态特性。金宝app使用Simuli金宝appnk s函数,他们结合了一个风力涡轮机模型,该模型是在一个专有工具中开发的,并由另一个Vestas团队打包为DLL。

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

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

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

结果

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

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