风电作为一种清洁能源,备受各国关注,近年来,在降低碳排放、能源结构转型的背景下,风电行业实现了快速的发展。
通常,可以将风力发电产业链分解为上游的零组件,中游的风力发电设备以及下游的风电运营三大部分。
本文将围绕中游的风力发电设备开展论述,综合的看一看 MATLAB/Simulink 所提供的解决方案。
从风力发电设备的生命周期视角出发,我们首先介绍在风力发电设备的研发中 MATLAB/Simulink 的使用,然后介绍风力发电设备的运维阶段的使用情况。
风力发电设备的研发
基于模型的设计 (Model-Based Design, MBD)
风力发电设备的控制系统是一个复杂系统,不仅要根据风速和风向的变化对机组进行优化控制,还需要实现并网与脱网控制,整体上确保机组运行过程的安全性和可靠性,以及满足机组的运行效率和发电质量要求。
基于模型的设计方法是进行这种复杂系统开发的有效手段,适用于前面提到了优化控制、并网与脱网控制等复杂系统的开发,已经在风电行业得到了比较广泛的应用。
先来看看用户是怎么说的——
“With Simulink and Embedded Coder, we can show our customers and grid operators a simulation that incorporates the actual code that will run in our power plant controller. That’s what grid operators want, and it gives Vestas an advantage over competitors who still use conventional approaches.” Per Hagen Nielsen, Vestas
参考案例: Vestas 采用基于模型设计方法和持续集成平台开发风电场控制软件[1]
简单来说,基于模型的设计是以模型为工程语言开展的工程设计。
其核心是对系统进行模型化描述——建模,通过仿真,在系统设计初期就开展系统的确认和测试活动;进一步,采用自动代码生成技术,将系统实现以及后续的集成测试、交付测试进行自动化。
基于模型设计的工作流程可参考上图左半部分,按照需求-设计-实现-集成的顺序开展,过程中贯穿了测试和确认活动,同时,基于模型设计与 V 流程的对应关系可以参考图示右半部分。
MathWorks 官方网站上,专门有一个系列视频对基于模型的设计在风力发电设备的开发的应用进行了说明:Developing Wind Power Systems Using MATLAB and Simulink[2]
正如视频中展示的那样,基于模型的设计使团队能够使用仿真来更全面地测试和验证系统,从而实现更健壮的设计。
同时也可以看到,在 MATLAB/Simulink 环境下,可以对包含风模型、叶片、发电机、电网、控制系统等多领域组件、完整的风力发电系统进行建模。
与这个视频相对应的完整模型文件,可以访问 Wind Turbine Model[3] 获取。
更多视频还有:Simulink 平台下变速型风力发电机的建模与仿真实现[4], 基于 MATLAB/Simulink 平台的电力系统建模及控制系统设计[5], Optimizing a Wind Turbine Blade Pitch Control System[6]
当风机的负载模型是通过其它工具搭建的时候,比如 Bladed、FAST,在 Simulink 下开发的控制模型也可以很好的与之集成,从而构建完整的系统模型,开展后续的控制系统软件开发和验证等工作。
Simulink 与 Bladed 软件的集成:参考 Bladed 的使用手册(User Manual),我们可以了解到,通过Bladed的控制模块,可以将负载模型线性化,并将线性化的输出转化为状态空间模型,这样就可以在 Simulink 中使用这个状态空间模型做为负载模型开展完整的控制系统建模。
反之,当我们在 Simulink 中完成了控制系统的算法设计,也可以通过 MATLAB/Simulink 提供的编译工具,将控制算法模型生成可被 Bladed 调用的 dll。
同样,对于在 FAST 开展的外部控制器设计,也可以在 Simulink 中完成。即将 FAST 的负载模型生成可在 Simulink 中使用的 S-Function,开展后续的控制系统的算法设计和实现。
NREL(National Renewable Energy Laboratory,美国可再生能源国家实验室)发布的“Advanced Control Design for Wind Turbines ”[7] 以及 FAST 的使用手册[8]提供了更丰富的 Simulink 与 FAST 联合开展风机控制系统设计的信息。
另外,当开展风机并网、脱网系统建模时,PSCAD 也是一个常用的工具,通过 MathWorks 提供的咨询服务,可以将在 Simulink 下开发的复杂控制模型编译成(Build)可在 PACAD 中直接使用的仿真组件,从而在 PSCAD 中开展确认和验证。
说到 MATLAB/Simulink 与其它工具的联合使用,采用 FMI/FMU 的模型交换机制,是一个很好的解决方案。MATLAB/Simulink 通过 Simulink Compiler[9] 工具,提供了对该项功能的支持。
作为支撑基于模型设计的核心技术——自动代码生成,是保持详细设计和系统实现(软件)一致的一项关键技术。
MathWorks 提供的代码生成相关工具和软件部署工具已经非常丰富,支持面向 CPU/MCU/DSP 等的 C、C++ 的代码生成,也有支持面向 GPU、PLC 的代码生成工具,而面向可编程逻辑 FPGA 的 HDL 代码生成工具也非常成熟。当然,如果开发面向边缘计算和云端的应用,也有特定的工具提供支持。
在本公众号下搜索“基于模型设计”, 您将获取更丰富的有关 MBD[10] 的详细内容。
构建基于模型设计的研发环境
从方法论的角度,我们比较容易把握基于模型设计(MBD)的基本原理和核心内容,但将MBD完整地融进企业的研发体系中,仍然存在很大的挑战。
Vestas 作为风电行业比较早使用 MATLAB/Simulink 开展工程研发的企业,它在建立 MBD 研发环境过程中获取的经验,也许能为行业内想要部署 MBD 的企业提供参考—— A Journey with Model Based Design [11]
为了帮助用户构建MBD研发环境,MathWorks 在 2007 年就发布了题为 Establishing a Model-Based Design Culture [12] 的文章,在对多个行业部署 MBD 的观察和经验总结的基础上,提出了十条最佳实践,可以作为企业构建 MBD 研发环境的策略指导:
#1 - Identify the problem you are trying to solve
#2: “Rule of Two”
#3: Use models to generate production code
#4: Models are the sole source of truth
#5: Use the transition as a learning opportunity
#6: Focus on design instead of coding
#7: Integrate the development process
#8: Designate a champion who has influence and budgetary control
#9: Have a long-term vision
#10: Partner with tools suppliers
对于小型团队,How Small Engineering Teams Adopt Model-Based Design[13] 是一个很好的操作指南;而来自 MathWorks 咨询团队的 Roger Aarenstrup 编写的 Managing Model-Based Design[14] 一书,则可作为所有团队管理者的 MBD 参考手册。
MBD 的方法和当前研发团队采用的敏捷开发理念或流程也可以很好的融合——利用基于模型设计实现敏捷系统开发[15]。
MBD 可以将敏捷原则延伸到包括物理组件和软件在内的系统开发工作,与 Jenkins、Git 这样的工具进行集成,在 Simulink Project 项目管理工具的支持下,构建出支持 CI/CD 开发实践的、高度自动化的工具链/平台。
持续集成(CI)用于 Simulink 模型验证[16]这篇文章详细阐述了相关的功能组件和 CI/CD 环境构建过程。
MBD研发环境的构建,不仅涉及工具层面的定制、研发流程方面的重新定义,也涉及跨团队/专业方面的协作机制制定(Team-Based Collaboration in Model-Based Design[17]),还会有改变研发方式所带来的工程人员技能提升方面的工作。
可以说,MBD 研发环境构建,是一项复杂的、涉及多种因素的系统工程,我们推荐采用分步实施的方式,逐层递进式的在团队内部开展 MBD 的实施 —— Phased Approach to Model-Based Design Adoption[18]。
当然,在构建MBD研发环境方面,MathWorks 也提供咨询服务帮助用户快速完成研发转型 —— Model-Based Design Process Establishment[19]。
再提系统仿真
实施 MBD 的一个基础是需要有系统模型,而系统模型一方面可以用于开展基于 MBD 的嵌入式软件开发,另外还有一个很重要的应用就是构建数字孪生模型,开展更为丰富的系统分析和确认工作,包括设计优化、系统参数估计、系统辨识等。
魁北克水电公司 (Hydro-Québec) [20]建立风机模型和并网模型,同时使用代码生成进行仿真加速(实时),与其它工具联合,进行并网方案的评估和确认,其中的实时仿真让大规模风机并网仿真可以进行。
西班牙能源集团(Naturgy Energy Group S.A.,原西班牙天然气公司)[21], 利用系统仿真,在综合考虑电力生产和电力消费背后的影响因素后,通过优化电力生产和分配策略,获取最大收益。
Senvion [22]利用系统仿真开展模型的确认活动,支持展示风力发电厂对标准的符合性,如 IEC 61400-27。
谈及风电系统的系统级建模仿真,往往涉及多个物理域:机械、电子/电气、软件…,也将会涉及到连续、离散、状态机、消息、异步事件等仿真机制问题,我们推荐您使用 Simulink 来构建系统模型。
Simulink 是支持复杂系统建模和仿真的集成环境,不仅能够覆盖多个物理域、多种仿真机制,也提供了丰富的垂直应用的模型库,方便用户快速构建系统模型,同时,它也具有丰富的对外接口,可以将很多其它工具的已有成果,纳入到 Simulink 的仿真框架里面来协同工作。
一般来说,复杂系统的建模和仿真往往涉及多个团队或多个不同领域工程师的协作,以及仿真效能问题。
Simulink 有很多特性和功能可以帮助使用者,在仿真性能、模块化开发、团队协作以及知识共享方面提供支持,比如提供并行计算工具支持仿真加速,提供 Model Referencing[23]这样的机制帮助实现模块化开发,以及 Simulink Projects[24],促进不同领域或团队之间模型和数据的协同。
风力发电设备的运维
随着传感技术和数据采集技术的发展,基于数据开展的风力发电设备的预测性维护已得到广泛认可。
相比以往的响应式维护(Reactive Maintenance)和预防式维护(Preventive Maintenance), 预测性维护(Predictive Maintenance)利用传感数据追踪设备状态,实时采集、计算各类数据指标,使设备故障在早期阶段就能被发现,有效避免突发故障引起的各类维护成本。
韩国能源研究所(Korea Institute of Energy Research,KIER)[25]利用海上风机有限数量传感器的数据,采用机器学习和深度学习方法,对风机组件状态进行预测,并进行剩余寿命预测。
随 MATLAB 发布的示例——风力发电机组轴承的剩余寿命预测(RUL)[26],比较完整的展示了从数据获取、数据预处理、特征提取(使用了面向旋转机械常用的特征——谱峭度 kurtosis)、特征融合和降维,到RUL建模的全过程,感兴趣的读者也可以直接在 MATLAB 命令行下输入 web(fullfile(docroot, ‘predmaint/ug/wind-turbine-high-speed-bearing-prognosis.html’)) 打开该示例获取完整的操作程序和说明。
概括来说,MATLAB 在数据分析[27]方面,提供了面向数据应用的完整工具链,覆盖数据获取、预处理、建模以及部署。
对于预测性维护这样的应用,MATLAB 从 R2018a 版本开始提供专门的工具帮助用户开发相关应用 —— Predictive Maintenance Toolbox[28]。
“工欲善其事必先利其器”,高效便捷地开展数据分析离不开好的工具,MATLAB 丰富的 App 体系以及 Live editor task 这样的功能,支持在不编写代码的情况下就开展各类数据分析,提高数据分析的效率,并大大降低开展数据分析的编码工作量。
探索更多内容
工业物联网(IoT)[29]、人工智能(AI)[30]、数字孪生(Digtial Twin)[31]、工业4.0(Industry 4.0) [32]等这些与数字转型相关的技术和概念也在深刻的影响着风电行业,MathWorks在这些领域也在进行着持续的投入,欢迎您与我们取得联系,深入探讨相关话题,向您分享我们与众多客户深入协作所收获的实践经验,并提供我们的解决方案。
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !