一种自适应时域的事件触发模型预测控制方法
技术领域
本发明涉及工业过程控制技术领域,具体涉及一种自适应时域的事件触发模型预测控制方法。
背景技术
模型预测控制在处理多输入多输出和带有约束的系统方面具有优势,因而实际中被广泛的应用。其基本原理是在每个时刻在线求解一个凸优化问题,进而得到一列最优的控制量,最后将当前最优控制序列的第一个控制量用到被控对象上,此后时刻不断重复此过程。一方面由于每个时刻都需要在线求解凸优化问题,另一方面较大的预测时域,二者都会造成计算方面的负担,所以传统的模型预测控制方法需要很大的计算资源,从而在一定程度上阻碍了其更广泛的应用例如在伺服系统,无人驾驶等一些需要快速计算的系统。有一些方法去解决这样的计算负担问题,其中包括但不仅限于基于事件触发的模型预测控制方法。基于事件触发的模型预测只在一些设定的条件满足或违反时才会重新计算优化问题,因而很大程度的节约了计算资源。较为新颖的基于事件触发的模型预测控制存在以下不足之处:
1)预测时域固定不变,触发条件定义在终端约束集外。这样的方法不足之处在于大的预测时域会导致大的计算的负担且状态进入终端约束集内会导致事件频繁触发;
2)预测时域是自适应的,触发条件定义在终端约束集外。虽然预测时域会随着状态演化而减小,一定程度减少计算资源,但是触发条件在终端约束集内是不适用的,所以一旦状态进入终端约束集内会导致事件频繁地触发即频繁求解优化问题,又在一定程度上增加了计算负担;
3)预测时域是自适应的,触发条件在终端约束集内外各自定义。此方法在很大程度上降低了计算负担,但是需要采取额外的措施解决在终端约束集内外连续触发的问题。
发明内容
本发明提出的一种自适应时域的事件触发模型预测控制方法,可解决现有的事件触发的模型预测控制方法计算负担较大的技术问题。
为实现上述目的,本发明采用了以下技术方案:
一种自适应时域的事件触发模型预测控制方法,包括以下步骤:
S100、根据实际的被控对象,建立系统的离散时间数学模型;
S200、根据上述求得的数学模型,定义求解优化问题的代价函数;
S300、依据上述定义的代价函数,进而定义优化问题,以及系统的状态和控制输入的约束;
S400、基于S300建立自适应预测时域的数学表达;
S500、依据S300中求解优化问题得到的预测控制输入和状态序列构造系统整体的控制输入;
S600、根据S500中控制输入用到系统后得到的预测状态建立系统的触发条件;
S700、根据上述所有步骤,建立最终用到实际系统的基于自适应时域的事件触发模型预测控制算法。
进一步的,所述S100、根据实际的被控对象,建立系统的离散时间数学模型;
具体包括:
建立带有扰动的非线性系统的离散时间模型,其数学描述如式(1)所示:
x(k+1)=f(x(k),u(k))+w(k),k≥k0 (1)
其中,
k0是初始时刻,f是非线性函数;
x(k)∈Rn是当前k时刻的状态向量;
u(k)∈Rp是当前k时刻的控制输入向量;
w(k)∈Rm是当前k时刻的外部扰动;
设置
进一步的,所述S200、根据上述求得的数学模型,定义求解优化问题的代价函数;
其中,所述代价函数数学表达如式(2)所示:
其中,i=0,1,…,N-1,k+i表示k时刻以后的第k+i时刻;
N为正整数,是模型预测控制所采用的预测步长;
l(x,u)=xTQx+uTRu是阶段代价,xT,uT表示状态和控制输入向量的转置,Q,R是提前设定的分配给系统状态向量和输入向量的权重正定矩阵;
F(x)=xTPx是终端代价,P是离线计算出的正定矩阵。
进一步的,所述S300、依据上述定义的代价函数,进而定义优化问题,以及系统的状态和控制输入的约束;
具体包括:
求解使得上述定义的代价函数最小的控制序列
其中,
当前k时刻对k+i时刻的预测状态向量
进一步的,S400、基于S300建立自适应预测时域的数学表达;
其中数学表达式为:
N(ki+1)=max{N*(ki)-△(ki)+1,0} (4)
其中,
ki是某一触发时刻,ki+1是下一触发时刻;
△(ki)=ki+1-ki表示的是两个相邻触发时刻的差;
N*(ki)是当前ki时刻状态值首次进入到终端约束集的步数,即
N(ki)是当前ki时刻的预测步长,N(ki+1)则是下一触发时刻ki+1的预测步长。
进一步的,所述S500、依据S300中求解优化问题得到的预测控制输入和状态序列构造系统整体的控制输入;
具体包括:
设初始时刻给出一个固定的正整数预测步长记为Nmax,则:
那么预测状态值为:
其中,
κ(x)是离线计算得到的局部控制输入;当前ki时刻的在线优化计算的步长是N(ki),在线优化得到N(ki)个最优控制输入
进一步的,S600、根据S500中控制输入用到系统后得到的预测状态建立系统的触发条件;
包括:
如式(7)所示:
其中
∈是定义另一状态约束范围得到,定义另一状态向量的约束:φ={x:‖x‖P≤∈},其中∈<f,离线计算得到辅助控住律k(x),并使得对于全部的x∈Xf,f(x,κ(x))∈φ都成立,从而得到约束集φ;
Lx是系统的局部Lipschitz常数;
‖w‖P是外界扰动的范数最大值且满足:
Nmax是最初设定的总的步长,为正整数;
N0是最初设定的使得给定的初始状态值能够到达终端约束集的预测步长,满足N0≤Nmax;
如果在某一时刻k,(7)式中任意一个条件不满足,则重新设定下一触发时刻ki+1=k。
进一步的,S700、根据上述所有步骤,建立最终用到实际系统的基于自适应时域的事件触发模型预测控制算法;
具体包括以下步骤:
S701:初始化系统的状态值x(k0),给定初始的预测步长N0,初始的总的步长Nmax;
S702:在每一触发时刻k=ki,初始化状态值:
S703:判断N(ki)的值,如果N(ki)=0,则进入S704;否则,根据(3)式求解优化问题,进而得到最优控制输入
S704:根据(5)计算长度为Nmax-N(ki)的控制输入,进而得到总的控制输入
S705:在当前ki时刻,应用控制输入
S706:判断触发条件(7)是否违反,是,则令ki+1=k且i=i+1,回到S702;否,回到S705。
由上述技术方案可知,本发明的自适应时域的事件触发模型预测控制方法具有以下有益效果:
1.预测时域是自适应的,随着状态值越靠近终端约束集,预测时域越小,在线优化计算频率越低,大大降低计算负担。
2.触发条件在终端约束集内外是统一的,在终端约束集内触发条件仍然有效,解决了上述提出的连续触发问题。
3.不需要两个触发时刻之间的间隔必须小于预测时域的条件,从而更大了降低了计算负担。
附图说明
图1是本发明的结构示意图。
图2是本发明实施例中涉及的总步长Nmax,在线优化计算自适应步长N(ki)以及相邻两触发时刻差△(ki)的关系示意图;
图3是本发明的预测时域图和触发时刻图;
图4是本发明实施例与传统固定时域算法的计算耗时对比。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
如图1所示,本实施例所述的自适应时域的事件触发模型预测控制方法,包括以下步骤:
S100、根据实际的被控对象,建立系统的离散时间数学模型;
S200、根据上述求得的数学模型,定义求解优化问题的代价函数;
S300、依据上述定义的代价函数,进而定义优化问题,以及系统的状态和控制输入的约束;
S400、基于S300建立自适应预测时域的数学表达;
S500、依据S300中求解优化问题得到的预测控制输入和状态序列构造系统整体的控制输入;
S600、根据S500中控制输入用到系统后得到的预测状态建立系统的触发条件;
S700、根据上述所有步骤,建立最终用到实际系统的基于自适应时域的事件触发模型预测控制算法。
以下结合图2,对应上述步骤分别展开具体说明:
步骤1:建立带有扰动的非线性系统的离散时间模型,其数学描述如式(1)所示:
x(k+1)=f(x(k),u(k))+w(k),k≥k0 (1)
其中,
k0是初始时刻,f是非线性函数;
x(k)∈Rn是当前k时刻的状态向量;
u(k)∈Rp是当前k时刻的控制输入向量;
w(k)∈Rm是当前k时刻的外部扰动。
考虑到实际控制过程对控制输入大小有一定的要求,这里设置
步骤2.建立求解有限时域优化问题所需要的代价函数,其中可以改变代价函数的参数矩阵,进而改变状态变量和控制输入的权重。代价函数数学表达如式(2)所示:
其中,i=0,1,…,N-1,k+i表示k时刻以后的第k+i时刻;N为正整数,是模型预测控制所采用的预测步长,将通过下述算法获得;
步骤3.定义需要在线计算的优化问题,此优化问题具体可以通过matlab中的fmincon函数来在线求解,即求解使得上述定义的代价函数最小的控制序列
其中,
当前k时刻对k+i时刻的预测状态向量
步骤:4:建立自适应预测时域的数学表达:
N(ko+1)=max{N*(ki)-△(ki)+1,0} (4)
其中,
ki是某一触发时刻,ki+1是下一触发时刻;△(ki)=ki+1-ki表示的是两个相邻触发时刻的差;N*(ki)是当前ki时刻状态值首次进入到终端约束集的步数,即
步骤5:建立优化过程中系统需要的控制输入和由此得到的状态值的数学表达。在步骤4中给出了在线求解优化问题的预测步长N(ki+1),但是当预测步长减为0后,即状态进入终端约束集后,优化问题将不再求解,则没有控制输入,所以需要额外给出此时的控制输入,初始时刻给出一个固定的正整数预测步长记为Nmax,则:
那么预测状态值为:
其中,
κ(x)是离线计算得到的局部控制输入。当前ki时刻的在线优化计算的步长是N(ki),在线优化得到N(ki)个最优控制输入
步骤:6:建立基于事件触发的模型预测控制的触发条件,如式(7)所示:
其中
如果在某一时刻k,(7)式中任意一个条件不满足,则重新设定下一触发时刻ki+1=k。
步骤7:根据上述步骤,建立基于自适应时域的事件触发模型预测控制算法,整个算法的具体步骤如下所示:
S1:初始化系统的状态值x(k0),给定初始的预测步长N0,初始的总的步长Nmax。
S2:在每一触发时刻k=ki,初始化状态值:
S3:判断N(ki)的值,如果N(ki)=0,则进入S4;否则,根据(3)式求解优化问题,进而得到最优控制输入
S4:根据(5)计算长度为Nmax-N(ki)的控制输入,进而得到总的控制输入
S5:在当前ki时刻,应用控制输入
S6:判断触发条件(7)是否违反,是,则令ki+1=k且i=i+1,回到S2;否,回到S5。
以下举例说明:
考虑工业控制中的一个搅拌釜反应器:
存在的问题:传统的应用模型预测控制需要不断的在计算机上求解优化问题,进而使得反应器内的浓度和温度达到指定的温度,由于优化问题中一方面预测时域固定,另一方面每个时刻都要求解,导致十分消耗计算机资源,计算压力大。
具体应用过程如下:
建立搅拌釜反应器的连续时间数学模型为:
利用欧拉近似采样时间为0.3s进而离散化得到系统的离散时间模型(1)。其中CA是反应器的浓度,T,Tc分别是反应器和冷却剂的温度。W={w∈R2:||w||P≤0.0015}。控制目标是使得反应器的浓度维持在
反应器其他的参数见下表:
表1.搅拌釜反应器系统参数
建立系统的代价函数(2)为:
其中式中阶段代价和终端代价设置为:
辅助控制律设计为:κ(x)=[-105.5642 -3.0915]x,依据实际物理模型得到系统的控住约束集为:U={Tc:280K≤Tc≤370K},终端约束集为:Xf={x:xTPx≤1.4832}。初始的预测时域N(k0)=12,最大预测状态和控制序列长度是Nmax=30。
通过仿真实验表明本发明实施的方法可以自适应的调整预测时域,预测时域是递减的,并且当系统状态进入终端约束集Xf后预测时域减为0,如图3所示;另一方面触发优化问题的求解的触发间隔也是非常大的,如图3所示;整体的计算时间(算法1)与传统的模型预测控制(周期MPC)比较如图4所示,可以看出本发明的计算时间大大缩小,可以实现更为高效的计算过程。
综上所述,本发明将优化问题的计算中导致消耗计算资源的固定预测时域和固定计算时刻改成了自适应预测时域和事件触发计算,一方面降低了计算难度另一方面降低计算频率,从而使得利用模型预测控制的计算时间大幅度减小,实现更高效的控制。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。