APP下载

基于AVR单片机的后缘小翼型智能旋翼测控系统设计

2012-09-16朱建华杨大林汪亚敏杨卫东

直升机技术 2012年1期
关键词:小翼闭环控制旋翼

朱建华,杨大林,汪亚敏,杨卫东

(1.南京航空航天大学直升机旋翼动力学国防重点实验室,江苏南京 210016;2.中国直升机设计研究所,江西景德镇 333001)

0 引言

智能旋翼技术在近年取得较快的发展,其对直升机性能的提升效果也获得业界的广泛认可,国内的相关控制系统研究仍较少。控制系统本质上是对一系列的信号进行运算处理和传输[1],对小翼偏转的闭环控制是智能旋翼振动控制的基础。小翼偏转闭环控制系统与智能旋翼振动控制都要求具有较强的实时信号处理能力。针对小翼的闭环控制可以避免由于作动系统的间隙及压电材料的非线性特性带来的不完全可控现象。本研究提供小翼闭环控制的系统软硬件设计,并预留用于智能旋翼振动控制的软件接口,便于后期振动控制中的扩展。整个小翼控制系统的原理结构如图1所示。主要由主控计算机、地面监测系统、采集系统、功率输出系统及作动器与旋翼系统等组成。各部分之间的信号传递是完成控制任务的基础。

1 控制系统结构

控制系统完整结构既需硬件设备组成的回路,同时软件设计及通讯系统设计也是不可或缺的。

1.1 硬件设备

控制系统试验的设备准备中,结合实验室本身具有的硬件条件,完成试验平台的构建。主要设备及型号:

1)主控微处理器板卡TS8900-M128;

2)HVP-1000A型功率放大器可提供-200V~1000V可变电压;

3)智能旋翼桨叶中内置的霍尔角度传感器—3503线性霍尔元件;

4)模型智能旋翼桨叶;

5)台式计算机;

6)其他仪器设备:万用表、示波器、稳压电源及线缆等。

主控处理器是小翼控制系统的核心组件,用于数据采集、数据处理、作动信号输出及与上位机通信等,本系统选用了TS8900-M128型单片机开发板,具有采用宽电压电源特性,采用的是Atmel公司生产的8位AVR Atmega128高性能微处理器。该型单片机的显著特点包括:低功耗(5mA/3V),外围接口丰富,具有 64KB外部存储器扩展,兼容IEEE1149.1标准的 JTAG接口,8个 PWM 通道,8通道10位A/D转换,2个8位定时器和2个16位定时器,1个具有独立振荡器的异步实时时钟RTC,1个SPI同步串口,2个USART接口。其内部结构采用RISC精简指令结构,快速单周期指令系统,具备1MIPS/MHZ的高速运行处理能力,可以快速实现浮点数硬件乘法运算,从而解决和实现复杂的控制算法;并具有4个不同优先级中断源,可实现通信、输出执行等事件的快速中断响应。

主控板卡集成功能包括:1.数据采集电路;2.电源电路;3.功能复位;4.外部晶振电路;5.DA转换芯片及电路;6.JTAG仿真器接口电路;7、电平转换,串口通信电路等。为了实时准确获知小翼偏转角度信号,采用霍尔角度传感器进行测量。所采用的霍尔传感器型号为3503,从前面进行的相关研究[2]中,我们可以获得霍尔传感器相关特性,其能够较准确地得到-10°~10°的小翼偏转信号,满足试验要求。采集通道是atmega128自带的10位8通道逐次逼近型ADC,所以预留了足够的通道进行减振控制试验中的桨毂载荷采集。最大分辨率即每秒模数转换器采点数(采样率)可达到15kSPS,此外,ADC还包括了一个采样保持电路用来确保转换过程中输入的电压保持恒定。为减小设备内部及外部电路对ADC采集的电磁干扰,提高模拟信号采集精度,所采取的减噪方法有:ADC采用AVCC引脚单独供电,AVCC通过电感电容网络与数字电源VCC连接。对采集的角度信号进行取均值平滑,减少高阶谐波测量噪声误差。

小翼偏转操作指令由地面控制计算机发送,主控计算机收到操作指令后,经由内部时钟调制频率后,输出至DAC7512数模转换器,得到所需要的模拟信号。DAC7512,如图2,是一款12位低功耗串行数模转换器,1管脚定义为芯片模拟输出电压,即模拟输出量,其幅值为参考地与电源电压的差值,GND是电路地参考点与主控处理芯片共地,VDD为供电电源,电压5V,Din为串行数据输入即AVR芯片发送来的控制信号,SCLK为串行时钟输入,SYNC接单片机的PE3管脚,控制芯片的工作,低电平有效。输出模拟电压外接无源滤波电路,获得平滑效果,减少由于芯片本身带来的毛刺误差输出。具有高达30MHz的通用三线串行接口,完全匹配Atmega128的工作频率要求,DAC7512与SPI接口兼容,可直接连接AVR单片机,而不需要其它的转接电路。

通过压电作动器及菱形驱动机构来实现伺服控制操作。压电作动器工作电压为0-800V,对于控制板卡的控制信号输出很难达到如此高的电压,因此采用HVP-1000A型功率放大器,提供-200V-1000V可变电压放大。

1.2 控制软件设计

1.2.1 功能简介

单片机控制小翼并采集载荷信号的整个回路流程涉及到上位机和下位机的控制软件设计,主控处理器控制程序通过C语言编写,实现各种功能,主要有:1.从数据采集器传感器中获得需要的反馈信号;2.通过串口通信发送给上位机控制站;3.向压电作动器发送作动信号。

1.2.2 下位机程序设计

选择使用第三方C编译器进行控制程序编写,这里开源采用WinAVR开发工具开发atmega128的控制代码。WinAVR开发软件包中主要包括了编译器GCC、编译器的库、汇编器、编程接口、调试器、代码编辑器及其他配套工具。采用AVR Studio 4实现调试功能、JTAG ICE仿真、程序烧制等。

ATMEL AVR Studio集成开发环境(IDE)包括1.项目管理;2.AVR Assembler编译器;3.调试指令模拟和实时仿真功能;4.AVR Prog程序下载;5.STK500/JTAG ICE编程;6.第三方C编译器管理等功能。有源文件编辑汇编(生成.OBJ/.HEX/.LIS文件)、搜寻、选项(生成汇编文件格式)、窗口、帮助等操作,汇编出错有错误定位、错误指示,便于源文件排错。将已经编写的程序进行编译,不出错则可生成.Hex文件。AVR的仿真与烧制都是对使用WinAVR编译器编译产生的Hex文件进行操作的。Hex文件由对应机器语言码和/或常量数据的十六进制编码数字组成,用于传输将被存于ROM或者EPROM中的程序和数据的通常文件格式。

系统片上调试功能的进行是通过AVR Studio进行硬件仿真模拟及指令模拟;指令模拟和CCS,keil等集成开发环境是一样的,支持断点、单步、变量观测、存储器观测、寄存器观测、IO空间观测、处理器状态观测等调试手段。

为了顺利完成程序编写任务,首先进行了流程图设计。图3为下位机控制程序的流程图。控制代码编写中可依据流程图,遵守AVR单片机编程规则和模式,进行合理的程序布局。

图3 下位机程序流程图

下位机程序由头文件、主程序两部分组成。头文件中主要定义了主从机通信格式,数据发送标志,变量声明,AD转换后数据变量,DA转换前数据即控制输出数据变量,发送给上位机的测量输出值变量,定时变量若干,需要标定的参数值,其它可能需要的参数变量。

主程序主要由功能子函数与main函数组成,按照子函数的功能分为初始化子函数、采集发送子函数、通信子函数、中断函数等类。具体的功能可以据图划分如下:

1)Main()函数主要实现:首先是寄存器的初始化,防止程序跑偏看门狗的设置,按程序流程步骤做系统主循环直到系统停止。循环中主要命令有:按照试验要求调用,控制子程序调用(无参数设置),在设定时间内完成数据采集,通过串口发送数据至上位计算机。

2)初始化子程序:

程序中主要参变量设置及初始化:包括设置看门狗,传输结构类数据的帧头帧尾设定;

系统初始化:中断设置,串口倍速设置;定时器初始化;AD端口设置;DA端口初始设置等。

3)采集系统子程序:

分别读取多路AD的采集信号,并将获得的多路AD信号与标定比值做乘法运算,得到采集的力信号并存储,等待发送上位机或控制器运算使用;

4)DA输出信号发生子系统:

将控制子程序反馈的数据变量,赋值给DA管脚对应寄存器变量,从而输出控制模拟信号;

5)数据通信子程序:

发送包括实际的输出控制电压信号和采集得到的角度信号。发送数据过程中包括了对发送数据的校验过程;

需要注意到,头文件中设置使用到的系统库文件调用,通信传输协议格式必须与上位机接受匹配,对使用较多的常量进行宏定义;在单片机任务较简单时,进行看门狗设置,试验验证中没有碰到程序跑偏或死循环状态。利用中断函数触发信号采集发送的相关函数,为数据采集与数据发送设置了不同的中断时间。中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。因此中断程序中的命令需要简短有效地执行,避免陷入中断冲突。中断中采用的是溢出中断的形式,通过改变T/C寄存器的值,即可获得需要的中断频率。基于单片机的后续振动载荷控制试验中,则需要采集多路载荷信号,需要多路的DA芯片作为硬件输出模块支撑。

1.2.3 上位机程序设计

下位机的主要功能在于采集与发送信号,上位机系统主要用于监测信号、信号处理、调试控制系统,并实现与下位机的串口控制系统通信。程序设计主要包括了串口通信设计,信号处理,Fortran控制动态链接库的调用。

上位机程序采用 C#语言,C#是专为.NET Framework设计的对象导向性的高级编程语言,兼顾了C、C++的强大功能以及Visual Basic的简单易用特性。

上位机不仅需要和下位机的相关数据通信相匹配,还要进行数据接受及校核、数据显示、闭环控制律运算、数据发送等功能。图4为上位机功能框图。

