飞行器惯性导航控制系统设计仿真平台实现方案.doc

上传人:文库蛋蛋多 文档编号:3995260 上传时间:2023-03-30 格式:DOC 页数:22 大小:756KB
返回 下载 相关 举报
飞行器惯性导航控制系统设计仿真平台实现方案.doc_第1页
第1页 / 共22页
飞行器惯性导航控制系统设计仿真平台实现方案.doc_第2页
第2页 / 共22页
飞行器惯性导航控制系统设计仿真平台实现方案.doc_第3页
第3页 / 共22页
飞行器惯性导航控制系统设计仿真平台实现方案.doc_第4页
第4页 / 共22页
飞行器惯性导航控制系统设计仿真平台实现方案.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《飞行器惯性导航控制系统设计仿真平台实现方案.doc》由会员分享,可在线阅读,更多相关《飞行器惯性导航控制系统设计仿真平台实现方案.doc(22页珍藏版)》请在三一办公上搜索。

1、飞行器惯性导航控制系统设计仿真平台实现方案恒润科技有限公司北京市朝阳区安翔北里甲11号北京创业大厦B座8层2005年07月07日1) 目 录1 概述12 惯性导航控制系统设计仿真平台建设22.1 控制系统开发流程22.2 飞行器惯导控制系统设计需求52.3 飞行器惯导控制系统解决方案72.4 技术管理平台203 方案总结211 概述2) 惯性导航是一种自主式的导航方法。它完全依靠载体设备自主地完成导航任务,和外界不发生任何光、电联系。因此隐蔽性好,工作不受环境条件的限制。这一独特优点,使其成为航天航空和航海领域中的一种广泛使用的主要导航方式。3) 从力学原理来看,所有种类惯性导航都是从测量加速

2、度开始,经过积分计算,求得运载器的速度和位置,用以满足运载器的导航和制导要求。由于使用对象和所用元件以及其他技术条件的不同,在具体实现上有所差别。因此,惯导系统有各种不同的分类方法。4) 以使用对象来看,惯导系统可以分为以下几类。5) 航空惯导系统:主要指飞机和近似于飞机的巡航导弹上使用的惯性导航系统,其基本特点是要满足飞机各种机动状态的要求,如果有平台系统,一般需要四环平台,质量、体积要小,工作时间较长;6) 航海惯导系统:主要用于舰艇导航的惯性系统,其基本特点是精度高、可靠性好,不要求具有翻斤斗机动能力,体积质量较大,能长时间连续工作;7) 航宇惯导系统:主要特点是满足空间飞行的大过载或高

3、可靠性要求,一般工作时间不很长,有时对体积和质量具有特殊限制;8) 陆用惯导系统:主要用在战车或其他如大地测量等专用车辆上。这类惯导系统一般承受的过载不一定很大,但对于大地测量定位系统,要求具有很高的精度。9) 以惯导系统中有无惯性平台为依据,惯导系统可分为两类。10) 平台式惯导系统。主要特征是具有由稳定回路隔离使其不受运载器机动干扰的影响。平台式惯性导航系统利用陀螺的定轴性和进动性,通过万向环架、稳定电机、伺服放大器等元部件所构成的机械、电器系统,把加速度计的敏感轴保持在一定参考坐标系中。由于平台不跟随运载器转动,陀螺的动态范围可以比较小,并且由于有稳定回路隔离运载器的机动干扰,易于保证系

4、统的工作精度。11) 捷联式惯导系统:系统中陀螺仪和加速度计直接与运载器固连,它的各种导航和制导信息都是由计算机提供的,由计算机来完成惯导平台的功能,有时也称作“数学平台”。这种系统中的陀螺仪和加速度计要与运载器一起转动,因而动态范围要比平台式系统大得多。由于没有平台,系统结构简单,工作可靠。12) 本报告主要结合航空航天用的惯导系统需求,介绍航空航天飞行器惯性导航控制系统的设计仿真平台的实现方案。对于其他类型的惯导系统,由于其基本原理相同,也可以借鉴参照来实现。13) 飞行器的主要运动特点是经常需要进行大范围机动(包括质心机动和姿态机动),因此惯导系统需要对飞行器的位置、速度和姿态进行高精度

5、的解算,并通过控制系统的作用,来保证飞行器可靠地完成相应的机动飞行任务。2 惯性导航控制系统设计仿真平台建设14) 无论是平台式惯导系统还是捷联式惯导系统,都需要有一套控制系统来保证惯导系统功能的实现。这里所说的控制系统可以是平台式惯导系统的平台稳定控制和姿态控制系统,也可以是捷联惯导系统中的姿态控制系统(捷联惯导系统中没有平台,因而不存平台的稳定问题)。15) 控制系统的开发流程,依赖于相应的开发平台的支撑。传统的开发流程由于算法开发、软件设计、硬件设计、测试和实验相对独立,结合不够紧密,因而需要的人员较多,开发时间和周期较长,相应的开发成本较高。随着新的开发工具的出现,基于先进的开发平台上

