基于Stateflow技术多模态飞行控制律仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第25卷第4期杭州电子科技大学学报V ol.25,N o.4 2005年8月Journal of Hangzh ou Dianzi University Aug.2005
基于Stateflow技术多模态飞行控制律仿真
吴了泥,黄一敏
(南京航空航天大学自动化学院,江苏南京210016)
摘要:S tateflow是有限状态机原理的图形实现,能在仿真过程中进行连续状态间的切换。无人机飞
行过程正是多模态飞行控制律的切换过程,是由飞行任务驱动的有限状态机系统。该文描述了如
何用S tateflow实现控制模态间的切换,按无人机自主导航的控制逻辑建立了S tateflow仿真模型。
仿真结果说明采用S tateflow实现多模态飞行控制律仿真的有效性。
关键词:多模态;飞行控制;自主导航;无人机
中图分类号:V249 文献标识码:A 文章编号:1001-9146(2005)04-0034-04
0 引 言
飞行控制律通常是在M AT LAB/Simulink下进行设计的,利用风洞数据建立S-function的非线性模型。按飞行包线选取平衡状态,配平、线性化后分析对象特性进而确定控制结构设计控制参数。最后进行非线性仿真,在几个有代表性的状态验证设计好的各个控制模态(Simulink方框图)。至于全包线的仿真曲线,要把控制律改写成C代码,装入飞控计算机进行实物仿真时才能看到。能在Simulink环境下做全包线的仿真验证,有助于在设计初期减少错误,优化控制和导航方法,对控制律设计具有非常重要的意义。
1 Stateflow介绍
1.1 有限状态机原理
具有有限组模式或是状态的系统称为有限状态机(FS M:Finite State Machine)。FS M系统采用事件驱动机制,当特定事件发生时,系统从A状态转换到B状态。Stateflow是有限状态机的图形实现,它以可视的状态(State)和转移(Transition)描述FS M系统,用事件(Events)结合转移条件(C ondition)控制系统流程。
1.2 Stateflow的元素
状态代表系统的模式,只有‘激活’和‘不激活’两种状态。转移定义系统中的逻辑信号流向,如果转移发生,原来状态变成‘不激活’,而新状态成为‘激活’。事件控制状态的运行,事件不以图形呈现,和变量一样在States Explorer中定义。变量的定义要考虑作用范围,如图1所示。
图1 Stateflow的基本元素
收稿日期:2004-07-05
作者简介:吴了泥(1979-),男,福建闽侯人,硕士研究生,飞行控制.
节点也是基本元素,利用转移和节点(Node )就可以很方便的描述计算机高级语言中的循环语句和条件转移语句,设计开发出复杂的监控逻辑。
1.3 Stateflow 和Simulink 的结合
Stateflow 可以通过定义输入输出和Simulink 交互。输入输出有数据也有事件。每个Stateflow 模块都属于子封装的Simulink 模块。仿真执行时Stateflow 机制把流程图转成Simulink 的内部描述S -func 2tion 。所以Stateflow 生成的逻辑可以直接嵌入到Simulink 模型下,两者是无缝结合的。这样就能在仿真过程用事件驱动连续行为间的切换。
2 飞行模态采用Stateflow 进行切换
飞行过程是由有限的飞行模态组成的。本文仿真使用的某型无人机自主导航过程由5个飞行模态构成,纵向有爬升、下滑、平飞,横侧向有航向跟踪、航迹控制。用状态代表各飞行模态,加上条件判断状态间的转移,就是Stateflow 对自主导航过程的有限状态机系统描述
。
可以就上述飞行模态设计纵向状态Long 和横侧向状态Late 。纵向中设置爬升(Climb )、平飞(Lev 2el )、下滑(Dive )3个子状态,横侧向设置航向跟踪(Psi-tack )和航迹控制(Way -track )2个子状态。Stateflow 中的状态用方框表示可以体现层次关系,并行关系,还能有历史记录功能。导航过程纵向和横侧向同时控制,所以Late 和Long 是并行状态,而内部子状态是互斥状态,如图2所示。
图2 模型状态层次图
进行单控制模态仿真验证时,都已把各控制模态设计成Simulink 上的子封装(Subsystem )执行模块,下一步是把Stateflow 对应的飞行状态映射到外部的Simulink 的控制模块。Stateflow 状态框Active 时对应的外部Simulink 控制模块执行,Inactive 时对应的Simulink 模块不执行,这样转移执行时就会引起外部控制模块的切换。
为实现映射关系,可采用两种方案:(1)在执行子模块内放触发模块,飞行状态输出触发函数直接触发对应的控制模块进行计算;(2)执行模块同时计算,使用开关模块来选择使用哪个模块的输出,State 2flow 输出一整型数值作为开关量的值。本文采用触发器进行横侧向的切换,纵向用开关切换,如图3所示。
除了爬升和下滑共用姿态控制模态,其他飞行模态都与控制模态一一对应。爬升和下滑切换只需改变控制指令俯仰给定量即可。注意,由于高度积分模块的存在平飞控制的执行模块不能用触发器。而且在爬升或下滑改平飞时必须把积分模块先清零(可在转入平飞控制时输出个触发事件RESET ),如图4所示。
Stateflow 每个状态有4个标志值entry 、during 、exit 和on ,分别表示进入状态、状态保持、退出状态、及发生一事件时相应的行为。可以在行为中为控制指令赋值,或是触发切换事件。
3 自主导航的仿真实现
建立飞行模态并实现了模态间的切换,Stateflow 模型就剩下对导航逻辑的描述。自主导航模式下,无人机在横侧向的航迹控制上,以及在纵向高度剖面上都实现自动控制。仿真的设计目标是采用G PS 导航(经纬度信号由非线性模型直接解算给出),按照航路文件。
导航过程,横侧向上不断计算待飞距、偏航角、侧偏距。待飞距判断进入下一个航段的时机,进入新53第4期 吴了泥等:基于Stateflow 技术多模态飞行控制律仿真