一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持优化问题求解的工业控制方法与流程

2022-03-02 03:17:49 来源:中国专利 TAG:


1.本发明涉及优化问题求解,涉及工业控制领域,尤其涉及一种支持优化问题求解的工业控制方法。


背景技术:

2.传统的工业控制大多通过应用可编程逻辑控制器实现,这种方式存在对技术人员的编程能力要求高、代码需要反复调试和优化、代码迭代周期长且验证困难以及没有统一的规格和标准等问题。更重要的是,由于绝大多数可编程逻辑控制器不具有优化问题求解的功能,调用优化求解工具的时候要列写复杂的系数矩阵,需要通过大量编程才能实现,增加了不必要的工作量和开发成本。因此,需要发明一种工业控制方法,具有方程组求解和优化模型求解功能,能够达到最优的控制效果,同时具备高度的通用性,能够应用于众多领域。


技术实现要素:

3.针对上述背景技术中存在的技术问题,本发明提出了一种支持优化问题求解的工业控制方法,该方法具有优化问题求解的功能,可以提高工业控制的效果。
4.为此,本发明采取以下的技术方案:
5.一种支持优化问题求解的工业控制方法,包括以下步骤:
6.1)设计基于事件驱动的控制策略,基于控制策略设计优化模型;其中事件驱动控制是一种基于异步通信的控制方式,不依赖同步时钟和连续状态更新,降低计算资源和通信资源的浪费,并且便于实现多线程控制。
7.2)采用直观的数学表达式对步骤1)设计的优化模型进行描述。
8.201)描述目标函数:目标函数根据求解目的,通常以min或max开头,以中缀表达式,即运算符处于变量中间的形式输入即可,需要注意的是,输入格式上必须将优化变量按多项式的形式分开。
9.202)描述约束条件:根据已知的条件和物理约束列出对于优化变量的约束条件,约束以bool表达式的形式输入,仍然需要将优化变量按照多项式的形式分开,采用以下格式列出:《bool表达式1》;《bool表达式2》;


