长理培训真题库
我的
军队文职考试一本通

回路硬件仿真技术在直升机控制系统中的应用

2020-02-01 15:39
直升机系统 本项目需要开发适合 Quanser 3 自由度(3DOF))直升机的控制器软件。这 是一个桌面电磁系统,内含由两个独立电子马达控制的 3 个旋转轴,每个轴 驱 动 一 个 推 进 器 。 图 1 是 直 升 机 系 统 及 其 运 动 轴 的 框 图 。 align=RIGHT VSPACE=12 HSPACE=12 ALT="图 2:直升机控制系统。"> 假设倾斜轴的倾角接近零度,在对两个马达施加相同的高电压后直升机 会垂直向上攀升。对两个马达施加不同的电压会使直升机绕倾斜轴旋转。为 了使直升机向前移动,首先需要将直升机倾斜到一个非零角度,然后对两个 马达同时施加适当的电压来产生向前的推力。 如图 2 所示,系统采用的控制计算机具有 3 个位置编码器输入信号、两 个马达电压输出信号,以及用于模式选择与操纵杆控制的用户输入信号。控 制计算机通过专门设计的接口卡接收位置编码器输入信号,同时产生模拟输 出电压,并通过数模转换器(DAC)驱动那两个马达。为了提供足够大的马达 工作电流,DAC 的输出需要连接到随后的功率放大器进行放大。 位置编码器会随时监测每个轴的运动,这些编码器通过光学原理感知旋 转运动并产生数字化的角度位置数值。位置编码器将以每 360°4096 个步距, 或 0.08789°的量化步距分辨率对这些数值进行量化。每个编码器的输出信号 由两个 TTL 电平组成,即 Phase A 和 Phase B,当对应轴反转时输出信号就 在这两个高低电平之间来回切换。根据这两个信号之间的相位差可以判断每 个轴的运动方向,如图 3 所示。脉冲频率正比于每个轴的旋转速率。 直升机控制器的性能指标满足要在一定时间内将前进和上升轴移动到任 意一个指定位置,时间一般应控制在 10 秒以内。此外,直升机控制器的软 件必须支持其它一些操作模式。全套控制器操作模式包括: 关闭模式:align=RIGHT VSPACE=12 HSPACE=12 ALT="图 3:位置编码器 输出信号。"> 控制器软件以关闭模式启动,此时两个马达上的电压为零。一旦系统离 开这个模式,就只能从空(Null)模式再次进入该模式。当从空模式进入关闭 模式时,需要控制上升轴缓慢地下降到桌面正上方,然后将马达电压设置为 零。 空模式: 当从关闭模式转变到该模式时,首选要给马达上电,并控制所有轴到零 位置。如果从其它模式转变到空模式,那么只需要将所有轴控制到零位置。 零位置是指倾斜轴和前进轴在系统启动位置,而推进组件被抬举到上升方向 的水平位置,如图 1 所示。 随机模式: 在 10 秒时间间隔内为前进和上升轴位移命令产生预定义范围内的一个 新随机值,然后由控制器软件将直升机移动到相应的位置。 自动驾驶模式: 在这种模式下,由操纵杆产生控制器所需的上升和水平行进命令。通过 操纵杆的前后动作控制上升位置,通过左右动作来控制水平位置。控制器通 过移动直升机来跟随命令所指定位置。 手动模式: 在手动模式下,操纵杆直接产生马达驱动用的电压和与电压差。操纵杆 前后动作控制两个马达电压的和,左右运动控制两个马达电压的差。在这种 模式下系统特别难以控制,如果任何轴的运动超过了某个位置限制,控制器 就会自动切换到空模式。通常,在进入该模式后的几秒钟内可能产生违反限 制的问题。 在确定系统功能和性能要求后,可以进行控制器软件的开发和测试。而 仿真技术的应用可以加快直升机控制器软件的开发和测试速度。 项目规范 为了对嵌入式软件进行 HIL 仿真测试,需要使用嵌入式处理器及其附属 I/O 器件。对于许多嵌入式系统来说,这只是整个系统的一小部分,可以在 早期开发阶段实现组合。可以创建一个直升机硬件及其与外部环境交互的仿 真,并通过控制器的 I/O 接口把这个仿真与嵌入式控制器连接起来。嵌入式 控制器和直升机仿真就如同实际系统一样工作。 在复杂的嵌入式产品开发早期,经常需要仿真一个完整系统在预期环境 中的运行。这种利用动态系统仿真工具,如 Simulink 开发的仿真系统通常不 是实时的,但可以作为 HIL 仿真的基础。某些时候需要对这些仿真系统中包 含的模型进行简化和优化,使之适合实时仿真使用。不过在本项目中不需要 修改这些模型。 复杂系统仿真需要用到许多高级的数学算法,但可以采用专门的软件工 具来简化任务:Simulink 是 MATLAB 的一个附件,它可以用来提供以框图为 主的图形环境下的动态系统仿真。用 Simulink 进行仿真的方法是先把“调色 板”上的模块拖到绘画区域,然后用代表信号流向的直线把这些模块连接起来。 图 4 就是直升机项目中采用的位置编码模型的 Simulink 框图,该模型把以弧 度表示的角度位置作为其输入信号,并产生 Phase A 和 Phase B 信号作为其 输出。另外,它还输出指示信号,用来指示相应轴到达零位置的时刻。直升 机位置编码器不会产生指示信号输出,因此不使用该 Simulink 模型的输出。 Stateflow 是 Simulink 的一个附件,用以实现有限状态机模型。在这个 直升机项目中,Stateflow 模型用来实现直升机模式选择逻辑。 Real-Time Workshop 根据 Simulink 框图产生 C 代码,其它工具需要使 用这些代码来达成编译与执行目标。在本项目中,其它工具包括 Real-Time Windows Target 和 xPC Target。 Real-Time Windows Target 允许仿真的编译与执行作为 PC 机 Windows 系统中的一个实时进程,能与 Windows 操作系统同时运行。在本项目中, Real-Time Windows Target 执行的是 HIL 系统仿真,所用主机正是开发和控 制直升机软件的计算机。align=RIGHT VSPACE=12 HSPACE=12 ALT="图 5:直 升机和控制器模型。"> xPC Target 允许在 PC 机上执行仿真,此时 PC 机的功能如同专门的实时 控制器。xPC Target 还提供实时的多任务内核供只有有限硬件资源的嵌入式 处理器使用。xPC Target 在本项目中用来在一台独立 PC 上产生和执行直升 机控制器用的实时代码,此时该 PC 机就用作“嵌入式”控制器。 仿真开发 控制器软件开发的第一步是实现对整个直升机控制器系统的仿真,图 5 给出了仿真的顶层框图。其中两个较大的方框分别表示直升机系统本身和数 字控制器,两个较小的带有“操纵杆”和“模式命令”标签的方框向控制器提供用 户输入信号。图 5 中的“直升机”框图包含有直升机动态行为的 Simulink 模型, 如图 6 所示。从图 6 可以看到,该模型采用了转移函数、求和函数和积分器 等多个 Simulink 模块。带“有限运动”标签的模块包含有一个受限于向下靠近 桌面方向的上升轴运动模型。当被仿真的直升机碰到桌面时,所有 3 个运动 轴的速度都被置为零,因此非常接近实际直升机的行为。从靠近右边的 3 个 量化器可以看出位置编码器的量化效果。 “有限运动”模块代表一个子系统。子系统模块允许在仿真开发期间通过 分层图集(hierarchical sets of diagrams)来控制复杂性。子系统间可以进行 任意多层的嵌套,类似于函数的嵌套调用。 图 5“控制器”子系统的详细内容见图 7。对 3 个轴角度测量值的量化结 果成为控制器的 3 个基本输入信号,控制器输出的是两个马达的驱动电压。 图 7 中的主要模块有:驱动直升机到指定位置的“自动驾驶”模块,在不同操 作模式下产生前进和上升位移命令的“命令发生器”模块,实现用于选择不同 直升机操作模式的有限状态机的“模式控制”模块。 “模式控制”模块内所含的状态流程框图如图 8 所示。该框图包含了系统 启动时对操纵杆进行校正的逻辑、用户控制下的模式改变、当违反位置限值 时自动切换到空模式,以及系统关闭的控制。 图 5 所示的“控制器”模块内部提供了嵌入式软件的完整实现方法。常见 的方法是将嵌入式软件开发当作一个独立过程,该过程将仿真作为可执行的 软件要求描述来使用。然而,更有效的方法是将仿真中的控制器实现作为“源 代码”,供嵌入式软件使用。 在本项目中,可以把图 5 的“控制器”模块挎贝到新的 Simulink 项目中, 并向框图中添加相应的 I/O 器件模块。然后,再调用 Real-Time Workshop 创建 C 代码,经过编译后下载到"嵌入式”PC 控制器。到此就完成了嵌入式软 件的开发工作。 回路硬件 有了直升机和控制器的非实时性 Simulink 仿真基础后可以着手 HIL 仿真 开发了。首先需要创建一个新的 Simulink 项目,再把图 5 中带“直升机”标签 的模块挎贝进来。这种仿真建立了直升机动态模型,并包括了相应的 I/O 器 件接口。Real-Time Windows Target 支持多种 I/O 器件。HIL 仿真所需的 I/O 要求包括两个 ADC 输入(用于接收控制器发出的马达命令电压)和 6 个 TTL 数 字输出(为 3 个仿真位置编码器分别提供 Phase A 和 Phase B 信号)。 本项目中将运行 Windows 的台式 PC 作为主机系统,因此需要使用满足 上述条件并且具有 PCMCIA 接口形式的 I/O 器件。National Instruments 公 司的 DAQCard-1200 能够满足这些要求,并提供一根带状电缆用于连接计算 机内的接口卡和独立的连接器模块。 直升机仿真以固定的帧速率运行,其仿真 Phase A 和 Phase B 信号的 TTL 输出则一个仿真帧更新一次。由于位置编码器信号的脉冲速率正比于运 动轴的角速度,因此仿真帧速率可以限制能准确再现的最大角速度。 如果采用这种方法对位置编码器信号进行建模,那么当 Phase A 和 Phase B 信号隔帧交替时就能产生最高的仿真角速度。这时根据等式 1 就能 得出仿真更新间隔 h(秒)条件下最大的角速度值 wmax(度/秒): 等式 1 从直升机行为的数字仿真结果可以明显看出,倾斜轴具有最大的峰值角 速度,但很少出现超过 100°/秒的情况。理想情况下 h 应不小于一定值,这 样 HIL 仿真就不会占用计算机太大的计算资源。综合考虑这些要求, h 的最 佳 值 应 是 500us , 此 时 更 新 速 度 是 每 秒 2000 帧 , 最 大 的 仿 真 角 速 度 是 175.8°/秒,该速度已经远远超过最大的角速度期望值。 每秒 2000 帧的直升机仿真更新速度已经大大超出对直升机进行动态精 确建模的速度要求,因此没有必要再用高阶积分算法来获取更精确的结果。 相对简单的二阶积分算法可以获得较好的精度,此次仿真选用的就是 Simulink“ode-2”梯形积分算法。与采用更加复杂的高阶积分算法相比, 这种算法能使仿真具有更高的效率。 为了在目标 PC 上下载并运行嵌入式软件,需要用串行电缆连接主机与 目标计算机,并从软盘启动目标系统内核。根据控制器的 Simulink 框图,接 下来就可以下载运行嵌入式控制器用的软件。在将目标系统的 I/O 器件与 DAQCard-1200 的相应端子连接起来后,可以在主机的 Real-Time Windows Target 中运行直升机的 Simulink 仿真。最后根据 Simulink 框图将命令发送 给嵌入式控制器,从而启动控制器工作,完成仿真直升机的“飞行”。 在 HIL 仿真工作模式下可以详细检查嵌入式软件的各个方面,从而可以 发现并解决设计与实现中的很多问题。所有这些检测工作期间无需变动任何 实际的硬件。在这轮 HIL 仿真测试结束后,我们就可以得到经过全面测试的 嵌入式应用软件,接下来与实际硬件的快速整合成功的可能性就非常大。 系统整合 在嵌入式软件完成 HIL 测试前我们有意避免嵌入式软件与实际直升机硬 件一起运行,主要原因是为了体现 HIL 仿真的意义,以及减少硬件损坏的风 险。在完成 HIL 测试后,可以把电缆从 DAQCard-1200 上拔下来并连接到直 升机硬件上,接着给系统上电并把直升机控制到“空模式”位置,然后使之进 入随机模式,此时直升机会每隔 10 秒飞到随机产生的前进和上升位置。虽 然在响应命令时的摆动和过冲要比 HIL 仿真时大一些,不过就这第一次试验 来说还是相当成功的。 为了能在所有操作模式下都能取得令人满意的系统性能,有必要对控制 器增益进行一些调整。HIL 仿真并不能完全匹配实际系统的行为,这是因为 直升机仿真实际上在某些方面作了简化处理,在仿真中使用的系统集合属性 并不完全符合实际系统属性。 进行仿真开发时通常都会作出一定程度的简化处理,事实上人们不可能 对影响实际系统行为的所有因素实现完美的建模。最简单的方法是尽量减少 仿真与实际系统间的差异,并适当调整嵌入式软件所需的参数。 HIL 仿真为本项目的开发过程提供了极大的便利,整个嵌入式应用在首 次与系统硬件结合运行前就得到了真实环境下的全面测试,因此有效地避免 了硬件损坏的风险,而且更容易识别和解决与嵌入式软件有关的问题。整合 过程也显得相当简捷,只是对少许参数作了重新调整。如果将未经测试的大 型嵌入式软件直接与硬件连接运行,那么相对来说这样的任务就要艰巨得多, 通常还会出现一些与整合本身有关的问题。 本项目充分体现了 HIL 仿真在开发复杂嵌入式系统软件中的价值。HIL 仿真技术能够在开发早期阶段对嵌入式软件作出全面测试,因此降低了将未 经测试软件运行于昂贵的原型硬件上所具有的风险。与传统开发方法相比, 正确利用 HIL 仿真技术能够在更短的时间内开发出更高质量的产品。
温馨提示:当前文档最多只能预览 2 页,此文档共4 页,请下载原文档以浏览全部内容。如果当前文档预览出现乱码或未能正常浏览,请先下载原文档进行浏览。
回路硬件仿真技术在直升机控制系统中的应用 第 1 页回路硬件仿真技术在直升机控制系统中的应用 第 2 页

下载提示

1 该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读

2 除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑修改

3 有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载

4 该文档为会员上传,版权归上传者负责解释,如若侵犯你的隐私或权利,请联系客服投诉

最近更新

热门排行