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

一种基于AOE网络的低代码PID控制方法与流程

2022-02-22 23:36:23 来源:中国专利 TAG:

一种基于aoe网络的低代码pid控制方法
技术领域
1.本发明涉及aoe网络和事件驱动技术,涉及工业控制领域中的 pid控制,尤其涉及一种基于aoe网络的低代码pid控制方法。


背景技术:

2.在传统的工业控制中采用pid算法,需要对于设计好的pid控制策略进行代码编程实现。这种方式主要存在3个方面的问题:第一,对设计pid算法的技术人员编程能力提出了很高的要求。实现pid 控制策略不仅要关注pid算法的参数,还需要编写大量代码,pid算法的参数还需要不短调整和优化以满足控制要求,修改pid算法参数后,代码需要重新编译运行,使调试和优化过程的效率变低;第二,代码迭代周期长,正确性验证困难,通常控制策略测试分为本地测试、在线测试等步骤,距离最终目标之间的环节越多,出错和概率越高;第三,没有统一的规格和标准,针对一个场景往往需要为其单独开发一整套控制方法,开发成本很高。因此,需要发明一种pid控制的新型实现方法,显著降低代码编写量,形象化表示pid控制策略,减少代码出错率,同时具备高度的通用性,对于不同的pid控制场景具有普适性,方便设计者快速调试pid算法参数。


技术实现要素:

3.针对上述背景技术中存在的技术问题,本发明提出一种基于aoe 网络的低代码pid控制方法,该方法可有效降低代码编写量,提高对不同pid控制场景的通用性,为设计者调试pid算法参数提供方便,提高设计效率。
4.为此,本发明采取以下技术方案:
5.一种基于aoe(activity on edge network)网络的低代码pid 控制方法,包括以下步骤:
6.1)设计pid控制策略并将其抽象为动作和事件。pid控制是根据被控量给定值和测量值之间的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制量的输出,需要设计的控制参数包括比例系数、积分系数和微分系数,设计pid控制策略的具体步骤如下:
7.101)确定触发一次pid计算的条件,可以选择为定时触发pid 计算或事件驱动pid计算。
8.102)预先设定所需测点(point),测点包括被控量的给定值 (set_point)和测量值(mea_point)、控制量的设定值(u_point),若 pid计算触发条件是事件驱动模式,还需要一个测点(docal_point) 来表征是否进行pid计算。事件驱动pid计算是指设定一个测点,每通信一次,将该测点值设置为1,触发一次pid计算,pid计算完成后该测点值变为0。定义所需变量并设定变量的初始值,变量包括被控量偏差(err)、前两次pid的被控量偏差(err_last1、err_last2)、被控量误差积分(err_total)、比例系数(kp)、积分系数(ki)、微分系数(kd);
9.103)将pid控制策略划分为多个动作。位置式pid分为5个动作:计算被控量偏差;计算被控量偏差的积分;根据位置式pid公式计算比例环节、积分环节、微分环节的输出;存储本次pid计算中被控量的偏差;将控制量限幅输出。增量式pid分为4个动作:计算被控量偏差;根据增量式pid公式计算比例环节、积分环节、微分环节的输出;存储前两次pid计算中被控量的偏差;将控制量限幅输出。动作类型均为setpoints,表示对变量或测点的值进行设置,既可以将测点中的控制量设置为数字量,也可以将变量定义为模拟量;
10.104)确定每个动作执行前需要满足的事件条件。第一个动作执行前的事件条件为接收到pid计算指令,其余动作的事件条件都是无条件;
11.105)确定每个动作执行完成的事件条件、事件的超时时间,以及执行失败后需要采取的措施。其中,执行完成的事件条件指动作执行后某些变量或者测点需要满足的条件(可根据具体情况确定需要满足的条件)。事件的超时时间指动作执行后,等待事件发生的最长时间。执行失败后需要采取的措施指动作执行失败后可以选择的几种处理措施,包括:尝试重新执行失败的动作、忽略本次失败并不影响其它动作、停止受到影响的动作、停止本次控制策略的执行。最后一个动作完成后的事件表示整个pid计算执行完毕,本次控制指令已成功下发;
12.2)根据pid控制策略构建aoe网络;
13.aoe网络是有向无环图,图的每个节点表示一个事件,每条边表示一个动作,边的方向表示节点所表示的事件之间的递进和迁移关系,这种关系由该条边所表示的动作决定。动作和节点在计算中依赖的变量只能来自测点、变量定义或已经被执行过的动作中计算出的变量。
14.确定每个动作的顺序以及动作发生、完成的事件后,用节点表示事件,事件发生导致被执行的动作作为从这个节点出发的有向边,每条有向边指向的节点表示动作完成后需要满足的事件。
15.3)利用aoe网络配置文件定义aoe网络的基本信息、变量、事件和动作,从而描述步骤2)中构建的aoe网络及步骤1)中设计的 pid控制策略的公式及其参数。文件配置按照标准化格式,以表格信息录入的方式来完成,不需要编写代码,因此是一种低代码表达方式。 aoe网络基本信息包括aoe网络的id、是否启用网络标志、aoe网络的名称、aoe网络的触发条件、aoe网络的触发条件参数、变量初始值;所述的变量指步骤102)中的控制算法执行过程中用到的中间量;动作指步骤103)中策略中的计算指令下发行为;事件指步骤104) 中由测点和变量计算构成的布尔表达式。具体包括如下步骤:测点指步骤102)中在配置文件中通过属性进行描述的、用来记录实际设备非连续量的测量点;
16.301)aoe网络基本信息的低代码表达。其中,aoe网络的id用正整数表示;是否启用网络标识用布尔值表示;aoe网络的名称用字符串表示;aoe网络的触发条件可以选择简单重复驱动(simplerepeat) 或事件驱动(eventdrive)表示,与步骤101)中触发pid计算的两种模式相对应。简单重复驱动对应于定时触发pid计算模式,触发条件参数为重复驱动之间的时间间隔(ms),用正整数表示;事件驱动对应于事件驱动pid计算模式,触发条件参数缺省;变量初始值用字符串和浮点数表示,分别表示变量名和该变量的初始值。aoe网络基本信息的低代码表达格式如表1所示。
17.表1 aoe网络基本信息的低代码表达
[0018][0019]
(表格中u64表示64位无符号整数;bool表示布尔类型;string 表示字符串类型;\表示缺省;float表示32位浮点数;expr表示表达式字符串)
[0020]
302)变量的低代码表示。在定义变量时需要声明该变量生效的 aoe网络id以及该变量的定义,单个变量可以在多个aoe网络中生效。变量的定义包含变量名称和变量的表达式,变量的表达式中可以使用测点值、变量和常数,变量之间也可以存在相互依赖的关系。因此,积分系数除了可以在变量定义中直接给出外,还可以由比例系数、调节周期(t)和积分时间常数(ti)表达为ki=kp*t/ti,微分系数可以由比例系数、调节周期和微分时间常数(td)表达为kd=kp*td/t。变量的低代码表达格式如表2所示。
[0021]
表2 变量的低代码表达
[0022]
aoe id变量定义《u64》《string》:《expr》
[0023]
303)事件的低代码表示。事件包括节点所在的aoe网络、节点 id、节点名称、节点类型、超时时间、事件表达式。节点所在的aoe 网络用301)中定义的aoe网络的id表示;节点id用正整数表示;节点名称用字符串表示;节点类型用普通节点(condition)或分支节点(switch)二者之一表示,其中普通节点在节点事件触发后,以该节点为起点的所有动作都会被执行,而分支节点为二分支节点,根据事件是否发生选择后续两个动作之一执行;超时时间用正整数表示,含义是事件发生的最长等待时间(ms);事件表达式用布尔表达式表示,计算结果为1或0分别表示事件发生和不发生。事件的低代码表达格式如表3所示。
[0024]
表3 事件的低代码表示
[0025]
aoe id节点id节点名称节点类型超时时间事件表达式《u64》《u64》《string》condition/switch《u64》《expr》
[0026]
304)动作的低代码表示。动作包括所在的aoe网络、首尾节点 id、动作名称、失败模式、动作类型、动作参数。所在的aoe网络用 301)中定义的aoe网络的id表示;首尾节点id用一对正整数表示,含义分别是这条边的起点和终点,用303)中定义的节点id表示;失败模式用重新执行失败的动作(default)、忽略本次失败并不影响其它动作(ignore)、停止受到影响的动作(stopfailed)和停止整个控制策略(stopall)四者之一表示;在pid控制的运算过程中,动作类型均为设点(setpoints),动作参数为字符串和表达式,并按照变量类型分为数字量和模拟量两部分,设点动作既可以进行变量的定义,利用某些测点值和变量值求取其他变量的值,也可以把数字量或者模拟量设置给测点,其中字符串表示变量或测点名称,表达式表示变量定义式或者测点被设置的值。动作的低代码表达格式如表4所示。
[0027]
表4 动作的低代码表达
[0028][0029]
4)测点配置文件和通道配置文件的编写;所述测点配置文件的编写是将描述一个测点所需要的属性列举出来;所述通道配置文件用于描述控制器与被控对象的通信方式,并依据测点配置文件中的测点属性,给出保存测点值的寄存器信息和地址。具体包括以下步骤:
[0030]
401)测点配置文件编写。测点配置文件里包括所有测点的序号、点号、名称、别名、是否离散、是否计算点、默认值和备注。序号用正整数表示,一般从1开始连续对测点进行编号;点号用正整数表示;名称用字符串表示,可包含中文;别名用字符串表示,即在步骤3) 中进行aoe网络配置文件的低代码表达时需要用到的测点名,一般仅包含字母;是否离散用布尔值表示;是否计算点用布尔值表示;默认值用浮点数表示。在测点配置中,可以提前对原始数据进行变换,如将易观测的电量转换为温度、湿度等非电量,方便后续pid计算的公式书写。测点配置文件的格式如表5所示。
[0031]
表5 测点配置文件的格式
[0032]
序号点号名称别名是否离散是否计算点默认值备注《u64》《u64》《string》《string》《bool》《bool》《float》