6、进行的开发工作,流程简单,很多设计环节能够借助于工具自动实现,节省了开发人员,能够基于设计平台进行仿真测试和实时测试,可以大大减少实际的测试和实验次数,保证产品投产或硬件产品的快速实现,从而极大地节省了开发费用,并且提高了工作效率,加快设计周期。同时,由于该平台的建设是基于完整的系统设计流程的,因此在平台建设 上也需要考虑完善的管理和测试手段,在本方案中将考虑采用基于文档的(比基于数据库的管理方式简化)需求管理工具和模型、代码测试环境。2.1 控制系统开发流程16) 传统的控制系统开发流程,一般包括以下典型步骤:17) 根据调查情况用文字说明的方式定义需求和设计目标18) 根据过去的经验提出系

7、统的结构19) 由硬件人员设计并制造硬件电路20) 由控制工程师设计控制方案,并将控制规律用方程的形式描述出来21) 由软件人员采用手工编程的方式实现控制规律22) 由系统工程师或电子专家将代码集成于硬件电路中23) 用真实控制对象或测试台对系统进行测试24) 由上述过程可以看出,传统的开发方法存在如下几个方面的问题。25) 在对控制规律的控制特性或控制效果还没有一点把握的情况下,硬件电路已经制造了,这时,还不知道所设计的方案能在多大程度上满足要求,抑或根本就不能满足要求,但已经产生了较大的硬件投入资本。26) 由于采用手工编程,所以会产生代码不可靠的问题,这样,在测试过程中如果出现问题(在大

8、多数情况下这是必然的),就很难确定是控制方案不理想还是软件代码有错误。更重要的是手工编程将会占用大量的时间,导致虽然有了控制方案,却要等待很长时间才能对其进行验证和测试,从而在不知道方案是否可行的情况下就浪费了大量的时间、人力和物力,给开发带来不必要的开支和经济损失。27) 即使软件编程不存在问题,如果在测试过程中发现控制方案不理想,需要进行修改,则新的一轮工作又将开始。大量的时间又将耗费在软件的修改和调试上。另外,由于涉及的部门太多,再加上管理不善所引入的种种不协调,导致开发周期长而又长,最终导致产品虽然研制成功了,但初始需求已经发生了变化,市场机会已经错过,产品已没有了销路,从而使整个开发

9、以失败告终。28) 现代开发方法的最重要的特征就是计算机辅助控制系统设计(CACSD:Computer-AidedControl System Design)。将计算机支持工具贯穿于控制系统开发测试的全过程。计算机辅助控制系统设计不仅仅是进行控制方案设计和离线仿真,还包括实时快速控制原型、产品代码生成和硬件在回路测试。这是一个完整的流线型的控制系统开发步骤,如下图所示,一般将由下列过程组成:29)图1 V模式的系统开发流程30) 概要设计/模型建立/离线仿真31) 在传统方法中,这一过程的产物就是几千字甚至几万字的文字说明。在现代方法中为了避免文字说明的模糊性及理解性错误,详细说明将采用模型方

10、式。可以用信号流图的方式进行定义。32) 控制方案的设计也不再采用过去的那种先将对象模型简化成手工可以处理的形式,再根据经验进行手工设计的方式。而是用诸如ATLAB/SIMULINK 等计算机辅助建模及分析软件建立对象尽可能准确的模型,并进行离线仿真,从而避免了传统设计过程中,由于对象过于简化,也没有相应的计算机辅助设计工具做支持而带来的到试验阶段才发现所设计的方案根本就不能满足实际对象的要求的尴尬局面。33) 快速控制原型(RCP-Rapid Control Prototyping)34) 按现代设计方法,方案设计结束后,无须再象过去那样要花极大的耐心等待软件工程师进行手工编程,再由电子工程

11、师将代码集成于硬件电路中,而是利用计算机辅助设计工具自动将控制方案框图转换为代码并自动下载到硬件开发平台,从而快速实现控制系统的原型,并且包括了实际系统中可能包括的各种I/O,软件及硬件中断等实时特性。之后,就可以利用计算机辅助试验测试管理工具软件进行各种试验,以检验控制方案对实际对象的控制效果,并随时修改控制参数,直到得到满意的结果为止。即使是模型需要相当大的修改,从修改到下一次对原型的测试的也只需要几分钟的时间。从而在最终实现控制方案之前,就已经对可能得到的结果有了相当的把握,避免了过多的资源浪费和时间消耗。35) 产品代码生成36) 将模型转换为产品代码是开发过程中最关键的一步。过去这种

12、转换完全是通过手工编程实现的,现代开发方法则不同,产品代码的大部分是自动生成的。对大多数工程师而言,如果能够加快开发速度,损失代码的部分实时运行效率是可以接受的,如:自动生成代码的运行效率不低于专业人员手工代码的90%,内存占用量不超过专业人员手工代码的10%。当然,对于自动代码生成,代码级的测试就变得不是很方便,因此在自动代码生成之前,还需要对模型进行充分的测试以便在逻辑上和分支覆盖性上能保证完全正确。37) 硬件在回路仿真(HILS-Hardware In the Loop Simulation)38) 有了控制系统的初样,并不意味着计算机辅助设计工具(软件/硬件)就没有用了。相反,现在由

13、于控制系统所完成功能的日渐复杂性,对其进行全面综合的测试,特别是故障情况和极限条件下测试就显得尤为重要了。但如果用实际的控制对象进行测试,很多情况是无法实现的,抑或要付出高昂的代价(如:对于飞行控制,不同的风、气候条件等环境条件下的测试,如果用真实的飞行器必然要花费相当长的时间,付出高昂测试费用),但如果用计算机辅助设计工具对控制对象进行实时仿真,就可以进行各种条件下的测试,特别是故障和极限条件下的测试。而这正是传统开发方法所不具备的。39) 设计确认40) 经过半实物仿真试验和飞行试验,得到了所设计系统的各项技术指标和系统功能,通过评审对系统进行确认。保证了所实现的系统满足用户需求,并最终应

14、用到型号中。2.2 飞行器惯导控制系统设计需求41) 飞行惯导系统能够连续地、自主地、准确地提供飞行器的速度、航程、航向、俯仰、偏航、滚转等姿态角和姿态角速率的数据信息,这些信息用于形成导航和制导指令,通过控制系统的作用后,将飞行器导向理想的航线或使飞行器完成必要的姿态机动。如前所述,惯导系统的基本工作原理是牛顿运动定律,在理想的使用条件下,根据惯性器件的测量值进行一次积分和二次积分可以得到飞行器的速度、航程等数据。但在实际的使用环境下,飞行器是沿着旋转球面飞行的。由于地球的公转与自转以及飞行器自身的运动,必须考虑地球自转的角速度、地球椭球形状模型对应的重力加速度对飞行器运动的影响。因此,在惯

15、性导航系统定位时,必须考虑地球形状修正与地球自转引起的有害加速度的补偿。42) 另外,惯性导航系统是一种高精度定位设备。对于平台式惯性导航系统,测量飞行器运动速度变化率的加速度计要安装在以陀螺仪作为敏感元件的稳定平台上,可是仪表制造精度再高也总会存在误差,平台不可避免地存在着方位失调角和水平失调角。为了解决这一问题,应使陀螺稳定平台在有加速度扰动时仍能始终保持在当地水平面内,以保持加速度的测量不受地球重力场的影响。为此,需要通过平台稳定回路的控制算法实现平台的水平指北,建立加速度计的测量基准。43) 在长时间工作的惯性导航系统中,由于惯性元件缺陷将产生位置、速度和航向指示的误差,此外,陀螺漂移

16、也将引起正弦变化纬度和方位误差、无界的经度误差。随机漂移则产生无界的纬度、经度和方位误差。为此,在惯导系统中,需要进行误差分离与补偿。44) 由此可见,飞行器惯性导航控制系统中,惯性导航算法相当复杂,尤其是在采用捷联惯导的情况下,需要引入一个数字惯导平台来实现实物惯导平台的功能,这就需要通过一个惯导计算机来实现。惯导用的数字计算机通常是一种实时控制计算机,它有完成修正回路的解算控制和数据处理功能,即根据加速度计和输出信号,计算出载体的速度以及所在的位置的经、纬度,并可计算出输给陀螺所需要的施矩信号以控制平台,使其跟踪地理坐标系。在计算机内存贮系统各工作状态的机械编排,完成初始对准、无阻尼、水平

17、阻尼以及综合校正的控制与自动切换,并进行事后数据处理。同时它与系统电子线路、系统任选设备和通用上设备一起完成人机信息交换,以及与其他外部设备信息交换。其中,一项重要的信息交换是将控制指令传送给控制系统,由控制系统综合所接收到的控制指令和实际飞行器的状态,根据事先设计好的控制算法,计算输出改变飞行器状态的控制电压或电流,完成对飞行器状态的控制。45) 飞行器控制的精确性取决于控制算法的设计,而控制算法的设计又取决于飞行器模型的建立。因此,通常是先进行数学仿真,根据所建立的飞行器模型,采用合适的设计工具进行控制器设计,然后通过半实物仿真来验证所设计控制算法的可行性。半实物仿真需要逐步进行。首先进行

