四旋翼飞行器模型、辨识方法、系统及存储介质与流程

文档序号:21813723发布日期:2020-08-11 21:20阅读:280来源:国知局
四旋翼飞行器模型、辨识方法、系统及存储介质与流程

本发明涉及非线性系统建模领域,特别是一种四旋翼飞行器模型、辨识方法、系统及存储介质。



背景技术:

实际中被控对象种类繁多,同时特性往往十分复杂,具有工作点时变、滞后、欠驱动、强耦合等非线性特性,尤其是面对多输入多输出的对象时难度更大,如四旋翼飞行器。对于四旋翼飞行器,可以通过系统辨识方法获得该被控对象非线性动态特性的精确模型,并设计基于该模型的先进控制策略。系统辨识模型相对于机理数学模型的优势在于系统辨识得到的模型适用范围广,抗干扰性更强,对物理结构分析依赖性不强,得到模型的代价更小等,具有很好的应用前景。

在系统辨识中,解决非线性问题建模的思路可以分为三类。第一类是分段线性化,即分段构造多个线性模型,然后求解多个二次规划问题或者线性矩阵不等式,然而这种做法很难确定分段的区间和位置,在实际应用中有很大的难度;第二类是用直接使用非线性模型在线求解一个高阶的带约束的非线性优化问题,造成的问题则是计算量大,并且在实际控制中不能保证一定有可行解;第三类方法是使用局部线性化的方法,用一个离线辨识的全局非线性、局部线性模型或者在线辨识的仿射模型来描述非线性被控对象,然后在线求解一个qp问题来得到最优控制率。在实际应用中,快速精确地拟合出一个精度很高的模型非常困难,而一般的复杂系统都具有时变工作点,并且可以由一个局部线性模型很好地描述每个工作点处的动态特性。

神经网络和sd-arx结合是局部线性化模型的一种,如rbf-arx,dbn-arx等,神经网络具有强大的拟合能力,模型结构灵活多变,同时可以很方便地使用反向传播算法得到优化参数。由于四旋翼飞行器是多输入多输出且高度耦合的系统,即使是选择系统辨识的方法也需要做大量的工作,同时需要建立多个模型,其中最简单的便是通过四个电机的电压去控制俯仰角、翻滚角和偏航角的四输入三输出的系统,而通过多任务学习和参数共享可以减少参数并且简化建模的过程,多任务学习中的hard-parametersharing在不同的通道有共同的特征共享层,这种设计在一定程度上可以减少过拟合的风险,增强网络的泛化能力,但是多任务学习需要确定每个单任务损失函数的比重,如果设置不当,可能会出现模型精度不高的现象。



技术实现要素:

本发明所要解决的技术问题是,针对现有技术不足,提供一种四旋翼飞行器模型、辨识方法、系统及存储介质,提高模型预测精度。

为解决上述技术问题,本发明所采用的技术方案是:一种四旋翼飞行器mtmlp-arx模型,该模型表达式为:

其中,c表示当前时刻四旋翼飞行器的第c个输出通道,c1表示历史时刻四旋翼飞行器的第c1个输出通道,c2表示历史时刻四旋翼飞行器输入的第c2个,no,ni分别为四旋翼飞行器的输出通道个数和输入个数;yc(t)∈r为t时刻四旋翼飞行器的第c个通道输出值,即第c个通道预测输出,且有分别是t-x时刻四旋翼飞行器的第1,……,no个通道输出值;为系统t-k2时刻第c2个输入值;ε(t)∈r为高斯白噪声;p和q分别为mtmlp-arx模型的输出阶次和输入阶次;为mtmlp-arx模型第c个通道输出中的常数项;为mtmlp-arx模型第c个通道输出中的系数;为mtmlp-arx模型第c个通道输出中的系数;α,β分别表示mtmlp神经网络参数非共享部分和参数共享部分;nβ分别表示mtmlp神经网络参数非共享部分c输出通道和参数共享部分的网络层数;lα,lβ分别表示mtmlp神经网络参数非共享部分和参数共享部分的第l层;jα,jβ分别表示mtmlp神经网络参数非共享部分和参数共享部分的当前层第j个神经元;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l层神经元个数;mtmlp神经网络参数非共享部分和参数共享部分的激活函数φ(x)都为relu函数;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l-1层所有神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数非共享部分c输出通道第l-1层第1,2,……,个神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数共享部分第l-1层第1,2,……,个神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l-1层所有神经元连接l层第j个神经元的偏置;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l层所有神经元的输出,为mtmlp神经网络参数共享部分第nβ层所有神经元的输出;分别为mtmlp神经网络参数非共享部分c输出通道l-1层第1,2,……,个神经元连接l层第j个神经元的权重,分别为mtmlp神经网络参数共享部分l-1层第1,2,……,个神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数非共享部分c输出通道第l层第1,jα,……,个神经元的输出,分别为mtmlp神经网络参数共享部分第l层第1,jβ,……,个神经元的输出;w(t-1)为mtmlp-arx模型的输入状态向量,由四旋翼飞行器的历史输出数据构成。

本发明建立的四旋翼飞行器mtmlp-arx模型相对其它单任务模型,可以在参数更少的情况下获得泛化性能更好的结果。

所述mtmlp神经网络包括:

输入层,用于接收输入状态向量w(t-1);

多个共享层,用于对所述输入状态向量w(t-1)进行处理,通过激活函数计算的值,得到当前共享层的状态f1后,输入到下一共享层,在下一个共享层通过激活函数计算得到下一共享层的状态f2,依此类推,直到最后一个共享层得到mtmlp神经网络参数共享部分第nβ层所有神经元的输出

多个输出通道,每个输出通道包括多个非共享层,且每个输出通道第一层均与最后一个共享层连接,每个非共享层通过激活函数计算的值,得到非共享层c输出通道第lα层的状态后,输入到c输出通道的第lα+1层,得到c输出通道第lα+1层的状态依此类推,直到得到c输出通道最后一层的状态;

输出层,用于根据每个非共享层中每个输出通道的输出,获取t时刻四旋翼飞行器的第1,……,no个通道输出值y1(t),……,本发明的mtmlp神经网络可以减少过拟合的风险,增强网络的泛化能力。

本发明还提供了一种上述四旋翼飞行器模型的辨识方法,包括以下步骤:

1)对所述模型进行前向运算,得到四旋翼飞行器的预测输出,以预测输出和期望输出的结构风险损失函数最小化为目标,获取模型的最优参数;

2)根据所述最优参数,计算所述模型的输出预测值和损失函数值;

3)重复步骤1)和步骤2),选择当损失函数值最小时的输入阶次和输出阶次,并将损失函数值最小时的模型结构作为当前结构。

为了进一步提高模型辨识精度,本发明步骤3)之后,还包括:

4)重复步骤1)~步骤3),选择不同输入阶次和输出阶次、不同mtmlp网络结构组合下使损失函数最小的结构组合作为最终的模型。

步骤1)中,对所述模型进行前向运算的具体实现过程包括:

a)输入状态向量w(t-1),初始化f0=w(t-1),初始化mtmlp神经网络参数;

b)令lα=1,lβ=1;

c)计算

d)根据h0按照从mtmlp神经网络的最底层到最高层的顺序,计算mtmlp神经网络c输出通道最后一层的第k个输出值即得到

a)利用计算预测输出yc(t)。

本发明参数共享的前向运算,可以在节省内存资源的同时,提高运算效率。

步骤1)中,所述的最优参数的计算过程包括:

1)定义第一结构风险损失函数其中,ηc为c输出通道的比例系数,且有no为输出通道的个数,nc为c输出通道最优参数w的个数,λc为c输出通道正则化系数,为c输出通道的期望输出,通过下式更新最优参数w并固化最优参数w:其中α为学习率;

2)定义第二结构风险损失函数:其中,lc为c输出通道的损失函数,通过下式更新非共享参数wc其中αc为c输出通道的学习率,α>αc,wc为参数w的非共享部分。

可见,本发明分为两个阶段优化模型,第一阶段使用较大的学习率粗调,第二阶段在固定共享参数后使用变学习率进行精调,以得到更好的建模效果。

作为一个发明构思,本发明还提供了一种上述模型的辨识系统,其包括计算机设备;所述计算机设备被编程或配置为执行本发明方法的步骤。

作为一个发明构思,本发明还提供了一种计算机存储介质,其存储有程序;该程序用于执行本发明方法的步骤。

与现有技术相比,本发明所具有的有益效果为:

1、本发明结合mtmlp(多任务多层感知机)和sd-arx(带外生变量的状态相依自回归模型,即yc(t)的表达式)的优点,通过在mtmlp-arx模型中共享四旋翼飞行器不同输出通道的参数,在减少了模型参数的同时也简化了模型,这种参数共享方式同时增强了模型的泛化能力;

2、在模型优化时,分为两个阶段,一阶段使用较大的学习率粗调,二阶段在固定共享参数后使用变学习率进行精调以得到更好的建模效果;

3、mtmlp-arx模型也可应用于其它类似的多输入多输出对象,具有较高的价值和应用前景。

附图说明

图1为本发明中四旋翼飞行器系统的mtmlp-arx模型参数辨识的流程图;

图1流程图展示了本发明模型参数辨识过程,可以看出,整个辨识过程需要调整模型中网络结构和模型阶次两部分,即选择不同网络和不同阶次,之后计算模型的损失函数并进行优化,比较不同网络和不同阶次下的结果或者使损失函数值下降到一定阈值,最后返回对应模型的网络参数和阶次。

图2为本发明中四旋翼飞行器系统的mtmlp-arx模型结构图。

如图2所示,在输入状态向量w(t-1)后,首先经过mtmlp网络的共享层(即图中的下半部分),随后网络开始分成几个分网络去拟合不同的输出,即mtmlp网络的非共享层,可以看出,mtmlp网络共享层的最后一层输出作为非共享层的第一层输入继续计算,在mtmlp网络非共享部分最后一层输出后和对应的历史输入输出数据相乘求和即得到了最后通道输出的预测值。

具体实施方式

针对多输入多输出的四旋翼飞行器,构建初始的mtmlp-arx模型,并确定初始的输入阶次p、输出阶次q和状态向量维数d;

其中,c表示当前时刻四旋翼飞行器的第c个输出通道,c1表示历史时刻四旋翼飞行器的第c1个输出通道,c2表示历史时刻四旋翼飞行器输入的第c2个,no,ni分别为四旋翼飞行器的输出通道个数和输入个数;yc(t)∈r为t时刻四旋翼飞行器的第c个通道输出值,即第c个通道预测输出,且有分别是t-x时刻四旋翼飞行器的第1,……,no个通道输出值;为系统t-k2时刻第c2个输入值;ε(t)∈r为高斯白噪声;p和q分别为mtmlp-arx模型的输出阶次和输入阶次;为mtmlp-arx模型第c个通道输出中的常数项;为mtmlp-arx模型第c个通道输出中的系数;为mtmlp-arx模型第c个通道输出中的系数;α,β分别表示mtmlp神经网络参数非共享部分和参数共享部分;nβ分别表示mtmlp神经网络参数非共享部分c输出通道和参数共享部分的网络层数;lα,lβ分别表示mtmlp神经网络参数非共享部分和参数共享部分的第l层;jα,jβ分别表示mtmlp神经网络参数非共享部分和参数共享部分的当前层第j个神经元;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l层神经元个数;mtmlp神经网络参数非共享部分和参数共享部分的激活函数都为relu函数;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l-1层所有神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数非共享部分c输出通道第l-1层第1,2,……,个神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数共享部分第l-1层第1,2,……,个神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l-1层所有神经元连接l层第j个神经元的偏置;分别为mtmlp神经网络参数非共享部分c输出通道和参数共享部分第l层所有神经元的输出,为mtmlp神经网络参数共享部分第nβ层所有神经元的输出;分别为mtmlp神经网络参数非共享部分c输出通道l-1层第1,2,……,个神经元连接l层第j个神经元的权重,分别为mtmlp神经网络参数共享部分l-1层第1,2,……,个神经元连接l层第j个神经元的权重;分别为mtmlp神经网络参数非共享部分c输出通道第l层第1,jα,……,个神经元的输出,分别为mtmlp神经网络参数共享部分第l层第1,jβ,……,个神经元的输出;w(t-1)为mtmlp-arx模型的输入状态向量,由四旋翼飞行器的历史输出数据构成。

1)构造完四旋翼飞行器mtmlp-arx模型后,对模型进行前向运算,前向运算的过程如下:

输入:状态向量w(t-1)

过程:

a:初始化f0=w(t-1),同时通过xavier分布对mtmlp网络进行参数初始化,xavier分布如下:

其中nj和nj+1分别为输入到本层的节点数和本层输出的节点数。xavier在很大程度上保证了输入输出数据的均值以及方差一致,加快了网络的收敛。b:对网络共享部分和非共享部分依次进行前向运算,先计算再得到最后得到yc(t),其中,共享部分和非共享部分的网络层数并不固定,可以更具实际效果调整。

c:得到预测输出yc(t)后,构造两个阶段的结构风险损失函数如下:

第一阶段:

第二阶段:

其中,第一阶段对共享参数共同训练,第二阶段固定共享参数并分别微调每个通道独有的参数,优化通过梯度下降算法或者改进的梯度下降算法最小化损失函数l并不断更新参数w,这里以adam算法为例:

adam算法是自适应学习率优化算法的一种,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,在优化后期能够达到更高的精度,公式如下:

其中α为学习率,gt为一批n个数据的梯度,mt和nt分别为对梯度的一阶矩估计和二阶矩估计,n表示每次选择数据的批量大小,θ表示模型中的参数,ε一般设为一个极小的值,目的是防止分母为0,μ和v是两个比例系数,一般为0.9和0.9999。adam算法对内存需求小,并且为不同的参数设置了不同的学习率。通过adam优化器不断更新迭代直到损失函数达到要求或者不再降低,即得到了最优模型。

本发明中,α>αc,wc为参数w的非共享部分,例如,对应的mtmlp网络有两层,网络中所有的参数用w表示,w=[w1,w21,w22,w23],w1为第1层共享参数,w21,w22,w23分别表示第2层第1,2,3个输出通道的参数,且有wc=[w21,w22,w23]

2)在得到最优参数的情况下通过前向运算计算出测试数据的预测值和损失函数值即执行上述步骤b中前向部分,不进行反向传播。

3)重复步骤1)和步骤2),选择不同阶次组合下损失函数最小的阶次组合作为当前模型阶次,并改变四旋翼飞行器mtmlp-arx模型中网络结构,如增减mlp的隐层数目,增减单层神经元数目等。比较在当前阶次下不同结构的损失函数大小,并选取损失函数值为最小情况下的结构作为当前结构;

4)重复上述步骤,选择不同阶次、mtmlp网络结构组合下损失函数最小的组合作为最终模型,得到的四旋翼飞行器mtmlp-arx模型的表达式如下:

其中,为训练好的mtmlp神经网络前向运算得到的输出值,yc(t)为模型输出值,且有

1≤k1≤p,1≤k2≤q,1≤c1≤no,1≤c2≤ni。

上述步骤3)和步骤4)中,步骤的重复次数(迭代次数)根据实际需要人为给定。

如图2,本发明实施例的mtmlp神经网络包括:

输入层,用于接收输入状态向量w(t-1);

多个共享层,用于对所述输入状态向量w(t-1)进行处理,通过激活函数计算的值,得到当前共享层的状态f1后,输入到下一共享层,在下一个共享层通过激活函数计算得到下一共享层的状态f2,依此类推,直到最后一个共享层得到mtmlp神经网络参数共享部分第nβ层所有神经元的输出

多个输出通道,每个输出通道包括多个非共享层,且每个输出通道第一层均与最后一个共享层连接,每个非共享层通过激活函数计算的值,得到非共享层c输出通道第lα层的状态后,输入到c输出通道的第lα+1层,得到c输出通道第lα+1层的状态依此类推,直到得到c输出通道最后一层的状态;

输出层,用于根据每个非共享层中每个输出通道的输出,获取t时刻四旋翼飞行器的第1,……,no个输出值y1(t),……,

本发明另一实施例还提供了模型的辨识系统,包括计算机设备;所述计算机设备被编程或配置为执行本发明方法的步骤。

本发明另一实施例还提供了一种计算机存储介质,该存储介质存储有用于执行本发明方法步骤的程序。

可以看出,通过结合mtmlp和sd-arx的优点,相比现有方法,对于四旋翼飞行器这种多输出的对象可以在减少参数提高建模效率的同时增强模型的泛化能力,具有较高的价值和应用前景。

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