一种非定常气动力模型参数预测方法与流程

文档序号:12271811阅读:来源:国知局

技术特征:

1.一种非定常气动力模型参数预测方法,其特征在于,包括:

获取大幅振荡风洞试验数据,包含三轴力系数、三轴力矩系数、俯仰角、转盘转角和尾撑支杆滚转角;

根据所述俯仰角、转盘转角和尾撑支杆滚转角获得气动力建模时相关参数,包括迎角和侧滑角;

选择极限学习机ELM非定常气动力模型的输入变量为:迎角、迎角的一阶导数、侧滑角和缩减频率,选择输出变量为:三轴力系数、三轴力矩系数,选择核函数为:高斯径向基核函数;

建立并求解ELM非定常气动力模型,根据风洞试验中获得的三轴力系数和三轴力矩系数,以及利用交叉验证方法优化ELM非定常气动力模型,判断建模精度是否达到要求,若达到要求则建模完成,否则重新利用交叉验证方法选择参数进行建模;

获取待预测数据,包括待预测的俯仰角、转盘转角和尾撑支杆滚转角;

根据所述待预测数据以及所述ELM非定常气动力模型获得与所述待预测数据对应的三轴力系数和三轴力矩系数。

2.如权利要求1所述的方法,其特征在于,步骤根据所述俯仰角、转盘转角和尾撑支杆滚转角获得气动力建模时相关参数具体包括:

对于俯仰振荡时,模型正装,所以模型迎角为机构俯仰角θg,模型侧滑角为转盘转角ψg

α=θg

β=ψg

对于偏航振荡,模型侧装,根据几何关系可知,模型的迎角为转盘转角ψg,模型的侧滑角为机构俯仰角θg

α=ψg

β=θg

对于滚转振荡,模型正装,由于机构具有俯仰角,所以会出现惯性耦合现象,即模型的迎角和侧滑角铰链在一块,通过几何关系推导,模型的迎角和侧滑角:

α=atan(cos(φg)·tan(θg))

β=asin(sin(φg)·sin(θg))

其中,φg为尾撑支杆滚转角。

3.如权利要求1所述的方法,其特征在于,建立所述ELM非定常气动力模型的步骤具体包括:

输入层有n个输入变量,隐含层有l个输入变量,输出层有m个输出变量;

设输入层与隐含层间的连接权值w为:

<mrow> <mi>w</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>w</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>w</mi> <mn>12</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>w</mi> <mrow> <mn>1</mn> <mi>n</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>w</mi> <mn>21</mn> </msub> </mtd> <mtd> <msub> <mi>w</mi> <mn>22</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>w</mi> <mrow> <mn>2</mn> <mi>n</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>w</mi> <mrow> <mi>l</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>w</mi> <mrow> <mi>l</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>w</mi> <mrow> <mi>l</mi> <mi>n</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>l</mi> <mo>&times;</mo> <mi>n</mi> </mrow> </msub> </mrow>

其中,wji表示输入层第i个输入变量与隐含层第j个输入变量之间的连接权值;

设隐含层与输出层间的连接权值β为:

<mrow> <mi>&beta;</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>&beta;</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>&beta;</mi> <mn>12</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>&beta;</mi> <mrow> <mn>1</mn> <mi>m</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>&beta;</mi> <mn>21</mn> </msub> </mtd> <mtd> <msub> <mi>&beta;</mi> <mn>22</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>&beta;</mi> <mrow> <mn>2</mn> <mi>m</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>&beta;</mi> <mrow> <mi>l</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>&beta;</mi> <mrow> <mi>l</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>&beta;</mi> <mrow> <mi>l</mi> <mi>m</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>l</mi> <mo>&times;</mo> <mi>m</mi> </mrow> </msub> </mrow>

其中,βjk表示隐含层第j个输入变量与输出层第k个输出变量之间的连接权值;

设隐含层输入变量的阈值b为:

<mrow> <mi>b</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>b</mi> <mn>1</mn> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>b</mi> <mn>2</mn> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>b</mi> <mi>l</mi> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>l</mi> <mo>&times;</mo> <mn>1</mn> </mrow> </msub> </mrow>

设具有Q个样本的训练集输入矩阵X和输出矩阵Y分别为:

<mrow> <mi>X</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>x</mi> <mn>12</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>x</mi> <mrow> <mn>1</mn> <mi>Q</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>x</mi> <mn>21</mn> </msub> </mtd> <mtd> <msub> <mi>x</mi> <mn>22</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>x</mi> <mrow> <mn>2</mn> <mi>Q</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>x</mi> <mrow> <mi>n</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>x</mi> <mrow> <mi>n</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>x</mi> <mrow> <mi>n</mi> <mi>Q</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>n</mi> <mo>&times;</mo> <mi>Q</mi> </mrow> </msub> </mrow>