18、飞行器本身控制回路的仿真,此时执行机构可以实物,而飞行器模型则可以通过一个实时仿真系统来模拟。其次,在控制器验证通过后,需要引入惯导平台,包括陀螺仪、线加速度计等实物(对于捷联惯导系统,则可引入用于安装陀螺的转台),进行全系统半实物仿真。在这种情况下,导航计算机的算法可能还不完善,需要在半实物仿真过程根据仿真结果进行算法的修改和调整(如,根据仿真结果判断多长仿真会引起多大的陀螺漂移,需要引入多少的误差补偿,从而对补偿算法进行改进等)。为了适应算法的修改和完善,导航计算机算法也需要在一个实时仿真系统上进行实现,而且能够方便在仿真过程中实现参数的在线调整,以适应实际系统的参数要求。46) 综上所述

19、,在飞行器惯性导航控制系统设计过程中,需要设计的主要算法包括:47) 导航算法(包括位置解算、姿态解算、误差标定和补偿、指令计算等)48) 控制算法(包括平台式惯导系统中的平台稳定算法、飞行器质心和姿态控制算法等)49) 需要进行的仿真包括:50) 数学仿真51) 半实物仿真52) 需要进行测试验证的实时系统包括:53) 导航和制导计算机54) 飞行器模型55) 飞行控制器56) 为实现以上所有设计需求,需要引入一个包含硬件和软件在内的平台来支持整个飞行器惯导系统从需求分析、设计、仿真、实时验证到产品实现的过程。以上介绍的、区别于传统开发流程的现代V模式开发流程能够很好地满足这设计过程的需要,

20、同时在V模式开发流中,合适的开发工具的选择将能够更好地满足飞行器惯导控制系统的设计开发过程的需要。具体实现方案将在下一节中详细说明。2.3 飞行器惯导控制系统解决方案57) 根据前面的论述可以知道,在系统开发过程中,数学仿真和半实物仿真起着非常重要的作用。为了使两者能够很好地结合,有必要选择一个合理的开发平台。MATLAB+dSPACE解决方案目前在国内外航空航天航海领域和民用领域已经是一个非常成熟并广泛采用的开发平台,在控制系统开发过程中方便快捷,能够有效解决数学仿真和半实物仿真的问题。在MATLAB+dSPACE解决方案中,半实物实时仿真充分继承了数学仿真的结果。在这个平台上,可以利用MA

21、TLAB工具进行算法研究和仿真测试,然后利用MATLAB的RTW把模型自动生成C代码,下载到dSPACE中,将数学仿真的结果直接继承到半实物仿真中,完成系统快速原型验证。在产品实现过程中还可以使用MATLAB的RTW Embedded Coder自动生成高可靠性的C代码,嵌入到产品代码中。产品开发完成后,仍利用MATLAB和dSPACE搭建的环境完成产品的集成测试和半实物仿真。2.3.1 解决方案描述58) MATLAB+dSPACE是系统设计、系统实现和半实物仿真集成测试的统一平台。MATLABdSPACE解决方案采用基于模型的设计思想,在整个开发过程中,模型作为一个可执行的规范在设计过程中

22、不断地完善,下图给出了解决方案的示意图。59)图2 MATLAB+dSPACE解决方案60) 在进行控制系统设计和研究前,首先需要建立对象的模型。如飞行器惯导系统中,需要建立舵机模型、飞行器运动学和动力学模型等。在建立被控对象模型的过程中,通过试验得到了描述对象特性的测量数据,加上从工程问题的角度对被控对象进行数学抽象,利用MATLAB的各种工具对数据进行分析、可视化,建立对象的模型。同样,这样的对象还可以在Simulink环境完成对象建模。在已建立模型的基础上,利用MATLAB的控制工具箱等进行算法开发、系统的时域和频域分析。然后进行整个系统的离线数学仿真,并对设计参数进行优化。这个阶段称为

