一种无人机非线性数学模型建立方法与流程

文档序号:12062638阅读:2232来源:国知局
一种无人机非线性数学模型建立方法与流程

本发明属于飞行器建模仿真领域,特别是基于Simulink/S-function的模型的构建方法。



背景技术:

建立被控对象的数学模型是无人机飞行控制律设计以及仿真试验的基础。Simulink作为对MATLAB语言运算环境的扩展,在保持MATLAB一般性能基础上,结合工具箱的使用,可以完成对连续系统、离散系统、连续与离散混合系统的动态性能的仿真与分析,并且可以观察仿真的执行过程,由于其强大的仿真功能,使其成为无人机建模仿真领域的首选语言。Simulink中的S-Function模块提供了灵活的建模机制,使用特定的语法使动态系统具有交互功能,允许用户按自己的需要方便地创建任意可以由算法描述的系统模块。较之使用Simulink内嵌模块库中的模块,使用Simulink/S-Function进行无人机非线性数学模型的建立能够更好的适应各种不同无人机模型,因此被广泛采用。

S-Function均采用约定的函数形式,每个S-Function均需定义系统的输入变量u,输出变量y,状态变量x。在使用S-Function建立无人机非线性数学模型时,主要通过编写初始化(mdlInitializeSizes)、连续状态更新(mdlDerivatives)以及输出计算(mdlOutputs)这三个函数实现。

其中,初始化函数(mdlInitializeSizes)中需对模型中的输入变量个数、输出变量个数以及状态变量个数进行确定,并针对模型初始状态对状态变量进行初始化处理。通常在建立无人机非线性数学模型时,输入变量定义为各舵面偏度、发动机控制量、起落架状态以及三轴风扰动,状态变量定义为飞机的三轴位置、速度、角速度以及姿态角,输出变量按系统设计需要定义,通常在状态变量的基础上增加迎角、侧滑角等物理量。输出计算函数(mdlOutputs)中根据系统状态变量对系统的输出变量进行计算并输出。而连续状态更新函数(mdlDerivatives)中对系统的状态变量进行计算和更新以便Simulink对各状态进行数值积分解算,是建立数学模型的主要部分和关键。通常的连续状态更新函数的实现方式如下:首先根据无人机与气动相关的当前状态,包括迎角、侧滑角、高度、马赫数、起落架状态、各舵面偏度等,根据吹风数据获得各气动力和力矩导数,计算气动力和力矩;进而根据与发动机动力模型相关的当前状态,包括高度、马赫数、发动机油门控制量等,由动力模型解算发 动机推力以及耗油率;然后根据与飞机本体特性模型相关的当前状态,包括起落架状态、油量状态等,由飞机本体特性模型解算飞机当前质量、质心位置和转动惯量和惯性积;综合上述数据,求得无人机合外力与合外力矩;最终在此基础上,在选择适当的坐标系的前提下,根据六自由度动力学和运动学方程,求取无人机各状态量导数,通常包括三轴速度分量、三轴角速度分量、三轴位置、三轴姿态角,即更新连续状态并输出至函数返回值。其中,在计算气动模型、发动机动力模型时,对于建模精度要求不高的无人机而言,一般采用忽略次要因素后通过数据拟合后的函数解算各特性,而对于建模精度要求较高的无人机而言,一般采用数组存储各数据表格并通过插值函数运算的方式实现。

上述的建模方法存在以下不足:当对不同无人机构建其数学模型时,由于气动特性、动力特性以及飞机本体特性均不同,建模时均需重复以上过程,过程复杂,代码工作量大,效率较低;对于建模精度要求较高的无人机而言,尤其是大包线多操纵面无人机,由于状态量变化范围较大,控制舵面的耦合,气动特性和动力特性均很复杂,则吹风数据以及发动机动力模型数据均采用多维表格的形式,表格维数和数量均很多,数据量庞大,使用数组存储以及手动编程的方法不但工作量大,还容易出现不易发现的数据错误,导致仿真模型丧失原本该具有的精度。



技术实现要素:

本发明的目的是提供一种无人机非线性数学模型建立方法,基于Simulink/S-function实现,可适用于各种无人机数学建模和仿真。本发明所建立的无人机非线性数学模型的输入和输出状态与通常的无人机非线性数学模型相同,即可实现通常意义下的无人机非线性数学模型的全部功能,内部通过综合数据解算模型和动力学、运动学及质量状态解算模型两部分实现将气动特性、动力特性以及飞机本体特性等与具体飞机特性相关的解算从由S-function实现的模型中分离出来,转为由Simulink内嵌模块实现。

本发明的一种无人机非线性数学模型建立方法,通过以下步骤实现:

步骤一:建立综合数据解算模型,利用Simulink内嵌模块库中的多维插值模块进行气动模型、发动机动力模型、飞机本体特性模型的解算和封装。其中,各多维数据表由变量形式定义,通过配置文件载入具体数值。

综合数据解算模型的输入为:

高度H、马赫数Ma、迎角α、侧滑角β、飞机质量M、各舵面偏度δi(i=1……n,n 为舵面个数)、发动机控制量δp,起落架状态UCStatus;

综合数据解算模型的输出为:

气动系数,包括升力系数CL、阻力系数CD、侧力系数CC、俯仰力矩系数Cm、滚转力矩系数Cl、偏航力矩系数Cn、俯仰阻尼导数Cmq、滚转阻尼导数Clp、偏航交感导数Cnp、偏航阻尼导数Cnr、滚转交感导数Clr;动力参数,包括推力P、耗油率Q;重心位置,包括X轴重心位置Xt、Y轴重心位置Yt、Z轴重心位置Zt;转动惯量及惯性积,包括X轴转动惯量Ix、Y轴转动惯量Iy、Z轴转动惯量I、X轴与Z轴惯性积Ixz;几何参数,包括翼展l、平均空气动力弦长bA、参考面积S、发动机推力线偏心距yP、推力线与机体纵轴夹角

步骤二:定义动力学、运动学及质量状态解算模型,利用Simulink/S-function实现,使用英美坐标系。

定义动力学、运动学及质量状态解算模型输入变量为:

综合数据解算模型的输出,即包括气动系数、动力参数、重心位置、转动惯量及惯性积以及几何参数。除此之外,还包括三轴风干扰,即X轴风速Vwx、Y轴风速Vwy、Z轴风速Vwz

定义动力学、运动学及质量状态解算模型状态变量为:

机体坐标系下三轴速度分量,包括X轴速度u、Y轴速度v、Z轴速度w;机体坐标系下三轴角速度分量,包括X轴角速度p、Y轴角速度q、Z轴角速度r;地理坐标系下三轴位置分量,包括X轴位置xd、Y轴位置yd、Z轴位置zd;机体坐标系与地理坐标之间的关系即三轴姿态角,包括俯仰角θ、滚转角φ、偏航角飞机质量M。

定义动力学、运动学及质量状态解算模型输出变量为:

系统的状态变量,即三轴速度分量、三轴角速度分量、三轴位置分量、三轴姿态角、飞机质量;除此之外,还应包括高度H、马赫数Ma、迎角α、侧滑角β。

步骤三:实现动力学、运动学及质量状态解算模型的初始化函数(mdlInitializeSizes),根据步骤二中定义对无人机动力学、运动学及质量状态解算模型的输入变量个数、输出变量个数以及状态变量个数进行确定,并根据模型初始状态对状态变量进行初始化处理。

步骤四:实现动力学、运动学及质量状态解算模型的连续状态更新函数(mdlDerivatives)。首先根据当前的速度以及模型输入三轴风干扰计算空速Vk,迎角α、侧 滑角β。然后根据输入的气动系数计算相应的气动力和力矩;然后根据机体坐标系下无人机动力学和运动学方程解算三轴速度分量、三轴角速度分量、三轴位置分量、三轴姿态角的状态量导数;然后根据输入的耗油率计算无人机质量状态的导数;最后更新十三个状态量的导数并输出至函数返回值。

步骤五:实现动力学、运动学及质量状态解算模型的输出计算函数(mdlOutputs)。根据飞机状态变量以及系统输出变量的定义,输出相应的物理量至函数返回值。

步骤六:连接综合数据解算模型以及动力学、运动学及质量状态解算模型,将综合数据解算模型的输出作为动力学和运动学解算模型的输入,再进行封装形成完整的无人机非线性数学模型。

本发明的优点在于:

(1)通过建立综合数据解算模型,将气动特性、动力特性以及飞机本体特性等与具体飞机特性相关的解算从模型中分离出来,而所建立的动力学和运动学解算模型,在针对不同的无人机进行建模时可以完全重用,降低了代码之间的耦合度,减少了建模工作量;

(2)综合数据解算模型通过Simulink内嵌模块库中的多维插值模块进行数据处理,无需编制程序,并通过配置文件载入具体数值,可处理多维数大规模的数据量,降低了由于编码失误造成的风险;

(3)所建立的动力学、运动学及质量状态解算模型中相对于通常的12维方程组增加了质量状态变量方程,将飞行过程中的由于发动机耗油率引起的质量变化与其他状态统一考虑,方程更具合理性和实用性。

附图说明

图1是本发明无人机非线性数学模型的结构示意;

图2是本发明所提供的基于Simulink/S-Function进行的无人机非线性数学模型建立方法流程。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。

由图1所示,本发明所建立的无人机非线性数学模型包括两部分:综合数据解算模型和动力学、运动学及质量状态解算模型。其中,综合数据解算模型主要用于根据飞机当前状态以及吹风数据、动力模型数据以及飞机本体特性模型数据解算模型解算中所需参数。综合数 据解算模型的输入包括高度H、马赫数Ma、迎角α、侧滑角β、飞机质量M、各舵面偏度δi(i=1……n,n为舵面个数)、发动机控制量δp,起落架状态UCStatus。综合数据解算模型的输出包括气动系数、动力参数、重心位置、转动惯量及惯性积以及几何参数,输出参数作为动力学和运动学的输入。动力学、运动学及质量状态解算模型用于根据模型初始状态、综合数据解算模型的输出、三轴风干扰状态等计算机体坐标系下无人机动力学和运动学方程以及质量状态方程,进而得到各模型状态以及用于综合数据解算模型的输入变量,包括高度H、马赫数Ma、迎角α、侧滑角β,此外,模型状态中的飞机质量也用于综合数据解算模型的输入。综合数据解算模型和动力学、运动学及质量状态解算模型综合后构成无人机非线性数学模型,其输入为各舵面偏度δi、发动机控制量δp,起落架状态UCStatus,三轴风干扰,输出为三轴速度分量、三轴角速度分量、三轴位置分量、三轴姿态角、飞机质量、高度、马赫数、迎角、侧滑角。

由图2所示,本发明所提供的基于Simulink/S-Function进行的无人机非线性数学模型建立方法可由下列步骤实现。

步骤一:建立综合数据解算模型,利用Simulink内嵌模块库中的多维插值模块进行气动模型、发动机动力模型、飞机本体特性模型的解算和封装。其中,各多维数据表由变量形式定义,通过配置文件载入具体数值。

综合数据解算模型的输入为:

高度H、马赫数Ma、迎角α、侧滑角β、飞机质量M、各舵面偏度δi(i=1……n,n为舵面个数)、发动机控制量δp,起落架状态UCStatus;

综合数据解算模型的输出为:

气动系数,包括升力系数CL、阻力系数CD、侧力系数CC、俯仰力矩系数Cm、滚转力矩系数Cl、偏航力矩系数Cn、俯仰阻尼导数Cmq、滚转阻尼导数Clp、偏航交感导数Cnp、偏航阻尼导数Cnr、滚转交感导数Clr;动力参数,包括推力P、耗油率Q;重心位置,包括X轴重心位置Xt、Y轴重心位置Yt、Z轴重心位置Zt;转动惯量及惯性积,包括X轴转动惯量Ix、Y轴转动惯量Iy、Z轴转动惯量I、X轴与Z轴惯性积Ixz;几何参数,包括翼展l、平均空气动力弦长bA、参考面积S、发动机推力线偏心距yP、推力线与机体纵轴夹角

步骤二:定义动力学、运动学及质量状态解算模型,利用Simulink/S-function实现,使用英美坐标系。

由于S-Function均采用约定的函数形式,每个S-Function均需定义系统的输入变量u,输出变量y,状态变量x。因此,需首先对动力学、运动学及质量状态解算模型的输入变量、输出变量进行定义。

