一种基于FPGA平台的舵伺服实时正弦扫描驱动方法及装置制造方法及图纸

技术编号:13891537 阅读:50 留言:0更新日期:2016-10-24 11:55
一种基于FPGA平台的舵伺服实时正弦扫描驱动方法。一种基于FPGA平台的舵伺服适时正弦扫描驱动方法,包括如下步骤:根据试验相关参数要求,在PC端上位机程序进行配置,然后生成指令信号;程序运行,首先向FPGA内部的FIFO中填一组指令数据,并在FPGA内部通过串口总线循环发送一帧信号到舵伺服系统,然后判断有无反馈信号,若有则可以正式开始扫描试验,若无则排查故障;开始正式试验后,实时控制器通过定时循环向FPGA循环加载指令;FPGA循环读取FIFO内指令数据并按照舵伺服系统协议将其转化为一帧信号发送到串口模块,串口模块将信号发送到舵伺服系统,与此同时串口模块同步高速循环读取舵伺服系统的反馈信号,并将作动器的反馈数据读取出来;将数字指令数据和反馈数据同步经D/A转化后输出。

【技术实现步骤摘要】

本专利技术涉及自动控制与测量的
,特别涉及一种舵伺服系统地面试验方法。
技术介绍
在飞行器中,舵伺服系统的频率特性是姿控系统设计的重要依据。为了测量系统的频率特性,可以采用正弦连续扫描的方法。正弦连续扫描系统产生一定频率范围的正弦信号,将这一正弦信号加入被测舵伺服系统的输入端。同时,测出该系统的同步输出。则测出的输出信号与对应输入信号幅值之比就是系统的幅频特性,相位之差就是系统的相频特性。为了获取舵伺服系统精确的频率特性,必须做到指令信号和反馈信号严格的同步,在高频时稍微的时延将导致系统极大的相位延迟。传统Windows系统是一个非实时系统,不能保证在一个循环中收发数据时的高确定性和高可靠性,所以做不到输入和输出的同步。现有飞行器的舵伺服系统为测试系统的开环频率特性大多预留有模拟输入和输出接口,造成舵机控制器的体积和重量加大,并且在地面试验时流程复杂,环节多。随着对飞行器的改进,舵伺服系统不再留有模拟接口,而现有的舵伺服地面测试试验系统仍然是发送模拟指令信号控制舵机,所以需要有一种可以发送数字指令信号的试验装置和方法。
技术实现思路
针对现有技术的不足,本专利技术应用实时控制器PAC(可编程自动控制器)和FPGA设置了驱动舵伺服系统的装置,PAC向FPGA平台下载指令信号,FPGA通过串口总线实现对舵伺服系统的控制和其反馈数据的同步回采。高确定性、低抖动以及高可靠性是实时控制系统的主要优势,也是控制程序稳定运行的关键。系统主要处理工作交给硬件资源FPGA处理,保证了系统的高效率运行和高速信号的收发同步。所以在舵伺服系统地面试验时,可以精确的获取其频率特性。一种基于FPGA平台的舵伺服实时正弦扫描驱动方法,包括如下步骤:步骤401:在PC(101)端上位机程序配置正弦扫描范围、幅值、倍频程、扫描周期、电压/度转换关系、选择要控制的作动器以及作动器预偏执角度,然后执行步骤402;步骤402:根据步骤401配置信息生成数字指令信号,并图形显示指令信号和计算指令数据的个数NUM,然后执行步骤403;步骤403:实时控制器(102)向FPGA的FIFO中加载1000个数据,然后执行步骤404和步骤405;步骤404:串口模块(104)以500ms速率循环向舵伺服系统发送同一帧信号并接收反馈
信号,然后执行步骤405步骤405:检查有无反馈信号,若有反馈信号执行407步骤,若无反馈信号执行步骤406;步骤406:排查故障;步骤407:开始正式扫描试验,然后执行步骤408,以及步骤410和415;步骤408:实时控制器(102)进入定时循环,并判断FIFO中数据个数,当小于半满500个时,加载500个指令数据到FIFO中,然后执行步骤409;步骤409:判断指令信号是否全部加载完毕,若加载完毕则退出定时循环,若没有则继续执行步骤408;步骤410:FPGA以扫描周期为周期循环读取FIFO内部一个指令数据,并将代表已发送数据个数的变量A加1,然后执行步骤411;步骤411:按照舵伺服系统控制器(107)协议,FPGA将这个指令数据转化为一帧信号发送到串口模块(104),并将指令数据与电压/度相乘,再经D/A转换,然后执行步骤412;步骤412:串口模块(104)接收到数字指令信号后发送到舵伺服系统控制器(107),然后执行步骤413;步骤413:判断A是否等于NUM,若等于则执行步骤414,否则继续执行步骤410;步骤414:将停止变量Abort赋值为1,同时停止发送指令循环;步骤415:串口模块(104)以50us为周期循环读取舵伺服系统控制器(107)反馈的信号,并将其依次与协议中帧头帧尾相比对齐,确定无误后,读取反馈信号并将变量B加一,变量B代表已接收数据个数,然后执行步骤416步骤416:按照舵伺服系统控制器协议,FPGA从反馈帧信号解读出舵伺服系统反馈的数据,并将其与电压/度相乘,再经D/A转换,再执行步骤417;步骤417:判断停止变量是否为真,若为真则执行步骤418,若为假则继续执行步骤415;步骤418:停止接收循环,扫描试验结束。一种伺服驱动系统装置,包括:PC(101),实时控制器(102),FPGA模块(103),串口模块(104),D/A模块(105),其中PC(101)用于编写上位机程序,实时控制器(102)用于执行实施应用程序,FPGA模块(103)用于接收信号并进行处理,串口模块(104)用于信号的发送和接收,D/A模块(105)用于将数字信号、反馈信号转化为模拟信号;工作时,直流稳压电源(106)与实时控制器(102)和串口模块(104)相连,供电电压为9-30V,PC(101)与实时控制器(102)相连,根据配置信息生成指令信号;实时控制器(102)与FPGA模块(103)相连,应用定时循环将数字指令信号加载到FPGA模块(103)的FIFO中;FPGA模块(103)与串口模块(104)和D/A模块(105)相连,FPGA模块(103)
按照舵伺服系统控制器(107)协议生成指令数据帧发送给串口模块(104),串口模块(104)发送指令数据帧到舵伺服系统控制器(107),舵伺服系统控制器(107)同时将伺服系统动作信息反馈给串口模块(104),串口模块(104)将反馈数据帧回传给FPGA模块(103),FPGA模块(103)对反馈数据帧进行解读得出舵伺服系统控制器(107)的反馈信息。进一步的,实时控制器(102)应用的是可编程自动控制器,其包含一个工业级处理器进一步的,FPGA模块(103)内部构建高速缓冲I/O,且FPGA模块(103)以平行循环的方式执行并行代码,不受处理器核数限制;FPGA模块(103)内部构建了发送指令信号和接收舵伺服系统控制器(107)反馈信号的两个高速并行循环。进一步的,D/A模块(105)为16-bit D/A模块,建立时间是9.5us,输出电压最小和最大值为-10V和+10V。进一步的,在PC(101)可设置电压与角度转换比例系数,使输出电压绝对值范围在2-7V本专利技术驱动系统直接发送数字指令信号,相比发送模拟指令信号,对伺服系统的控制便于计算机处理,抗干扰能力更强。同时实时控制器可以保证指令稳定定时、低延迟、高精度的发送,FPGA可高速访问I/O电路并灵活实现定时、触发及同步等功能,保证了串口总线数据的发送和读取等任务的同步及并行执行,提高了伺服系统频率特性测量的精度。同时当基于串口总线的伺服系统的通信协议有变化时,只需更改程序中很少量部分便可应用,缩短了软件开发及调试周期。附图说明图1是正弦扫描驱动系统结构示意图;图2是正弦扫描驱动系统软件流程。具体实施方式下面结合附图和具体实施方式对本专利技术的技术方案做进一步详细说明。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术要求保护的范围。如图1所示,本专利技术伺服驱动系统装置由PC、实时控制器、FPGA、串口模块、D/A模块组成。直流稳压电源与实时控制器和串口模块相连,供电电压为9-30V。PC与实时控制器相连,根据配置信息生成指令信号。实本文档来自技高网
...

