一种数据驱动预测云控制方法与流程

文档序号:17158100发布日期:2019-03-20 00:16阅读:244来源:国知局
一种数据驱动预测云控制方法与流程

本发明属于云控制技术领域,涉及一种数据驱动预测云控制方法。



背景技术:

信息技术的发展催生了许多科技理论成果,为人熟知的就有云计算、物联网、网络化控制等。在新时代,基于这三者的快速发展,云控制系统的概念被提出。现代控制理论的研究方法主要可以分为基于模型(model-based)和数据驱动(data-driven)两大类。前者的本质是采用机理或辨识模型的方法建立被控对象的数学模型,然后基于此模型实现系统的控制、优化与决策等目标;数据驱动理论则是利用数据完成对系统的预测、控制、调度、优化、决策等期望功能。当前,工业和控制系统的规模和复杂性持续增长,基于模型的传统分析和控制方法难以解决此类问题;同时,在工业生产过程中,产生、存储了海量的经验和数据,但因计算能力和理论技术的限制,这些数据没有被有效利用。这些问题制约着国民经济的进一步发展。

基于数据驱动预测的云控制系统可有效解决以上问题。作为云控制系统中的一项关键技术,数据驱动预测云控制系统基于网络化控制理论技术,以物联网为应用场景,借助云计算的强大处理能力,不需对被控对象进行机理分析,利用历史数据,直接实现精确、可靠的控制与决策作用。同时,在存在网络时延的条件下,有效、精准地补偿了时延的影响。其中,设计辨识和控制算法是数据驱动预测云控制的关键技术。利用输入输出历史数据,对控制系统进行辨识分析,再由模型预测控制方法获得预测控制序列,以期在网络时滞干扰下,获得精确、可靠的控制效果。但是现有数据驱动云控制方法存在以下两个问题:一,对于快速启动系统,数据准备阶段用时过长;二,数据驱动云控制算法中未考虑约束且存在网路时延。



技术实现要素:

有鉴于此,本发明提供了一种数据驱动云控制方法,能够快速启动,并且可以处理约束。

为了达到上述目的,本发明的技术方案包括如下步骤:

步骤1,在本地受控系统和云服务器之间建立通信系统,形成云端-本地控制回路;

步骤2,在云服务器中首先使用pid算法生成或随机输入控制量获得离线数据,将其传输并施加到本地受控系统中,将本地受控系统返回的控制量和对应的输出信息以hankel矩阵形式储存,得到hankel矩阵;

步骤3,云服务器根据hankel矩阵,辨识获得本地受控系统的状态空间矩阵;

步骤4,在云服务器中根据本地受控系统的状态空间矩阵,先利用系统辨识得到本地受控系统的数学模型,基于本地受控系统的数学模型,利用预测控制方法建立系统应满足的约束条件,计算出当前k时刻的最优预测控制序列;记录开始计算时的时刻t1,并将最优预测控制序列和时刻t1发送到本地受控系统;

步骤5,本地受控系统记录接收到最优预测控制序列时的时刻t2;由时刻t1和时刻t2算出网络时延τ;在最优预测控制序列中,从第ceil(τ)个分量开始作为实际施加的控制量,施加到本地受控系统,得到对应的输出信息;其中ceil(·)代表向上取整;

将实际施加控制量和对应的输出信息一起返回云服务器,更新hankel矩阵;重复执行步骤3-5,直至实现稳定控制或重复次数达到设定值,实现数据驱动云控制。

其中,所述步骤3中,根据hankel矩阵,采用子空间方法、集员理论、无模型自适应理论或迭代学习方法,辨识获得本地受控系统的状态空间矩阵。

其中,所述步骤3中,其中,采用子空间方法具体为:对hankel矩阵依次进行正交投影、加权映射、svd分解、确定阶数、获得状态序列估计、求解最小二乘问题,辨识出本地受控系统的状态空间矩阵。

其中,所述步骤4中,在系统应满足的约束条件下,通过求解当前系统实际状态的最优化问题得到最优预测控制序列。

其中,所述步骤2中,通过如下子步骤得到hankel矩阵:

步骤s20、设置预测步长n和信息步长j的值;所述设定的控制步长n大于网络时延τ,其中已知网络时延τ的估计值;

