1风力摆控制系统摘要:本系统采用STM32F103ZET6单片机作为控制核心,通过对置于风力摆上的MPU9150陀螺仪采集的角度进行处理得到角度与风力摆位置的关系,再通过驱动输出PWM波控制轴流风机,使风力摆到达指定的位置,做规定的圆周运动。本系统通过PID调试,测试表明,各项功能已达到或超过本题目要求。关键词:MPU9150;PID;轴流风机21.系统方案本系统主要由主控制器,陀螺仪,电机驱动模块,轴流风机,激光笔组成,下面分别对这几个模块进行选择与论证。1.1陀螺仪的选择方案一:MPU6050。9轴运动处理传感器,它集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字数字运动处理器DMP,可用I2C接口连接一个第三方的数字传感器,比如磁力计。MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。一个片上1024字节的FIFO,有助于降低系统功耗。但零飘较严重。方案二:角度传感器。当连结到RCX上时,轴每转过1/16圈,角度传感器就会计数一次。往一个方向转动时,计数增加,转动方向改变时,计数减少。计数与角度传感器的初始位置有关。当初始化角度传感器时,它的计数值被设置为0。角度传感器一般测静态的角度,倾角用加速度计。明显在本系统中角度传感器不如陀螺仪方便使用。方案三:MPU9150。MPU-9150是采用系统级封装(SiP),集合了两个芯片:MPU-6050和3轴数字罗盘AK8975,其中MPU-6050包含3轴陀螺仪、3轴加速计以及能够处理复杂9轴MotionFusion算法的板载DigitalMotionProcessor™(DMP™)。这款元件集成9轴MotionFusion算法,能够访问所有内部传感器,以收集全套传感器数据。MPU9150测转角的速度的,可以积分得到转的角度,动态性能好,静态差,零飘基本无,很适合本系统。综合考虑后决定采用方案三。1.2轴流风机的选择方案一:四线可测速、包含温控PWM调速轴流风机。此种轴流风机一般重量较大,启动时间长,虽然风量大但明显不适合本系统的实时检测调整的思路。方案二:三线可测速轴流风机。此种轴流风机重量较轻,启动时间短,直接接驱动即可对其进行控速,风量也很大,比较符合题目各项要求的时间限制。综合考虑后决定采用方案二。31.3轴流风机个数与方位选择方案一:两个轴流风机。两个轴流风机的摆放有两种方式,背对摆放和呈直角摆放。第一种方式只有两个方向的摆角,而垂直摆放则只有180°的摆角。方案二:三个轴流风机。三个轴流风机呈等边三角形摆放,虽360°都可以达到,但是每两个轴流风机的夹角是钝角,合成后的力大大减小。方案三:四个轴流风机。四个轴流风机两两垂直摆放,合力方向遍布360°,且合力的方向方便计算,合力的大小方便控制。综合考虑后选择方案三。1.4电机驱动的选择方案一:ULN2003电机驱动模块。高耐压、大电流复合晶体管IC—ULN2003,ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。ULN2003电机驱动模块电路简单,既可控制直流电机又可控制步进电机。由于电流的限制,只能驱动小型电机。方案二:可实现电机正反转及调速,启动性能好,启动转矩大,工作电压可达到36V,可持续工作电流2A,此题中可同时驱动两台直流电机。TLP521-4光隔,L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。内含两个H桥的高电压大电流全桥式驱动器,板载5V线性电源输出,纹波小,对单片机毫无干扰。综合考虑轴流风机的工作电流,决定采用方案二。2.系统理论分析与计算2.1PID的原理与运用PID即比例、积分和微分,比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e(t)与输出u(t)的关系为:u(t)=kp[e(t)+1/TI∫e(t)dt+TD*de(t)/dt]积分的上下限分别是0和t因此它的传递函数为:G(s)=U(s)/E(s)=kp[1+1/(TI*s)+TD*s]其中kp为比例系数;TI为积分时间常数;TD为微分时间常数。4本系统中只用到了P和D,即比例和微分。陀螺仪的读出的角度传递给PID公式,PID公式计算后算出PWM值对电机进行调节。Pitch的返回值对3、4号电机进行调节,roll的返回值对1、2号电机进行调节,这样就可以实现风力摆的360°的摆动。2.2风力摆系统与其空间模型风力摆的实际模型如图一所示,其建立的空间模型竖直截面如图二所示,横向截面如图三所示,风力摆空间模型如图四所示。图一图二如图二所示,根据直角公式可以得出h、θ与r之间的关系:sinhr,又结构一定时,已知h的值,由角度传感器可以得出θ的值,所以r的值即可求出。如图一与图三所示,本系统在摆杆的下方放置一十字形的木板平台,在其四个相互垂直的方向放置四个相同型号的轴流风机,四个轴流风机面向外放置,当其一的轴流风机转动时,摆杆则向其相反的方向摆。例如,仅仅轴流风机1转动时,摆杆则向180°的方向摆动。又相邻两个轴流风机可以通过控制其PWM而得到不图三同合力F,所以360°的方向都可以得到,在此理论基础上,风力摆在横截面上可以做圆周运动。理论计算:设轴流风机的风力分别为F1、F2、F3和F4,对V1和V3的合力F进行分析,F的大小:2321FFF5F的方向:)arcsin(31FF空间方程建立:图中θ是陀螺仪与摆杆(z轴)的夹角,陀螺仪测出的Roll与Pitch分别是陀螺仪在xoz平面的投影,以及陀螺仪在yoz平面上的夹角;根据几何推导,我们可以列出方程:确定θ的值,将陀螺仪测出的Roll和Pitch分别代入PID公式,整定参数,测得电机需要的PWM,即可做圆周运动;α是电机(或陀螺仪)与Y轴(0度测试线)的夹角,根据几何推导,我们图四可以列出以下方程确定以上的α,可以得出Roll和Pitch的关系,代入PID公式,整定参数,测得电机需要的PWM值,即可按不同角度画直线。2.3陀螺仪的原理在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点,计算公式采用3D笛卡尔坐标系,定义绕Z轴、Y轴、X轴的旋转角度分别为Yaw、Pitch、Roll,如图五所示,通过旋转轴和绕该轴旋转的角度可以构造一个四元数:)2cos(w;)cos()2sin(xx;)cos()2sin(yy;)cos()2sin(zz。其中α是绕旋转轴旋转的角度,)cos(x,)cos(y,)cos(z为旋转轴在x,y,z方向的分量(由此确定了旋转轴)。本系统中根据陀螺仪得到的Pitch、Roll来的到风力摆的角度,返回给PID。63.总体设计3.1系统构架与功能本系统主要由激光笔,轴流风机,L298N电机驱动,矩阵键盘等组成。STM32F103ZET6接收到陀螺仪收到的欧拉角,再进行PID调节得到PWM,将PWM返回到轴流风机,轴流风机控制转速使风力摆达到不同的角度,陀螺仪实时检测。如图六所示。图六3.2硬件电路图图七为驱动L298N的电路图,图八为MPU9150的电路图。图五7图六3.3程序流程图图七4.系统测试与总结测试仪器:YB1731A2A直流稳压电源,秒表,直尺。81.基础部分一表格,测试十次均达到所要求,其距离与时间列表如下:距离53cm54cm52cm53cm52cm54cm55cm52cm56cm56cm时间12.5s13.7s12.1s12.4s12.2s13.6s13.7s12.2s13.8s13.9s2.基础部分二表格,表中时间数据为十次测试的平均值,其距离如下图所示:距离30cm35cm40cm45cm50cm55cm60cm时间5.3s6.2s6.7s8.5s10.1s11.2s12s3.基础部分三表格,表中数据均在‘画出不短于20cm的直线段’的条件小测出,每个角度的时间为5次试验数据的平均值,其设置的角度与到达稳定的时间如下图所示:角度30°45°50°70°100°120°160°180°时间10s12.2s15s16s16.2s16.5s16.4s16.7s4.基础部分四表格,将风力摆拉起一定的角度(30°~45°)放开,制动达到静止的时间如下图所示:时间4.5s5.1s4.3s4.6s4.6s4.7s5.2s4.4s4.5s4.6s5.发挥部分一表格,所画圆的半径在15cm~35cm内可设置,表中的重复次数均为10次试验数据的平均值,结果如下图所示:半径15cm20cm23cm28cm31cm33cm35cm重复次数4556546实验证明本系统能成功达到题目的要求,且结构稳定完全适应做风力摆,从结构到算法队员都亲力亲为,讨论结构,分析方案,分析算法。此系统中轴流风机是一个关键,之前轴流风机的选择不正确,怎样系统都摆不起来,后来换了适宜的之后,程序算法就比较顺利了。算法也是此题的难点,算法基本确定使用PID之后就开始调试,过程是艰辛的,结构误差是程序调试的难点,庆幸此题按时顺利完成。5.参考文献[1](丹)汉森.肖劲松译.风力机空气动力学(第二版).中国电力出版社,2009[2]李小松,马利业.悬挂运动控制系统[J].四川兵工学报,2010(7).[3]刘华章,张晨亮,唐建华.悬挂运动控制系统设计,2006(5).[4]戚璠,唐涛,刘波.悬挂运动控制系统的循迹算法研究[J].计算机与现代化,2008(1).