[0033]
402)通道配置文件的编写。所述的通道配置文件包括通信方式配置和测点寄存器配置两部分,支持modbus、iec104、mqtt、串口的作为通信方式,通信方式配置根据采用通信协议的类型而包含不同的信息;采用modbus通信,通信方式配置包括客户端ip\服务端ip、客户端端口\服务端端口、slave id、通信协议;采用iec104通信,通信方式配置包括主站地址、从站地址、端口号;采用mqtt通信,通信方式配置包括服务器地址、服务器端口、订阅主题、推送主题;采用串口通信,通信方式配置包括端口号、波特率、校验位、数据位、停止位;测点寄存器配置用于给出存储测点数据的地址信息,包括序号、寄存器类型、起始地址、数据类型、新请求标志、轮询周期、点号。
[0034]
以采用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表示输入寄存器,可看作只读模式的保持寄存器;起始地址用正整数表示,根据数据类型确定测点的地址偏移;数据类型用约定的类型声明表示,测点支持的数据类型如表6所示;新请求标志用布尔值表示;轮询周期用正整数表示,单位为ms;点号用正整数表示。通道配置文件的格式如表7 所示。
[0035]
表6 测点支持的数据类型
[0036][0037]
[0038]
表7 通道配置文件的格式
[0039][0040]
5)aoe网络的解析与执行
[0041]
启动控制程序,解析aoe网络配置文件、通道配置文件和测点配置文件后,将这些文件所描述的控制策略应用于实际控制场景中即可实现pid策略下的控制。控制过程中,文件所定义的aoe网络被执行,具体步骤如下:
[0042]
501)将aoe网络配置文件解析后得到的策略保存为一个aoe向量,所述aoe向量包含一个或多个aoe网络;
[0043]
502)对测点配置文件和通道配置文件进行解析,用于分配存放测点数据的内存空间,并按照通道配置文件中声明的通信方式建立通信连接;
[0044]
503)根据解析得到的aoe网络的触发条件决定控制策略的启动,采用简单重复驱动的aoe网络按照aoe网络配置文件中定义的aoe网络的触发条件参数执行;而对于采用事件驱动的aoe网络,将首节点的事件条件作为整个aoe网络是否被触发的条件,所述首节点表示 aoe网络中入度为0的节点;
[0045]
504)根据测点配置文件里的属性和起始地址,监测测点值的变动。当测点发生变动并引起首节点事件触发后,aoe网络启动并执行控制;
[0046]
505)aoe网络从当前拓扑排序队列中弹出一个队首节点,等待直到节点事件发生或者超时,所述队首节点指当前拓扑排序队列当中排在最前面的节点;
[0047]
506)当弹出的节点的事件发生超时,若不是收到外部的aoe取消指令或者失败,回到步骤505);
[0048]
507)当节点事件发生时,执行该事件触发的所有动作,即aoe 网络中以该节点为首节点的所有边上的动作被执行,并等待动作执行的返回结果,对于结果不成功的动作,根据每个动作的失败模式采取忽略、重试、停止受影响的节点、停止aoe执行的措施;
[0049]
508)当动作全部执行完毕后,若拓扑排序队列不为空,则返回步骤505),否则说明节点已全部弹出,aoe网络执行完毕,控制过程结束。
[0050]
本发明的有益效果为:
[0051]
1)采用低代码方式表达pid控制策略,简化开发流程:按照本发明设计的低代码框架表达pid控制策略,控制策略的开发人员不需要熟练掌握某种编程语言即可开发高效执行的pid控制策略,可以对配置表格中的进行修改后快速重新部署,检验pid参数的控制效果,提高pid控制策略的开发效率;
[0052]
2)简单定时触发可以实现固定采样周期的pid控制策略,采样周期可由配置文件简单快速地进行修改;而事件驱动可以根据外部通信信号进行pid计算,能减少不必要计算资源和通信资源的浪费、更容易实现数字控制和多线程控制:事件驱动控制是一种基于异步通信的控制方式,不依赖同步时钟和连续状态更新,降低计算资源和通信资源的浪费,并且便于实现多线程控制;
[0053]
3)设计了完整的aoe事件驱动控制策略执行框架:可选触发类型的aoe网络、事件判断和超时处理、动作执行失败处理方法,使本发明所提控制方法适应具备高度不确定性的环境。
附图说明
[0054]
图1、图2是pid控制风扇转速的aoe网络拓扑。
[0055]
图3是本发明方法的流程图。
具体实施方式
[0056]
以下结合说明书附图对本发明的技术方案做进一步的详细说明。
[0057]
以pid控制风扇风速为例,被控量为风速,可由传感器测量气体压强后计算得到风速,控制对象为风扇的电机,控制量为电机驱动 pwm波的占空比。风扇电机以及风速用simulink仿真模型来模拟,可以将仿真模型中的风速等测点信息通过通信通道传递给控制程序。
[0058]
pid控制策略可以分为位置式和增量式,在本例中都可以实现,变量和aoe网络略有不同,测点和通信的配置在两种方法中是相同的。
[0059]
若使用位置式pid控制策略,其aoe网络拓扑图如图1所示,编写低代码表达的aoe网络配置文件、测点配置文件和通道配置文件,如表8(1)、表9、表10所示。
[0060]
如图1所示,风速位置式pid控制策略包含6个事件,事件的配置参数和拓扑关系如表8(1)中所示。其中通信事件为事件驱动pid 计算模式下接收的pid计算指令,事件发生的条件为接收到pid计算指令;执行顺序计算中间节点1-执行顺序计算中间节点4的进行中间变量和输出结果的计算,这些事件发生不需要条件,即从上一个动作直接过渡到下一个动作,顺序完成计算;结束节点表示aoe网络执行完毕,控制电机的pwm波占空比指令已成功下发。
[0061]
如图1所示,风速位置式pid控制策略包含5个动作,动作的配置参数和拓扑关系如表8(1)中所示。其中aoe触发测点复位,动作1 是计算实际风速和设定风速的偏差;动作2是计算积分环节中需要用到的偏差量的积分;动作3是计算比例环节、积分环节和微分环节的输出,根据偏差量及其积分和微分进行位置式pid控制计算;动作4 是将当前时刻的偏差量储存起来,供下一次pid计算使用;动作5是计算作用在风扇电机上的pwm波占空比限幅,对
最后输出的pwm波占空比进行限制。
[0062]
若使用增量式pid控制策略,其aoe网络拓扑图如图2所示,编写低代码表达的aoe网络配置文件、测点配置文件和通道配置文件,如表8(2)、表9、表10所示。
[0063]
如图2所示,风速增量式pid控制策略包含5个事件,事件的配置参数和拓扑关系如表8(2)中所示。
[0064]
如图2所示,风速增量式pid控制策略包含4个动作,动作的配置参数和拓扑关系如表8(2)中所示。其中动作1是计算实际风速和设定风速的偏差;动作2是计算比例环节、积分环节和微分环节的输出,根据本次和前两次的偏差量进行增量式pid控制计算;动作3是将当前时刻和上一时刻的偏差量储存起来,供下一次pid计算使用;动作4是计算作用在风扇电机上的pwm波占空比限幅,对最后输出的 pwm波占空比进行限制。
[0065]
如表9、表10所示,通道配置文件规定本例采用的通信方式为modbus通信,共有4个测点。其中测点1表示设定的风速;测点2 表示测量的实际风速,可以由压力传感器测量的压力值计算得到;测点3表示控制程序下发的遥调量,也就是设定作用在风扇电机上的 pwm波占空比;测点4表示根据该测点状态判断控制器是否进行计算,由于simulink模型仿真时间与实际时间不同,需要与simulink每通信一次进行一个步长的计算。
[0066]
如图3所示,本发明基于aoe事件驱动技术的低代码工业控制方法控制流程如下:
[0067]
1)控制程序启动,完成aoe网络配置文件、测点配置文件和通道配置文件解析。完成aoe配置文件解析后,控制程序在其内存中形成多个aoe对象;测点配置文件和通道配置文件解析完成后,控制程序建立modbus通信连接,并为测点指定内存;
[0068]
2)根据测点配置的结果,被控对象状态变动会以测点数值变化的形式被控制程序检测,当测点数值变化引起事件发生后,aoe网络开始执行。在本例中,aoe网络首节点的触发事件为测点4大于0.5,该测点的值由simulink计算得到,aoe网络的第一个动作将测点4 设置为0,表示本次计算已经开始以防止aoe网络被连续执行;
[0069]
3)从aoe网络的拓扑排序队列中弹出首节点,等待直到首节点事件发生或者超时。本例中当首节点事件被触发后,执行顺序计算中间节点1-4的触发条件均为无条件直接触发;
[0070]
4)以弹出的节点为首节点的动作被执行,如果动作执行成功,则返回步骤3)并弹出新的首节点,如果执行不成功,由于本例中所有动作失败模式均为重试(default),程序会尝试重试失败的动作;
[0071]
5)若拓扑排序队列中所有节点被弹出,则本次aoe网络执行完成,控制程序将控制量输出通过通信通道下发到测点3,simulink仿真模型中接收到下发的控制量,simulink将控制量作为作用在风扇电机上的pwm波占空比进行后续的仿真模拟。
[0072]
需要说明的是,上述关于风速控制的位置式和增量式pid只是 pid控制策略的简单实例,设计者可以利用aoe网络和低代码配置方法拓展pid控制策略,实现更加丰富多样的pid控制策略。
[0073]
表8(1)位置式pid控制的aoe网络配置文件
[0074][0075][0076]
表8(2)增量式pid控制的aoe网络配置文件
[0077][0078]
表9 测点配置文件
[0079][0080][0081]
表10 通道配置文件
[0082]
再多了解一些

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

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

相关文献