船舶电站容量与机组配置的辅助设计软件

2020-12-17 06:31徐亮郭力峰李玮许飞华玲
中国舰船研究 2020年6期
关键词:插件电站容量

徐亮,郭力峰,李玮,许飞,华玲

中国舰船研究设计中心,上海 201108

0 引 言

电站设计是船舶电力系统设计中最重要的一项基础工作,将直接影响其经济性、可靠性、生命力和维修性,所以电站设计是船舶电气设计水平的直接体现[1-2]。如果电站的设计容量偏大,将可能导致发电机组的负荷率较低(经济性差),且配套电气设备的容量有所增加(成本增加),同时需占用机舱的有限空间;如果设计容量偏小,则可能导致负荷率较高,且功率裕度无法保障短时超载工况,从而导致船舶无法正常运行。

船舶电站设计包括电站容量计算和发电机组配置这2 项内容,其中电站容量的理论计算方法较简单,包括概率论方法、昼夜航行图标法、负荷系数法等[3-7]。目前,在工程实践中应用最为广泛的是负荷系数法,虽然某些手册[3]和文献[4-7]中都给出了原则性的参数设置方法,但其适用范围非常宽泛,并没有考虑实际工况,故其参考价值较低。在电站设计过程中,如果没有充分掌握设备性能,将可能造成负荷系数的选择主观性偏高,从而影响电站容量设计的准确性,最终导致实际投运后容量偏大或偏小的不理想工况。

在完成电站容量计算之后,一般由设计人员根据各工况下的电力负荷来估算结果:首先,初步考虑需配置的机组数量和单机功率;然后,根据厂家设备样本进行机组选型;最后,根据选型结果来调整机组的配置数量和单机功率,从而确定合理的配置方案。显而易见,整个设计过程耗时费力、主观性强,同时,在初步明确机组的配置数量和单机功率之后,该方法一般仅针对不同厂家机组的参数、尺寸和价格等因素进行对比选型,这实际上有可能导致最终的机组配置方案未必是最优解。

虽然通过开发软件实现自动化辅助设计是提高设计效率的有效手段[8-12],但目前国内外市场上的船舶电气设计软件大多以电气设备及系统的原理图、接线图、三维放样等辅助设计为主,例如TRIBON,CATIA,SB3DS,SPD 等[10-11],而鲜有电站容量计算与机组自动配置等辅助设计功能。李铭志[10]开发了一套船舶电气智能设计系统,可以实现电力负荷计算书的自动生成功能,但仅能计算给定工况下的电力负荷,且其负载均采用图形表示;当负载规模较大时,计算效率将明显降低。王焕文等[12]开发了基于C 语言的船舶电力负荷计算软件,但仅支持4 种固定工况,且所有参数都需要手动填写,与传统的Excel 表格相比,其计算优势并不明显。至于机组配置的辅助设计方法,尚无文献可供参考。

基于此,为了解决船舶电力系统中的电站容量与机组配置一站式辅助设计问题,本文拟开发具备功能可扩展性的辅助设计软件,根据电站容量的计算结果来一站式完成机组配置的自动建议,从而突破常规繁琐的人工配置方式。首先,将介绍基于插件技术的可扩展架构;然后,分析电站容量负荷计算功能的实现方法,以及电站机组配置最优问题的建模和求解方法;最后,将基于某 4 000 t 民船案例开展有效性验证。

1 可扩展架构的实现

为了满足船舶电力系统辅助设计的开放性和可扩展性要求,本文将采用基于动态链接库(.dll)的插件框架[13]来实现本软件的可扩展架构。

1.1 可扩展架构的功能设计

按照插件框架的定义,本软件将基于宿主程序和插件程序设计来实现可扩展架构的功能。

宿主程序是插件框架的骨架部分,也是插件程序的宿主。本软件宿主程序的功能为:实现项目管理、插件集成管理、数据库调用、文件输入/输出、界面布局等通用性功能,且在不同的插件程序中都可以调用这些公共服务功能。另外,本文在宿主程序中还设计了3 类数据库(标准参数库、设备资料库、用户数据库),用以支撑各插件之间的数据交互,其中标准参数库用于存储辅助设计中的参数标准值,设备资料库用于存储典型电气设备的物理参数,而用户数据库则用于存储用户输入/输出的数据表。

