| 回路硬件仿真技术在直升机控制系统中[de]应用 |
|
图5“控制器”子系统[de]详细内容见图7。对3个轴角度测量值[de]量化结果成为控制器[de]3个基本输入信号,控制器输出[de]是两个马达[de]驱动电压。图7中[de]主要模块有:驱动直升机到指定位置[de]“自动驾驶”模块,在不同操作模式下产生前进和上升位移命令[de]“命令发生器”模块,实现用于选择不同直升机操作模式[de]有限状态机[de]“模式控制”模块。 “模式控制”模块内所含[de]状态流程框图如图8所示。该框图包含了系统启动时对操纵杆进行校正[de]逻辑、用户控制下[de]模式改变、当违反位置限值时自动切换到空模式,以及系统关闭[de]控制。 图5所示[de]“控制器”模块内部提供了嵌入式软件[de]完整实现方法。常见[de]方法是将嵌入式软件开发当作一个独立过程,该过程将仿真作为可执行[de]软件要求描述来使用。然而,更有效[de]方法是将仿真中[de]控制器实现作为“源代码”,供嵌入式软件使用。 在本项目中,可以把图5[de]“控制器”模块挎贝到新[de]Simulink项目中,并向框图中添加相应[de]I/O器件模块。然后,再调用Real-Time Workshop创建C代码,经过编译后下载到"嵌入式”PC控制器。到此就完成了嵌入式软件[de]开发工作。 回路硬件 有了直升机和控制器[de]非实时性Simulink仿真基础后可以着手HIL仿真开发了。首先需要创建一个新[de]Simulink项目,再把图5中带“直升机”标签[de]模块挎贝进来。这种仿真建立了直升机动态模型,并包括了相应[de]I/O器件接口。Real-Time Windows Target支持多种I/O器件。HIL仿真所需[de]I/O要求包括两个ADC输入(用于接收控制器发出[de]马达命令电压)和6个TTL数字输出(为3个仿真位置编码器分别提供Phase A和Phase B信号)。 本项目中将运行Windows[de]台式PC作为主机系统,因此需要使用满足上述条件并且具有PCMCIA接口形式[de]I/O器件。National Instruments公司[de]DAQCard-1200能够满足这些要求,并提供一根带状电缆用于连接计算机内[de]接口卡和独立[de]连接器模块。 直升机仿真以固定[de]帧速率运行,其仿真Phase A和Phase B信号[de]TTL输出则一个仿真帧更新一次。由于位置编码器信号[de]脉冲速率正比于运动轴[de]角速度,因此仿真帧速率可以限制能准确再现[de]最大角速度。 如果采用这种方法对位置编码器信号进行建模,那么当Phase A和Phase B信号隔帧交替时就能产生最高[de]仿真角速度。这时根据等式1就能得出仿真更新间隔h(秒)条件下最大[de]角速度值wmax(度/秒): 等式1 从直升机行为[de]数字仿真结果可以明显看出,倾斜轴具有最大[de]峰值角速度,但很少出现超过100°/秒[de]情况。理想情况下h应不小于一定值,这样HIL仿真就不会占用计算机太大[de]计算资源。综合考虑这些要求,h[de]最佳值应是500us,此时更新速度是每秒2000帧,最大[de]仿真角速度是175.8°/秒,该速度已经远远超过最大[de]角速度期望值。 每秒2000帧[de]直升机仿真更新速度已经大大超出对直升机进行动态精确建模[de]速度要求,因此没有必要再用高阶积分算法来获取更精确[de]结果。相对简单[de]二阶积分算法可以获得较好[de]精度,此次仿真选用[de]就是Simulink“ode-2”梯形积分算法。与采用更加复杂[de]高阶积分算法相比,这种算法能使仿真具有更高[de]效率。 为了在目标PC上下载并运行嵌入式软件,需要用串行电缆连接主机与目标计算机,并从软盘启动目标系统内核。根据控制器[de]Simulink框图,接下来就可以下载运行嵌入式控制器用[de]软件。在将目标系统[de]I/O器件与DAQCard-1200[de]相应端子连接起来后,可以在主机[de]Real-Time Windows Target中运行直升机[de]Simulink仿真。最后根据Simulink框图将命令发送给嵌入式控制器,从而启动控制器工作,完成仿真直升机[de]“飞行”。 在HIL仿真工作模式下可以详细检查嵌入式软件[de]各个方面,从而可以发现并解决设计与实现中[de]很多问题。所有这些检测工作期间无需变动任何实际[de]硬件。在这轮HIL仿真测试结束后,我们就可以得到经过全面测试[de]嵌入式应用软件,接下来与实际硬件[de]快速整合成功[de]可能性就非常大。 系统整合 在嵌入式软件完成HIL测试前我们有意避免嵌入式软件与实际直升机硬件一起运行,主要原因是为了体现HIL仿真[de]意义,以及减少硬件损坏[de]风险。在完成HIL测试后,可以把电缆从DAQCard-1200上拔下来并连接到直升机硬件上,接着给系统上电并把直升机控制到“空模式”位置,然后使之进入随机模式,此时直升机会每隔10秒飞到随机产生[de]前进和上升位置。虽然在响应命令时[de]摆动和过冲要比HIL仿真时大一些,不过就这第一次试验来说还是相当成功[de]。 为了能在所有操作模式下都能取得令人满意[de]系统性能,有必要对控制器增益进行一些调整。HIL仿真并不能完全匹配实际系统[de]行为,这是因为直升机仿真实际上在某些方面作了简化处理,在仿真中使用[de]系统集合属性并不完全符合实际系统属性。 进行仿真开发时通常都会作出一定程度[de]简化处理,事实上人们不可能对影响实际系统行为[de]所有因素实现完美[de]建模。最简单[de]方法是尽量减少仿真与实际系统间[de]差异,并适当调整嵌入式软件所需[de]参数。 HIL仿真为本项目的开发过程提供了极大[de]便利,整个嵌入式应用在首次与系统硬件结合运行前就得到了真实环境下[de]全面测试,因此有效地避免了硬件损坏[de]风险,而且更容易识别和解决与嵌入式软件有关[de]问题。整合过程也显得相当简捷,只是对少许参数作了重新调整。如果将未经测试[de]大型嵌入式软件直接与硬件连接运行,那么相对来说这样[de]任务就要艰巨得多,通常还会出现一些与整合本身有关[de]问题。 本项目充分体现了HIL仿真在开发复杂嵌入式系统软件中[de]价值。HIL仿真技术能够在开发早期阶段对嵌入式软件作出全面测试,因此降低了将未经测试软件运行于昂贵[de]原型硬件上所具有[de]风险。与传统开发方法相比,正确利用HIL仿真技术能够在更短[de]时间内开发出更高质量[de]产品。 参考文献
1. Apkarian, Jacob. "Systematic Controller Design and Rapid Prototyping," available at www.mathworks.com/company/digest/dec98/systematic.shtml 上一页 [1] [2] |
|
|
| 相关文章列表: |
| 没有相关论文 |
|
|
|