基于VC++的模拟舵机系统设计

时间:2022-06-19 11:37:31

基于VC++的模拟舵机系统设计

摘 要:在无人机半物理仿真实验中,为了节约实验成本,提出用模拟舵机系统代替真实舵机的方法。基于VC++设计了模拟舵机系统。在半物理仿真系统中连入模拟舵机,并用该系统模拟副翼、升降舵、油门的舵机。通过实验验证了该模拟舵机系统的有效性。实验结果表明,该模拟舵机系统具有实时性好,可模拟多种舵机的特点。

关键词:模拟舵机; 多媒体定时器; PCL836; PCL812; PCL726

中图分类号:TN91134; TH873.7 文献标识码:A 文章编号:1004373X(2012)10012603

基金项目:国家自然科学基金资助项目(60974146)0 引 言

无人机飞行控制仿真主要包括数字仿真和半物理仿真。半物理仿真将系统部分实物引入仿真回路,尽可能真实模拟现场情况,比数字仿真更能有效验证飞行控制系统的可靠性,尤其在其在初期试飞调参以及后期控制策略改进阶段应用广泛[1]。

做无人机的半物理仿真时,需要使用真实舵机,而舵机价格比较昂贵,且多次实验时存在损坏的风险,无形中增加了实验成本。本文根据舵机在飞行控制系统中的作用及特点,基于VC++设计模拟舵机;该模拟舵机由综合记录计算机和若干板卡构成,运行于综合记录计算机中;代替实现真实舵机的功能,节约了实验成本。

1 模拟舵机硬件设计

模拟舵机系统,首先要能模拟舵机在半物理仿真中的功能;其次要不影响半物理仿真接入真实舵机。这个是通过PCLD785B(继电器输出板)来选择的,当DO不输出任何值时,Ci和NCi是导通的,当DO输出时,Ci和NOi导通(i=0,1,2,…,9)。

系统硬件设计如图1所示,为了简洁,省去PCL880接线板。

图1 模拟舵机硬件构成图1中的PCLD782B是光电隔离板,为了隔离PCLD785B带来的噪声和提高电压(飞控盒输出电压是3.3 V,提高到TTL电平)。而PCL836(频率采集卡)和PCL726(D/A输出卡),PCL812(A/D采集卡)和位于综合记录计算机内,在VC++中的操作方法[24]如图2所示。

图2 研华板卡操作流程2 舵机函数关系的输入

为了仿真多种舵机的需要,舵机函数关系应该可调;同时系统要满足自动获取接在图1仿真舵机上舵机的舵机函数。系统用PCL836发出PWM波,PCL726采集反馈电压。程序界面如图3所示。

图3 舵机函数关系输入的程序界面图中k,b为V=kT+b中的系数,V代表反馈电压,T代表脉宽(单位:ms)。

3 模拟舵机软件设计

3.1 PWM波采集方法

对PWM的采集是程序的难点,这里使用PCL836的事件计数功能来实现对PWM的测量。PCL836共有6路计数器,其中CLK5用来产生时钟信号。在PWM的下降沿时去读计数器的值,然后根据时钟的频率算出PWM高电平的时间。检测PWM下降沿的常见的方法是使用中断和查询。在PWM每次下降沿时触发中断,在中断程序里去读计数器的值。但是PCL836只支持一个外接中断,并且是上升沿触发中断,而整个仿真需要4个舵机,在目前的硬件条件下并不能直接实现,需要一定的辅助电路,如非门等。其次用查询的方法,用一个线程来读DI,在下降沿时去读计数器的值。但这样CPU的占用很高,影响系统的整体性能。所以不使用查询和中断的方法。为了能够检测PWM下降沿,并考虑现实性,决定用1 ms定时器来实现。如果上次读到高定平,而这次读到低电平,就认为是下降沿。虽然有不定的延迟,但是延迟小于1 ms,同时可以得到正确的值,而且系统占用要远远低于查询方法。

3.2 使用多媒体定时器采集PWM波

微软提供了精确定时器的底层API, 支持能够提供高精度的定时器服务,利用多媒体定时器可以精确地读出系统的当前时间,并在很精确的时间间隔内处理事件, 可以到1 ms的精度[56]。多媒体定时器的回调函数的程序流程图如图4所示。

图4 定时器采集PWM流程图用多媒体定时器采集PWM的方法带来的不定延迟,加上Windows系统的实时性差带来的延迟,使得模拟舵机系统实时性变差。但是飞控盒发出的PWM波几乎是同时发出,即上升沿在时间上是一致的。所以可以用中断加查询的方法来检测,用一路PWM做中断源,每次中断的时候去查询,最终检测到下降沿。

3.3 中断加查询采集PWM波

PCL836支持一路外部中断,上升沿触发。首先使用DRV_EnableEvent函数使能中断,开始中断线程,在中断线程里用DRV_CheckEvent函数检测中断。中断线程流程图如图5所示。

图5 中断加查询采集PWM流程图使用中断加查询的方法采集PWM,实时性比较好,系统占用高于定时器方法,但是低于查询方法。

4 仿真分析

在半物理仿真系统中连入该模拟舵机,系统模拟副翼、升降舵、油门三个舵机。使用该系统采集飞控盒发出的PWM,并反馈电压给模型机。经仿真采集到各舵机的PWM曲线如图6~图8,可知该系统实现具有实时性好,可模拟多种舵机的特点。

图6 副翼

图7 升降舵

图8 油门5 结 语

本文基于VC++设计的模拟舵机系统,实现了无人机飞行控制半物理仿真中真实舵机的功能,一定程度上降低了实验成本。该系统功能全面,设计灵活,可实现多种类型舵机,是一种行之有效的仿真方法。

参 考 文 献

[1] 辛国柏,卢京潮,闫建国,等.一种小型无人机半物理仿真系统实现\[J\].计算机仿真,2008(6):6669.

[2] 张英杰,刘亮,葛芦生.PCL836多功能计数器/定时器卡在频率测量中的应用\[J\].安徽工业大学学报:自然科学版,2001(2):142144.

[3] 姚晔,胡益雄.PCL812PG数据采集卡在VC++6.0应用工程中的使用\[J\].计算机应用研究,2002(2):118120.

[4] 彭侠夫,杨翠娥,李文秀.用VC++实现数据转换卡PCL812PG的操作\[J\].信息技术,2001(6):5152.

[5] 杨晓岚.C/C++语言定时任务的实现方法和应用\[J\].有色金属加工,2010(3):6162.

[6] 李福华,李悦丽,段巧雄.Windows环境下多串口控制软件设计中精确定时的实现\[J\].电子技术,2010(6):1011.

[7] 曾漫,何卫国.舵机综合性能测试平台的系统实现\[J\].计算机测量与控制,2010(7):15181519.

[8] 王小平,董新民,林秦颖,等.某型飞机电传操纵系统四余度电液舵机模拟器设计\[J\].机床与液压,2009(4):9799.

[9] 牛振,何卫国,朱剑波.基于LabVIEW的数字舵机电路性能测试系统\[J\].航空兵器,2010(4):4345.

[10] 张杰,张福斌,徐德民.基于VxWorks的AUV数字电动舵机控制器设计\[J\].微电机,2010(4):2729.

作者简介: 李宇宏 男,1987年出生,陕西榆林人。从事飞控半物理仿真研究工作。2012年5月15日第35卷第10期

上一篇:声光可调谐滤波器(AOTF)之模分离器的研究及设... 下一篇:基于SmartFusion的无人机飞行控制系统设计