插件程序是按需设计的独立功能模块。本软件设计了电力负荷计算插件程序和数据库管理插件程序,均由人机交互模块和核心算法模块组成,其中电力负荷计算插件程序用于实现电站容量交互计算、机组自动配置等功能,而数据库管理插件程序则用于实现标准参数库、设备资料库等数据库的管理维护。

可扩展的电站容量与机组配置辅助设计软件的总体架构如图1 所示。在该软件中,本文将重点解决以下问题:1)采用C#的“接口-反射”机制,实现宿主程序与插件程序的接口功能;2)灵活运用C#的典型控件,实现电力负荷计算插件中电站容量计算的特色功能,主要包括3 种负荷计算方法集成、工况及设备分类按需自定义、系数标准化建议;3)采用建模与优化求解的方法,实现电力负荷计算插件中的电站机组自动配置功能。

图 1 可扩展的软件总体架构Fig. 1 Extendable overall architecture of the presented software

1.2 可扩展架构的实现方法

C#是一种面向对象的基于.NET 框架的程序设计语言,具有可视化操作效果好、运行效率高、语言简洁、功能强大等优点[14]。本文将采用C# 的“接口-反射”机制来实现插件框架,其中接口(interface 关键字)机制用于定义插件程序与宿主程序之间的通信方式,而反射(System.Reflection 命名空间)机制则用于实现插件程序的动态加载,从而形成即插即用的可扩展架构。

1) 利用接口机制进行接口定义。

在宿主程序中完成了接口定义之后,所有的插件程序都可以继承宿主程序的接口,其遵循的规范为:第一,接口声明将涵盖属性、方法、事件等在内的接口成员,并规范所有继承于该接口的类,同时将其作为区别于其他类的标志;第二,继承于接口的所有派生类,都可以按照自身功能需求对接口声明的所有成员进行个性化实现。

本软件在接口中设计了插件程序必须具备的4 个基本特性:(1)1 个子窗体,用于显示插件的交互界面;(2)显示状态标识符,用于控制界面的隐藏与开启;(3)窗体标题,用于标识区分不同的插件窗体;(4)插件版本号,用于标识插件版本。

2) 利用反射机制进行插件动态加载。

反射是指应用程序可以访问、查询、修改自身状态和行为的能力,具体来说,通过反射机制可以获得应用程序中每个类型(例如类、结构、委托、接口和枚举等)的成员,包括方法、字段、属性、事件以及构造函数等,还可以获得每个成员的名称、限定符和参数。

本软件可以通过Assembly 程序集反射类,来反射获取插件程序(.dll 文件)中定义的类,从而据此判断该插件是否满足接口规则,如果满足,则对其进行动态加载。

2 船舶电站容量计算的功能实现

根据各工况下用电设备的电力负荷情况,即可确定船舶电站容量,这是实现机组配置的基础,也是电站设计的关键。相较于传统的电站容量计算软件[10,12],为了提高计算自动化程度和适用范围,本文将重点改进2 项核心功能:1)3 种负荷计算方法集成、工况和设备分类按需自定义;2)系数标准化建议。

2.1 3 种负荷计算方法集成、工况和设备分类按需自定义

电站容量计算的准确度依赖于用电设备明细是否确定、功率是否确定等负载输入信息,为此,本软件集成了3 种计算方法:在输入信息完备的情况下,采用三类负荷法、需要系数法来统计汇总各工况下的总负荷需求;在输入信息不完备的情况下,例如投标估算阶段,则依据基于吨位的经验公式进行估算。

鉴于不同类型船舶的运行工况和设备专业类别都不尽相同,本软件设计了按需自定义的设置模式,既可以选择软件自带的项目,也可以通过文本输入实现自定义。当用户选择不同的负荷计算方法、工况以及设备专业类别时,其对应的交互数据表也将有所不同。为此,本软件采用了动态生成交互界面的方法:采用TabControl 控件-TabPage 控件-DataGridView 控件 3 层嵌套结构,每个专业类别均对应TabControl 控件中的一个TabPage 页面,且每个TabPage 页面均绑定数据表格DataGridView 控件,其中数据表格的表头可以根据不同的计算方法和工况定义进行个性化创建。计算模式、工况定义等参数的设定对话框和用户交互界面如图2 所示。

图 2 容量计算的参数设定Fig. 2 Parameters setting of the capacity calculation

2.2 系数标准化建议