23、数学仿真。在完成数学仿真研究后,可以通过两种途径完成系统的半实物仿真验证和集成测试。第一种途径为,快速控制原型(RCP);第二种途径为,硬件在回路中仿真(HIL)。RCP是在系统研制的初期,当详细设计工作完成后,控制系统已经进行了数学仿真和优化验证,但系统尚未实现。此时,控制系统中已经具有部分实际的产品,通过RCP可以考核控制系统各部分之间工作的协调性以及系统参数设计的合理性。没有实物的部分可以用数学模型代替,有实物的用真实的产品,模型和实物之间通过真实的I/O接口连接。由于在仿真系统中加入了部分实物,因此控制系统的考核、验证和系统参数优化工作比数学仿真工作更接近实际。通过RCP不仅可以对控制

24、参数进一步优化,还可以对被控对象模型进行修正和完善,使数学模型越来越接近实际被控对象。HIL是在系统实现完成后,对控制系统进行完备的地面考核、验证和集成测试。此时,控制系统的全部实物均可以连接到仿真系统中。61) MATLAB+dSPACE解决方案中,从数学仿真到半实物仿真(不论RCP还是HIL)的过程紧密集成,无需人工的大量参与,数学仿真和半实物仿真采用统一Simulink模型,利用RTW和Stateflow Coder以及dSPACE的RTI等自动生成C代码,完成编译连接,自动下载到dSPACE实时仿真机上,实时运行。整个过程自动完成,不需手工编写代码,能够高效地率完成半实物仿真综合验证工

25、作。62) 在产品代码生成之前的模型测试部分则采用法国TNI的SCB/STB工具组件以完成模型的形式验证和动态覆盖性测试。2.3.2 解决方案特点综上所述,MATLABdSPACE解决方案具有如下特点:支持从分析、设计、仿真、测试到实现的整个开发流程,并有完善的标准化工具进行测试和验证采用基于模型的设计思路,便于沟通和理解,最大限度的减少了设计中可能出现的失误;63) 提供了丰富的分析和设计手段,各工具之间紧密集成到以MATLAB为基础的开发环境之上;64) 可扩充性好,可以根据用户的需要进行扩充和配置。2.3.3 详细的开发流程65) MATLABdSPACE解决方案采用国际先进的基于模型的

26、系统设计方法,遵照国际规范化的研制流程,如上节图1所示。66) 流程中各个环节如何应用到飞行器惯性导航控制系统设计仿真中,下面将逐一进行介绍。2.3.3.1 模型建立和离线仿真2.3.3.1.1 数学建模67) 在飞行器惯导控制系统算法研究中,可以利用MATLAB工具进行系统建模,包括平台动力学模型、陀螺传感器模型、飞行器动力学模型、执行机构模型等,并对平台的稳定算法、惯性位置解算算法、飞行器姿态解算算法、飞行器控制算法等进行设计,对系统的技术指标,如平台稳定精度、惯导解算精度、飞行器控制精度等进行论证,确定系统的技术方案。68) 数学仿真阶段的所有模型都是以数学模型代替,因此,数学仿真是一种

27、非实时的离线仿真,仿真的目的是为了考察所搭建的仿真系统是否体现了实际系统的工作原理、各个模块的位置是否合理、模型中各信号流向是否正确、模型中各个逻辑分支是否都得到执行等。数学仿真是原理仿真,只有原理上通过了的仿真模型,才可以为快速控制原型所采用。69) 数学仿真的前提条件是建立仿真模型。飞行器惯导控制系统中,需要建立模型的有平台动力学模型、陀螺传感器模型、飞行器动力学模型、执行机构舵机模型等。以舵机模型为例,给出舵机的MATLAB/Simulink建模的思路。70) 第一步,对舵机进行地面扫频测试试验,提取试验中的输入输出数据,将得到的输入和输出试验数据导入到MATLAB环境,在MATLAB下

28、利用系统辨识工具箱System Identification Toolbox(指令ident)对系统进行辨识,在辨识过程中,选择合适的对象模型阶次,建立舵机的初步线性数学模型;71) 第二步,将在MATLAB下辨识出来的舵机线性模型导到Simulink环境中,并在舵机线性模型的基础上,加入非线性环节,如滞环和间隙特性等,这些非线性环节均可由Simulink直接提供;72) 第三步,利用地面试验数据,对非线性模型参数进行修正(可以人工调整,也可以通过MATLAB提供的优化算法进行调整),直到得到合理的舵机模型。73) 对于系统中其他一些特定的机械物理模型,还可以采用另外一种工具进行快速建模,即M

29、ATLAB提供的SimMechanics Blockset。SimMechanics 集成于Simulink之中,是进行控制器和对象系统跨领域/学科的研究分析模块集。SimMechanics为多体动力机械系统及其控制系统提供了直观有效的建模分析手段,一切工作均在Simulink环境中完成。它提供了大量对应实际系统的元件,如:刚体、铰链、约束、坐标系统、作动器和传感器等。使用这些模块可以方便的建立复杂图形化机械系统模型,进行机械系统的单独分析或与任何Simulink设计的控制器及其它动态系统相连进行综合仿真。2.3.3.1.2 算法设计74) 模型建立之后,就可以针对所建立的模型进行各种算法开发