步骤s21、输入本地受控系统2n+j-1个有效的随机输入,得到2n+j-1个输出,即得到2n+j-1个输入输出对,继而得到本地受控系统当前时刻输入数据的hankel矩阵up,0、uf,0和输出数据的hankel矩阵yp,0、yf,0,其中下标p和f分别表示过去和将来。

其中,所述步骤1中,采用python在受控系统与云服务设备之间建立udp半双工通信,形成控制回路;本地受控系统使用一个host和port的数据对为数据通信元组;云服务器使用另一个host和port的数据对作为通信元组。

有益效果:

本发明采用离线数据准备方式,为数据驱动算法准备初始数据,解决了控制系统要求快速启动的问题;同时本发明将云辨识器和云控制器分开设计,首先通过云辨识器得到系统状态空间模型;然后根据模型,添加实际约束,建立最优化问题,使用模型预测控制方法,即滚动优化的方法,求解出最优预测控制序列,解决了现有数据驱动云控制方法不能处理约束的问题,并通过对应时延控制量实现网络补偿。

附图说明

图1为本发明的云控制系统结构图;

图2为本发明的内外网间udp半双工通信示意图;

图3为本发明的算法流程图;

图4为本发明的网络延时测量示意图;

图5为本发明的数据驱动预测控制补偿策略示意图;

图6为本发明的球杆系统实验示范系统框图;

图7为本发明的球杆系统实验示范数据流图;

图8为本发明的球杆系统实验示范系统输出(中国);

图9为本发明的球杆系统实验示范系统输出(新加坡)。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明涉及的符号:所述hankel矩阵,以输入信息为例,形如

形式的矩阵称为hankel矩阵,其中下标“p”代表“past”,即过去;“f”代表“future”,即未来;

n,j表示预测步长和信息步长,即hankel矩阵的行和列,预测步长同时代表控制序列的预测步数;

k为k时刻;

系统矩阵[abcd]:

x(k+1)=ax(k)+bu(k);

y(k)=cx(k)+du(k).

其中x(k)为状态量,u(k)为控制量,y(k)为输出量;

up|k,uf|k表示k时刻,输入数据组成的hankel矩阵,输出数据同理;

t1,t2为云端向本地传送、本地接收信息时对应的时刻;

ts表示采样时间周期;

τ表示云端向本地传送、本地接收信息的单位时延数;

ωp1,k,ωp2,k,ωp,k为定义输入、输出信息在预测时域内及组成的数据列向量

wp为定义yp,k和up,k组成的中间变量

wp=[yp,k;up,k];

表示yf的行子空间在uf的行子空间上的投影;

yf-、uf、wp+等,定义或类似定义如下:

u1、s1、γk、xk为中间变量;w1、w2为权重矩阵,可选取为单位阵;

γk表示γk除去最后一行和第一行的矩阵。

本发明的云控制系统结构图如图1所示,网络化云控制是基于云的网络化控制,控制器部署在云端,通过网络与本地受控系统连接形成闭合回路,包括控制系统内外网实时通信、预测控制算法、网络延时测量以及时延补偿等。本发明利用网络化控制、云计算技术部署云控制系统,丰富了控制器的设计途径,拓宽了控制系统拓扑结构,包括以下步骤:

步骤1,建立通信。在本地受控系统p和云服务器之间建立通信系统,形成云端-本地通信回路;具体包括如下子步骤:采用python在受控系统与云服务设备之间建立udp(userdatagramprotocol)半双工通信,形成控制回路;设置受控系统为本地端,使用一个host和port的数据对作为数据通信元组,如图1所示,socket(host1,port1);设置云服务设备为云端,使用另一个host和port的数据对作为通信元组,如图1所示,socket(host2,port2)。

以受控系统p(比如球杆系统)为例,其模型未知,但能获取到不同采样时刻的输入u(k)对应的输出y(k);存在云服务设备(如云主机,隶属于云计算中的iaas服务),可以安装运行控制程序。采用python在受控系统与云服务设备之间建立udp半双工通信,形成控制回路。受控系统为本地端,使用socket(host1,port1)作为数据通信元组;云服务设备为云端,使用socket(host2,port2)作为通信元组,如图2所示。本地接收传感器数据并发送至云端,云端运行控制算法得到控制量,发回到本地,由执行器驱动系统。传输过程中,socket(host2,port2)必须实时读取数据源(本地受控系统)ip和端口,以保证控制量能通过napt网关成功转发。