为了方便用户在设计时进行系数选取,同时规范用户系数选取的主观性,本软件设计了系数标准化建议功能,即:在负荷计算的交互界面中增加“设备类型”下拉列,其中设备类型预设为常见的各专业典型设备;同时,在标准参数库中存储这些典型设备在各工况下的负荷系数、同时系数、需要系数、负荷类别建议值等。当用户通过下拉列表选择对应的设备类型时,软件将自动执行标准参数数据库的查询功能,并将查询所得的标准化系数回填至交互界面数据表中,从而自动计算设备在不同工况下的功率需求。对于非典型设备和非典型工况,仍保留用户手动输入的功能。

2.2.1 标准参数库

标准参数库可以通过SQLite 数据库实现,本文在宿主程序中实现了SQLite 数据库调用函数的封装功能[15],用以在各插件中传参并调用,从而实现代码复用,其具体实现的操作包括:设置连接语句SetConnectionString、创建数据库CreateDB、创建表NewTable、查询表ExecuteQuery、仅读取表ExecuteReader、修改表ExecuteNonQuery、批量存储表ImportToSqliteBatch 等,可以满足各插件对数据库操作的需要。

标准参数库中存储了常见典型设备在各工况下的负荷系数、同时系数、需要系数、负荷类别建议值等数据,这些标准化建议值经由专家组讨论确定后才能存入标准参数库,并且可以通过数据库管理插件的交互界面随时维护更新。

2.2.2 系数标准化建议功能

系数标准化建议功能的实现要点为:一是下拉列的用法;二是用户设置“设备类型”之后,随时响应自动查询数据库给出的系数建议。本软件的具体实现方法如下:

1)采用 DataGridViewComboBoxColumn 控件实现下拉列,其中DataSource 属性用于设置该下拉列绑定的数据源,DataPropertyName 属性用于设置该下拉列在数据源中对应的列属性名称,DefaultCellStyle.NullValue 属性用于设置下拉列的默认选项,HeaderText 属性用于设置下拉列的列名。

按照不同的设备专业分类,即可设置“设备类型”下拉列表中的典型设备,以便用户快速选择,如图 3 所示。首先,采用 List<string>数据类型表示“设备类型”下拉列d 中的项目;然后,将该下拉列d 添加至当前数据表dgv 中,即dgv.Columns.Add(d)。

图 3 设备类型的下拉列表Fig. 3 Drop down list of device types

2)通过CellValueChanged 事件对用户设置“设备类型”予以响应,自动查询数据库并给出建议,其中事件绑定采用的委托方式为:

dgv.CellValueChanged += new DataGridView-CellEventHandler(dgv_CellValueChanged)。

基于此,一旦单元格的数值发生改变,即可触发该事件,通过判断列名(if(dgv.Columns[e.Column-Index].Name == "设备类型"))即可确定本列数据是否改变,进而根据“设备类型”的列内容查询数据库,并回填结果至交互界面。

3 船舶电站的机组配置功能

本软件突破了常规繁琐的人工配置方式,基于电站容量的计算结果,即可一站式完成机组配置自动建议,其实现思路为:通过遍历机组库中的所有机组,找到一定约束条件下各工况平均负荷率最高的一组配置。

考虑到船舶电站机组配置的实际约束条件,本软件中机组自动配置方法的6 条前提假设为:

1)不计及备用机组,主电站的机组数量不大于4 台。

2)考虑到机组并网的平稳性要求,以及实际维护要求,电站配置的机组种类不超过2 种。

3)在最大工况下,除了备用机组之外,所有机组均参与投运,且负荷率不低于70%,最大负荷率 ηmax设定为 0.85~0.9。

4)在所有工况下,以电站运行平均负荷率最高为目标函数。

5)若有应急电站,则仅配置1 台应急机组,且不与主发电机组并网。

6)若有仅停泊用电站,则仅配置1 台停泊用停泊机组,且不与主发电机组并网。

基于上述假设,由于应急电站机组、仅停泊用停泊机组只在1 种工况下运行,所以应急电站机组和仅停泊用停泊机组的配置约束条件为:相应工况下所配置机组的负荷率最高,且不高于指定的最大允许负荷率,这是个单变量约束问题,故本文不再详述。

