版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京理工大学珠海学院2020届本科生毕业设计基于KEA128的电磁感应平衡车软件系统设计摘要近十年来,一种特殊的运动工具逐渐得到重视和多领域的应用,即两轮自平衡车。两轮平衡车以电能为动力,结构轻盈小巧,能耗低效率高,能够代替传统的汽油运输工具,减小环境污染。同时,相较于普通汽车,两轮平衡车无刹车系统和特殊的转向结构,平衡车只需改变系统的重心和两轮速度差就能实现刹车和转向功能。两轮平衡车系统有着非线性,强耦合不稳定的特点,众多国内外研究人员都以此模型来研究控制策略。通过近几年的研究,已经出现了各种性能优秀的控制算法;本文设计了一种基于KEA128芯片的两轮平衡车系统,所需的外设包括了MMA7361CL加速度计,ENC-3MB+LPR550陀螺仪,10mH电磁线圈和欧姆龙两相编码器;编码器用于获取小车车速以实现小车电机的闭环控制,加速度计和陀螺仪用于融合小车姿态角,利用电磁线圈检测道路磁场变化信息。本设计在直立平衡控制用到了清华的滤波方案融合小车实时的姿态角,同时在小车直立,调速和巡线的控制上使用了PID控制算法,以完善小车的动态性能关键词:KEA128;两轮平衡;软件设计;磁场检测;加速度计;陀螺仪;姿态角融合;Design of electromagneticinductionbalancingvehiclesoftwaresystembasedonKEA128AbstractInthepastdecade,aspecialautohasbeenpaidmoreandmoreattentionandappliedinmanyfields,two-wheeledself-balancingvehicle.Thetwo-wheeledself-balancingvehicleispoweredbyelectricenergy,withlightandcompactmechanicalstructureandhighenergyconsumptionefficiency.Itcandecreaseenvironmentalpollutionandtaketheplaceofthetraditionalgasolineautomations.Meanwhile,comparedwithordinaryautomations,thetwo-wheeledself-balancingvehiclehasnobrakesystemandspecialsteeringmechanism.Thetwo-wheeledself-balancingvehicleonlyneedstochangethecenterofgravityofthesystemandthedifferenceofthespeedbetweenthetwowheelstoachievethebrakeandsteeringfunctions.Thetwo-wheeledbalancingvehiclesystemistypicalofnonlinearityandstrongcouplinginstability.Manyresearchersusethismodeltodevelopthecontrolstrategy.Throughtheresearchtheresearchofmanyscholarsinrecentyears,therehavebeenvariousexcellentcontrolalgorithmsinrelatedfields.thispaperdesignsatwo-wheeledbalancingvehiclesystembasedonachipcalledKEA128,therequiredperipheralsincludeaccelerometers,gyroscopes,electromagneticcoilsandencoders.Accelerometersandgyroscopesareusedtofigureoutthemechanicalangleofthevehicle,theelectromagneticcoilsdetecttheroadinformation,andtheencodersareusedtoobtainthevehiclespeedinordertocompletetheclosed-loopcontrolofthetrolleymotor.ThefilterschemeofTsinghuaUniversityisusedintheverticalbalancecontroltointegratethereal-timeangleofthevertical,andPIDcontrolalgorithmisusedinthevertical,speedregulationandlinepatrolcontrolofthecarinordertoimprovethedynamicperformanceofthesystem.Keywords:KEA128;two-wheeledofbalance;softwaredesign;Magneticfielddetection;Accelerometer;gyroscope;目录第1章绪论 71.1本设计的目的、意义及应达到的技术要求 71.2本设计在国内外的发展概况及存在的问题 71.3本设计应解决的主要问题 81.4总设计方案 8第2章两轮平衡车受力分析及平衡条件 102.1两轮平衡车入门之倒立摆模型 102.1.1经典倒立摆模型原理 102.2两轮平衡车模型 112.2.1两轮车平衡车受力分析及平衡条件 112.2.2两轮平衡车的调速及转向原理 12第3章两轮车平衡车各部件准备 133.1主控设计 133.2角度测量系统 143.3电感反馈系统 153.4电机闭环控制系统 173.5用户交互界面 17第4章两轮平衡车的软件设计 184.1两轮车的直立控制 184.1.1车身姿态角的融合 184.1.2小车PD控制器实现直立平衡 184.2两轮车的速度闭环控制 184.3两轮车的转向环控制 184.4两轮车整体性能的调试 184.4.1PID控制器参数的整定 18第5章总结 18参考文献 19谢辞 21附录 22第1章绪论两轮平衡车作为一种特殊车型的移动机器,在近几年的发展中应用已愈加广泛。特别是在地形复杂的地形中,两轮平衡车能够凭借其独特的灵活性和自适应性等优点,能够代替传统四轮车完成作业任务。本文阐述了如何通过动力学受力分析,并在硬件基础上设计出一套基本的软件系统,由此建立可对两轮平衡车实现平衡,控速,转向等控制的稳定系统。1.1本设计的目的、意义及应达到的技术要求两轮平衡车衍生于单级倒立摆系统模型,而比起传统的倒立摆型性能更加优越,能够轻易适应各种复杂地形,例如泥泞道路,路面凹陷不平整等特殊地形。并且两轮平衡车以电能为动力,结构轻盈小巧,能耗低效率高,能够代替传统的汽油运输工具,减小环境污染。同时,两轮平衡车操作简单灵活,相较于普通汽车,两轮平衡车无刹车系统和特殊的转向结构,平衡车只需改变系统的重心和两轮速度差就能实现刹车和转向功能。由于上述优点,因此两轮平衡车适用场景十分广泛。本设计用KEA128系列单片机作为为控制核心,辅以加速度计、陀螺仪、编码器以及工型电感等传感器车模姿态的测量以及道路信息的识别;根据采集信息,结合清华滤波算法以及直立环、速度、方向等负反馈PID闭环控制,以使电磁平衡车保持稳定直立状态和自主循迹。1.2本设计在国内外的发展概况及存在的问题日本电机工程与通信大学的Kazuo教授在1986年提出了一种平行双轮车并为此申请了专利,但是由于当时传感器技术和计算机技术技术不够发达,虽然这种小车在两轮中间设置了一个小杠杆,并利用这个小杠杆与地面的接触可以推算出整个车身的倾斜角度,但这种平行双轮车平衡效果仍然差强人意,所以导致这种自平衡技术并没有受到广泛的关注。但到了2002年,一种名为“Joe”两轮平衡电动车被瑞士联邦工业大学的Grasser教授研制出来,这种平衡电动车此时已经利用了陀螺仪和倾角计来计算车身倾角,此次两轮平衡车研制的成功让人们开始对自平衡技术产生兴趣并开始重视这方面的研究。同样的,在2002年,美国的SegwayLLC公司设计开发了世界上第一部二轮自平衡车,一款名叫“SegwayHT”诞生了。从机械结构上来看,SegwayHT主要由一个脚踏板,两个车轮和一竖直车杆组成,是现如今市面上常见的平衡代步车的原型。SegwayHT在运动中通过倾角检测模块实时检测车体倾斜角,并将车体倾斜角数据交由控制器处理,控制器由此通过控制算法输出一个合适的电机转矩信号,将这个转矩信号输入给电机,可以使电机产生一定的转矩,从而控制两个车轮实现前进,转弯和后退等功能。至今,许多平衡车还沿用着SegwayHT的许多设计。在SegwayHT面世后,国内两轮平衡车的研究也十分热门,很多科研机构也早在2003年就开始投入到了两轮平衡车的研究当中,并取得了一定的研究成果。2003年,一款名为“FreeMover”的二轮自平衡电动车由中国科学技术大学研制出来,而FreeMover在结构上也是由一个连接在车身的连杆和两个车轮组成,车体的前进转弯等操作可以由驾驶者通过改变重心来控制。而在此之后,哈尔滨工程大学,西安电子科技大学,清华大学等多所国内高校也相继开始两轮平衡车的研究,其中,清华大学的宋宇宁等研发的Cheway在结构上虽然与SegwayHT类似,但是Cheway能在下坡时将能量进行转化,为电池充电,使得Cheway续航能力得到了提高,同时,Cheway的成本也远远低于SegwayHT。目前已经有许多商用的两轮平衡代步车已经进入了市场,成为人们解决日常通勤最后一公里的代步工具。两轮平衡车不管在工业用途还是在商用方面都有着宽阔的应用前景和市场。1.3本设计应解决的主要问题目前,影响两轮平衡车性能的因素主要有三个:针对两轮自平衡小车,用牛顿经典力学的分析方法进行了建立数学模型;车身的机械零点,重心以及电磁感应前瞻的长度以及安装位置都在小车平衡控制中尤为重要,因此需要根据实际情况设计机械机构,并在此基础上建立数学模型。两轮平衡车的自平衡控制是需要通过加速度计,陀螺仪等传感器实时检测车身姿态以及运动状态,因此稳定且精准的检测车身倾角是实现稳定控制的关键。对已经建立的两轮平衡车系统模型进行分析,采用自动控制原理中高阶系统的动态性能分析法设计PID闭环控制器,以达到对系统的动态控制。两轮自平衡系统本身属于不稳定系统,因此控制这种自平衡要用上动态控制。在动态控制中PID控制应用十分广泛,有着极强的稳定性和动态特性,适用于两轮平衡车系统的控制要求。系统中用到的PID控制器的参数调试整定,以使系统具有优秀的稳定性和动态特性。用由10mh工字型电感组成的电磁感应线圈,感应周围电磁场以此确定道路的走向和两轮车相对于道路的位置。1.4总设计方案图1.1总设计方案(1)在掌握两轮平衡车的结构特点和工作原理的基础上,利用牛顿经典力学分析法建立系统的受力模型。(2)本设计采用KEA128RM单片机作为主控进行系统的运动控制,KEA128RM接收系统各个外设模块的数据,包括MMA7361CL加速度传感器获取的系统Z轴加速度值,ENC03MBLPR550型号陀螺仪传感器获取的系统X轴,Z轴加速度值,两个欧姆龙双相编码器返回的车轮转速以及电磁感应前瞻电磁感值。用C语言编程处理平衡车系统的各个模块的原始数据,并利用这些数据算出车模实时姿态,车速和电磁线的走势,进而控制系统平衡和电磁循迹功能,整个系统的关键是单片机控制的电机扭矩和传感器数据的处理。无论是两轮车的平衡还是两轮车的循迹功能都是通过控制驱动电机实现的,两个驱动电机在空间位置上同轴相连。这两个电机需要完成两轮车的平衡和循迹前进两个任务,但实际控制中,这两个控制是同时发生的,主控将外设传来的数据处理成一个控制平衡的控制信号,一个控制速度的控制信号以及一个控制方向的控制信号,将这三个信号叠加在一起加载到驱动电机上,驱动电机只负责根据这个最终的控制信号输出相应的力矩使两轮车处于线性状态就可以同时实现上述的两个任务。(3)需要注意的是,改变车身倾角可以实现两轮车的速度改变,车身倾角的方向决定了两轮车的运动方向,即前进或者后退;车身倾角的大小决定了两轮车的运动速度,往前倾斜的角度越大两轮车的前进速度会越快,但超过临界角度时,系统会因此超调而失控;此处的临界角度与系统整体的机械零点和重心有关。(4)磁场模型及磁场检测,根据麦克斯韦电磁场理论,通电导线周围充满了交变的空间电磁场,在这个空间电磁场中放入一个电感线圈,此时的电磁线圈感应到电磁场而在线圈中生成交变的电流。在通电导线位置和通电导线中电流固定的前提下,电感线圈中的感应电流就是和车身空间位置相关的函数,因此就可以用电感线圈感知两轮车的位置并作为两轮车转向的输入信号。交流电流频率为20kHz时,通电导线周围产生甚低频(VLF)电磁波,波长大概为100km~10km,频率范围在3kHz~30kHz之间。如下图所示:根据毕奥-萨伐尔定律,当长度为L的直导线通以稳恒电流I后,会在直导线附近产生磁场,且距离导线距离d处m点的磁感应强度为: B=θ1θ2μ图1.2直线电流的磁场第2章两轮平衡车受力分析及平衡条件 两轮平衡车的受力分析有利于分析整个系统的平衡条件,方便确定系统控制器的设计方案。通过简单的受力分析即可知道两轮平衡车的平衡原理。2.1入门两轮平衡车之倒立摆模型 2.1.1倒立摆经典模型原理 两轮平衡车系统衍生于倒立摆系统,要想理解透两轮平衡车的平衡原理,就必须先引入倒立摆模型。 图2.1倒立摆模型图2.2倒立摆倾倒模型 不同于单摆模型,倒立摆受到的“恢复力”即重力与位移方向相同,这就导致了倒立摆会由于重力而加速偏离垂直位置,直到倒下。因此必须增加额外力使得回复力与位移方向相反,从而达到倒立摆能够稳定在垂直位置的目的——控制倒立摆底部车轮,使车轮往一个方向做加速运动,这样他就会受到一个额外的惯性力,方向与车轮加速度方向相反,大小呈正比;因此,倒立摆所受到的回复力为: F=mgsinθ-macosθ≈ 式子中,因为实际系统中θ值会很小,所以可以对式子进行线性化,只要比例k1>g(重力加速度),则可以使这个回复力方向与位移方向相反,使倒立摆能够稳定到垂直平衡位置。 由此则可通过倒立摆模型类比出两轮平衡车模型。2.2两轮平衡车模型2.2.1两轮车平衡车平衡条件及受力分析 下图为简化的两轮平衡车的受力分析,在上图的整个系统中还包括了底盘,车轮,电池,底盘以及驱动电机;组装两轮平衡车的时候应该注意小车应该具备机械零位(小车在不受系统外力的情况下自身能够保持平衡的姿态即为机械零位),当小车的合力矩是垂直于地面的支点线时又超过了车轴,小车车身会绕着车轴或前倾或后仰的旋转。图2.3两轮车受力情况 当两轮车在外界干扰下,偏离机械零位从而车身失去平衡开始倒下,此时若不加入电机的反馈则小车会完全倒下。电机的反馈是根据主控计算出来的转矩,转矩除以旋转半径就是力,转矩产生的力的方向平行于与电机齿轮啮合的传动齿轮啮合处的切线;由于电机旋转方向的不同,转矩力的方向也不同。总结上述,我们要做的就是在小车偏离机械零点时由电机产生一个与干扰外力相反的力使小车回复到机械零点,简单的说:当直立的小车往前倾的时候,电机迅速产生一个后拉小车的力;相反的,当小车往后仰时,电机则应该产生一个往前拉的力;于是,小车在失去平衡时可以因为这两种力而迅速回到机械零点。 应该注意的是,根据力的相互作用原理和摩擦力原理,我们可以知道,想要产生方向正确的回复力,电机的旋转的方向应该与小车倾斜旋转的方向相同,此时电机产生的转矩方向才是与干扰外力相反,即当小车顺时针倾倒时,车轮也应该顺时针旋转,反之亦然。 2.2.2两轮平衡车的调速及转向原理 由上一节我们知道,电机产生的回复力可以使小车一直平衡在机械零点的位置,然而两轮车只能在原地保持平衡状态。两轮平衡车的前进和转向必须以平衡为优先,在保持平衡的前提下使平衡车前进,而平衡车的原理也是利用了直立环的控制来实现:MCU控制直流电机转动产生力矩破坏当前的平衡状态使车身前半部分的弯矩大于后半部分的弯矩,直立环控制为了不让车身不向前旋转倾倒,将控制直流电机旋转产生对底盘的力矩,而产生的这个力矩会平衡掉小车向前的合力矩,在此过程中可以使小车向前运动。为了小车能够优先保持直立平衡,两轮车的速度控制是通过改变直立环控制的目标值来实现的,因此小车运行的速度与小车的倾角相关——增加两轮车车身向前的倾斜角g_fCarAngle可以将两轮车向前行驶的速度提高。加大两轮车向前倾斜的角度之后,通过直立环的控制,车身需要向前运动以保持小车平衡,速度因此增大;若要将两轮车向前运动的速度降低,则只需要减小两轮车向前的倾斜角度g_fCarAngle,由于直立环的控制,两轮车会向后运动保持两轮车平衡,速度因此减小。图2.4系统简易控制模型 两个轮子转速不同可实现两轮车的差速转向,小车的转向偏移量由转向环控制。小车的电磁感应前瞻感应电磁磁场变化,经由主控处理输出一个偏移量,叠加到电机的输出信号,电机根据这个信号输出相应的转矩。第3章两轮车平衡车各部件准备(a)图3.1小车整体外围硬件电路设计(b)(c)图3.1小车整体外围硬件电路设计3.1主控设计 本设计以KEA128RM单片机作为主控,KEA128RM基于ARMCortexM0内核,是一种高功效的MCU,工作频率有48MHz,,提供128KB的嵌入式内存,该芯片支持5V电源供电。 KEA128支持最多16个外部模拟输入,外部引脚输入和5个内部模拟输入;KEA128的模数转换器采用是线性逐次逼近算法,支持8位,10位或者12位分辨率的数模转换。利用KEA128的ADC可以读取加速度,陀螺仪和电磁前瞻各电感线圈的值:表3.1ADC读取通道数模转换器通道对应引脚数据 数模转换器通道对应引脚数据ADC0_SE12PTF4电感1ADC0_SE6PTB2GROY_XADC0_SE13PTF5电感2ADC0_SE5PTB1GROY_YADC0_SE14PTF6电感3ADC0_SE4PTB0ACCLE_XADC0_SE15PTF7电感4ADC0_SE3PTA7ACCLE_YADC0_SE7PTF8电感5ADC0_SE2PTA6ACCLE_Z KEA128芯片带有FlexTimer模块(FTM),该模块是一种带有两到八通道的定时器,并以一个16位计数器为时间基准,计时器工作模式包括向上计数和向上-向下计数,FTM定时器时钟可选,可用于生成控制电机的PWM信号;FTM定时器还具备输入捕获模式,可捕捉上升沿,下降沿或者两个边沿同时发生,可用于读取编码器的读值,作为两轮车的车速反馈值。 KEA128具有周期性中断定时器PIT;PIT模块是一组定时器,可生成中断和触发脉冲。本设计使用两个PIT中断定时器,分别用于直立环的中断处理以及速度环中断处理,PIT0中断用于直立环,PIT1中断用于速度环,各为2ms中断一次处理。 除上述功能外,本设计也需要KEA128的GPIO和UART等功能;为了方便调试和优化两轮车的性能本设计用了四个GPIO口做按键输入,分别为PTH7,PTH5,PTH2和PTH4,配置为上拉电阻模式;串口用于输出调试信息。voidGpio_init(void){gpio_init(PTH7,GPI,0);//key_1choiceport_pull(PTH7,PULLUP_ENBLE);//按键上拉按下为低电平gpio_init(PTH5,GPI,0);//key_2+port_pull(PTH5,PULLUP_ENBLE);gpio_init(PTH6,GPI,0);//key_3-port_pull(PTH6,PULLUP_ENBLE);gpio_init(PTE4,GPI,0);//key_4stautport_pull(PTE4,PULLUP_ENBLE);}3.2角度测量系统使用MMA7361CL加速度传感器模块,可实时获取车模在Z轴上的加速度值,用于计算融合同一时刻车模倾角。同时采用ENC-3MB+LPR550型号陀螺仪传感器实时测量X轴、Z轴上的角速度值。MMA7361CL是一种电压式的三轴加速度传感器,它可以测量由于重力引起的加速度;ENC-3MB+LPR550陀螺仪传感器可以输出一个与角速度成正比的模拟电压值,我们可以通过主控的12位模数转换器从外部读取加速度计和陀螺仪输出的模拟电压值。用ADC0的通道5(ADC0_SE5)读取陀螺仪X轴上的值,并将其定义为车模X轴上的角速度G_X;通道6(ADC0_SE6)读取陀螺仪Z轴上的值,并将其定义为车模Z轴上的角速度的G_Z;通道(ADC0_SE2)读取加速度传感器Z轴上的模拟值,并将其定义为车模Z轴上的瞬时加速度值A_Z;读取数模转换器的值可用库函数adc_once读取一次,或者ad_ave读取十次去平均值:voidRd_Ad_Value(void)//ad采集值{G_X=adc_once(ADC0_SE5,ADC_10bit);G_Z=ad_ave(ADC0_SE6,ADC_10bit,10);A_Z=adc_once(ADC0_SE2,ADC_10bit);}3.3电感反馈系统本设计选用10mH工字型电感作为电磁感应线圈识别道路的通电导线的走势,在电感两边并联6.8nF电容构成检波放大电路,经过放大电路可用ADC通道读取该电感实时检测的电感值。本设计将每个电感值存放于一个两维数组ad_valu[5][5],每个电感采集5次:for(j=0;j<5;j++){ad_valu[0][j]=adc_once(ADC0_SE7,ADC_10bit);ad_valu[1][j]=adc_once(ADC0_SE12,ADC_10bit);ad_valu[2][j]=adc_once(ADC0_SE13,ADC_10bit);ad_valu[3][j]=adc_once(ADC0_SE14,ADC_10bit);ad_valu[4][j]=adc_once(ADC0_SE15,ADC_10bit);}经过排序后,舍去两边极端的值,取中间三项的值求平均,同时进行一阶互补滤波:for(i=0;i<5;i++){ad_sum[i]=ad_valu[i][1]+ad_valu[i][2]+ad_valu[i][3];AD_valu[i]=ad_sum[i]/3;AD_valu[i]=(int16)(0.3*AD_valu_old[i]+0.7*AD_valu[i]);//一阶互补滤波AD_valu_old[i]=AD_valu[i];}最终经过滤波后得到的五个电感值存放在AD_valu_old的数组中,数组中的第0元素为最左边的竖直电感0的值,并依次为电感1,电感2,电感3,电感4的值。电感反馈系统将采集到的电感值反馈给MCU处理,得到一个偏差值输入到方向环中完成方向环的闭环。MCU主要是对五个电感值作了比值法的处理,使其得到一个较为可靠的偏差值: 偏差量dev=(E1+使用该比值法的偏差量不存在极值点,能比较接近于真实情况。用这个偏差量会反馈到电机输出量上,此处使用差速法即可使得两轮车根据偏差量完成相应的转向控制,即左轮的pwm值加上偏差值,右轮的pwm值减去偏差量。本设计的电感反馈系统由一个超出车身80厘米纤维杆,安装纤维杆在横向水平的平铺的5个10mH的工字型电磁感应线圈及其对应的检波放大电路组成。电感排布呈双T型对称以及中间水平电感方式:图3.1电感分布这种排布方案是在双水平排布方案的基础上,再增加两个竖直电感——前瞻两侧各增加一个垂直于水平电感相的电感,竖直电感与水平电感两两垂直,且关于中心线对称。双T型电感排布的优点在于,比起全水平电感排布,在电感与道路中心的通电导线之间存在夹角时,双T型电感可以避免车身位置距离中心导线的计算误差,结合垂直和水平两种电感电动势,可以使电磁两轮车适应不同的道路元素,增加小车的预判能力,保证小车快速稳定的在电磁线运行。3.4电机闭环控制系统本设计采用两个7v驱动电机以及两个500线的双相欧姆龙编码器;本设计选用的欧姆龙编码器不仅可测量车轮转速,还可输出旋转方向——MCU读取编码器方向引脚的电平,当编码器为顺时针旋转时该引脚为高电平,当该引脚输出低电平时则为逆时针旋转。图3.2欧姆龙编码器用PIT0定时器每10毫秒获取一次编码器的值;编码器的值由FTM定时器外部引脚脉冲计数功能获取,右轮使用FTM0定时器计数,而左轮使用FTM1定时器获取:valr=ftm_pulse_get(FTM0);vall=ftm_pulse_get(FTM1);而将欧姆龙方向引脚输出与芯片的PTA0和PTH2引脚相连后,编码器的旋转方向就可直接读取这两个引脚的电平即可:dirr=gpio_get(PTA0);dirl=gpio_get(PTH2); 用FTM定时器输出PWM,调整占空比可实现对电机的调速控制。 ftm_pwm_duty(FTM2,FTM_CH1,speedl);3.5用户交互界面本设计使用了一块0.96寸的OLED屏幕以及四个按键便于调试人员的对小车进行参数的调整。OLED的驱动为IIC协议,在使用时利用芯片的普通口模拟IIC协议即可。图3.3用于调试的交互界面第4章两轮平衡车的软件设计4.1两轮车的直立控制4.1.1车身姿态角的融合两轮车的直立平衡关键在于获取车身当前的姿态信息。在车轴的附近安装了加速度传感器和陀螺仪;车身Z轴上的俯仰角信号可由加速度传感器MMA7361测得,对这个信号进行微分可获得此时车身倾角速度,但由于车子自身的抖动大大干扰传感器的倾角信号,造成信号毛刺较多;陀螺仪在Z轴上的输出是车身的倾斜角速度信号,对此信号积分可以得到车身的倾角,但在此积分过程中会将微小的积分放大,造成积累误差;因此需要加速度计和陀螺仪共同作用,互补缺点。本设计经实验测试后,选择采用清华软件角度滤波算法将倾角信号和角速度信号进行融合,得到一个即不滞后也不过冲的稳定的姿态角;三轴加速度计MMA7361的Z轴数据归一化处理:由于采集出来的是电压值,而且由于传感器本身问题,根据传感器安装的位置和环境的不同,需要对采集出来的数值进行线性归一化以矫正误差,因此需要静态提前测得初值MMA7361_vertical,MMA7361_ratio和MMA7361_forward,通过串口输出。 angle_offset_vertical=(MMA7361_vertical-A_Z)*MMA7361_ratio (式4.1)其中MMA7361_vertical为零偏数值,即车身保持在机械零位时加速度计的值;MMA7361_ratio是比例因子,其值等于90/(MMA7361_forward-MMA7361_ratio);MMA7361_forward为加速度传感器安装在车身上时,车身往前水平倾倒的数值;A_Z为实时测得的Z轴上的数值;于是通过该公式则可得到车身在-180°—180°之间角度变化angle_offset_vertical。ENC-3MB+LPR550陀螺仪数据初始化测出陀螺仪在静止时的数值GYRO_VAL,并给定陀螺仪比例因子Gyro_ratio,经过测试和实验将比例因子Gyro_ratio定为0.25角度跟踪效果最好; Gyro_Now=(GYRO_VAL-G_X)*Gyro_ratio; (式4.2)通过该公式可得到归一化的Gyro_Now——陀螺仪角速度。得到加速度计的值angle_offset_vertical和陀螺仪的值Gyro_Now之后,可通过卡尔曼滤波,一阶互补滤波或清华滤波方案可将二者融合为一个跟踪快速且不超调不过冲的姿态角,本设计使用清华滤波方案。voidQingHua_AngleCalaulate(floatG_angle,floatGyro_m){floatfDeltaValue;g_fCarAngle=g_fGyroscopeAngleIntegral;//最终融合角度fDeltaValue=(G_angle-g_fCarAngle)/GRAVITY_ADJUST_TIME_CONSTANT;//时间系数矫正g_fGyroscopeAngleIntegral+=(Gyro_m+fDeltaValue)*DT;//融合角度}该方案中GRAVITY_ADJUST_TIME_CONSTANT为重力补偿系数,一般先取2,后期可经过调试调整,选定最优的参数。DT为积分时间系数一般根据定时器的定时时间决定,也可根据实际情况调整。将计算出的angle_offset_vertical和Gyro_Now传入清华滤波函数Qinghua_AngleCalaulate(angle_offset_vertical,Gyro_Now),返回值为g_fCarAngle,即最终融合的车身姿态角。4.1.2小车PD控制器实现直立平衡将车身姿态角作为驱动电机的输入,通过电机对小车姿态实时矫正,但单纯的角度作为输入不满足小车的动态特性,小车的直立效果较差,所以姿态角的基础上,加入陀螺仪补偿,提高小车直立控制响应的响应速度,减小滞后或过冲: speed_Start=g_fCarAngle+*pid.P_ANGLE+Gyro_Now*pid.D_ANGLE (式4.3)直立环比例系数P_ANGLE与小车的姿态角相乘,使得姿态角在此PD控制器中占主导,可以增大直立控制的反应速率,但该系数过大会导致小车控制超调,造成小车震荡。D_ANGLE为小车直立环中的微分参数,可抑制小车的震荡现象,但微分参数过大会影响小车反应速度,造成小车反应迟缓,也就是说会抑制P_ANGLE参数的效果。P_ANGLE相当于单摆受到的回复力,而超前系数相当于单摆在空气中受到的空气阻力,也就是阻尼。D_ANGLEPD控制器输出speed_Start作为电机的PWM输入,由此控制电机的扭矩输出,使小车保持在直立状态。if(speedl>=0)//正转{ftm_pwm_duty(FTM2,FTM_CH1,speedl);ftm_pwm_duty(FTM2,FTM_CH0,0);}else{ftm_pwm_duty(FTM2,FTM_CH1,0);ftm_pwm_duty(FTM2,FTM_CH0,-speedl);}if(speedr>=0){ftm_pwm_duty(FTM2,FTM_CH2,speedr);ftm_pwm_duty(FTM2,FTM_CH3,0);}else{ftm_pwm_duty(FTM2,FTM_CH2,0);ftm_pwm_duty(FTM2,FTM_CH3,-speedr);}4.2两轮车的速度闭环控制由前文可知,两轮车的速度与车身的倾斜角有关,将小车的速度与预设速度做差得到速度偏差量,用此偏差量改变小车的倾角即可实现对车速的控制。编码器采集的脉冲数可以直接反应为小车速度,编码器采集十次值取平均值:Avg_Sp[9]=Avg_Sp[8];Avg_Sp[8]=Avg_Sp[7];Avg_Sp[7]=Avg_Sp[6];Avg_Sp[6]=Avg_Sp[5];Avg_Sp[5]=Avg_Sp[4];Avg_Sp[4]=Avg_Sp[3];Avg_Sp[3]=Avg_Sp[2];Avg_Sp[2]=Avg_Sp[1];Avg_Sp[1]=Avg_Sp[0];Avg_Sp[0]=valr;valr=(Avg_Sp[0]+Avg_Sp[1]+Avg_Sp[2]+Avg_Sp[3]+Avg_Sp[4]+Avg_Sp[5]+Avg_Sp[6]+Avg_Sp[7]+Avg_Sp[8]+Avg_Sp[9])/10;经过实验测试,速度闭环采用纯P控制效果较好,原因在于PID控制器中积分参数I容易饱和引起系统超调或者失控。SpeedError=SetSpeed-(valr+vall)/2;SpeedControlOutNew=pid.P_SPEED*SpeedError;式中,SetSpeed为设定速度,valr,vall为经过均值滤波后的左右轮脉冲值,将左右轮统一为一个控制对象,用其与设定速度作差得到速度偏差SpeedError=SetSpeed-(valr+vall)/2;速度偏差SpeedError乘与一个速度环的比例系数P_SPEED得到速度环输出的PWM量SpeedControlOutNew,此时考虑到系统的稳定性,将速度环输出的PWM值分段平稳输出给电机:voidSpeed_Control_Output(void){floatfValue;fValue=SpeedControlOutNew-SpeedControlOutOld;PID_SPEED_OUT=fValue*(SpeedCount+1)/Speed_Filter_Times+SpeedControlOutOld;if(PID_SPEED_OUT>10)PID_SPEED_OUT=10;if(PID_SPEED_OUT<-10)PID_SPEED_OUT=-10;}由于两轮平衡车系统是一个非最小相位系统,所以在此控制中的比例或者速度过大时,容易变成系统的正反馈,导致小车系统失控,所以速度的调节需要非常缓慢和平滑。将SpeedControlOutNew与SpeedControlOutOld的差值fValue分成十段叠加到输出PID_SPEED_OUT,并将每段限幅在10以内,由此可将速度增量或者减量平稳的输出到电机上;本设计以直立环为优先保证小车直立性能,由此将速度环与直立环串级以优先稳定小车直立平衡:
speed_Start=(g_fCarAngle+PID_SPEED_OUT)*pid.P_ANGLE+Gyro_Now*pid.D_ANGLE; (式4.4)在直立环的输出处,将速度环的输出PID_SPEED_OUT直接改变车身的倾斜角,该式子实现了速度环和直立环的串级PID。4.3两轮车的转向环控制本设计中两轮车需要沿着特定的跑道运行,跑道中心铺设了漆包线,并为漆包线通以100MA的20Khz交变电流,使中心附近产生一个交变磁场,两轮车的电磁前瞻可以检测道路的电磁中心线偏差,两轮车以此控制电机差速输出以实现小车对道路的循迹——由电磁线偏差检测信号与小车速度控制信号进行加或减,使得小车左右轮控制的速度不同而形成转向。speedl=(int)(speed_Start-turning_pwm);speedr=(int)(speed_Start+turning_pwm);本设计中电磁前瞻放置了5个线圈用于感应磁场变化。图4.1为线圈中的感应电动势E与其距离导线水平位置x的函数。当左右两边线圈位置关于通电导线对称时,两边线圈中的感应电动势大小相同;而当小车偏离导线时,两边线圈在位置上与导线不对称,则两边线圈的感应电动势大小不一,根据此时两边不对称的感应电动势的差值作为左右电机的输入,调整小车方向,引导小车沿电导线行驶。图4.2为感应电动势差值Ed与距离x之间的函数,小车的转向可根据这个函数关系进行调整,保证电磁前瞻的中心位置跟踪道路的中心线。图4.1感应电动势E与x函数图4.2感应电动势差值Ed差值与x函数当小车偏离中心线的距离超出一定值时,左右电感检测出的偏差值会逐渐减小,在车速较高的情况下容易造成误判,因此采用比值法解决这个弊端。比值法下的左右电感偏差量会随小车到中心线距离增大而增大,可以正确反映车身偏离中心线的距离,提高系统的稳定性:deviation=(float)((AD[1]+S_ratio*AD[0]-AD[3]-S_ratio*AD[4])/(AD[1]*AD[1]+AD[0]*AD[0]+AD[3]*AD[3]+AD[4]*AD[4]))*1000 (式4.5)式中,线圈电感值存放在AD的一维数组里;比值的算法:左电感值之和减去右电感值除去各电感值的平方和,得到偏差值deviation用来矫正方向。AD[0]和AD[4]为垂直电感,S_ratio为竖直电感系数,增大该值可增大垂直线圈的作用。同时,根据电感距通电导线的远近,赋予不同的权值,比较近的传感器取得的权重大一些,比较远的传感器取得的权重小一些,使得加权平均后的偏差值更加准确,使得小车在任何情况下都能够稳定过弯。权重可视情况修改:AD[1]=0.3*AD[1],AD[2]=0.4*AD[2],AD[3]=0.3*AD[3];由于车子自重较大,具有较大的转动惯量,容易在调整过程出现两轮车转向过冲的现象。因此方向环的控制也需要PD控制控制器——增加微分控制,抑制小车的转向的过冲现象。微分控制可以根据小车方向的变化率修正电机的差速控制量,以抑制过冲。此处需引入陀螺仪在Z轴上的值,即小车转动的速度; turning_pwm=pid.P_TURN*now_deviation+pid.D_TURN*Gyro_Z; (式4.6)式中,P_TURN是转向环比例系数,now_deviation是经过一阶互补滤波后的方向偏差量,Gyro_Z是陀螺仪在Z轴上的值,D_TURN是转向环的微分参数。得到的turning_pwm是经过PD控制器的输出量;小车根据turning_pwm实现差速控制可以使小车在稳定循迹,并在转弯时平稳快速过弯。将方向环的输出turning_pwm和直立速度环串级PID的输出speed_Start正负叠加: speedl=(int)(speed_Start-turning_pwm); (式4.7) speedr=(int)(speed_Start+turning_pwm); (式4.8)最终,左右电机根据计算出的speedl与speedr信号实时输出转矩,左右偏移的值互为相反,以此实现小车的直立,速度和转向控制。图4.3系统主流程图4.4两轮车整体性能的调试4.4.1PID控制器参数的整定所有的PID参数存放与一个pid结构体中:externstructPID_Def{ floatP_ANGLE; floatD_ANGLE; floatP_SPEED; floatP_TURN; floatD_TURN;}pid;直立环中,因为P参数和D参数会互相影响,因此需要找到一对P_ANGLE与D_ANGLE的值使小车直立性能最稳定——响应迅速,系统不超调,在原地保持直立。首先,保持P_ANGLE和D_ANGLE数值都为0,逐渐增大参数P_ANGLE,当小车出现轻微震荡时,开始调节参数D_ANGLE,直到小车不再震荡。反复进行这个过程,对这对参数进行微调,直到小车具有较稳定的直立性能;在实际调参的过程中,我们发现,还应该事先确定P参数的极性,因为P_ANGLE参数的极性直接决定了闭环是正反馈还是负反馈闭环。我们先将D参数为零,将P_ANGLE参数设置为正数,发现此时直立环变成了正反馈,小车不仅不会进行角度补偿控制小车保持直立,反而加速了小车倾倒的速度;于是我们将P_ANGLE参数设置为负数,此时的两轮车可以进行负反馈,会抑制小车的倾倒,甚至在零点位置反复震荡,于是我们知道了P参数的极性为负。同样的,我们先保持P参数不变,先置D参数为正数,可以看到的是当D参数为正时,会加剧小车的抖动,而当D参数为负时可以抑制小车抖动,于是可以知道D参数极性也为负极性。在此过程中可以使参数的数值保持较小,以免小车调试过程中跑飞导致齿轮的损坏或者整个车身的不可修复的损坏。在一开始的调试过程中,小车的一直无法保持平衡,来回摆动,出现“点头”拍地的现象,于是我们将融合好的角度,加速度,和陀螺仪等数据通过串口输出,利用匿名四轴软件观察跟踪角度的波形图,发现融合出来角度的容易发生过冲超调的现象,且毛刺较多,于是通过我们排查发现是陀螺仪的数值读取出了点错误,于是我们马上解决,最终发现是陀螺仪x轴和z轴互换了导致的融合效果达不到要求,在我们解决之后,小车开始能在原地保持平衡了,在此之后才能进行直立环的调参。速度环中,起初我们将速度环设置为PI控制器控制,但在实际运行中却发现积分I参数容易发生积分饱和的情况,导致了更多不可控情况,我们尝试用一些消除积分饱和,包括积分限幅等,但都收效甚微,甚至出现小车向前行走一段距离后又后退回到原点又或者在起点附近来回走动的情况,后来我们发现单一个P控制器输出串进小车直立环,用速度环的输出改变小车的倾角,利用直立环的特性也可以使小车稳定前进,于是我们选择串级PID控制,速度环只使用P控制器。设定小车速度为0,将P_SPEED参数从零开始增大,当小车轻微抖动时停止增大参数P_SPEED,再慢慢进行微调,当两轮车能以速度为零的状态静止在原地时,保存此时的P_SPEED数值。方向环中,用的是PD控制器,同样将两个参数置零,逐渐增大参数P_TURN,当小车的电磁前瞻在道路中心线轻微地左右摇摆时,逐步增大参数D_TURN,直到摆动停止。此时的效果是,摆动小车的电磁前瞻使其偏离电磁导线,小车会输出一个较大的回复力使小车前瞻恢复到电磁中心线,但会有中心线位置来回震荡,此时我们加大了参数D,较大的回复力可以使小车迅速回到中心线位置,而D参数可以在P参数较大造成震荡的情况下抑制这种震动,到反复微调这两个参数,使得两轮车位置回正迅速且不超调,使循迹前进性能稳定。但当车速较高使时,两轮车转向不及时,此时再调整PD参数效果不明显,于是我们通过增大竖直电感系数S_ratio达到小车能够提前预测弯道的效果,保证小车在车速过快的情况下也能平稳过弯。在不断优化小车的循迹的性能的过程中我们发现在同一高度洗对称的电感的采集的值不太一样,这就为计算的偏差量带来了一点误差,为解决这个问题,我们使电磁前瞻在中心线位置保持在一定的高度,将采集到的电感值显示在oled屏上,通过旋转电磁放大电路上的电位器可以改变采集到电感值,使左右对称电感值保持在同一个数值,这样通过比值法计算的偏差量能更客观的反应磁场变化,使小车更稳定循迹。应该注意的是,这三组PID参数也会互相影响,当时,我们的直立环过硬就会影响速度环的效果,造成小车无法前进的问题。因此,在调整这三组PID参数时应该注意直立环,速度环和方向环的耦合,达到小车整体性能的最佳状态。表4.1最终参数整定直立环速度环转向环P-800.15.29I///D-2.09/-4.99为方便调试,整定参数,本设计利用了四个按键和一个OLED显示屏。调试人员可以直接通过OLED屏观察各参数的值,电磁传感器的值,并通过按键修改各参数的值。(a)(b)图4.4平衡车运行情况第5章总结目前,两轮平衡车的研究逐渐成熟,出现了许多算法实现平衡车的控制,使得两轮平衡车的性能越来越强,可适应较为复杂环境,补充了四驱车无法工作的工作场景,因此使得两轮平衡车的应用范围广泛,在工业范围内可用于运输,在商用的范围里可作为人们便捷的代步工具。两轮平衡车是典型的非线性强耦合模型,研究此课题十分具有使用价值和研究意义。本文所作的主要研究与工作如下:查阅相关资料,整理有关国内外两轮平衡车的发展现状并对其进行简单的分析。利用牛顿经典力学分析了倒立摆模型,由倒立摆模型类比,并分析了两轮平衡车受力模型和两轮平衡车控制的原理。根据前期的分析研究,提出了总设计方案,包括选择KEA128作为主控并查阅了芯片手册确定片内资源,选定加速度计,陀螺仪,电机,编码器和电磁线圈,并决定控制策略。确定了外设型号后,驱动外设并采集数据,设计了两轮平衡车自平衡,调速和巡线控制的软件系统。对整车的整体性能进行调试,并最优化PID控制器的参数。由此,本文从原理到实际操作,实现了两轮平衡车的自平衡控制,并使得平衡车稳定完成自主道路循迹。参考文献[1]胡寿松.自动控制原理(第五版)[M],科学出版社,2007.
[2]谭浩强.C语言程序设计[M].清华大学出版社,2006.1.
[3]竞赛秘书处.第7届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案,2012.3.1.
[4]张晓峰,钟一博,李清晨,等.电磁智能车循迹算法[J].计算机系统应用,2014,23(12):187-190.
[5]陈国定,张晓峰,柳正杨.电磁智能车电感排布方案[J].浙江工业大学学报,2016,44(2):124-128.[6]张涛,李家启.基于参数自整定模糊PID控制器的设计与仿真.交通与计算机,2001,19(Z1):27-30.
[7]竞赛秘书处.电磁组竞赛车模路径检测设计参考方案.1.1版,2010:1-7.
[8]施建青.大学物理学(下册).北京:高等教育出版社,2009.10-11.[9]张华苑,张培仁,李吴华,等.基于DSP的两轮式倒立摆自平衡控制系统.测控技术,2007,(11>:56.59[10]T.Braunl,J.Pan.BalancingaTwo-WheeledAutonomousRobot[D].The
UniversityofWesternAustraliaSchoolofMechanicalEngineeringFinalYear
Thesis.2003:1-10,23-43.[11]张文志,吕恬生.无线两轮机器人小车控制系统的设计[J].机械与电子,2003.[12]Matsurmoto,S.Kajita,K.Komoriya.FlexibleLocomotionControlofaSelfContainedBipedLeg-WheeledSystem[C].Proceedingsofthe2002IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems.Lausanne,2002:2599-2604.[13]徐国华,谭民.移动机器人的发展现状及其趋势.机器人技术与应用。2001.[14]Baloh,M.Parent.ModelingandModelVerificationofanIntelligentSelf-balancingTwo-WheeledVehicleforanAutonomousUrbanTransportationSystem[C].Proceedingsofthe2003IEEEInternationalConferenceonComputationalIntelligent,RoboticsandAutonomousSystems.Singapore.2003:1-7.[15]N.Shiroma,O.Matsumoto,S.Kajita.Cooperativebehaviorofawheeled
invertedpendulumforobjecttransportation.IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems.1996:396-401.[16]李磊,叶涛,谭民等.系统机器人技术研究现状与未来[J].机器人,2002,29(1):10-13.[17]T.Braunl,J.Pan.BalancingaTwo-WheeledAutonomousRobot[D].The
UniversityofWesternAustraliaSchoolofMechanicalEngineeringFinalYear
Thesis.2003:1-10,23-43.[18]魏延辉,刘胜,高延滨等.基于两轮自平衡机器人组合定位方法的研究[J].机械与电子2010.谢辞时间过得很快,眨眼间四年的时光一晃而过。在这将近四年时间里,我要感谢的人太多太多。还记得我刚上大学时的懵懂,有很多帮助过我的师兄师姐,他们在我什么都不懂的时候,耐心得带着我适应大学的一切,让我有了很大的成长。两轮平衡车这个课题对我来说难度较大,在此十分感谢我的两个队友,正是队友们的不懈努力才能完成这个课题,那些无数个攻克难关的日日夜夜,幸好有你们的陪伴和坚持,这一过程我受益良多,不仅学会了相关技术,更是磨练了意志,学会了坚持,这将是我非常可贵的经历。更重要的是我要感谢指导我的姚远老师,姚远老师非常耐心,悉心指出了我论文的不足,并一一指导。还要感谢所有帮助过我的老师们,他们都很热心,也很平易近人,经常帮助我解决问题。最后,我十分想感谢在我四年大学时光里一直一起奋斗努力的队友们和团队的小伙伴们,正式这群可爱的人让我在这四年的时光里不虚度时光,收获很多,也正是彼此的鞭策才使我们能成为更好的自己,十分感谢。祝愿每个人幸福安康。附录附录1程序源代码系统初始化函数voidSystem_init(void){uart_init(UART0,9600);ftm_pwm_init(FTM2,FTM_CH0,10*1000,50);ftm_pwm_init(FTM2,FTM_CH1,10*1000,50);ftm_pwm_init(FTM2,FTM_CH2,10*1000,50);ftm_pwm_init(FTM2,FTM_CH3,10*1000,50);ftm_pulse_init(FTM0,FTM_PS_1,TCLK1);ftm_pulse_init(FTM1,FTM_PS_1,TCLK2);gpio_init(PTA0,GPI,0);gpio_init(PTH2,GPI,0);kbi_init(PTE4,KBI_PULLUP_EN|KBI_FALLING);//按键外部中断KBI1_CLEAN_FLAG();pit_init_ms(PIT1,2);//速度环中断定时5mspit_init_ms(PIT0,2);;//直立环中断定时250usset_irq_priority(PIT_CH0_IRQn,0);set_irq_priority(PIT_CH1_IRQn,1);pid.P_ANGLE=-80;pid.D_ANGLE=-2.09;pid.P_SPEED=0.1;pid.I_SPEED=0;pid.P_TURN=5.29;pid.D_TURN=-4.99;OLED_Init();adc_init(ADC0_SE12);//PTF4adc_init(ADC0_SE13);//PTF5adc_init(ADC0_SE14);//PTF6adc_init(ADC0_SE15);//PTF7adc_init(ADC0_SE7);//PTB3adc_init(ADC0_SE6);//GROY_Xadc_init(ADC0_SE5);//GROY_Yadc_init(ADC0_SE4);//ACCLE_Xadc_init(ADC0_SE3);//ACCLE_Yadc_init(ADC0_SE2);//ACCLE_Zgpio_init(PTG3,GPO,1);gpio_init(PTE4,GPI,0);gpio_init(PTG0,GPO,1);gpio_init(PTG1,GPO,1);gpio_init(PTG2,GPO,1);Gpio_init();OLED_Fill(0x00);OLED_P8x16Str(0,0,on);}主函数部分voidmain(void){System_init();//系统初始化kbi_enable_irq(PTE4);//按键中断enable_irq(PIT_CH1_IRQn);//转向环中断enable_irq(PIT_CH0_IRQn);//定时器2ms中断一次EnableInterrupts;//开总中断while(1){}}清华滤波方案voidQingHua_AngleCalaulate(floatG_angle,floatGyro_m){floatfDeltaValue;g_fCarAngle=g_fGyroscopeAngleIntegral;//最终融合角度fDeltaValue=(G_angle-g_fCarAngle)//GRAVITY_ADJUST_TIME_CONSTANT;//时间系数矫正g_fGyroscopeAngleIntegral+=(Gyro_m+fDeltaValue)*DT;//融合角度}角度融合函数voidAD_Calculate(void){Rd_Ad_Value();//采集ADGyro_Now=(GYRO_VAL-G_X)*Gyro_ratio;//陀螺仪采集到的角速度归一化GYRO_XGyro_Z=(G_Z-994)*Gyro_ratio;angle_offset_vertical=(MMA7361_vertical-A_Z)*MMA7361_ratio;//将加速度计采集到的角度归一化,乘上0.375是为了归一化到0~90°ACC_Zif(angle_offset_vertical>90)angle_offset_vertical=90;//防止加速度角度溢出if(angle_offset_vertical<-90)angle_offset_vertical=-90;//计算融合后的角度//Kalman_Filter(angle_offset_vertical,Gyro_Now);//卡尔曼角度滤波方案QingHua_AngleCalaulate(angle_offset_vertical,Gyro_Now);//清华角度滤波方案//Yijiehubu(angle_offset_vertical,Gyro_Now);//一阶互补滤波(适用于数字式陀螺仪)speed_Start=(g_fCarAngle+PID_SPEED_OUT)*pid.P_ANGLE+Gyro_Now*pid.D_ANGLE;//速度和直立串级}附录2:硬件原理图
PCB图
怎样提高电脑系统运行速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。1.加快系统启动速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。(1)MsconfigWindowsXP的启动速度在系统安装初期还比较快,但随着安装的软件不断增多,系统的启动速度会越来越慢,这是由于许多软件把自己加在了启动程序中,这样开机即需运行,大大降低了启动速度,而且也占用了大量的系统资源。对于这样一些程序,我们可以通过系统配置实用程序Msconfig将它们从启动组中排除出去。选择“开始”菜单中的“运行”命令,在“运行”对话框中键入“Msconfig”,回车后会弹出“系统配置实用程序”对话框,选择其中的“启动”选项卡(如图1),该选项卡中列出了系统启动时加载的项目及来源,仔细查看每个项目是否需要自动加载,否则清除项目前的复选框,加载的项目越少,启动的速度就越快。设置完成后需要重新启动方能生效。(2)BootvisBootvis是微软提供的一个启动优化工具,可提高WindowsXP的启动速度。用BootVis提升WindowsXP的启动速度必须按照正确的顺序进行操作,否则将不会起到提速的效果。其正确的操作方法如下:启动Bootvis,从其主窗口(如图2)中选择“工具”菜单下的“选项”命令,在“符号路径”处键入Bootvis的安装路径,如“C:\ProgramFiles\Bootvis”,单击“保存”退出。从“跟踪”菜单中选择“下次引导”命令,会弹出“重复跟踪”对话框,单击“确定”按钮,BootVis将引导WindowsXP重新启动,默认的重新启动时间是10秒。系统重新启动后,BootVis自动开始运行并记录启动进程,生成启动进程的相关BIN文件,并把这个记录文件自动命名为TRACE_BOOT_1_1。程序记录完启动进程文件后,会重新启动BootVis主界面,在“文件”菜单中选择刚刚生成的启动进程文件“TRACE_BOOT_1_1”。窗口中即会出现“CPU>使用”、“磁盘I/O”、“磁盘使用”、“驱动程序延迟”等几项具体图例供我们分析,不过最好还是让BootVis程序来自动进行分析:从“跟踪”菜单中选择“系统优化”命令,程序会再次重新启动计算机,并分析启动进程文件,从而使计算机启动得更快。(3)禁用多余的服务WindowsXP在启动时会有众多程序或服务被调入到系统的内存中,它们往往用来控制Windows系统的硬件设备、内存、文件管理或者其他重要的系统功能。但这些服务有很多对我们用途不大甚至根本没有用,它们的存在会占用内存和系统资源,所以应该将它们禁用,这样最多可以节省70MB的内存空间,系统速度自然也会有很大的提高。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“services.msc”后回车,即可打开“服务”窗口。窗口的服务列表中列出了系统提供的所有服务的名称、状态及启动类型。要修改某个服务,可从列表双击它,会弹出它的属性对话框(如图3),你可从“常规”选项卡对服务进行修改,通过单击“启动”、“停止”、“暂停”、“恢复”四个按钮来修改服务的状态,并可从“启动类型”下拉列表中修改启动类型,启动类型有“自动”、“手动”、“已禁用”三种。如果要禁止某个服务在启动自动加载,可将其启动类型改为“已禁用”。WindowsXP提供的所有服务有36个默认是自动启动的,实际上,其中只有8个是必须保留的(见下表),其他的则可根据自己的需要进行设置,每种服务的作用在软件中有提示。4)修改注册表来减少预读取,减少进度条等待时间WindowsXP在启动过程中会出现一个进度条,我们可以通过修改注册表,让进度条只跑一圈就进入登录画面。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“regedit”命令后回车,即可启动注册表编辑器,在注册表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,选择其下的EnablePrefetcher键,把它的键值改为“1”即可。(5)减少开机磁盘扫描等待时间当Windows日志中记录有非正常关机、死机引起的重新启动,系统就会自动在启动的时候运行磁盘扫描程序。在默认情况下,扫描每个分区前会等待10秒钟,如果每个分区都要等上10秒才能开始进行扫描,再加上扫描本身需要的时间,会耗费相当长的时间才能完成启动过程。对于这种情况我们可以设置取消磁盘扫描的等待时间,甚至禁止对某个磁盘分区进行扫描。选择“开始→运行”,在运行对话框中键入“chkntfs/t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/xc:”命令;如果要恢复对C盘的扫描,可使用“chkntfs/dc:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。2.提高系统运行速度提升系统运行速度的思路与加快启动的速度类似:尽量优化软硬件设置,减轻系统负担。以下是一些常用的优化手段。(1)设置处理器二级缓存容量WindowsXP无法自动检测处理器的二级缓存容量,需要我们自己在注册表中手动设置,首先打开注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽中医药高等专科学校高职单招职业适应性测试备考试题有答案解析
- 2026年黑龙江旅游职业技术学院单招职业技能笔试模拟试题带答案解析
- 儿科护理心理护理策略
- 医疗人工智能在辅助决策中的应用
- 护理专业课程体系建设与改革研究
- 医疗健康保险的区块链技术应用
- 医疗资源分配与护理效率提升
- 2026年黑龙江商业职业学院高职单招职业适应性测试备考试题带答案解析
- 思修题库及答案
- 2026年安徽邮电职业技术学院单招综合素质笔试备考题库带答案解析
- 高校科研项目立项及管理规范
- 钣喷质检员考试题及答案
- 学生安全教育家长会课件
- 2026年云南省高二物理学业水平合格考试卷试题(含答案详解)
- 《事故隐患排查治理资金使用专项制度》
- 完整版污水处理池施工组织设计方案
- 2025版数据安全风险评估报告(模板)
- 国开11073+《法律文书》期末复习资料
- 钢结构工程监理合同
- 企业ERP系统维护操作手册
- 眼耳鼻喉科2019年院感工作计划
评论
0/150
提交评论