<mrow> <mi>Y</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>y</mi> <mn>11</mn> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mn>12</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>y</mi> <mrow> <mn>1</mn> <mi>Q</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mn>21</mn> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mn>22</mn> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>y</mi> <mrow> <mn>2</mn> <mi>Q</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>y</mi> <mrow> <mi>m</mi> <mn>1</mn> </mrow> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mrow> <mi>m</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <msub> <mi>y</mi> <mrow> <mi>m</mi> <mi>Q</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>m</mi> <mo>&times;</mo> <mi>Q</mi> </mrow> </msub> </mrow>

设隐含层输入变量的激活函数为g(x),模型的输出T为:

T=[t1 t2 … tQ]m×Q

<mrow> <msub> <mi>t</mi> <mi>j</mi> </msub> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>t</mi> <mrow> <mn>1</mn> <mi>j</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <msub> <mi>t</mi> <mrow> <mn>2</mn> <mi>j</mi> </mrow> </msub> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>t</mi> <mrow> <mi>m</mi> <mi>j</mi> </mrow> </msub> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>m</mi> <mo>&times;</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <msub> <mi>&beta;</mi> <mrow> <mi>i</mi> <mn>1</mn> </mrow> </msub> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>i</mi> </msub> <msub> <mi>x</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <msub> <mi>&beta;</mi> <mrow> <mi>i</mi> <mn>2</mn> </mrow> </msub> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>i</mi> </msub> <msub> <mi>x</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <msub> <mi>&beta;</mi> <mrow> <mi>i</mi> <mi>m</mi> </mrow> </msub> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>i</mi> </msub> <msub> <mi>x</mi> <mi>j</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>m</mi> <mo>&times;</mo> <mn>1</mn> </mrow> </msub> <mo>,</mo> <mi>j</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>Q</mi> </mrow>

其中wi=[wi1 wi2 … win],xj=[x1j x2j … xnj]T,上式可写为:

Hβ=TT

其中,H称为隐含层输出矩阵,具体形式如下:

<mrow> <mi>H</mi> <mo>=</mo> <msub> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mn>1</mn> </msub> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>b</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>b</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>l</mi> </msub> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mn>1</mn> </msub> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>b</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>b</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>l</mi> </msub> <msub> <mi>x</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> <mtd> <mo>.</mo> </mtd> <mtd> <mrow></mrow> </mtd> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mn>1</mn> </msub> <msub> <mi>x</mi> <mi>Q</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mn>2</mn> </msub> <msub> <mi>x</mi> <mi>Q</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mn>...</mn> </mtd> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <msub> <mi>w</mi> <mi>l</mi> </msub> <msub> <mi>x</mi> <mi>Q</mi> </msub> <mo>+</mo> <msub> <mi>b</mi> <mi>l</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> <mrow> <mi>Q</mi> <mo>&times;</mo> <mi>l</mi> </mrow> </msub> </mrow>

当激活函数g(x)无限可微时,单隐含层前馈神经网络SLFN的参数并不需要全部进行调整,w和b在训练前可以随机选择,且在训练过程中保持不变,而隐含层与输出层间的连接权值β可通过求解一下方程组的最小二乘解获得:

<mrow> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mi>&beta;</mi> </munder> <mo>|</mo> <mo>|</mo> <mi>H</mi> <mi>&beta;</mi> <mo>-</mo> <msup> <mi>T</mi> <mi>T</mi> </msup> <mo>|</mo> <mo>|</mo> </mrow>

其解:

<mrow> <mover> <mi>&beta;</mi> <mo>^</mo> </mover> <mo>=</mo> <msup> <mi>H</mi> <mo>+</mo> </msup> <msup> <mi>T</mi> <mi>T</mi> </msup> </mrow>

H+取Moore-Penrose广义逆。

4.如权利要求1所述的方法,其特征在于,步骤利用交叉验证方法优化ELM非定常气动力模型具体包括:

模型的输入变量总数为n,将其随机分为q份,取q-1份作为训练样本,剩余的1份作为预测样本,同时给定预测精度阈值且初始预测精度为设隐含层输入变量的个数为[n(q-1)/10q,9n(q-1)/10q];

给定隐含层输入变量个数为Nhide=n(q-1)/10q,随机选取ELM模型的参数输入层与隐含层间的连接权值w和隐含层输入变量的阈值b,由交叉验证q次后给出预测值平均精度R2,若并将此时的Nhide、w和b记录;重复此步骤Nhide/5次;

增加隐含层输入变量个数Nhide=Nhide+2n(q-1)/25q,重新随机选择ELM模型的参数w和b,直至隐含层输入变量个数Nhide=n(q-1)/10q;

则建模结束,否则转入第一步继续。

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