【技术保护点】
一种基于FPGA平台的舵伺服实时正弦扫描驱动方法,包括如下步骤:步骤401:在PC(101)端上位机程序配置正弦扫描范围、幅值、倍频程、扫描周期、电压/度转换关系、选择要控制的作动器以及作动器预偏执角度,然后执行步骤402;步骤402:根据步骤401配置信息生成数字指令信号,并图形显示指令信号和计算指令数据的个数NUM,然后执行步骤403;步骤403:实时控制器(102)向FPGA的FIFO中加载1000个数据,然后执行步骤404和步骤405;步骤404:串口模块(104)以500ms速率循环向舵伺服系统发送同一帧信号并接收反馈信号,然后执行步骤405步骤405:检查有无反馈信号,若有反馈信号执行407步骤,若无反馈信号执行步骤406;步骤406:排查故障;步骤407:开始正式扫描试验,然后执行步骤408,以及步骤410和415;步骤408:实时控制器(102)进入定时循环,并判断FIFO中数据个数,当小于半满500个时,加载500个指令数据到FIFO中,然后执行步骤409;步骤409:判断指令信号是否全部加载完毕,若加载完毕则退出定时循环,若没有则继续执行步骤408;步骤410:FPGA以扫描周期为周期循环读取FIFO内部一个指令数据,并将代表已发送数据个数的变量A加1,然后执行步骤411;步骤411:按照舵伺服系统控制器(107)协议,FPGA将这个指令数据转化为一帧信号发送到串口模块(104),并将指令数据与电压/度相乘,再经D/A转换,然后执行步骤412;步骤412:串口模块(104)接收到数字指令信号后发送到舵伺服系统控制器(107),然后执行步骤413;步骤413:判断A是否等于NUM,若等于则执行步骤414,否则继续执行步骤410;步骤414:将停止变量Abort赋值为1,同时停止发送指令循环;步骤415:串口模块(104)以50us为周期循环读取舵伺服系统控制器(107)反馈的信号,并将其依次与协议中帧头帧尾相比对齐,确定无误后,读取反馈信号并将变量B加一,变量B代表已接收数据个数,然后执行步骤416;步骤416:按照舵伺服系统控制器协议,FPGA从反馈帧信号解读出舵伺服系统反馈的数据,并将其与电压/度相乘,再经D/A转换,再执行步骤417;步骤417:判断停止变量是否为真,若为真则执行步骤418,若为假则继续执行步骤415;步骤418:停止接收循环,扫描试验结束。...