30、。对于飞行器惯导系统,需要开发的算法有惯导解算算法、平台稳定算法和飞行器控制算法等。75) 对于惯导解算算法和误差补偿算法,主要是相应的数学计算算法。在实现这些算法之前,需要设计者通过各种理论推导,推导出相应的算法数学表达式(在有成熟经验借鉴情况下,可以直接引用),MATLAB/Simulink仿真工具只能提供算法的实现仿真验证环境。惯导解算算法和误差补偿算法中需要用到大量的矩阵运算。在进行算法开发过程中,借助于M语言,可以快速高效地完成算法编程,因为MATLAB本身提供了丰富的矩阵运算函数,使设计者不必花大量时间用于软件编程,而把精力集中于算法构想。设计者也可以直接在Simulink环境下搭

31、建跟踪算法模型,Simulink同样提供丰富的矩阵运算模块,不需要设计者自行搭建。当通过数学仿真验证后,这些算法模块可以通过Real Time Workshop工具转换为标准C代码,从而不必重新编写C程序,直接转入系统半实物仿真。76) 对于平台稳定算法和飞行器稳定控制算法,可以采用MATLAB提供的各种典型控制算法设计工具箱,如控制系统工具箱Control System Toolbox、鲁棒控制工具箱Robust Control Toolbox、模糊控制工具箱、优化工具箱Optimization Toolbox等,进行设计和仿真分析。对于工程应用的控制算法设计,通常采用经典的根轨迹和频域设计

32、方法。MATLAB不仅提供了各种方便设计的根轨迹和频域分析函数,而且还提供了一个图形用户界面的设计工具SISO Design Tool。SISO Design Tool允许用户选择合适的控制器结构(例如:滤波器的位置、补偿器的位置等),通过添加补偿器的零极点、调节超前/延迟网络参数来改变开环系统的Bode响应形状以调节相位和幅值裕度、改善阶跃响应以满足各种时域指标要求等。77) 对于控制系统中滤波环节的算法,MATLAB提供的Filter Design Toolbox可以用于设计、分析定点、自适应和多速率滤波器。该工具箱提供了设计、分析、仿真数字滤波器的先进技术,能够进行各种类型的滤波器设计。

33、2.3.3.1.3 仿真验证78) 在建立模型、算法开发之后,需要进行仿真验证。仿真验证的内容包括对所建立模型的验证和所开发算法的验证。79) 在进行仿真验证时,所有已建立的模型、已开发的算法都可以转换或移植到Simulink环境中进行仿真。这是因为Simulink是用于建模、分析和仿真各种动态系统(包括连续系统、离散系统和混合系统)的、理想的交互环境,它提供了采用鼠标拖放的方法建立系统框图模型的图形交互平台。通过Simulink提供的丰富的功能块,可以迅速地创建动态系统模型。同时Simulink还集成了Stateflow,用来建模,仿真复杂事件驱动系统的逻辑行为。另外,Simulink也是实

34、时代码生成工具Real-Time Workshop的支持平台。80) 飞行器惯导系统的数学仿真结构如下图所示。图3 飞行器惯导系统数学仿真结构图81) 上图中包含了平台稳定算法、惯导解算算法、飞行器控制算法等算法的仿真验证内容。所有模型均可以以数学模型表示。82) 如果采用捷联式惯导系统,则陀螺稳定平台模型中可以不考虑平台模型和平台稳定回路。83) 数学仿真验证工作在交互式仿真环境Simulik下可以轻松完成。Simulink框图提供了交互性很强的线性/非线性仿真环境,在系统建模阶段建立的模型是线性模型,为了更充分地考虑模型的非线性因素,可以在Simulink仿真模型中加入各种非线性环节,如饱

35、和、死区、延迟等。84) 仿真方式可以通过菜单工具运行,或使用命令行进行批处理。在仿真过程中允许对模块进行调参,仿真结果在运行的同时通过示波器或图形窗口显示出来。85) 对于比较复杂的系统模型,可以利用Simulink Accelerator将模型转化为C代码并编译成可执行程序运行,从而可大幅度提高仿真速度。86) 在利用Simulink的各种仿真功能进行充分的数学仿真后,就可以对整个系统的模型结构、层次、信号流程、模块接口关系等进行确定,在以后的快速控制原型实现和系统半实物仿真中,模型结构基本固定,只需将需要用实物代替的模块通过I/O来接入实物,而非实物部分则以数学模型保留在仿真系统中,保证

