郭背背
(北京精密机电控制设备研究所,北京 100076)
大型航天器控制系统数字化已成为趋势。这类系统通过组建1553B 总线网络,形成一个实时分布且高可靠的集成电子处理系统,并通过集成设备和嵌入式计算机实现智能控制模块间的信息共享和并行处理[1]。航天器控制系统中的液压伺服子系统通过数字总线伺服控制器完成技术状态的改进。以数字信号处理(Digital Signal Process,DSP)为核心的液压伺服控制器在保留原有控制器模拟信号采集功能的同时,增加了数字信号控制运算模块,这种新型控制器较传统控制器具有更好的控制效果,再加上质量轻、集成度高、成本低、调节度高等特点,提升系统整体性能的同时也减小了系统的容量和功耗,使液压伺服系统使用范围更广[2-3]。
液压伺服机构位于航天器发动机旁,是控制系统的重要执行单元。伺服机构通过推动作动器活塞杆,使发动机同机身形成一定角度,从而实现航天器飞行方向控制与姿势稳定[4]。该控制系统中主控计算机通过传感器感知航天器机体姿态,并在实时运算后发出动作指令,由数字伺服控制器接收、分析和求解发动机命令信息,并与作动器位置反馈合成后及时运算,得到驱动电流,从而使作动器活塞杆转动到特定位置来实现发动机动作。伺服控制器通过上述作业形式把接受的发动机摆角命令变换为伺服机构运转的驱动参数,从而控制航天器按照指定路线飞行。
伺服控制器是三冗余结构,包含3 个独立的子控制器,他们同步控制伺服机构工作,每个子控制器控制4 个作动器。伺服控制器在控制系统中充当远程终端,通过1553B 总线实现航天器控制系统内的数据传输,同时负责伺服子系统中所需量的收集和变换、数字闭环回路控制、零位的补偿和校正以及为自身和伺服作动器供电等工作[5]。该控制器由3 个功能块组成,分别为电源模块、以DSP 为核心的控制总线模块、模数转换和功率驱动模块,其子控制器硬件结构功能框图如图1 所示。
图1 子控制器功能框图
为避免子控制器回路间干扰,子控制器需要独立供电。伺服控制器以(+28±3)V 作为主电源输入。内部二次电源采用集中供电和分布式供电两种方式。+28V 的电源通过电源滤波器和DC/DC 转换器转换成为±15 V 和+5 V 的电源。其中:+5 V 主要用于数字电路和模数转换(Analog/Digital,A/D)模块,经过电源变换器输出3.3 V 和1.8 V 的电源供DSP 芯片使用;±15 V 用于液压伺服系统信号采集传感器、数模转换(Analog/Digital,D/A)转换和运放等电路,同时±15 V 与三端集成稳压器生成±9 V 为执行机构电位计供电。
控制/ 总线模块主要包括DSP 控制电路,复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)逻辑控制电路和1553B 总线接口电路,这3 种电路集于一块印制电路板(Printed Circuit Board,PCB)上,模块连接图如图2 所示。
图2 控制总线模块连接图
2.2.1 DSP 控制电路
DSP 控制电路采用TMS320F2812 高性能32 位数字信号处理器,可实现数字信号高精度的计算和访问,可通过芯片外设接口关联其他芯片。DSP 控制电路主要由电源、时钟、外部看门狗及复位电路组成,能实现伺服系统的信号采集与数字处理、信号补偿、位置闭环控制以及程序存储等功能。
2.2.2 CPLD 逻辑控制电路
可编程逻辑控制器件通过Verilog 语言程序实现对复杂逻辑关系电路的连接。DSP 芯片通过CPLD 逻辑电路实现对总线协议芯片、A/D 和D/A 转换芯片的实时精准逻辑控制。
2.2.3 总线接口电路
该电路选用BU-65170 协议芯片作为1553B 总线接口端。芯片选用16 位缓存接口形式将芯片内部地址和数据缓冲区同其接口的微处理器的地址和数据分隔。
模数变换模块主要用来实现信号采集与变换,从而将系统采集的模拟信号变换成数字信号,逻辑运算后,再将数字信号变换输出为模拟信号,其逻辑示意图如图3 所示。
图3 模数转换模块示意图
2.3.1 模拟信号采集部分
液压伺服控制器使用片内A/D 和片外A/D 共同采集所需模拟信号,其中片内A/D 中的3 个子控制器同步采集作动器位移、充气压力、液压油位和伺服阀入口压力等物理量,片外A/D 用来收集温度、转速、电源信号、电流和低压等物理量。
2.3.2 功率驱动部分
功率驱动部分主要由D/A 芯片和功率放大器构成,主要用来放大D/A 输出信号的功率,输出伺服阀驱动电流。DSP 输出的数字信号经D/A 转换为模拟信号后经过两倍同相运算放大器缓冲后再输入到功率放大电路。此放大器主要作用一是减少数字高频信号对模拟信号的干扰,二是使D/A 输出电压满足A/D 输入电压要求,其子控制器的D/A 输出信号并联集合给各自的功放。
软件以DSP 为基础,使用Code Composer System开发软件进行硬件配置和程序开发。其中硬件配置包括开发环境创建、运转环境设置和存储区域定义。程序部分采用模块化设计思想,由主程序和两个中断子程序组成。执行主程序主要用来完成硬件初始化,两个中断子程序用来实现伺服控制器功能。
3.1.1 主程序
主程序主要用来完成DSP 芯片、BU-65170 总线协议芯片和参数变量的初始化、系统自检、中断与定时器使能以及主回路响应等功能,程序流程如图4 所示。
图4 主程序流程图
3.1.2 总线中断子程序
总线中断子程序是指总线协议芯片根据所接受的总线控制命令向DSP 发起外部中断请求并执行相应功能的程序。总线中断控制指令有两种:一是总线模式代码,它决定了总线的通信方式,文中使用了自检、同步和复位3 类代码;二是总线数据传输指令,它实现了收发伺服子系统动作命令和状态量的功能。
中断子程序响应速率快,处理事件便捷。伺服控制器作为总线远程终端,能够根据BU-65170 发出的信号做出相应中断程序,从而完成总线命令分析,实现位置命令或模式代码的解析。具体模式如下:首先,若是自检、复位模式代码,则通过配置相应的标记位并在主程序中分别运行;其次,若是同步代码则直接进行同步时间设置;最后,若是数据命令,则将命令中位置数据信息分解并存储在对应的地址中参与伺服操作。总线中断子程序流程如图5 所示。
图5 总线中断程序流程图
3.1.3 定时中断子程序
伺服控制器要求每次采样、运算与控制输出的时间为1 ms,在这1 ms 中不仅要实现位置信息获取、控制算法运算和D/A 输出,同时还需要采集动作器运行状态量,以及实现总线传输数据的设置,并将状态量更新至BU-65170 中。由于系统硬件采用余度管理,采样数据量比较大,导致子控制器很难同步实现在1 ms 内将所有采样信号采样、运算并输出[6]。为解决上述问题,将信号通道分为了重要信号和次重要信号,其中重要信号参加伺服运算,次重要信号只是总线传输。因此该子程序每1 ms 只要完成重要信号采样及伺服运算,次重要信号简单采样,就能保证20 ms 内将所有信号数据值更新至BU-65170。该程序是实现伺服控制的核心部分,其流程如图6 所示。
图6 定时中断子程序流程图
自检是指系统或设备依赖于一些自测电路和自测软件执行系统或设备的自我参数检测和故障自我诊断,并进行故障隔离的一种综合能力[7],是用于测试、确诊或分隔系统及设备故障部分的有效方法。伺服控制器自检以硬件电路为基础通过软件落实检测功能。具体检测方面包括:DSP 微处理器检测、总线接口检测、A/D 信道检测、D/A 信道检测及Bit 软件检测。
为满足伺服子系统的控制要求,液压伺服控制器将作动器的线位移反馈构成位置闭环控制。控制回路为比例积分控制器(Proportional Integral controller,PI)控制,并通过动压反馈复合校正和陷波补偿来改善液压伺服系统的快速性和稳定性[8-9]。系统框图如图7 所示。实际工程中,真正的控制量为发动机角位移,而发动机角位移可由液压作动器的线位移间接体现,因此只需描述作动器线位移动态特性即可[10]。
图7 伺服控制系统框图
由于阻尼值偏低限制了电液伺服系统的性能,为进一步优化系统,加大液压伺服系统自身频率的同时也增大阻尼比,选择了动压反馈校正。虽然该反馈校正可以较好地压制低频段谐振峰,但高频段谐振峰抵制作用并不理想,而负载特性在中高频段负载中会出现双谐振点,因此又在动压反馈条件下增加了陷波补偿于高频段。
文章以航天器液压伺服子系统为背景,概述了基于DSP 的伺服控制器的硬件设计、软件设计和控制算法。与传统控制器相比,伺服控制器促成了液压伺服数字控制、1553B 总线通信功能和三冗余高可靠技术。该控制器具有较强的适应性和可靠性,同时还具有模块化设计以及智能总线通信等优点,实现了航天伺服控制系统数字化的改造,对后续工程实践有一定参考价值,但仍有一些问题需要深入研究,例如:可考虑自适应和鲁棒控制策略改善伺服系统动态性能;除硬件故障余度技术外,还可以增加软件余度管理,从而增强系统可靠特性。