对于主电站机组的配置方案,则可以将其转化为优化问题进行求解:假设机组I 的额定功率为 F1,配置 N1台;机组 II 的额定功率为 F2,配置N2台;工况 i 下的负荷为 Pi(i=1,2,···,M,其中 M 为运行工况数量),其中最大负荷值为Pmax,最小负荷值为 Pmin;n1i,n2i分别为工况 i 下机组 I 和机组II 的最优起动台数,则式中:J 为目标函数;Φ 为机组数据库 Units 中符合用户指定条件的机组。Units 存放于设备资料库,涵盖了市场上主要生产厂家的不同功率等级的机组信息,例如型号、功率、电压、频率、功率因数、尺寸、重量、排放等级;柴油机型号、柴油机功率、柴油机转速、柴油机厂家;发电机型号、发电机功率、发电机电压、发电机厂家等信息。

上述最优化问题属于离散型规划问题,其通用求解方法包括割平面法、启发式搜索算法以及枚举法等。对于本文而言,目标函数和约束条件的计算并不复杂,采用枚举法即可满足离线寻优要求,其具体求解过程如下:

1) 寻找机组配置方案的可行解。

如果平均负荷率η(k)优于最优负荷率ηbest,则令 ηbest=η(k),最优配置方案 Γbest= Γ(k)。同时,判断遍历是否完成,如果未完成,则令k=k+1,跳转至第1 步;否则结束,输出最优机组配置方案Γbest。

基于此,根据多项约束条件来不断缩小可行域,然后对可行域内的机组配置方案的负荷率进行逐一对比,如果平均负荷率变大,则接受;否则维持不变,最终选择符合上述约束条件的最优解,并作为主电站的最优配置方案。

4 实船验证

本文基于C#语言、SQLite 数据库和.NET Framework 2.0 SP2 运行环境软件,开发了可扩展的船舶电站容量与机组配置辅助设计Windows窗体程序。本节将以某4 000 t 全电力推进船舶为例进行有效性验证,该船电力系统包含7 种运行工况,约350 余项用电设备。

首先,利用本软件的工况和设备分类定义、用电设备负荷导入、以及系数标准化建议等功能,计算各工况下的总电力负荷,结果如表1 所示,软件界面的汇总表如图4 所示。

表 1 负荷计算结果Table 1 Load calculation results

图 4 负荷汇总表Fig. 4 Summary of the power loads

然后,对电站形式参数进行设置,具体如下:单独配置1 台应急发电机组,主电站总台数不多于4 台,最大允许负荷率不超过0.88,机组频率为50 Hz,其他指标不进行限制,设置界面如图5 所示。其中机组参数存储于设备参数库中,涵盖了42 种常用机组。

图 5 电站形式的参数预设Fig. 5 Parameters preset of the power station configuration

最后,根据用户所选电站形式的参数和总负荷需求,软件系统进行机组配置自动寻优建议,输出电站机组配置建议表,为用户提供3 组配置方案,平均负荷率分别为80.17%,75.61%,69.87%,其中最佳方案——方案1 的参数如图6 所示。

由图6 可知,最佳方案为配置1 个主电站,包含 2 台 2 940 kW 机组 和 2 台 760 kW 机 组,配置1 个应急电站,包含 1 台 230 kW 机组,其最大负荷率85.69%,最小负荷率为68.58%,平均负荷率为80.17%。经人工离线校核,在给定机组库条件下,该机组配置模式为最优。

图 6 机组配置辅助设计Fig. 6 Aided design of the unit configuration

需注意的是,在该案例中配置不大于4 台主机机组和1 台应急机组的预设条件下,且搜索对象为42 种常用机组时,本文软件的求解耗时在1 s以内。对于常规的电站设计而言,主流发电机组的厂家数量有限,同一厂家的机组功率分级一般呈离散型分布,加之各项机组指标因素的筛选,所以符合预设条件的机组规模往往小于本案例,因此,本软件可以满足电站设计中离线配置机组的实际工程要求。

5 结 语

本文研发了可扩展的船舶电站容量与机组配置辅助设计软件,通过将电站容量计算与机组自动配置相结合,实现了船舶电力系统电站一站式设计,并基于某 4 000 t 民船开展了案例验证。本文提出的辅助设计软件实现了3 种计算方法集成、用电设备的负荷系数标准化建议、负荷自动计算以及机组自动配置等功能,有助于提高船舶电站的设计效率和设计精细程度。

猜你喜欢
插件电站容量
无人机智能巡检在光伏电站组件诊断中的应用
用好插件浏览器标签页管理更轻松
发改委:加快新能源车充/换电站建设
水瓶的容量
请个浏览器插件全能管家
基于jQUerY的自定义插件开发
小桶装水
鼹鼠牌游乐场
美国社交网站的周末大战