Vestas为有基于模型的设计和连续集成的风电厂开发了控制软件

挑战

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

解决方案

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

结果

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

“通过Sim金宝appulink和嵌入式编码器,我们可以显示客户和网格运营商的一个模拟,它包含在我们的电厂控制器中运行的实际代码。这就是网格运营商想要的,它使Vestas成为仍然使用传统方法的竞争对手的优势。“

每个Hagen Nielsen,Vestas

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


拥有超过66,000多个涡轮机超过80个国家的100 GW安装风电能力,Vestas风系统A / S安装了比任何其他公司更多的风力。Vestas工程师使用基于模型的设计与连续集成(CI)开发电厂控制软件,并符合网格代码与Vestas客户和电网运营商的遵守情况。

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

挑战

在采用基于模型的电厂控制设计设计之前,Vestas工程师使用了一种传统方法,其中由电力工程师开发的纸张的规格和设计文件被交给了软件工程师,他们用手编写了个别组件或特征的代码。电力工程师使用PSCAD软件进行仿真,但这些模拟集中在电力上而不是软件控制。模拟不包含控制代码,这意味着PSCAD模拟在集成并部署软件后,PSCAD模拟反映了系统性能的保证几乎没有保证。Vestas希望消除手工编码的人为错误的可能性,同时确保其电力系统模拟与控制软件相对应。

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

解决方案

维斯塔斯电力系统工程师在得到高金宝app层管理人员的支持后,利用MATLAB结合CI和基于模型的设计,建立了电厂控制设计的新工作流程®和仿真软金宝app件®

当提出网格代码或客户请求新功能或组件时,Vestas工程师会创建一套正式要求。基于该要求,一组使用Simulink和Simulink Test™开发测试用例,该测试用例将用于验证新功能,而第二组在Sim金宝appulink和StateFlow中设计新功能®

为了为闭环模拟创建系统模型,该第二组中的工程师将控制模型与模拟模型相结合,该模拟模型在与工厂的连接点处捕获网格的阻抗和动态特性。金宝app使用Simuli金宝appnk S函数,它们包含一个在专有工具中开发的风力涡轮机模型,并由另一个Vestas组包装为DLL。

使用该系统模型运行闭环模拟并运行检查以确保基于MathWorks汽车咨询板(MAAB)指南的符合建模标准,工程师将控制模型调入GIT存储库中。模型办理登机手续触发了Jenkins作业,这些作业在使用Simulink测试中运行了先前开发的测试用例,以及由电力工程师创建的基于仿真的测试以及另一轮建模指南合规性检查。金宝app

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

维斯塔斯利用这些模拟向传输系统运营商演示,当电厂在正常条件下,以及在电压下降、振荡和其他干扰的情况下,将如何运行。最后,生成的代码在部署到生产系统之前在目标工业控制系统上进行测试。

结果

  • 生成可靠,无问题的代码生成。尼尔森表示:“如果我们的控制系统表现不佳,我们将面临惩罚。”“有了Sim金宝appulink和Embedded Coder,我们很快就学会了我们可以信任我们生成的代码——事实上,我们还没有发现它有任何问题。”
  • 多站点CI工作流自动化。尼尔森表示:“我们在世界各地有几十名工程师,他们在同一模式下同时进行大量的合并。”“结合使用基于模型的设计和CI,我们缩短了迭代和自动化测试过程。”
  • 硬件锁定避免。“过去,我们通过编写PLC平台的定制结构文本来开发控制器,这意味着我们严格绑定到该平台,”尼尔森说。“今天,我们从我们的Simulink模型生成便携式C ++代码,让我们灵活地使用替代工业控制平金宝app台。”

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