36、了从数学仿真到快速原型仿真过渡的清晰思路和流程。2.3.3.2 快速控制原型87) 对于飞行器惯导系统,快速控制原型主要考察导航计算机、制导计算机(有些情况下,也把导航计算机和制导计算机融合在一起,简称制导计算机)、控制器在实时条件下的控制性能。此时,导航计算机、制导计算机、控制器和被控对象等模型仍然是数学模型,但是实时运行的。在实物可用的情况下,也可以直接接入实物(如,舵机、陀螺稳定平台、捷联惯导系统中用于模拟飞行器姿态的转台、雷达高度表等)。因此,快速控制原型也可认为是一种半实物仿真。88) 下图给出一种快速原型的仿真结构图。89)图4 飞行器惯导系统快速原型仿真结构图90) 图中,假设舵

37、机、陀螺稳定平台或转台、雷达高度表等均已有实物,而将导航计算机模型中的算法、制导计算机模型中的算法、控制器算法等下载到一台dSPACE中,将飞行器模型下载到另一台dSPACE中,充当被控对象模型。对于已有的实物产品和设备,则通过真实的物理接口与dSPACE进行连接。此外,由于要进行实时仿真,目标运动模型或理想航线生成模型也需要在实时系统中运行,此时,可以将目标运动模型或理想航线生成模型下载到第3台dSPACE中,也可以在系统不太复杂的情况下,与导航控制算法一起下载到同一台dSPACE中。通过如上图所示的快速控制原型,可以完成导航算法、制导算法和控制算法的快速原型验证,在产品硬件开发完成之前对飞

38、行器惯导系统进行较为完善的考核,以最大限度地降低出错概率。91) 在快速原型仿真中,关键步骤是控制器原型代码和导航计算机原型代码的生成。92) 在前面的所有工作中,大都是基于模型进行的,那么应该如何从Simulink模型生成原型代码?Real-Time Workshop(RTW)提供了方便的工具。93) Real-Time Workshop(RTW)是一种原型代码生成工具,可以从离散时间系统、连续时间系统和混合系统中的Simulink模型生成优化的、可移植的和可定制的ANSI C 代码,可针对整个系统或是部分子系统来生成可执行代码。94) 快速控制原型是基于模型进行的,在仿真过程中可以实现在线

39、调参,从而可以进行各种条件下的考核仿真。如果控制算法实时性不能满足要求,或子系统模型存在问题,都可以方便地返回离线仿真模型进行修改、离线测试,然后通过鼠标点击的简单操作转入快速原型仿真。整个过程简单、流畅,前后对应关系明了,为各种算法的设计过程争取了时间,提高了工作效率。95) 由此可见,使用RCP技术,可以在最终产品硬件投产之前,仔细研究诸如离散化及采样频率等的影响、算法的性能等问题,同时能够在费用和性能之间进行折衷。通过将快速原型硬件系统与所要控制的实际设备相连,可以反复研究使用不同传感器及驱动机构时系统的性能特征。而且,还可以将控制器集成于开发过程中,从而逐步完成从原型控制器到产品型控制

40、器的顺利转换。2.3.3.3 模型测试验证96) 从Matlab建模到基于产品的自动代码生成,从可靠性出发需要对整个过程进行正确性测试。在商业平台上,由于Matlab/RTW Embedded Coder有大量的军工用户和应用案例,代码生成过程可以认为满足正确性要求。这样代码的正确性验证可以转移到进行模型的正确性验证。TNI的SCB和STB在形式上作为Simulink平台的插件,无缝的融入Simulink建模仿真过程中,其功能为:97) SCB 通过模型的形式验证和反例生成进行模型静态测试98) STB 通过自动进行海量测试向量的生成进行模型的动态仿真测试2.3.3.4 产品代码生成99) 在

41、系统详细设计中,惯导解算算法比较复杂,涉及到大量的数学矩阵运算,若通过编程实现,则编程工作量较大,且可读性较差,不利于继承和工作交接。MATLAB是善于进行数学运算的工具,在Simulink环境下实现惯导解算算法时,可以直接应用相应的数学运算模块进行搭建,模块可读性好,且便于新手入手,在进行工作交接时,不必花大量时间去熟悉以前的工作或重新编程。而且Simulink搭建的解算算法模块可以通过MATLAB的RTW Embedded Coder自动生成产品C代码。对于相对简单的飞行器控制算法(通常是以传递函数形式表示),可以人工编写代码,也可以自动生成。生成的产品C代码,可以进行S-function

