技术论坛
>
硬件在环的配网线损分析仿真实验教程
硬件在环的配网线损分析仿真实验教程
发布:2022-01-16

1、实验目的

基于Simulink官方的配电网线损分析仿真案例,采用低代码控制器计算分路分段线损率,实现硬件在环仿真。


2、实验模型

分路分段线损分析是配电台区智能融合终端的重要分析业务功能之一,通过采集馈线侧与表箱侧的电能量数据、台区总电能量数据,通过汇总、对比,分级、分层进行线损分析和管理,便于查找线损点和窃电点。本实验以自主搭建台区配电线路模型为基础,用低代码控制器计算分路分段线损率,模型如下图所示:

仿真模型.png

3、实验步骤

低代码控制器的特点在于不需要对控制器进行代码的编写,只要在excel文件之中进行测点配置、通信通道和AOE配置就可以实现相应的控制。

3.1、编写低代码控制器配置文件

低代码控制器文件配置分为三个部分:测点配置、通信通道配置和AOE配置。测点配置用于配置控制器输入和输出信号点的参数,通信通道的配置是为了将控制器与simulink仿真模型建立modbus通信,实现仿真模型与控制器的信息交互,而AOE配置是建立AOE模型网络来实现所需的控制逻辑和功能。

3.1.1、测点配置

 测点配置表格的内容包含了测点的点号、名称、别名、是否离散、是否是计算点以及默认值等。点号是程序里给这个测点的编号,可以自己定义,使用时,测点与通信通道的点号一一对应完成对接。别名是英文字母与下划线组合使用,可以当做变量名用于AOE表格里表达式的书写,使之可以不用点号来表达,使得表达式的意思表达得更加清楚。本案例测点配置如下图所示:

测点配置.png

3.1.2、通信通道配置

低代码控制器通过Modbus协议与Simulink进行通信。由于Matlab仅有Modbus客户端功能,因此需要将低代码控制器配置为Modbus服务端,如下图所示,其中通道数量为1,服务端口需设置为未占用端口。

服务端配置.png

然后对客户端信息和测点信息等进行配置,如下图所示:

通道配置.png

3.1.3、AOE配置

本案例中AOE文件配置内容分为三个部分。

AOE网络声明

 AOE网络声明部分,定义了表格之中的AOE网络个数和整体信息以及一些变量的初始值。其中触发条件分为三类:SimpleRepeat(定时触发,需要自行设定定时时间)、TimeDriven(时间驱动)、EventDriven(事件驱动);变量的定义方式为:<变量名1>:<初值1>;<变量名2>:<初值2>;…。本案例中的AOE网络声明如下所示:

网络声明.png

aoe触发条件设置为事件驱动。

AOE节点声明

 节点类型分为Switch和Condition两类,其中Switch节点为二分支逻辑判断,触发逻辑为:表达式为真时,该节点序号为1的边进行动作;表达式为假时,序号为2的边进行动作。当Switch节点为AOE网入度为0的节点(首节点)时,Switch节点直接触发,若超时时间内表达式为真,则执行动作1,为假或者发生超时事件执行动作2;Condition节点的表达式为事件触发条件,超时时间内表达式为真,则节点事件发生,该节点出发的所有动作并行执行。本案例的AOE节点声明如下所示:

节点声明.png

 第一个节点是simulink通信事件节点,为事件触发类型,当DoCal_POINT>0.5时,也就是测点11输出1,表示允许控制器计算时,该节点被触发,进入运算流程;第2个节点是计算中间节点;最后一个节点是结束节点,是事件触发类型,当所有的计算步骤都完成,信号传输后,进入结束节点,计算结束,并将DoCal_POINT的数值改为0,等待下一次通信之后,开始计算。超时时间定为100ms,因为需要DoCal_POINT置0再让AOE执行过程结束,防止AOE被反复触发。

AOE边声明

 边需要声明首尾节点,格式为:<尾节点ID>;<首节点ID>。边的方向为:尾节点→首节点。边的动作类型有:None、SetPoints、Solve、Milp、SimpleMilp、Nlp。其中,SetPoints除了对测点设值之外,还可以进行变量定义和计算,动作参数分为数字量和模拟量;Solve为求解方程Ax=b;Milp为混合整数线性规划问题求解;Nlp为非线性规划问题求解。线损率的计算公式为:线损率=(台区总表日用电量-∑(户表日用电量))/台区总表日用电量。本案例中的AOE边声明如下图所示:本案例中的AOE边声明如下图所示:

边声明.png

本实验中的边声明的动作类型是SetPoints,SetPoints类型的动作边在连接节点的同时还需要进行动作。

3.1.4、配置文件存储

在excel表格中编写完成之后,将表格另存为.csv格式(纯文本形式存储表格数据)文件供低代码控制器使用。

3.4、编写Simulink与控制器通信程序

打开Simulink模型中S-函数的源文件,将S-函数的采样时间设置为0.1(每仿真0.1s与控制器通信一次)。添加建立Modbus通信的命令,其中需要服务端ip和端口参数:

主站建立通信.png

添加数据采集、读取线损率计算结果指令程序:

通信内容.png

3.5、低代码控制器配置与运行

将控制器电源线与电源相连,打开电源开关,再用网线将控制器与计算机连接,就可以使用。利用发现工具获得控制器ip,如下图所示:

发现工具.png

当控制器启动并接入计算机,被计算机发现后,可以得到如下界面(打开一个浏览器,并输入控制器地址也可以得到如下界面)。

登录界面.png

点击界面中控制器id,进入控制器配置界面,选择并导入测点、通道和AOE配置文件(excel文件另存为.csv格式文件后使用,可点击线损分析.rar下载配置文件和仿真模型,中points.csv为测点配置文件,tcp-mbd-transport.csv为通道配置文件,aoe.csv为AOE配置文件,LCC_Line_loss_analysis.slx为仿真模型,modbusCom2.m为S-函数源文件,其中语句m = modbus('tcpip', '127.0.0.1', 502);中的ip需要修改为控制器实际ip),点击界面中的“reset”即可保存配置并运行控制器。


配置界面.png


4、运行仿真

先运行低代码控制器,再运行Simulink模型,进行仿真。通过验算易得低代码控制器能够正确分析分路分段线损。

仿真结果.png

由该仿真实验可以看出,使用低代码控制器并不需要繁复的程序代码编写,只需要编写测点配置、通信通道配置和AOE配置文件就可以实现通信和控制功能,与目前常用的其他控制器相比,更方便于非编程技术背景人员的应用。