发明名称 一种共轴式无人直升机的双余度姿态控制系统及调试方法
摘要 一种共轴式无人直升机双余度姿态控制系统,它由串口通信模块、PCM解码模块、AD采集模块、PWM输出模块和CPU控制模块组成,串口通信模块、PCM解码模块、AD采集模块作为系统输入,由CPU控制模块进行改进的数字PID控制,以PWM脉冲的形式由PWM输出模块输出,实现对后级大功率管的控制;其调试方法有五个步骤,即(一)根据参数调试对象连接已定义的I/O端口至高或低电平端;(二)调节电位器为Kp和Kd提供初始参数,对后级大功率管进行控制;(三)保持Futaba的中立位置不变,调节电位器,使舵机达到自激抖动的临界状态;(四)操作Futaba输出超过脉冲门限的信号;(五)操作Futaba返回中心位置。该方法实现了相关参数的调试和存储,降低了干扰,提高了系统稳定性和响应速度。
申请公布号 CN101833336B 申请公布日期 2012.01.04
申请号 CN201010162559.6 申请日期 2010.04.28
申请人 北京航空航天大学 发明人 吴智杰;赵琦;王修桐;胡继忠
分类号 G05D1/08(2006.01)I 主分类号 G05D1/08(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种共轴式无人直升机双余度姿态控制系统,其特征在于:它是由串口通信模块、PCM解码模块、AD采集模块、PWM输出模块和CPU控制模块组成的;它们之间的逻辑关系是:串口通信模块、PCM解码模块、AD采集模块作为系统输入,由CPU控制模块进行改进的数字PID控制,以PWM脉冲的形式由PWM输出模块输出,在简单的外围逻辑电路配合下,实现对后级大功率管的控制;同时,CPU控制模块的主要功能还包括双CPU的相互监测、备份和切换,从而实现“双余度”控制;所述串口通信模块是:由软件初始化并控制CPU的串口控制器即UART单元实现,该UART单元继承了传统51单片机的串口发送和接收结构;本系统利用RS422电平标准的外围串口转换芯片实现CPU串口电平标准和外部传输电平标准的转换;并利用串口中断服务程序对机载主控制计算机的数据进行处理;为了达到机载主控制计算机同时控制本系统的多个实体的目的,并且减小误码率的产生,设计了一种如下表所示的适用于多机通信的串口通信协议:  名称  帧头  地址  长度  数据  校验和  帧尾  字节(byte)  2  1  1  N  1  1其中,“帧头”用于机载主控制计算机与本系统之间串口通信的同步;“地址”是为本系统的多个实体预先分配的地址,实体可根据地址确认执行自身的控制信息,而机载主控制计算机可根据地址确认各实体当前的工作状态;“长度”是由帧头到校验和的字节数,发送端可根据此信息实现数据量不定的串口通信,接收端可通过长度信息和帧尾信息验证接收数据是否正确;“校验和”用来判断此次通信是否出现无码情况,其校验方法是将帧头至帧尾的全部字节依次进行位异或操作;“帧尾”是一帧数据的结束标志;当串口接收中断标志被置位时,串口中断服务程序根据“帧头”、“地址”分别进行帧同步和信息过滤,在接收到本机所需的控制信息后根据数据帧“长度”预测“帧尾”位置,并根据“校验和”信息进行数据验证,确定无误后进行有效数据的存储和处理;所述PCM解码模块是:由CPU的外部中断和定时器配合实现,用于对手持无线电遥控器即Futaba发送的PCM脉冲的接收与解码量化;本系统通过将定时器配置为外部中断触发计数的模式,在外部中断的下降沿中断服务程序中获得PCM脉冲测量值,并设计了一种简单易行的PCM解码量化方法:a)计算定时器对PCM脉冲计数值最值Vm与中心位置计数值V0之间的差值;b)计算AD采集值的最值Am与陀螺或舵机中立位置的AD采集值A0之间的差值;c)根据两差值的比例关系设计比例系数K;d)计算定时器对PCM脉冲计数值Vi与中心位置计数值V0之间的差值,可将此差值直接量化为后续PID计算所需的整型数据Pi,其量化公式为:Pi=(Vi‑V0)×K    其中: <mrow> <mi>K</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>A</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>A</mi> <mn>0</mn> </msub> </mrow> <mrow> <msub> <mi>V</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mn>0</mn> </msub> </mrow> </mfrac> </mrow>该PCM解码模块与串口通信模块组成了本系统的给定值输入模块,为了提高控制灵活性,本系统为两路输入设置了优先级,且后者优先级高于前者:后者在有效状态下可以被前者抢占,且系统切换至PCM脉冲控制模式;而前者在有效状态下系统忽略串口接收的有关定值部分的命令,系统工作在PCM脉冲控制模式;当且仅当系统判定PCM脉冲控制失效时,退出当前控制状态,使能串口命令控制,系统进入串口命令控制模式;所述AD采集模块是:由CPU的集成模数转化即ADC单元配合外围差分电路实现;该ADC单元的采集功能完全在CPU内部实现,量化数据直接被CPU的控制模块使用;该AD采集模块输入方式具有四通道和两通道两种模式,为了减小直流分量的干扰对采集值精度的影响,各通道均采用差分输入的方式;所述PWM输出模块是:由CPU的集成可编程的计数器阵列即PCA单元组成,配合外围协调电路,以电流驱动的形式控制后级大功率管系统;该PCA单元具有六路独立的捕捉/比较模块和输出,并共用一个计数/定时器;本系统使用其中三路,并配置其工作在8位PWM输出状态下,输出的PWM脉冲具有255位量化精度,最小分辨率由系统时钟与量化精度共同决定;为了保护后级大功率管,本系统提供两路控制电平与两路PWM脉冲同步输出,由外围匹配电路将两者耦合,用于控制后级大功率管的正转、反转和截止状态,判断当前PID计算结果与前一次PID计算结果是否为异号,若为异号则需改变后级大功率管的转向,此时需要400us延时输出,两路电平为高,控制其工作在截止状态;在截止时期内继续进行PID计算和判断过程,如再异号则清零计数,继续400us延时,以此反复直至延时结束,输出PWM脉冲并改变电平状态;所述CPU控制模块:其功能包括协调系统工作状态和PID控制流程,进行改进的数字PID计算以及双余度控制的实现;为了实现上述功能并且提高系统软件的逻辑性、可读性和可移植性,该CPU控制模块是通过模块化的方式加以区分与设计,它包括:系统工作状态协调模块、PID控制模块、改进的数字PID计算模块和双余度控制模块;其间的相互关系为:系统工作状态协调模块通过改变系统在飞行环境下的工作状态,调整系统其他模块的具体实施流程;在确定工作状态的前提下,双余度控制模块根据实时监测信息改变CPU当前身份,从而重置PID控制流程;PID控制模块受制于前面两个模块的输出,用于在不同工作状态下对当前PID计算的流程进行控制;改进的数字PID计算模块被PID控制模块调用,即PID算法的具体实现;该系统工作状态协调模块是本系统在飞行环境下确定和更改当前控制模式标识的唯一途径;它根据当前给定值的获得渠道确定当前系统的工作状态,即等待PCM脉冲或串口控制命令状态,PCM脉冲使能状态和串口控制命令使能状态;系统工作状态还可由双余度控制模块进行自主切换,即当CPU检测自身或备份CPU出现故障时,可改变自身的工作状态;该PID控制模块是通过改变一个双向链表的当前节点来实现,此双向链表中的节点是由PID计算中涉及到的变量和参数组成的结构体;它主要用于协调PID控制流程;设计一套PID控制流程,并对PID计算进行C语言的代码优化;该PID控制流程分为两种情况,即接收到有效的PCM控制脉冲或串口命令获得给定值初值时的及时响应过程;以及在完成上述过程后,PID流程进入的微调状态;该改进的数字PID计算模块是由当前给定值、采集值、比例系数和微分系数变量,按照数字PID算法进行的运算,此模块的输入与输出均被量化为整数行变量;它采取了下列措施提高PID计算的灵活性:对当前给定值与采集值的差值进行分区,并据此采取协调P、D参数、设立“死区”进行分段式的PID计算;该双余度控制模块是由“检测”、“判决”和“切换”三个阶段组成;本系统的硬件板卡中包括两片CPU,被初始化为主、从两种身份;“检测”是由主CPU的信号源检测和CPU的实时互监测两部分组成,其中主CPU通过对PCM脉冲和串口命令状态进行具有优先级的信号源检测,而CPU之间通过输出信号进行互相监视,即实时互监测;“判决”根据检测结果,结合CPU身份实时判别系统工作状态;“切换”根据当前判决结果异常,以及双CPU的当前身份进行自主切换,同时为避免两者同主或同从的情况特别设计了切换方案;它用于CPU工作状态备份和切换;两者同步完成自身的输入处理、流程协调和PID计算,为相互备份和切换时飞机姿态控制的平稳过渡做好准备。
地址 100191 北京市海淀区学院路37号