步骤2,在云服务器中首先使用pid算法生成或随机输入控制量获得离线数据,将其传输并施加到本地受控系统中,将本地受控系统返回的控制量和对应的输出信息以hankel矩阵形式储存,得到hankel矩阵,具体包括如下子步骤:

s20、设置预测步长n和信息步长j的值;所述设定的控制步长n大于网络时延τ,其中已知网络时延τ的估计值;

s21、由本地受控系统2n+j-1个有效的pid控制输入或随机输入,可以得到2n+j-1个输出,即得到2n+j-1个输入输出对,继而得到本地受控系统初始时刻输入数据的hankel矩阵up,0、uf,0和输出数据的hankel矩阵yp,0、yf,0,其中下标0代表当前时刻,即初始时刻;

步骤3,云服务器根据离线准备数据建立起的hankel矩阵,可以采用子空间方法、集员理论、无模型自适应理论以及迭代学习方法等辨识出k时刻本地受控系统矩阵[abcd]。本实施例中采用的是子空间方法。状态空间是现代控制理论中描述系统的最常用的模型,子空间方法基于状态空间模型,对于多输入多输出系统,不需要特殊的模型参数化;不需要使用非线性优化问题的迭代求解方法,只需要数值鲁棒性强的计算工具,如qr分解、奇异值分解等,运算快速。通过进行正交投影、加权映射、svd分解、确定阶数、获得状态序列估计、求解最小二乘问题等操作,辨识出k时刻本地受控系统矩阵[abcd],数据量满足要求时(至少2n+j-1个),该阶段终止,获得本地受控系统的状态空间矩阵,具体包括如下步骤:

s30、计算正交投影:

s31、对加权后的正交投影做svd分解:

s32、通过svd分解确定阶数,并求出u1和s1;

s33、通过下式求解γk和γk-1:

s34、通过下式求解

s35、通过求解下式最小二乘问题确定[abcd]:

步骤4,在云服务器中根据本地受控系统的状态空间矩阵,先利用系统辨识得到本地受控系统的数学模型,基于本地受控系统的数学模型,利用预测控制方法建立系统应满足的约束条件,计算出当前k时刻的最优预测控制序列uf,k=[u(k|k),u(k+1|k),…,u(k+n-1|k)]t,其中,“f”代表“future”即未来,u(k+i|k),i=0,1,…,n-1代表当前k时刻对此后第i个时刻的预测控制量;记录开始计算时的时刻t1,并将此序列和时刻t1打包发往本地受控系统。具体包括如下子步骤:

获得系统矩阵[abcd]后,求解最优预测控制序列。本地受控系统的模型为:

x(k+1)=ax(k)+bu(k);

y(k)=cx(k)+du(k).

其中x(k)为状态量,u(k)为控制量,y(k)为输出量;

所述系统的实际状态和控制约束为:

在满足控制约束的条件下,通过计算当前系统实际状态的最优化问题得到最优预测控制序列,所述最优化问题为:

s.t.x(k+i+1|k)=ax(k+i|k)+bu(k+i|k),i=0,1,…,n-2

x(k|k)=x(k)

x(k+i|k)∈x,i=1,2,…,n-1

u(k+i|k)∈u,i=0,1,…,n-1

其中u(k+i|k),i=0,1,…,n-1是优化问题的决策变量,由此得到最优预测控制序列。

步骤2-4算法流程如图3所示,离线数据准备和数据驱动算法都在云端加载,本地受控系统及相关机制部署在边缘,数据驱动预测云控制步骤包括云辨识和云控制。

步骤5,本地受控系统记录接收到最优预测控制序列时的时刻t2;由时刻t1和时刻t2算出网络时延τ;在最优预测控制序列中,从第ceil(τ)个分量开始作为实际施加的控制量,施加到本地受控系统,得到对应的输出信息;其中ceil(·)代表向上取整;将实际施加控制量和对应的输出信息一起返回云服务器,更新hankel矩阵;重复执行步骤3-5,直至实现稳定控制或重复次数达到设定值,实现数据驱动云控制。具体包括如下子步骤:

s50、时间标记:每一次循环中,本地向云端发送数据时,记录下本地发送时刻,并随数据包发送;云端计算得到控制序列后,与对应的本地发送时刻一齐发到本地端;

s51、时滞估计:本地接收到云端数据后,记录下接收时刻的值,计算发送时刻与接收时刻的时间差,选择控制序列中与当前时刻对应的控制量。具体说明如下,如图4所示,假定k时刻本地端发送本地受控系统的输出y(k)的时间为t1,测试步骤如下:

“本地-云端”发送的数据包为packet(y(k),t1);云控制器接收到后,取y(k)进行计算得到控制序列uf,k,“云端-本地”发送数据包为packet(uf,k,t1);本地收到数据包的时间为t2,取出uf,k和t1,计算网络时延:

其中,ts为本地受控系统采样时间,τ为单位数据延时。

理想状况下,k时刻云控制器产生的预测控制序列为:

u*(k)=[uk|k,uk+1|k,…,uk+n-1|k]t=[u(k,k),u(k+1,k),…,u(k+n-1,k)]=uf,k

理想情况下,认为不存在网络时延,在本地端接收到u*(k),亦即uf,k,可以选择uk|k作为系统输入量。但是事实上,由于网络传输延时和复杂算法执行耗时,测量值的发送和控制量的接收之间存在较大滞后。假定在k时刻,本地受控系统收到的最新的控制序列对应的测量数据发送时间为t1,当前时间为t2。可以算出t2时刻是t1时刻的未来τ步:

ceil代表向上取整。因此t1时刻的预测控制序列为

u*(k-τ)=[uk-τ|k-τ,uk-τ+1|k-τ,…,k-τ+n-1|k-τ]t=uf,k-τ

所以选择第τ+1个值,即uk|k-τ作为k时刻(t1时刻,当前时刻)系统的输入,即u(k)。需要说明的是控制步长n必须大于网络时延τ,才能保证有效的网络补偿。实际上,如图5所示,网络化控制系统中的数据传输时延包含三部分。以依次增大的a、b、c时刻为例,传感器到辨识器之间的网络时延a,称为上行时延。辨识器和控制器在同一计算节点中,不存在时延。辨识和控制算法的运行时延(b-a),称为计算时延。控制器到补偿器或执行器之间的时延(c-b),称为下行时延。因此系统输出y(k)到达控制器时,已经是a时刻以前的输出,而控制器计算得到的预测控制量已经是b时刻以前的系统输出对应的预测控制量,到达补偿器或执行器时,已经延至c时刻。而此时时延τ=c,当前时刻应该选择的控制量为u(k|k-c)。

为了进一步阐释本发明的应用,特设计子空间预测云控制球杆系统,其系统结构框图如图6所示。该系统由球杆机械部分、本地主机和云主机组成,实验目的是使小球到达横杆上某一指定位置,并停下来保持不变。本地主机负责球杆系统的小球位置测量、滤波和控制驱动,还有与云主机进行网络通信并对网络时延进行补偿;云主机运行数据驱动预测控制算法。系统的数据流传输路径如图7所示。其中球杆的测量、滤波和驱动由本地(localsimulink)负责,而与云端网络通信和网络时延补偿由本地(localpython)负责。云端(cloudpython)与localpython通信并运行控制算法。

本地的实验地点为北京,实验用的3台云主机申请自腾讯云服务,分别来自北京、广州、新加坡三个服务区。经测试,中国境内服务区的时延低至0.02s左右,不超过0.1s,而球杆系统的数据采样时间为0.02s,此时时延无需补偿,系统输出如图8所示。当云服务区位于新加坡,网络时延高达0.2s,网络时滞超过系统采样时刻的10倍,意味着必须进行补偿。设置子空间预测控制参数为n=40,j=20,系统输出如图9所示。在子空间预测控制算法实现过程中,需要先准备2n+j-1组输入输出序列,整个过程分为信息准备阶段和预测控制阶段,应用pid算法产生的准备信息能加快系统稳定。实验示范证明,“本地+云端”的网络化云控制具备确切的可实施性,子空间预测控制能有效解决一定程度的网络时滞。推广开来,在面对复杂的系统,仍具备很大的优越性。

综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1