【技术特征摘要】
1.一种基于FPGA平台的舵伺服实时正弦扫描驱动方法,包括如下步骤:步骤401:在PC(101)端上位机程序配置正弦扫描范围、幅值、倍频程、扫描周期、电压/度转换关系、选择要控制的作动器以及作动器预偏执角度,然后执行步骤402;步骤402:根据步骤401配置信息生成数字指令信号,并图形显示指令信号和计算指令数据的个数NUM,然后执行步骤403;步骤403:实时控制器(102)向FPGA的FIFO中加载1000个数据,然后执行步骤404和步骤405;步骤404:串口模块(104)以500ms速率循环向舵伺服系统发送同一帧信号并接收反馈信号,然后执行步骤405步骤405:检查有无反馈信号,若有反馈信号执行407步骤,若无反馈信号执行步骤406;步骤406:排查故障;步骤407:开始正式扫描试验,然后执行步骤408,以及步骤410和415;步骤408:实时控制器(102)进入定时循环,并判断FIFO中数据个数,当小于半满500个时,加载500个指令数据到FIFO中,然后执行步骤409;步骤409:判断指令信号是否全部加载完毕,若加载完毕则退出定时循环,若没有则继续执行步骤408;步骤410:FPGA以扫描周期为周期循环读取FIFO内部一个指令数据,并将代表已发送数据个数的变量A加1,然后执行步骤411;步骤411:按照舵伺服系统控制器(107)协议,FPGA将这个指令数据转化为一帧信号发送到串口模块(104),并将指令数据与电压/度相乘,再经D/A转换,然后执行步骤412;步骤412:串口模块(104)接收到数字指令信号后发送到舵伺服系统控制器(107),然后执行步骤413;步骤413:判断A是否等于NUM,若等于则执行步骤414,否则继续执行步骤410;步骤414:将停止变量Abort赋值为1,同时停止发送指令循环;步骤415:串口模块(104)以50us为周期循环读取舵伺服系统控制器(107)反馈的信号,并将其依次与协议中帧头帧尾相比对齐,确定无误后,读取反馈信号并将变量B加一,变量B代表已接收数据个数,然后执行步骤416;步骤416:按照舵伺服系统控制器协议,FPGA从反馈帧信号解读出舵伺服系统反馈的数据,并将其与电压/度相乘,再经D/A转换,再执行步骤417;步骤417:判断...

【专利技术属性】
技术研发人员:边学鹏苏华昌付玮陈贵龄张鹏飞
申请(专利权)人:北京强度环境研究所中国运载火箭技术研究院
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1