图4 上位机功能框图

图5为Microsoft Visual Studio环境下的C#语言创建的Windows窗体应用程序主界面。上位机包含了串口通信设置,串口开关,控制算法调用,小翼偏转角度调用,控制信号监测和为保证作动器的安全运行,为系统调试设置的调幅调频功能。

图5 调试界面

控制算法的调用是进行闭环控制的核心子程序,主要涉及C#如何调用Fortran编写的动态链接库,在声明外部方法前需要在程序声明中添加System.Runtime.InteropServices命名空间。外部方法声明需要注意Fortran与C#数据格式的不同,主要是数组格式下,Fortran为按列排序,C#中为按行排列。外部方法声明需要添加extern修饰符,这是与内部方法调用的区别。Fortran中多使用子程序作为函数调用,所有变量都包含在传递参数中,因为Fortran在传递参数时使用的是传址调用,即调用时传递出去的参数和子函数中接受的参数会采用相同的内存地址记录,这样的好处是提高运算的速度,减少由于子程序调用而占用的内存空间。

2 小翼控制策略

在进行小翼控制时采用PID控制策略对小翼进行闭环控制,在控制律设计中,利用反馈的偏转角度测量信号,为了消除角度偏转静差漂移量,防止执行机构在达到极限偏转位置时进入锁死状态,控制律算法设计采用抗积分饱和的PID算法。

这里的u(kT)即表示为kT时算法的计算控制量,T为设置的采样周期,采集周期大小与控制效果密切相关,这里设置为关注输出信号周期的四十分之一以获得较好的控制效果,Kp、Ki、Kd分别是PID控制器参数,对应为比例常数,积分常数,微分常数。u0作为控制的基准量表示控制系统的目标值,(kT)为kT时刻的测量误差(mT)为误差的积累项,在计算u(kT)前,判断以时刻的控制量u((k-1)T)是否超过极限偏转角,若大于umax,则积分项累积为负,若不超过则积累正的偏差值。N为设置积分饱和上下限,当累积误差超过积分饱和限制时进行上述操作。控制器的相关的控制参数是经实验调试确定的。

3 试验与结论

试验中分别进行了开环和闭环的小翼控制。小翼控制系统的调试过程按照以下环节分步进行:首先进行了硬件电路的调试,保证主控板卡正常工作,主要测试手段包括示波器、万用表、地面监测软件、串口软件等;其次是模型桨叶台架的安装调试,作动器的正常工作供电,在此基础之上,进行信号传输调试,对采集的角度信号的大小进行标定,为了确保安全,采用最高工作电压50%大小的驱动信号对作动器进行调试。图6为硬件电路调试现场,图7为小翼控制现场。

偏转角度不仅作为用户对小翼工作状态的实时监控对象,还是进行小翼闭环控制算法工作的必要信号来源。如图8所示,偏转角度的单位是度,控制电压的单位是伏特。在实际监测过程中,能够较好地反映实时的小翼偏转角度信号。但是获得的小翼偏转角度的信号不够完美,分析其原因可能有:系统噪声的影响,控制系统工作在强弱电同时存在的工作空间内,尤其是桨叶的采集信号和高压控制信号都需要经过桨根处传送,存在着一定程度的电磁干扰现象,需要做的改进工作即强弱电的干扰隔离。在115200bit/s的比特率下,单向计算机与控制板卡每秒可以传递的数据为1000组,完全可以满足0-50Hz的角度信号采集要求。

图8与图9的对比可以看到,在开环的信号输入与闭环的信号输入间存在着相位差,这是由于系统非线性及迟滞引起的,施加闭环控制后,实时控制效果是能够获得一定程度的改善的,且试验结果与仿真控制试验效果基本一致。

后续在小翼的闭环控制的基础上可以改变控制信号目标,进行多路控制,实现桨毂减振控制。

本文给出了智能旋翼小翼控制系统的设计方案,介绍控制系统硬件设备软件系统的选择与应用,给出了相应的试验结果。下一步工作将是对试验效果进一步完善,并进行更完善的智能旋翼振动控制系统试验。

[1]胡寿松.自动控制原理[M].北京:科学出版社,2001.

[2]张柱.基于高效驱动机构的新型智能旋翼设计分析与试验研究[D].南京:南京航空航天大学,2007.

[3]王昌刚,徐锦法,夏青元.无人直升机控制系统与CAN通信[C].全国直升机年会论文,2010.

[4]Atmel AVR042:AVR Hardware Design Considerations[Z].2010.6

[5]佟长福.AVR单片机GCC程序设计[M].北京:北京航空航天大学出版社,2006.

猜你喜欢

小翼闭环控制旋翼
汉字猎人(一)
我家养了一只纸精灵(二)
我家养了一只纸精灵(四)
基于LMI的过渡态主控回路闭环控制律优化设计
改进型自抗扰四旋翼无人机控制系统设计与实现
大载重长航时油动多旋翼无人机
基于STM32的四旋翼飞行器的设计
适用于厚度在线测量的水压闭环控制系统
智能车竞赛中的闭环控制算法应用分析
我是霸王龙