三一重能席伟川:需求驱动的风机控制软件正向设计
2021年10月17日-20日,2021北京国际风能大会暨展览会(CWP 2021)在北京新国展隆重召开。作为全球风电行业年度最大的盛会之一,这场由百余名演讲嘉宾和数千名国内外参会代表共同参与的风能盛会,再次登陆北京。
本届大会以“碳中和——风电发展的新机遇”为主题,历时四天,包括开幕式、主旨发言、高峰对话、创新剧场以及关于“国际成熟风电市场发展动态及投资机会”“国际新兴风电市场发展动态及投资机会”“风电设备智能运维论坛”“碳达峰碳中和加速能源转型”等不同主题的15个分论坛。能见App全程直播本次大会。
在20日上午召开的风电机组优化升级专题论坛上,三一重能股份有限公司控制软件工程师席伟川发表了《需求驱动的风机控制软件正向设计》的主题发言。
以下为发言全文:
席伟川:各位领导、专家、同行,大家上午好,我是三一重能的席伟川,主要是从事风力发电机组主控软件设计的,今天给大家汇报的主题是需求驱动的风机控制软件正向设计,这也是三一重能根据这么多年来做风机设计的经验和总结。三个方面,第一个是背景和意义,第二个是需求驱动正向设计,第三个是案例分享。
大家知道物理系统复杂度一直在上升,从早期的机械到机电一体,到现在嵌入式系统,类比于风机都是纯机械的,到后来的桨距,发电机不需要太多控制,到现在兆瓦级的机组,复杂度是越来越高。系统复杂度的提高带来了对控制的挑战。
嵌入式系统是专用的计算机系统,用来解决复杂系统的问题,现在风电行业用的控制器主要还是像西门子等大品牌成熟的硬件系统,所以我们这方面在硬件上没有什么大的问题,关注点还是在应用软件上面。当然以后这边还有一个控制器的国产化,这方面还需要行业内再进一步的去验证,这个可能会引起一个可靠性的下降,也需要迭代。
嵌入式软件的特点。嵌入式软件70%以上的问题是来自于需求分析、架构设计的阶段,这个是相关的一些研究得出来的结论,第二个特点这个问题如果暴露的越晚,需要去修改问题的代价就会更大。就像软件或者硬件在车间里发现的问题和到现场发现的问题,和到上风机之后发现问题,付出的代价是不一样的。最后软件修改会带来故障率的增加。
在软件开发过程中面临一些问题,一个是需求一直在变,风电行业相比于其他行业,近几年的发展是飞速的,机型从1.5兆瓦到现在陆上6兆瓦,叶片基本上每年两代三代在增长,10年前还是77米的叶片,现在已经是100多米的叶片。我们的需求是变化很快的,对交付也带来很大的压迫。还有一个现场问题比较多,大家做运维的都知道,风机在运行过程中会遇到很多问题,当然有一些是之前知识局限没有想到的,还有一些是想到了,但是在设计实现过程中带来的错误。基于这些根本原因,还是没有满足客户的需求,一个是我们没有认真的去分析客户到底需要什么,就急忙的去进入到细节,开始编程序,开发进度也是不容易把握,质量也是在开发过程中不好评价、难以掌控。相对于这些问题,应对措施其实也就是两方面,一个是更好的方法和更好的工具,相对于之前大概都是一种单兵作战的方式,到现在更需要一种良好的协同配合的方式。
很多时候需求不清楚就会反复返工,带来很大的问题。三一重能在行业内干了十多年,积累了一些经验,提出一个想法,需求驱动的正向设计,这是系统开发和控制软件开发的两个流程,核心都是在于是需求驱动的,从上到下,系统、子系统、组件,到左右每一个部件都有相应的等级验证和测试。软件也是这样,也是需求驱动。需求分析也是非常重要的,首先在做系统需求分析的时候很容易犯两个错误,一个是直接深入细节,相当于只能是管中窥豹可见一斑,不能全面把握总体,这个会带来很大的问题。再一个要相信这个系统无论多么复杂都是可以被说明书来写明的。再一个关注用户,就是需求的相关方都有谁,这块我们可以想象,做任何一款产品一定要考虑最大的需求一定是客户,客户的需求有很多,产品开发中肯定是以客户需求作为主要的,在我们看来一方面客户的需求,一个是安全,发电反倒是第二位,安全性在风电有很多惨痛的教训,不光是风电,各行各业都会有,我们会遇到一些飞车、倒塔、着火等等问题。所以在系统设计之前我们要做充分的视效分析、可靠性保证。
再一个业主对发电的需求,这是直接和收入相关的,像做很多老旧机组的升级改造也是这个道理。由于需求的驱动,可以做很多的升级改造。再一个就是用户对可靠性,发电量提升分两方面,一方面是增功,一方面是可靠性的提高,换言之就是故障率的下降,这方面对设备的可靠性带来了更多的要求。
另外就是我们在开发中有电网的需求,电网更多来说是要求。不光包括简单常见的高低穿、电网适应性,还有电压频率、保护定值的要求等。相对应的除了电网的标准,还有一些国家一些设计标准,这些标准也都是在设计时必须要满足的。除了客户、电网等相关方的约束之外,对下游也是有责任的,SCADA、能管、疾控都会对控制去提出一些要求。
我们在做需求分析的时候,要想到各个方面,不光是内部,也有外部,需求分析的要求第一个要完整,不仅要说明正常的时候做什么,还要说在其他情况下做什么。
研制流程比较简单,都会有一个架构,软件架构其实还是两块,一个分层的思想,如果你是一个公司的CEO或者是领导,肯定会考虑公司的组织架构,你怎么去分配这些部门让这些部门去协同工作,达到一个最好的效益,一定要加强模块的内距,加上他们之间的耦合。同理,你去做一个车间的制造也是这样,每个工位怎么安排,工位之间怎么协同配合,软件也是这样,最重要达到最优的配置。
另外软件研制的流程,一定要突出需求的作用,我们要在需求、设计和测试之间有追踪关系,你需求变了,一定要保证它到设计、测试阶段要一致,不能领导这边定了一个目标,到下边又歪了,最终是实现不了这个目标的。
需求正向设计带来的优势,首先是从被动设计到主动设计,把所有的点关注在需求阶段,第二个从需求驱动它的目标是更清晰的,最后以前是基于文档开发的,现在还是机遇客户需求开发,然后建立一个标准化,标准化不管是说各个阶段都要有标准动作。再一个通用化,保证和控制器平台无关,最后就是时间成本,它可以工作在前边,后面验证会大大的减少。
最后一个案例分享,三一重能的重心通过从代码转到需求只求带来的收益,一个是开发周期,这个其实就是需求的厘清,通过组件协同、通用性的平台,我们可以实现工厂体制迭代的速度,这分析对于现场运维来说是非常有用的。举个例子,风机规模不是很大,管理这么多的配置有很多的挑战,把这个做成通用的,在一天两天就可以把所有的程序都升级一遍,对于老旧机组的改造这也是有很大意义。然后是控制可靠,通过对比,之前的软件和现有的软件故障率真的是有数量级的变化,有三个点,没有需求的错误,消除了后面手工编码和测试错误,测试的错误率百分之百,因此时间关系就介绍到这儿,希望各位专家批评指正,谢谢大家。
(根据演讲速记整理,未经演讲人审核)