42、封装,通过单元测试手段,验证所生成代码与原Simulink模块算法的一致性。测试工作可以在Simulink环境下完成。100) 代码生成的步骤简要介绍如下。101) 模型分离准备。代码生成所针对的对象是已建立的算法模型。通常情况下,模型可能是连续型的,但是所生成代码部分的模型需要进行离散化以后才能进行代码生成。因此,需要对整个系统的仿真模型进行适当处理,比如,模拟实际工程部件的模块保留为连续模块,需要生成代码的模块转换为离散模块,不同算法模块若采样速率不同,还需要进行适当的速率转换。通过对模型的适当处理后,还需要进行仿真验证,确保系统在部分模块离散化、以及各模块之间存在速率转换后运行的正确性。

43、102) 模型分离验证。要生成代码的算法模型通常是整个仿真模型的一部分,需要将其从整个仿真模型中分离出来,并对分离出来的算法模块进行验证,验证过程大致包括以下几步:103) 使用整个系统仿真模型进行仿真,并使用To Workspace块将算法模块的输入和输出信号的结果保存起来。若此时系统含有连续系统,则只能采用适合连续系统的积分算法。104) 将算法模块单独提出,采用a)步中已保存的模块的输入信号作为模型的外部输入,使用模块要求的采样速率作为仿真步长,并用离散求解算法进行多速率仿真,并将计算所得外部输出结果保存。将计算所得的外部输出与a)步存储的模块输出比较。若两者之间的差别量级与eps相当,

44、则表明比较结果一致。105) 通过RTW Embedded Coder生成grt(Generic Real-Time Target, 通用实时目标)方式的代码,并自动编译成可执行文件.exe。在命令行窗口执行此执行文件,得到输出的MAT结果文件。在MATLAB中,load此MAT文件(变量名带有rt_前缀),并与b)步的计算输出之间相比较。106) 通过以上三个验证步骤来确保所分离出来的模块的功能正确性后,就可以进行代码生成参数设定和代码生成。107) 代码生成参数设定和代码生成。代码生成参数设定是根据具体的系统要求进行的。通常的设定包括如下几个方面。108) 在Solver仿真参数对话框中,

45、计算步长设为固定步长(具体值根据具体要求确定),采用离散求解器,如果是多任务系统,则任务模式可以选择Auto或者MultiTasking109) 在Advanced 仿真参数对话框中,选择Inlined Parameters。点击Configure按钮,将算法中需要人工修改的参数添加至全局参数列表中,且Storage Class为Imported Extern,设置完成后关闭此对话框。110) 在Real-Time Workshop参数对话框中,设置System Target File为ert.tlc。选择Generate code only。在General code generation

46、options下选择Inline invariant signals和Local block outputs,并选择General code generation options (cont.)下面的所有选项。如果外部输入将在用户的程序中赋值,则在ERT code generation options (1)中取消MAT-file logging和Initialize external I/O data。在ERT code generation options (3)中选择Generate an example main program。在Target Operating System一项中,

47、根据目标系统要求选择为“BareBoardExample”或“VxWorksExample”。111) 以上所有的设置完成后,按Generate Code 生成模型的代码。自动生成的文件见下表。112) 表1 自动代码生成相关文件列表113) 文件名114) 描述115) ert_main.c 116) 生成样例主程序,包括一个主程序和各个任务程序。所有任务程序均调用ModelName.c中的ModelName_step程序进行运算。此程序可以作为参考程序或者适当加以修改,以便将其结合到要求的程序中。117) ModelName.c 118) 运算主程序,包括初始化程序119) ModelNa

48、me.h 120) 头文件,调用ModelName.c中的程序或者变量的程序应包含此头文件121) ModelName_data.c 122) 包含了模型中不变的常量数据123) ModelName_private.h 124) 此头文件仅供自动生成的代码内部使用,用户可以不必关心125) ModelName_types.h 126) 此头文件用户可以不必关心,里面仅包含一些宏定义127) 代码测试。将分离出来的算法模块生成的代码放到最终的系统中运行时,需要对模型进行充分的验证。验证的方法是在目标操作系统下,利用相应仿真器对由RTW Embedded Coder 生成的代码进行仿真,以模型分离验证中的第b)步的输入作为仿真器代码的输入,并将仿真器的输出与模型分离验证中的第b)步的输出相比较,误差在eps量级上,视为仿真结果相同。128) 从代码生成的操作步骤可以看出:129) 通过RTW Embedded Coder对模型进行代码生成,可以生成标准C代码,与手工编写C代码一样具有可读性,可以修改,但却可以省去许多手工编写代码的时间,体现了自动代码生成的高效性130) 自动生成的代码可以进行测试,以确保所生成代码的正确性,从而可以消除人们对自动

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号