10.203)描述变量:对变量进行声明的格式为《变量名1》:《变量类型1》,《变量名2》:《变量类型2》,其中应注意变量类型为以下任意一种:1、二进制(0/1);2、整数;3、浮点数。
11.3)构建aoe网络;aoe网络(activity on edge network)是有向无环图,图的每个节点表示一个事件,每条边表示一个动作,边的方向表示节点所表示的事件之间的递进和迁移关系,这种关系由该条边所表示的动作决定。
12.4)利用aoe网络配置文件定义aoe网络的基本信息、变量、事件和动作,从而描述步骤3)中构建的aoe网络及步骤1)中设计的控制策略;其中,在excel文件之中进行测点配置、通信通道和aoe配置;aoe网络基本信息包括aoe网络的id、是否启用网络标志、aoe网络的名
称、aoe网络的触发条件、aoe网络的触发条件参数、变量初始值;所述的变量指控制算法执行过程中用到的中间量;所述的事件指由测点和变量计算构成的bool表达式;动作指策略中的无动作、计算、指令下发行为;测点指在配置文件中通过属性进行描述的、用来记录实际设备非连续量的测量点;
13.5)测点配置文件和通道配置文件的编写;所述测点配置文件的编写是将描述一个测点所需要的属性列举出来;所述通道配置文件用于描述控制器与被控对象的通信方式,并依据测点配置文件中的测点属性,给出保存测点值的寄存器信息和地址;
14.6)aoe网络的解析与执行
15.解析aoe网络配置文件、通道配置文件和测点配置文件,按照直观的数学表达式描述的优化问题,在解析之后将目标函数和约束条件表示为由数字、运算符和变量组成的计算机可直接计算的后缀表达式,之后从中拆分出优化向量的系数矩阵,形成优化问题模型,求解后应用于实际工业控制场景中即可实现工业控制。
16.上述技术方案中,进一步地,所述的步骤4)具体为:
17.401)aoe网络基本信息的低代码表达;其中,aoe网络的id用正整数表示;是否启用网络标识用布尔值表示;aoe网络的名称用字符串表示;aoe网络的触发条件用事件驱动表示,触发条件参数缺省;变量初始值用字符串和浮点数表示,分别表示变量名和该变量的初始值;
18.402)事件的低代码表示;事件包括节点所在的aoe网络、节点id、节点名称、节点类型、超时时间、事件表达式;节点所在的aoe网络用401)中定义的aoe网络的id表示;节点id用正整数表示;节点名称用字符串表示;节点类型用普通节点或分支节点二者之一表示,其中普通节点在节点事件触发后,以该节点为起点的所有动作都会被执行,而分支节点为二分支节点,根据事件是否发生选择后续两个动作之一执行;超时时间用正整数表示,含义是事件发生的最长等待时间ms;事件表达式用布尔表达式表示,计算结果为1或0分别表示事件发生和不发生;
19.403)动作的低代码表示;动作包括所在的aoe网络、首尾节点id、动作名称、失败模式、动作类型、动作参数;动作所在的aoe网络用401)中定义的aoe网络的id表示;首尾节点id用一对正整数表示,含义分别是这条边的起点和终点,用402)中定义的节点id表示;失败模式用重新执行失败的动作表示;动作类型为无动作和设点;动作参数根据动作类型不同而表示不同的含义:动作类型为无动作时,动作参数缺省;动作类型为设点时,动作参数为字符串和表达式,并按照变量类型分为数字量和模拟量两部分,设点动作既可以进行变量的定义,也可以把数字量或者模拟量设置给测点,其中字符串表示变量或测点名称,表达式表示变量定义式或者测点被设置的值。
20.进一步地,所述的步骤5)具体包括以下步骤:
21.501)测点配置文件编写。测点配置文件里包括所有测点的序号、点号、名称、别名、是否离散、是否计算点、默认值和备注。序号用正整数表示,一般从1开始连续对测点进行编号;点号用正整数表示;名称用字符串表示,可包含中文;别名用字符串表示,即在步骤3机进行aoe网络配置文件的低代码表达时需要用到的测点名,一般仅包含字母;是否离散用布尔值表示;是否计算点用布尔值表示;默认值用浮点数表示。
22.502)通道配置文件的编写。所述的通道配置文件包括通信方式配置和测点寄存器
配置两部分,支持modbus、iec104、mqtt、串口的作为通信方式,通信方式配置根据采用通信协议的类型而包含不同的信息;采用modbus通信,通信方式配置包括客户端ip\服务端ip、客户端端口\服务端端口、slave id、通信协议;采用iec104通信,通信方式配置包括主站地址、从站地址、端口号;采用mqtt通信,通信方式配置包括服务器地址、服务器端口、订阅主题、推送主题;采用串口通信,通信方式配置包括端口号、波特率、校验位、数据位、停止位;测点寄存器配置用于给出存储测点数据的地址信息,包括序号、寄存器类型、起始地址、数据类型、新请求标志、轮询周期、点号。
23.以采用modbus通信的通道为例,通道配置文件包含通道名称、连接个数、服务端口、连接名称、测点个数、客户端ip、客户端端口、slave id、通信协议、一次读寄存器数上线、一次读开关数上限、一次写寄存器数上限、一次写开关数上限、(默认)轮询周期(ms)、超时时间(ms)、通道状态测点号、序号、寄存器类型、起始地址、数据类型、新请求标志、轮询周期、点号。通道名称用字符串表示,可包含中文;连接个数用正整数表示;服务端口用正整数表示;连接名称用字符串表示;测点个数用正整数表示;客户端ip用字符串表示,格式为ipv4地址格式;客户端端口为正整数;通信协议为xa和encap二者之一表示,xa和encap表示modbus通信中的两种通信协议(其中xa表示modbus tcp协议,对应slave里面modbus tcp;encap是最原始的modbus rtu,表示只是用tcp作为载体字节的组织,对应slave里面modbus rtu over tcp);一次读寄存器数上限用正整数表示;一次读开关数上限用正整数表示;一次写寄存器数上限用正整数表示;一次写开关数上限用正整数表示;默认轮询周期(ms)用正整数表示;超时(ms)用正整数表示;通道状态测点号用正整数表示;序号用正整数表示,一般从1开始连续对测点进行编号;寄存器类型用coils、discrete、holding和input四者之一表示,其中coils表示线圈寄存器,实际上就可以类比为开关量,discrete表示离散输入寄存器,只能读取开关量,相当于线圈寄存器的只读模式,holding表示保持寄存器,该寄存器的单位不再是bit而是两个byte,可以存放具体的数据量的,并且是可读写的,input表示输入寄存器,可看作只读模式的保持寄存器;起始地址用正整数表示,根据数据类型确定测点的地址偏移;数据类型用约定的类型声明表示;新请求标志用布尔值表示;轮询周期用正整数表示,单位为ms;点号用正整数表示。
24.进一步地,所述的步骤6)具体为:
25.601)将aoe网络配置文件解析后得到的策略保存为一个aoe向量,所述aoe向量包含一个或多个aoe网络;对测点配置文件和通道配置文件进行解析,分配存放测点数据的内存空间,并按照通道配置文件中声明的通信方式建立通信连接;
26.602)对于采用事件驱动的aoe网络,将首节点的事件条件作为整个aoe网络是否被触发的条件;当首节点事件触发后,aoe网络启动并按拓扑排序队列弹出队首节点,等待直到队首节点事件发生或者超时;所述首节点表示aoe网络中入度为0的节点;所述队首节点指当前拓扑排序队列当中排在最前面的节点;
27.603)当节点事件发生时,执行该事件触发的所有动作,即aoe网络中以该节点为首节点的所有边上的动作被执行,并等待动作执行的返回结果,如果动作执行成功,则返回步骤602)并弹出新的队首节点,如果动作执行不成功,则根据每个动作的失败模式采取忽略、重试、停止受影响的节点、停止aoe执行的措施;
28.604)当动作全部执行完毕后,若拓扑排序队列不为空,则返回步骤602),否则说明
节点已全部弹出,aoe网络执行完毕,控制过程结束。
29.本发明的有益效果为:
30.1)本发明涉及的工业控制方法支持优化问题求解功能,能够兼容主流的开源优化求解库,可求解大规模混合整数线性规划和大规模非线性优化问题,使被控系统的控制效果达到最优,实现复杂的控制策略;
31.2)本发明求解优化问题的配置方法可读性高;优化模型可采用直观的数学表达式描述,支持稀疏表达和稠密表达两种,支持bool运算、指数、对数、三角函数、绝对值、最大/小值等多种数学计算。
32.3)本发明的工业控制方法不调用优化求解工具即可实现优化问题的求解,大大简化了开发流程:开发人员不需要熟练掌握某种编程语言即可开发高效执行的控制策略。
附图说明
33.图1是储能电池soc均衡的功率分配策略aoe网络拓扑;
34.图2是本发明方法的流程图。
具体实施方式
35.下面结合实例与说明书附图对本发明进行进一步的说明。
36.本发明以储能电池soc均衡的功率分配问题为例,对支持优化问题求解的工业控制方法进行详细说明。
37.在加入优化策略之前,储能电池soc均衡的功率分配策略对小功率的处理存在不足:当有多个电池计算功率低于最小值,且其中某些电池的计算功率接近最小值时,由于策略存在充放电里程均衡的趋势,就会导致那些计算功率低于最小值又接近最小值的电池的实际功率在0和高于最小值的某一个值之间来回跳变。所述的功率最小值表示电池能够精确追踪的最小指令功率值。
38.为了解决这一问题,将电池的开关状态变化作为优化目标考虑进来,建立数学模型。优化策略仅于计算功率中存在低于最小值功率时使用。
39.(1)数学建模
40.设充电指令功率为p
com
,以8组电池为例,优化变量为各组电池功率以及电池的开关状态:电池功率分别为x1,x2,x3,x4,x5,x6,x7,x8,电池的开关状态为y1,y2,y3,y4,y5,y6,y7,y8。需要的参数包括:各组电池当前的soc,设为soc
i0
(i=1,2,

,8),各组电池当前的开关状态,设为y
i0
(i=1,2,

,8),每个电池的最大充电出力p
max,i
(i=1,2,

,8)和最小功率p
min
。其中p
min
可以等于功率最小值,一般所有电池功率最小值相等。充电指令功率是指由agc(automatic generation control,自动发电控制)辅助调频系统下发给储能的总功率值,储能控制的目标之一是储能总功率等于agc的总指令功率。在上述假设中约束条件可以表示为:
[0041][0042]
考虑到二次优化求解的复杂性,尽量避免将soc方差直接作为优化目标,以开关状态变化、soc相对参考值的总偏差的绝对值和功率变动成本作为目标函数:
[0043][0044]
其中,w1、w2表示开关状态变化和soc均衡各自所占的影响权重,w3表示功率变动带来的成本权重;soc
ref
为soc参考值;soc
i0
为当前电池的soc值;p
i0
表示当前电池的功率值;soci表示在功率分发策略所计算出的功率工作下,下一时刻第i个电池的soc值;
[0045]
取时间δt为1s,可以计算出第i个电池下一时刻soc近似值:
[0046][0047]
其中e
act,i
表示电池i的实际容量。
[0048]
(2)线性化
[0049]
通过增加变量的方法进行线性化,消除目标函数中的绝对值。将绝对值转为两个不等式,当目标函数取得最小值时,新引入的变量等于原始算式的绝对值。
[0050]
引入变量ωi(i=1,2,

,8),满足:
[0051][0052][0053]
同理,引入变量zi(i=1,2,

,8),满足:
[0054]
zi≥soc
i-soc
ref
[0055]
zi≥-(soc
i-soc
ref
)
[0056]
以及引入变量ki(i=1,2,

,8),满足:
[0057]ki
≥p
i0-xi[0058]ki
≥-(p
i0-xi)
[0059]
如此一来就能将含绝对值的规划问题转化为新的混合整数线性规划问题:
[0060][0061]
其中目标函数为:
[0062][0063]
这一目标函数的设置保证了原始目标函数取得最小值的时候有:
[0064][0065]
zi=|soc
i-soc
ref
|
[0066]ki
=|p
i0-xi|
[0067]
这样就可以将复杂的优化模型用简单直接的数学表达式表示出来。
[0068]
之后构建aoe网络,并利用aoe网络配置文件定义aoe网络的基本信息、变量、事件和动作,将设计好的控制策略和优化模型描述出来,本案例中包含18个事件,21个动作,其中涉及到优化求解问题的事件、动作如表1所示。aoe网络配置文件如表2所示。
[0069]
表1
[0070]
[0071]
[0072]
[0073][0074]
表2 aoe网络配置文件
[0075]
[0076]
[0077]
[0078]
[0079][0080][0081]
本发明将优化模型采用直观的数学表达式描述,一个优化模型分为目标函数、约
束、变量三个部分,将直观的数学表达式通过标准化文件进行配置,极大的减小了编程工作量。
[0082]
本发明提出的方法所定义的动作可以支持稀疏表达和稠密表达,如表1中2个动作的动作类型均为milp类型(稀疏混合整数线性规划问题求解),且可支持bool运算、指数、对数、三角函数、绝对值、最大/小值等多种数学计算。
[0083]
该案例主要的控制思路是:首先根据电池soc对电池进行分类;其次判断指令功率方向,根据功率方向决定充电/放电策略;然后根据指令功率大小和电池分类结果及电池功率上下限,决定是否需要调用优化策略;若不需要进行优化,则进入充电/放电非优化事件,并继续计算;若需要优化,则进入充电/放电优化事件,如果优化问题求解有解,则将优化分配充电/放电功率下发到对应测点,如果优化问题求解无解,则将平均分配充电/放电功率下发到对应测点。通道配置文件(见表4)规定本例采用的通信方式为modbus通信,共有82个测点。其中测点1表示系统工作在ems(energy management system,能量管理系统)模式,接收agc系统的指令;测点3-10表示下发给pms(power management system,储能管理系统)的遥控;测点11-18表示充放总里程;测点19-26表示soc;测点27-34表示功率;测点35-42表示工作状态;测点43-50表示下发给bams(battery array management system,电池阵列管理系统)的遥调;测点51-58表示额定里程;测点59-66表示容量;测点67-74表示最大充电功率;测点75-82表示最大放电功率。测点配置文件如表3所示。
[0084]
表3测点配置文件
[0085]
[0086]
[0087][0088]
表4通道配置文件
[0089]
[0090]
[0091]
[0092][0093]
如图2所示,采用本发明支持优化问题求解的工业控制方法对储能电池soc均衡的功率分配进行控制,流程如下:
[0094]
1)控制程序启动,完成aoe网络配置文件、测点配置文件和通道配置文件解析,生成aoe网络。完成aoe配置文件解析后,控制程序在其内存中形成多个aoe对象;测点配置文件和通道配置文件解析完成后,控制程序建立modbus通信连接,并为测点指定内存;
[0095]
在本例中,aoe网络首节点的触发事件为测点2满足abs(last_cmd-gen_total_p_point)》1e-2,该测点的值由simulink计算得到;所述首节点表示aoe网络中入度为0的节点;
[0096]
2)aoe网络首节点触发后,从aoe网络的拓扑排序队列中弹出队首节点,等待直到队首节点事件发生或者超时。本例中当首节点事件被触发后,执行顺序计算中间节点1-18的触发条件均为无条件直接触发;所述队首节点指当前拓扑排序队列当中排在最前面的节点;
[0097]
3)以弹出的节点为首节点的动作被执行,如果动作执行成功,则返回步骤2)并弹出新的队首节点,如果执行不成功,由于本例中所有动作失败模式均为重试(default),程
序会尝试重试失败的动作;
[0098]
4)若拓扑排序队列中所有节点被弹出,则本次aoe网络执行完成,控制程序将控制量输出通过通信通道下发到下一个的测点中,储能电池soc均衡仿真模型中接收到下发的控制量,simulink将控制量作为作用在电池的功率分配进行后续的仿真模拟。
[0099]
上述实例中,当拓扑排序队列进入到充放电事件节点时,根据指令功率大小和电池分类结果和电池功率上下限,决定是否需要调用优化策略;若不需要进行优化,则进入充电/放电非优化事件,并继续计算;若需要优化,则进入充电/放电优化事件,按照策略计算功率,如果优化问题求解有解,则将优化分配充电/放电功率下发到对应测点,如果优化问题求解无解,则将平均分配充电/放电功率下发到对应测点。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献