CN106020172A - 一种基于fpga平台的舵伺服实时正弦扫描驱动方法 - Google Patents
一种基于fpga平台的舵伺服实时正弦扫描驱动方法 Download PDFInfo
- Publication number
- CN106020172A CN106020172A CN201610543407.8A CN201610543407A CN106020172A CN 106020172 A CN106020172 A CN 106020172A CN 201610543407 A CN201610543407 A CN 201610543407A CN 106020172 A CN106020172 A CN 106020172A
- Authority
- CN
- China
- Prior art keywords
- signal
- fpga
- module
- serial port
- feedback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Feedback Control In General (AREA)
Abstract
一种基于FPGA平台的舵伺服实时正弦扫描驱动方法。一种基于FPGA平台的舵伺服适时正弦扫描驱动方法,包括如下步骤:根据试验相关参数要求,在PC端上位机程序进行配置,然后生成指令信号;程序运行,首先向FPGA内部的FIFO中填一组指令数据,并在FPGA内部通过串口总线循环发送一帧信号到舵伺服***,然后判断有无反馈信号,若有则可以正式开始扫描试验,若无则排查故障;开始正式试验后,实时控制器通过定时循环向FPGA循环加载指令;FPGA循环读取FIFO内指令数据并按照舵伺服***协议将其转化为一帧信号发送到串口模块,串口模块将信号发送到舵伺服***,与此同时串口模块同步高速循环读取舵伺服***的反馈信号,并将作动器的反馈数据读取出来;将数字指令数据和反馈数据同步经D/A转化后输出。
Description
技术领域
本发明涉及自动控制与测量的技术领域,特别涉及一种舵伺服***地面试验方法。
背景技术
在飞行器中,舵伺服***的频率特性是姿控***设计的重要依据。为了测量***的频率特性,可以采用正弦连续扫描的方法。正弦连续扫描***产生一定频率范围的正弦信号,将这一正弦信号加入被测舵伺服***的输入端。同时,测出该***的同步输出。则测出的输出信号与对应输入信号幅值之比就是***的幅频特性,相位之差就是***的相频特性。
为了获取舵伺服***精确的频率特性,必须做到指令信号和反馈信号严格的同步,在高频时稍微的时延将导致***极大的相位延迟。传统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相连,应用定时循环将数字指令信号加载到FPGA的FIFO中。FPGA与串口模块和D/A模块相连,FPGA按照舵伺服***控制器协议生成指令数据帧发送给串口模块,串口模块发送指令数据帧到舵伺服***控制器,舵伺服***控制器同时将作动器动作信息反馈给串口模块,串口模块将反馈数据帧回传给FPGA,FPGA对反馈数据帧进行解读得出舵伺服***的反馈信息。D/A模块将数字指令信号和反馈信号转化为模拟信号,通过BNC头与数据采集***相连。在本发明中应用的是16-bitD/A模块,建立时间是9.5us,输出电压最小和最大值为-10V和+10V。为提高信号的信噪比,在PC可设置一合适的电压与角度转换比例系数,使输出电压绝对值范围大致在2-7V。
图2为本发明驱动***软件的具体流程,左半部分为实时控制器的上位机程序流程图,右半部分为FPGA的程序流程图。结合图2对以下步骤进行详细的描述:
在步骤401中,在PC端上位机程序配置正弦扫描范围、幅值、倍频程、扫描周期、电压/度转换关系、选择要控制的作动器以及作动器预偏执角度等,然后执行步骤402。
在步骤402中,根据401配置信息生成数字指令信号,并图形显示指令信号和计算指令数据的个数NUM,然后执行步骤403。
在步骤403中,点击start,实时控制器向FPGA的FIFO中加载1000个数据。然后执行步骤405和FPGA程序中步骤404。
在步骤404中,串口模块以500ms速率循环向舵伺服***发送同一帧信号并接收反馈信号。然后执行步骤405。
在步骤405中,检查有无反馈信号,若有则执行407步骤,若无则执行步骤406。
在步骤406中,排查故障。
在步骤407中,点击sweep,开始正式扫描试验。然后执行步骤408,以及FPGA程序中步骤410和415。
在步骤408中,实时控制器进入定时循环,并判断FIFO中数据个数,当小于半满500个时,加载500个指令数据到FIFO中,然后执行步骤409。
在步骤409中,判断指令信号是否全部加载完毕,若加载完毕则退出定时循环,若没有则继续执行408步骤。
在步骤410中,FPGA以扫描周期为周期循环读取FIFO内部一个指令数据,并将代表已发送数据个数的变量A加1。然后执行411步骤。
在步骤411中,按照舵伺服***控制器协议,FPGA将这个指令数据转化为一帧信号发送到串口模块,并将指令数据与电压/度相乘,再经D/A转换。然后执行步骤412。
在步骤412中,串口模块接收到数字指令信号后发送到舵伺服***控制器,然后执行步骤413。
在步骤413中,判断A是否等于NUM,若等于则执行步骤414,否则继续执行步骤410。
在步骤414中,将停止变量Abort赋值为1,同时停止发送指令循环。
在步骤415中,串口模块以50us为周期循环读取舵伺服***反馈的信号,并将其依次与协议中帧头帧尾相比对齐,确定无误后,读取反馈信号并将变量B(代表已接收数据个数)加1。然后执行步骤416。
在步骤416中,按照舵伺服***控制器协议,FPGA从反馈帧信号解读出舵伺服***反馈的数据,并将其与电压/度相乘,再经D/A转换。再执行步骤417。
在步骤417中,判断停止变量是否为真,若为真则执行步骤418,若为假则继续执行步骤415。
在步骤418中,停止接收循环。扫描试验结束。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专利技术人员来说是显而易见的,本文中所定义的一般原理可以在不脱离本发明范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽范围。
Claims (6)
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:判断停止变量是否为真,若为真则执行步骤418,若为假则继续执行步骤415;
步骤418:停止接收循环,扫描试验结束。
2.一种伺服驱动***装置,其特征在于,包括: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)的反馈信息。
3.根据权利要求2所述的伺服驱动***装置,其特征在于,实时控制器(102)应用的是可编程自动控制器,其包含一个工业级处理器。
4.根据权利要求2所述的伺服驱动***装置,其特征在于,FPGA模块(103)内部构建高速缓冲I/O,且FPGA模块(103)以平行循环的方式执行并行代码,不受处理器核数限制;FPGA模块(103)内部构建了发送指令信号和接收舵伺服***控制器(107)反馈信号的两个高速并行循环。
5.根据权利要求2所述的伺服驱动***装置,其特征在于,D/A模块(105)为16-bit D/A模块,建立时间是9.5us,输出电压最小和最大值为-10V和+10V。
6.根据权利要求2所述的伺服驱动***装置,其特征在PC(101)可设置电压与角度转换比例系数,使输出电压绝对值范围在2-7V。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543407.8A CN106020172B (zh) | 2016-07-11 | 2016-07-11 | 一种基于fpga平台的舵伺服实时正弦扫描驱动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610543407.8A CN106020172B (zh) | 2016-07-11 | 2016-07-11 | 一种基于fpga平台的舵伺服实时正弦扫描驱动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106020172A true CN106020172A (zh) | 2016-10-12 |
CN106020172B CN106020172B (zh) | 2018-08-17 |
Family
ID=57109515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610543407.8A Active CN106020172B (zh) | 2016-07-11 | 2016-07-11 | 一种基于fpga平台的舵伺服实时正弦扫描驱动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106020172B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108819228A (zh) * | 2018-08-17 | 2018-11-16 | 南京工程学院 | 一种fdm三维打印控制*** |
CN114141602A (zh) * | 2021-10-20 | 2022-03-04 | 广州禾信仪器股份有限公司 | 四极杆控制扫描质谱***及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763055A (en) * | 1986-11-20 | 1988-08-09 | Westinghouse Electric Corp. | Digital robot control having high performance servo control system |
CN101599670A (zh) * | 2009-05-27 | 2009-12-09 | 北京航空航天大学 | 一种集成化双框架磁悬浮控制力矩陀螺磁轴承控制*** |
CN102354134A (zh) * | 2011-09-02 | 2012-02-15 | 北京邮电大学 | 基于fpga的模块化双关节伺服控制*** |
CN103176450A (zh) * | 2013-02-01 | 2013-06-26 | 北京配天大富精密机械有限公司 | 伺服驱动装置及伺服控制*** |
CN104750029A (zh) * | 2015-03-30 | 2015-07-01 | 深圳市威科达科技有限公司 | 五轴运动控制器及其控制方法 |
-
2016
- 2016-07-11 CN CN201610543407.8A patent/CN106020172B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763055A (en) * | 1986-11-20 | 1988-08-09 | Westinghouse Electric Corp. | Digital robot control having high performance servo control system |
CN101599670A (zh) * | 2009-05-27 | 2009-12-09 | 北京航空航天大学 | 一种集成化双框架磁悬浮控制力矩陀螺磁轴承控制*** |
CN102354134A (zh) * | 2011-09-02 | 2012-02-15 | 北京邮电大学 | 基于fpga的模块化双关节伺服控制*** |
CN103176450A (zh) * | 2013-02-01 | 2013-06-26 | 北京配天大富精密机械有限公司 | 伺服驱动装置及伺服控制*** |
CN104750029A (zh) * | 2015-03-30 | 2015-07-01 | 深圳市威科达科技有限公司 | 五轴运动控制器及其控制方法 |
Non-Patent Citations (1)
Title |
---|
范启富等: "基于FPGA 的多功能多路舵机控制器的实现", 《控制工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108819228A (zh) * | 2018-08-17 | 2018-11-16 | 南京工程学院 | 一种fdm三维打印控制*** |
CN114141602A (zh) * | 2021-10-20 | 2022-03-04 | 广州禾信仪器股份有限公司 | 四极杆控制扫描质谱***及其控制方法 |
CN114141602B (zh) * | 2021-10-20 | 2024-02-13 | 广州禾信仪器股份有限公司 | 四极杆控制扫描质谱***及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106020172B (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110488630B (zh) | 一种控制增稳飞控计算机测试***及测试方法 | |
CN109324601B (zh) | 基于硬件在环的机器人控制器或控制***的测试平台 | |
CN109521755B (zh) | 一种仿真***、旋变测试***和旋变测试方法 | |
CN106844822B (zh) | 一种支持快速虚实互换的运载火箭半实物仿真方法 | |
CN106707791B (zh) | 运载火箭控制***半实物仿真同步评价***和方法 | |
CN102435948B (zh) | 一种动负荷模拟测试仪及模拟测试方法 | |
CN104598373A (zh) | 一种多技术融合的嵌入式软件测试方法 | |
CN104898647A (zh) | 一种ecu台架自动标定仿真测试*** | |
CN202204892U (zh) | 一种舵***动态测试装置 | |
CN106815144A (zh) | 一种柴油机电控***软件自动测试装置及方法 | |
CN105468811A (zh) | 一种飞行参数***自动化测试方法 | |
CN106020172A (zh) | 一种基于fpga平台的舵伺服实时正弦扫描驱动方法 | |
CN202582586U (zh) | 信号采集仪在线校准*** | |
CN110119591B (zh) | 一种油动机仿真装置 | |
CN101916205A (zh) | 飞行控制软件控制网络频域测试***及方法 | |
CN106227188A (zh) | 交流伺服控制*** | |
CN102058430B (zh) | 多参数监护仪自动测试装置及测试方法 | |
CN109085373B (zh) | Ctcs-2列控车载设备速度测试装置及测试方法 | |
CN206975428U (zh) | 一种飞行控制***试验装置 | |
CN106019021B (zh) | 电子设备测试装置的通用测试工装及其测试方法 | |
CN102507225B (zh) | 一种舵***动态测试方法 | |
CN104182317B (zh) | 一种dmi总线信号完整性测试方法 | |
CN205898913U (zh) | 电子测试设备测试用通用工装 | |
CN110133392A (zh) | 测试方法及其相关测试*** | |
CN220730684U (zh) | 一种基于电涡流传感器模拟器的测试*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |