防抖装置软件设计30_第1页
防抖装置软件设计30_第2页
防抖装置软件设计30_第3页
防抖装置软件设计30_第4页
防抖装置软件设计30_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、分类号:TH772+.2 U D C:D10621-408-(2016)0723-0密 级:公 开 公开编号:2012023047 成都信息工程大学学位论文 防抖装置软件设计 论文作者姓名:张胡培申请学位专业:生物医学工程申请学位类别:工学学士指导教师姓名(职称):彭静(副教授)论文提交日期:2016年5月24日 独 创 性 声 明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所

2、做的任何贡献均已在论文中作了明确的说明并表示谢意。签名: 日期: 2016年 5 月 27 日关于论文使用授权的说明本学位论文作者完全了解成都信息工程大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权成都信息工程大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。(保密的学位论文在解密后应遵守此规定)签名: 日期: 2016年 5 月 27 日防抖装置软件设计摘要随着医疗、电子科学技术、机械制造技术和软件技术等不断的发展,通过医学与工学学科的相互结合,研究医学上的一些

3、疾病症状,结合当前电子科学、软件等工学方面的技术来研究并分析病症,并着力于去减轻病症对患者所带来的困扰已经越来越受到关注1。本设计通过研究帕金森病症的特发性震颤为背景,软件的方式分析模拟的帕金森病症特发性震颤特性,利用主动降噪技术为指导思想结合相关滤波算法去削弱模拟的震颤。首先对模拟的帕金森病症的装置特性的研究以及建模,完成了stm32f103rb处理器对MPU6050 6轴运动处理组件对模拟的震颤装置的Z轴加速度和Y轴角速度的数据获取。结合姿态融合算法对获取的6轴数据进行数据融合,获取姿态信息。并通过MATLAB软件对模拟的震颤装置的Z轴加速度和Y轴角速度以及航偏角多组数据的时域和频域上的分

4、析,同时对响应的数据做滤波处理,观察其特性。通过主控芯片stm32f103rb对步进电机控制,对电机相关具体参数进行确定。结合分析的数据和的电机参数特性,通过重复不断的调试完成电机转动频率和震颤频率相互抵消。本设计同时针对模拟的帕金森抖动装置进行防抖装置软件编写,进行系统联调。测试表明:所设计的防抖软件能够减轻装置的抖动,对减弱震颤状况有一定的作用,对后续进一步的应用具有参考意义。关键字:帕金森病,MPU6050传感器,主动降噪技术Software Design of the Stabilization Mechanism ABSTRACTWith the continuous develop

5、ment of medical, electronic science technology, mechanical manufacturing technology software technology, through mutual combination of medicine and engineering disciplines to study some of the symptoms of the disease medically, with the current technology of electronic science, software engineering

6、aspects to study and analysis of disease, and focus on the patient to relieve symptoms caused by problems has received increasing attention.The design by studying Parkinson's disease tremor as the background, and a software-based simulation analysis of Parkinson's disease tremor characterist

7、ics, and active noise reduction technology as the guiding ideology with related analog filtering algorithm to undermine tremor . First, by means of the characteristics of Parkinson's disease as well as simulation modeling studies completed stm32f103rb processor MPU6050 6-axis motion processing c

8、omponent of the Z-axis acceleration simulation tremor means and the Y-axis angular velocity data acquisition. Combined with 6-axis attitude fusion algorithms for data acquisition of data fusion to obtain attitude information. And the time domain and frequency domain analysis by MATLAB software for t

9、he Z-axis and Y-axis angular velocity and acceleration Air declination simulated tremor means multiple sets of data, while data on the response to make the filtering process, to observe its characteristics. Stm32f103rb by master chip stepper motor control of specific parameters related motor OK. Dat

10、a and motor parameters characteristic binding assays, by repeating continuously commissioning motor rotation frequency and frequency tremor cancel each other out.This design simultaneously for analog devices Parkinson shake image stabilization device software development, system FBI. Testing showed

11、that: the designed image stabilization software can reduce jitter means of weakening tremor condition has some effect, with reference for subsequent further applications. Keywords:Parkinson, MPU6050 sensors,Active noise reduction technologyI目 录第一章 绪 论11.1 课题研究背景及意义11.2 国内外研究现状11.3 论文内容和结构2第二章 防抖装置整体

12、方案设计42.1 防抖装置硬件结构42.2 传感器和步进电机52.2.1 传感器介绍52.2.2 步进电机介绍6第三章 防抖装置的运动学分析和数据处理方法73.1 防抖装置模型分析73.2 滤波算法93.2.1 限幅滤波93.2.2 滑动平均滤波93.3 快速傅里叶变换10第四章 防抖装置的软件设计114.1 防抖装置软件设计的工作原理114.2 软件开发环境114.3 软件开发流程124.4 程序源码的介绍134.4.1 数据结构134.4.2 数据采集模块的程序144.4.3 主控模块程序154.4.4 滑动滤波程序15第五章 结果和分析175.1 系统调试175.2 数据分析19第六章

13、总结和展望22参考文献23致 谢24I第1章 绪 论本章介绍了对本课题的研究背景和意义,以及目前国内外针对帕金森病症静止性颤抖的防抖技术研究现状,对于目前研究现状从中确定了本课题的研究方向以及研究内容,并且在此介绍了本文的总体结构和章节的安排。1.1 课题研究背景及意义帕金森病症作为当今社会中最常见的神经系统变性疾病之一,主要出现在老年人群中,发病年龄大多在60岁左右。我国65岁以上老年人群帕金森病症的患病率占总人群中的1.7%。最常见的症状为一侧肢体出现震颤或肢体活动笨拙,并累及对侧肢体。在临床上主要表现症状为静止性震颤、运动迟缓、肌强直和姿势步态障碍。帕金森病症最为突出症状是出现46hz的

14、静止性震颤,双手会不自主颤动从而无法拿稳物体。目前来说通过医学的治疗手段只能改善症状,无法达到治愈疾病目的。帕金森病症对病人带来了许多起居上的不便,并且在进食过程中手部稍微颤抖对进食所带来很多不便,对病人带来了极大的困扰。本课题通过对模拟的帕金森病症手部的震颤特性进行研究,结合相关的电子科学技术和软件编程进行对模拟的单方向的震颤特性分析,并且根据防抖装置硬件结构,通过现场软件编程控制电机削弱模拟的震颤情况。达到对减弱帕金森病症的震颤状况分析和工程技术上的应用具有一定的参考意义,对后续产品的开发是极其重要的。1.2 国内外研究现状防抖的概念最早是由日本尼康公司提出,防抖技术最早是主要应用相机身上

15、,经过不断发展防抖机也应用到了图像处理、医学、军事等领域上,如国99G式主战坦克上也应用了该项技术。目前来说主要分为三类防抖技术:光学防抖、电子防抖、感光器防抖。光学防抖和电子防抖是目前市场上主要被应用的防抖技术。光学防抖技术而言,主要是依靠镜头或CCD感光元件的结构在一定程度上去降低设备使用过程中由于抖动而造成影像不稳定。原理主要是将感光元件固定在一个能上下左右移动的支架上,并通过陀螺仪感应到相机的抖动方向及幅度,然后根据传感器所获取的大量数据经过处理器进行筛选、放大,从而计算出感光元件移动量。电子防抖则是主要通过降低图像的成像质量来对抖动进行补偿的技术,这种技术通过在成像质量和图像的抖动间

16、寻找一个平衡点。而另一种防抖机身防抖则是在机器中内置一个震动感知器,通过此感知器解析抖动的幅度,从而解析抖动幅度,进而将感光组件向相反的方向移动,从而达到抵消抖动的作用2。针对于防抖技术在帕金森病症上应用,在最近几年国外的Lift Labs公司推出了一款产品Liftware防抖勺,该产品可以解决5厘米内的抖动,可以很好的帮助病人进食。而在国内的深圳市臻络科技有限公司也推出了一款智能防抖勺用于帮助患那些有特发性震颤和帕金森氏病的患者进食。1.3 论文内容和结构本文介绍了根据防抖装置硬件结构的基础下所需要进行的研究内容和本文的结构,内容如下:针对防抖装置硬件结构进行运动学上的分析以及相应针对模型的

17、数学描述。通过对于防抖装置的陀螺仪和加速度传感器采集的数据进行数据分析,得到该数据的时域和频域特性最终针对所得到的数据进行转化为相应的电机驱动信号,驱动步进电机达到抵消抖动装置产生的抖动目的。文章结构如下:第一章:绪论,本章介绍了防抖装置软件设计课题的背景以及研究的意义,目前国内外研究的现状和课题的主要研究内容,并对防抖装置软件设计的介绍。第二章:防抖装置整体方案设计,本章介绍了关于防抖装置的硬件系统结构、以及所选数据采集的传感器MPU6050和减小抖动的执行机构步进电机。第三章:防抖装置的运动学分析和数据处理方法,介绍了防抖装置硬件在运动学上的分析,基于这个分析结合防抖装置的硬件结构,介绍了

18、对于防抖装置运行时获取的数据进行数据处理的方法。第四章:防抖装置软件设计,本章主要介绍防抖装置软件设计的原理、在进行软件编写时所需要用到的开发环境和防抖装置软件设计程序流程,最后介绍了相关数据结构和程序源码。第五章:结果和分析,对在本课题研究时所获取的数据进行分析并得出最终结果。第六章:总结和展望,本章节总结课题研究的不足和研究的改善提出建议。第2章 防抖装置整体方案设计2.1 防抖装置硬件结构本课题抖动装置的硬件结构主要依据帕金森静止性颤动特性进行的设计的,硬件主要由模拟的抖动机械装置、信号采集模块、数据处理控制模块及电机控制部分组成。模拟的帕金森静止性颤动机械装置主要由ST12C5A60S

19、2、直流电机驱动模块和抖动装置机械结构组成。由ST12C5A60S2单片机IO口输出PWM控制直流电机驱动板输出一个程序可控的电压值控制直流电机转动,在齿轮的机械分频作用下,拉动杠杆装置产生一个46hz左右的抖动频率的简谐运动,在该装置上安装了一个激光头以用来便于观察防抖动的效果。信号采集模块主要采用了目前市面上针对运动测感游戏、电子稳像等应用的6轴运动处理组件MPU6050,对Z轴方向上的加速度和Y轴方向上的角速度进行数据采集。数据处理控制模块主要采用了德意法半导体公司针对嵌入式控制领域推出的STM32微控制器,该控制器主要采用了RAM公司所设计Cortex内核,该控制器具有高成本、低成本、

20、低功耗等优点。电机控制部分主要由在二相四线步进电机和步进电机驱动板组成。防抖装置硬件结构的系统框图如图2-1所示图2-1防抖装置的硬件系统框图STC12C5A60S2微控制器产生一个程序可控的PWM信号直接驱动直流电机驱动板产生一个固定的电压值,并且可通过按键选择不同的档位来控制输出不同的电压值,该电压值可以驱动电机进行转动。但由于电机的转速过快则需要对直流电机转动频率进行分频,对于电机的分频则采用了在抖动装置机械系统中安装多级的齿轮对电机进行降速处理,由于齿轮和杠杆相连,在电机转动过程中会拉动杠杆运动,当杠杆运动时,微处理器启动MPU6050运动处理传感器,传感器通过I2C协议与微处理器进行

21、通信,对杠杆的运动数据传入至微控制器的RAM中,在本次课题中只需要用到Z轴方向上的加速度数据和Y轴方向的角速度数据,其他的数据则抛弃掉。对所得到的数据进行相应的处理,把数据转化为控制电机运动的驱动信号,驱动步进电机驱动板控制电机步进电机与杠杆抖动做反方向的运动。在经过不断的数据矫正和系统训练,使得控制系统不断的适应杠杆的机械抖动。2.2 传感器和步进电机2.2.1 传感器介绍本次课题采用Invensense公司推出的6轴运动处理组件MPU6050传感器,针对这个传感介绍了我们所需要用到的传感器特性。MPU6050内部拥有3轴陀螺仪和3轴加速度传感器,该传感器免除了组合陀螺仪与加速器时之轴间差的

22、问题,并且由于体积小而可以减少传感器的安装空间,并且含有一个IIC接口可以和微处理器进行通信。本课题选取该芯片作为采样模块主要考虑MPU6050以下特点:(1)该传感器旋可以对获取的加速度和角速度数据进行转矩阵、四元数、欧拉角格式的融合演算数据,通过硬件的处理可以降低处理器的数据处理负荷。(2) 传感器的角速度感测器具有131 LSBs/°sec 敏感度并且角速度的感测范围在±250、±500、±1000与±2000°/sec,能都大范围的测量角速度。(3) 该传感器具对加速度测量范围可以进行程序选择,选择的档位为±2g、&

23、#177;4g、±8g和±16g。(4) 加速器与陀螺仪轴间敏感度进行了移除,降低由于设定造成的影响与感测器间的飘移。(5) 该传感器带有DMP的数字运动处理引擎可以大大减少复杂微控制器在融合演算数据、感测器同步化、姿势感应等的负荷。2.2.2 步进电机介绍在本课题选取驱动电机主要考虑到选材的方便、体积与机械结构结合的方便性,故采用了电脑光驱上使用的二相四线步进电机。该步进电机属于混合式步进电机并且其具有步进角小,精度相对高,驱动能力相对同类的电机强的特性3-7。由于该步进电机的步进角参数未提供,对此需要对该电机的参数进行测量确定,经微控制器测量获取了如表2-1所示的数据。

24、该数据是测量步进电机单程运动所需时间的情况。其中S_UP和S_DOWN代表了步进电机的向上运动和向下运动,通过设置微控制器时钟单元里的控制计数频率的ARR和预分频器,产生一个控制步进电机运动速度的信号。表2-1步进电机单程运动记录步进电机总路程4cm Timer3频率Timer2频率耗时供电6.9Khz100hzTIME预分频ARR预分频占空比ARR 延时1 延时2707272001000260msS_UP5V707272010001000275msS_DOWN707272001000230msS_UP12V707272010001000250msS_DOWN705072001000180ms

25、S_UP705072010001000200msS_DOWN从数据中可知道本课题所使用的电机单方向上,往上或往下所耗的时间并非相同,往下所耗的时间明显小于往下的所耗的时间,并且在不同供电电压下相同频率驱动时所耗的时间也不相同,因此在本课题对于电机的驱动也是本课题的难点,如何能够达到精确控制电机很具有挑战性。第3章 防抖装置的运动学分析和数据处理方法3.1 防抖装置模型分析本课题基于防抖装置硬件基础上进行编写的软件,对此需要对所研究的课题实验模型进行运动学上的分析,如图3-1所示为通过为防抖装置硬件装置模拟图形。图3-1防抖装置模型由图可知该装置静止时相对于地面的高度为h1。当该装置在直流电机驱

26、动下拉动杠杆运动,会做具有一定弧度的上下摆动。当杠杆在电机驱动下运动时相对于地面的高度为,可得到:(3-1)其中为单位时间内杠杆在y轴的位移变化量。当n为奇数时杠杆会往y轴的负方向运动,同理n为偶数时杠杆会往y轴的正方向运动。当杠杆进行转动时具有瞬时y轴向上的加速度和绕定点转动的角速度。如图3-2所示在电机驱动情况下进行转动的示意图。图3-2杠杆转动示意图设杠杆在时刻的位置为,在时刻的位置为。其中(3-2)时间内杠在轴方向上运动的位移量为,当不断趋近于0,其杠杆在轴方向上运动位移满足如下所示公式(3-3)杠杆以角速度做匀变速曲线运动,在时间内运动路程为(3-4)对杠杆的受力模型进行分析,杠杆在

27、运动时杠杆受到向上或向下的大小为F1的作用力和方向固定的向下作用力F2。模型如图3-3所示。图3-3杠杆受力模型其中;杠杆受到的总的作用力为(3-5)当杠杆往复运动时,激光头也随着杠杆相对运动,本课题以减弱抖动为目的。需要驱动步进电机使得激光头相对于杠杆做相反方向的运动,已达到减弱装置抖动的目的。由于在内杠杆在轴方向上的位移为,内步进电机驱动激光头运动的位移为。所以得到激光头相对运动位移。(3-6)防抖动装置软件设计以减少大小为目的,以达到减弱模拟的抖动装置的抖动幅度。3.2 滤波算法数字滤波是计算机对采集的信号进行二次的加工,还原出所需要的原始信号,提高信号信噪比。由于所选的陀螺仪传感器具有

28、零点漂移,且当陀螺仪传感器在杠杆运动状态下会出现尖峰噪声和随机噪声。所以在STM32控制器把数据转化为控制步进电机信号前,需要对数据进行滤波处理,以消除信号的零点漂移、尖峰噪声和随机噪声。下面介绍本课题所用到的滤波算法。3.2.1 限幅滤波限幅滤波算法是编写滤波软件过程中很常用的算法之一,该算法又称之为程序拍段滤波算法,主要用于克服信号传输过程中出现的偶然因素所带来的尖峰干扰,思想通俗来说就是在某段误差范围内对数据保留与否的取舍。(3-7)3.2.2 滑动平均滤波滑动平均滤波算法也是很常用的滤波算法之一,该又称递推平均滤波法,滑动平均滤波在处理信号的时域波形时是非常有效的。滑动滤波在频域上来考

29、察是属于低通滤波器的一种,其对于抑制随机噪声并且保留原始信号边沿陡峭性是非常有用的。滑动滤波是将连续取得N个采样值看做一个循环队列,对队列里边的数列进行算术平均的处理,并以先进先出的方式更新队列里边的数据,达到能够像窗口一样能够滑动处理数据,从而去掉整个数据的随机噪声。滑动滤波的公式如下所示(3-8)3.3 快速傅里叶变换对于传感器采集来数据处理,往往某些时候在时域上的描述并不能很好的描述信号,对数据在频域上进行分析时会带来不一样的描述,对于编写软件时带来极大的帮助。本课题在对传感器所采集到的数据需要在MATLAB进行频率上的分析,得到采集得到的数据和杠杆运动的特性。下面介绍做频域变换时所需用

30、的的方法。离散傅立叶变换(DFT)是在做信号分析与处理中占有极其重要地位的一种变换,对于在滤波器设计上会遇到由时域的求频域的或由求情况,这时候我们就需要用到DFT来完成这项工作。这种信号变换方式在通信、图像传输、声呐等领域都占着不可或缺的地位。此外,在对系统进行分析、设计和实现中都会用到该方法。担由于该方法的计算量与变换区间长度N的平放成正比关系,故很大程度上限制了离散傅里叶变换发展。1965年,库利(J.W.Cooley)和图基(J.W.Tukey)在计算数学杂志上发表了“机器计算傅立叶级数的一种算法”的文章,这是一篇关于计算DFT的一种快速有效的计算方法的文章。这篇文章具有划时代的意义,大

31、大减小了DFT的计算量。由此衍生出了许多的计算方法这些方法统称为快速傅里叶变换,简称FFT。并且在1984年,法国的科学家杜哈梅尔(P.Dohamel)和霍尔曼(H.Hollmann)提出了分裂基快速算法,使对数据的运算效率进一步得到提高。FFT主要分成两大类,即按时间抽取法和按频率抽取法。FFT算法主要包括基2FFT算法,基4FFT算法,混合基FFT,基rFFT算法和分裂基FFT算法8。第4章 防抖装置的软件设计4.1 防抖装置软件设计的工作原理根据上章对装置的力学分析,可知当STC12C5A60S2输出一个PWM波信号驱动直流电机进模块拉动杠杆做简谐运动时,陀螺仪对运动情况进行检测,测量出

32、杠杆运动的加速度和角速度9,将运动的数据传输到STM32控制器,STM32对陀螺仪传来数据的进行处理,转化为驱动步进电机的信号,使得步进电机驱动步进电机做与杠杆相反方向的运动。从而达到减小的相对位移目的,而是和步进电机相关的量,由于步进电机在被驱动下参数会出现某些变化需要对变化量仍然需要对获得的数据和电机驱动信号做模糊化的处理,建立一个经验公式表查询驱动所需要的数据。4.2 软件开发环境本次对防抖装置软件的开发使用了RealView MDK的开发环境。RealView MDK是由ARM公司推出的针对于正对ARM内核的嵌入式处理器的开发工具,能够很好的支持ARM7、ARM9以及Cortex-M3

33、内核的处理器10。并且软件支持对程序的仿真,对程序运行性能的分析,并且友好的支持J-Link仿真器对于程序下载、程序运行的跟踪和单步调试。图4-1开发环境本次开发主控芯片STM32F103RC是基于Cortex-M3内核的微处理器,RealView MDK集成开发工具非常适合本对本软件的开发。集成开发环境如图4-1所示为开发环境的界面。4.3 软件开发流程防抖装置软件的开发主要包括基于MPU6050传感器的采样模块的软件开发、电机驱动模块的开发和数据处理任务调度模块的软件的开发。本次采样模块的开发用到软件模式的I2C传输协议实现传感器和STM32微控制器之间的数据传输,采样模块主要移植了MSP

34、430微控制器对MPU6050进行通信的程序,以PC11和PC12口和传感器进行I2C协议的通信。电机驱动模块通过软件控制对PA1和PA2口产生控制电机运动的方向和运动的速度的PWM信号。数据处理任务调度模块,为本次软件开发的核心内容。任务调度采用了阻塞的调度方式,确保唯有获取数据信号后才能启动其他的硬件部分,保证了软件在运行时候的任务间的紧凑度,减弱任务与任务之间的相干性11-12。如下图4-2所示为整个程序的流程图。图4-2软件流程图系统对各个硬件模块先进行初始化,分别初始化了定时器模块、电机模块、传感器模块。在该系统中需要消耗3个定时器,分别包括了定时器2、定时器3、定时器4,其中定时器

35、2产生一个驱动电机运动方向的PWM,定时器3则产生一个控制电机运行速度的PWM,定时器4主要记录系统时间的运行和负责任务的调用时基。对于这三个定时器而言定时器2和定时器3处于同一优先级,定时器4属于优先级最高。配置完硬件的初始参数后,先对开启系统后在传感器上获取的不稳定数据进行抛弃,随后需要获取传感器静止状态下的零点漂移值,并用此漂移值对以后的数据做矫正。此系统在每隔3ms后对需要对抖动装置的运动状态进行检测,获取其运动时候的Z方向轴加速度和Y方向轴的角速度,在进行数据采集过程中需要锁死程序,以免中断干扰对于数据采集工作。当数据采集完成后,解除对程序的锁定,对采集的数据传入微控制器中的RAM中

36、。在进行对数据转换前需要进行数据预处理,主要包括零点漂移的矫正,限幅滤波,滑动滤波。通过编写的限幅滤波算法实现了对信号的尖峰干扰滤除,然后经过N为8的窗口进行对数据滑动滤波,从而抑制传感器上存在的随机噪声。在程序运行期间需要记录前一时刻获取的数据和当前时刻的数据,用以实现误差的记录。(4-1)对于所获取的误差进行误差容限的判断,如果该值在允许的误差容限下则表明不需要更新电机的参数,忽视本次采集的数据。如果超出本容限误差,则需要更新电机参数。通过经验公式转换出对应的控制电机运动速度和方向的的参数。对此次误差的值仍需要记录,保证假如误差累计过大后,对电机参数的更新。当微控制器获得了电机更新参数的命

37、令后会根据任务调度器实现对参数的更新,并通过LED显示模块显示当前任务状态和完成情况。4.4 程序源码的介绍4.4.1 数据结构对数据结构的构造是程序编写的重要环节,根据C+面向对象开发思想下,本软件对需要用到的硬件部件进行的抽象化的构建。以达到便于控制的目的,并且增强了程序的可移植性。任务调度器任务查询数据结构该数据结构包括了需要进行调度的任务。(1)任务调度器任务查询数据结构typedef enum SAMPLE,/数据采样任务 DEALDAT /数据处理任务 UPDATEMOTOR /更新电机数据任务 LEDSTATE /LED任务状态显示TASK_TypeDef;(2)任务数据结构ty

38、pedef struct TASK_TypeDef lastID; /当前任务 TASK_TypeDef oldID; /上一时刻的任务 int lock; /程序锁死 int eventstate; /当前任务状态(成功/失败) int updatevent; /电机参数更新事件标志位 int timercount; /时间记录单元TaskSwitch;(3)电机模型数据结构typedef struct int freq; /步进电机速度控制 int dir; /步进电机运动方向控制 int Switch; /控制更新电机速度的开关 int state; /电机工作状态(启动/关闭)Moto

39、rTypeDef;4.4.2 数据采集模块的程序u8 MPU_Init(void); u8 MPU_Get_Gyroscope(short* gx,short* gy,short* gz);u8 MPU_Get_Accelerometer(short* ax,short* ay,short* az);对MPU6050传感器操作由以上几个函数控制,其中 MPU_Init主要对mpu6050的陀螺仪传感器和加速度传感器,采样率,硬件滤波等的硬件配置。MPU_Get_Gyroscope()和MPU_Get_Accelerometer();主要负责对获取传感器采集得到的加速度和角速度数据。4.4.3

40、主控模块程序GetMpudata();SlidingFilter();GetOffset();LimitingFilter();PreDealMpuData();Proccessmotor();主控程序主要由以上几个函数控制GetMpudata主要用于数据采集,GetOffset()负责获取静止状态下的零点漂移值得获取。 LimitingFilter为主要负责限幅滤波,SlidingFilter为滑动滤波模块,PreDealMpuData()负责调用以上模块进行数据的预处理。而Proccessmotor()函数负责将获取的数据转化为控制电机运动的信号。4.4.4 滑动滤波程序滑动滤波对抑制传感

41、器随机噪声扮演者重要的角色。ACC_Z_BUFfiltercnt = mpuacci.z - ACC_OFFSET.z;GYRO_Y_BUFfiltercnt = mpugroi.y - GYRO_OFFSET.y; for(i=0;i<= FILTER_NUM;i+) TempAccZ += ACC_Z_BUFi; TempGyroY += GYRO_Y_BUFi; if(filtercnt >= FILTER_NUM) filtercnt = 0;ACC_AVG.z = TempAccZ >> SHIFT;GYRO_AVG.y = TempGyroY >>

42、; SHIFT;mpuaccf.z = ACC_AVG.z * ACCGain; mpugrof.y = GYRO_AVG.y * GyroGain;第5章 结果和分析5.1 系统调试如图5-1所示为防抖硬件装置的实物图。图5-1防抖硬件装置实物该实物图主要由四个部分构成:抖动产生装置、信号采集装置、电机控制机构、微控制器。本次试验还采用了实时监测的方法观测数据,通过虚拟滤波器对传来的抖动数据做实时观察。本课题用到了Serial_Digital_Scope V2_Cracked虚拟示波器对所传来的数据进行实时监控,该软件可以实现PC与单片机间的相互通信,并可以同时绘制4组波形,具有波特率可调特

43、点,可以将传入的数据以dat类型存入PC机中,方便其他软件调用该文件进行数据的分析,本课题通过串口1将数据传入传入该软件进行实时的监控,并保存保存传来的数据通过MATLAB调用dat文件对该数据进行分析。极大的方便了后续的程序编写,对整个过程中占据极大的助力。通过陀螺仪采集得到的Y轴方向上的角速度数据通过STM32的串口1传入虚拟示波器上进行波形实时显示如图5-2所示。观察波形可知道杠杆抖动时检测出来的角速度的服从类似正弦型号的变化。图5-2上位机显示根据激光头射出的红光在显示屏上偏离程度来判断程序对抖动装置抖动抑制效果。根据观察记录下得到如表5-1所示的数据。表5-1激光偏离数据激光头偏离板

44、心数据记录杠杆运动运动范围5.5cm激光头运动范围5cm数据1(cm)数据2(cm)数据3(cm)数据4(cm)CLOSEOPENCLOSEOPENCLOSEOPENCLOSEOPEN1.20.81.10.91.10.61.51.22.11.62.11.81.91.82.62.72.52.62.41.92.422.52.22.11.72.32.42.42.61.40.91.31.31.61.61.81.80-0.10-0.30.6010.6-1.41.2-1.3-1.2-1.6-1.30-0.3-2.3-2-2.1-1.4-2.3-2-1-1.1-2.3-1.6-2.5-1.9-2.5-2.1

45、-1.9-1.4-1.5-0.8-2.2-2.3-2-1.7-2.4-2.1-1-0.3-1.2-1.1-1.1-0.7-1.9-1.2-0.20CLOSE代表未启动程序下激光头的运动数据,OPEN代表启动程序后的激光头的运动数据。根据上表测得数据,可以明显得出当程序运行后某段时间内可有效的抑制抖动装置产生的抖动。并通过红外传感器采集得到激光头的运动情况的数据进行MATLAB的数据分析,绘制出了如图5-3所示为激光头运动情况,蓝线表示为激光头在未启动程序控制电机下的激光头运动情况,红线表示为启动程序通过控制电机的激光头运动情况。可以明显看见在启动程序后,激光头的运动幅度在大部分时刻都被抑制了。

46、图5-3激光头抖动数据因此说明防抖装置软件能够有效的抑制防抖装置的抖动,防抖装置能够对抖动做到有效的抑制。5.2 数据分析MATLAB对于算法开发和数据分析上是首屈一指的,并且具有很友好的用户图形界面,操作起来简单,并且在图像信号的分析上有很出色的表现。因此本次课题在对防抖装置的数学建模和传感器采集的数据用MATLAB对来进行分析,得出对后期软件编写具有重要参考意义的依据。本次实验通过调用STM32微处理器传至PC机上的dat类型的文件,对数据进行分析处理。本次实验要对装置静止状态下传输的数据和运动状态下传输的数据进行分析,对传来的数据进行滤波处理,绘制出滤波前后数据所对应的图形。传感器采集的

47、Z轴方向上的七千多组静态的加速度数据经stm32串口1发送到PC机上,通过MATLAB绘制出传来数据的原始信号图形和对数据进行平均滤波后的图形情况。图5-4加速度静态数据如上图5-4所示,由图可以传感器在静止平放时采集到的加速度具有很大的噪声,但经过平均滤波后明显改善了信号。通过对加速度的平均滤波后获取加速度的零点漂移值。经传感器获取Y轴方向上的角速度的数据,该数据为传感器静止平放下获得的,经数据进行时域上的绘制,并对数据进行平均滤波后的结果如下图5-5所示可以看出该数据具有一定的尖峰噪声,但相对于加速度的图形来说比较干净,任然需要对数据进行平均处理,获取传感器的角速度的静态漂移值。图5-5 Y轴角速度零点漂移当抖动装置启动时,经传感器测得Z轴方向上的加速度和Y轴方向上的角速度。通过对获取的数据进行滑动滤波并绘制出未进行滤波和进行滤波后的时域图形如下图5-6和5-7所示。由图形可知,当装置启动后,传感器采集获得的数据服从类似于正弦波的变化,但并非真正的正弦变换。相对于起始状态下角速度正半轴和负半轴变化幅度相等,而加速度相对于起始状态下的负半轴幅度大于正半轴的变化幅度,可看出重力对其的影响加速度。在对运动情况下的的角速度和加速度数据进行快速傅里叶变换,并绘制出其频谱图,如图5-8和5-9所示。由图可得加速度和角速度信号的的主要能量分布在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论