定义动力学、运动学及质量状态解算模型输入变量为:

综合数据解算模型的输出,即包括气动系数、动力参数、重心位置、转动惯量及惯性积以及几何参数。除此之外,还包括三轴风干扰,即X轴风速Vwx、Y轴风速Vwy、Z轴风速Vwz

定义动力学、运动学及质量状态解算模型状态变量为:

机体坐标系下三轴速度分量,包括X轴速度u、Y轴速度v、Z轴速度w;机体坐标系下三轴角速度分量,包括X轴角速度p、Y轴角速度q、Z轴角速度r;地理坐标系下三轴位置分量,包括X轴位置xd、Y轴位置yd、Z轴位置zd;机体坐标系与地理坐标之间的关系即三轴姿态角,包括俯仰角θ、滚转角φ、偏航角飞机质量M。

定义动力学、运动学及质量状态解算模型输出变量为:

系统的状态变量,即三轴速度分量、三轴角速度分量、三轴位置分量、三轴姿态角、飞机质量;除此之外,还应包括高度H、马赫数Ma、迎角α、侧滑角β。

步骤三:实现动力学、运动学及质量状态解算模型的初始化函数(mdlInitializeSizes)。

初始化函数(mdlInitializeSizes)中需对模型中的输入变量个数、输出变量个数以及状态变量个数进行确定,并针对模型初始状态对状态变量进行初始化处理。根据步骤二中定义,即可对无人机动力学、运动学及质量状态解算模型的输入变量个数、输出变量个数以及状态变量个数进行确定,并根据模型初始状态对状态变量进行初始化处理。

步骤四:实现动力学、运动学及质量状态解算模型的连续状态更新函数(mdlDerivatives)。具体步骤如下:

首先根据当前的速度以及模型输入三轴风干扰计算空速Vk,迎角α、侧滑角β;

空速向量可由机体坐标系下的三轴分量表示:

Vk=[uk vk wk]T

则根据空速、地速与风速的关系可计算空速:

表示从地面坐标系到机体坐标系的变换矩阵,[wxg wyg wzg]T表示三轴风干扰。

迎角可由下式计算:

侧滑角可由下式计算:

然后根据输入的气动系数计算相应的气动力和力矩;

升力:

阻力:

侧力:

俯仰力矩:

滚转力矩:

偏航力矩:

然后根据机体坐标系下无人机动力学和运动学方程解算三轴速度分量、三轴角速度分量、三轴位置分量、三轴姿态角的状态量导数,具体为:

质心移动动力学方程:

绕质心转动动力学方程:

质心运动学方程:

角速度之间的关系:

然后根据输入的耗油率Q计算无人机质量状态的导数:

最后更新十三个状态量的导数并输出至函数返回值x:

步骤五:实现动力学、运动学及质量状态解算模型的输出计算函数(mdlOutputs)。

根据飞机状态变量以及系统输出变量的定义,输出相应的物理量至函数返回值。即将系统的状态变量三轴速度分量、三轴角速度分量、三轴位置分量、三轴姿态角、飞机质量输出,同时输出高度H、马赫数Ma、迎角α、侧滑角β等参数。

步骤六:连接综合数据解算模型以及动力学、运动学及质量状态解算模型,将综合数据解算模型的输出作为动力学和运动学解算模型的输入,再进行封装形成完整的无人机非线性数学模型。

由上述步骤可看出,通过分别建立综合数据解算模型和动力学、运动学及质量状态解算模型,降低了代码之间的耦合度,减少了建模工作量;通过利用Simulink内嵌模块库建模的 方式可通过模块化图形化的处理方式避免了手动编程的工作,通过配置文件载入具体数值可避免由于编程过程中带来的数据移植错误的风险,也进一步加强了模块的可重用性,即若数据表维度以及各维度坐标不变而仅具体数据发生更改时,仅需重新配置相应数据文件而不用更改模型结构;所建立的动力学、运动学及质量状态解算模型在针对不同的无人机进行建模时可以完全重用,并且相对于通常的12维方程组增加了质量状态变量方程,将飞行过程中的由于发动机耗油率引起的质量变化与其他状态统一考虑,方程更具合理性和实用性。

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