飞思卡尔 电磁直立车电磁智能寻迹小车编程用的什么软件

第九届飞思卡尔智能小车浙江赛区-电磁组-浙江师范大学-尖峰电磁一队技术报告
您的位置: → 表格模板 →
第九届飞思卡尔智能小车浙江赛区-电磁组-浙江师范大学-尖峰电磁一队技术报告
第九届“飞思卡尔”杯全国大学生智能汽车竞赛技 术 报 告学
校: 浙江师范大学队伍名称: 尖峰电磁一队参赛队员: 李剑飞 卢莹 黄总谋指导教师: 武林 潘日敏关于技术和研究论文使用授权的说明本人完全了解第九届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、 使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委 会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计、技 术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版 论文集中。参赛队员签名:带队教师签名:日
要本文介绍了浙江师范大学尖峰电磁一队队员们在准备第八届飞思卡尔智能车 大赛过程中的工作成果。智能车的硬件平台采用带K60处理器的开发环境,软 件平台为 IAR6.3 开发环境,车模采用大赛组委会统一提供的仿真车模。
文中介绍了智能小车控制系统的软硬件结构和开发流程。本智能车采用十个 电感线圈来检测磁场的寻迹方案,配合舵机,编码器、电机、电池等组成的驱动 电路,进行信息处理,路径识别,控制模型车高速稳定地在跑道上行驶的目的。 整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略 优化等多个方面。为了提高智能赛车的行驶速度和可靠性,试验了多套方案,并进行软硬件升 级,通过大量的数据和实验现象分析,最终确定了现有的系统机械结构和各项软 件控制参数。关键字:K60 、磁场检测 、倾角检测 、 PID控制算法 、 智能车目
引言........................................................ 11.1 赛事概况 .................................................... 11.2 方案简介 .................................................... 11.3 方案内容安排 ................................................ 2第二章
技术方案概述................................................ 2第三章 车身机械结构调整............................................. 33.1传感器放置................................................... 33.2舵机放置..................................................... 33.3车轮调整..................................................... 43.3.1轮胎的处理 ............................................. 43.3.2前轮机械的调整 ......................................... 53.4车体重心调整................................................. 53.4.1降低电池重心 ........................................... 53.4.2 降低底盘............................................... 6第四章 硬件电路设计................................................. 64.1 电源管理模块 ................................................ 74.1.1 MCU、液晶供电电路...................................... 74.1.2电磁传感器、编码器供电电路 ............................. 74.1.3 舵机供电电路........................................... 74.2 MCU模块..................................................... 74.3磁场检测模块................................................. 74.4电机驱动模块................................................. 84.5速度检测模块................................................. 84.6液晶和按键模块............................................... 84.7电池电压检测模块............................................. 9第五章 软件设计.................................................... 105.1循迹算法设计................................................ 105.2 PID控制算法................................................ 105.3 PID参数整定................................................ 115.4
PWM 子程序设计 ............................................ 125.5
小车控制策略 .............................................. 135.6
软件开发环境 .............................................. 13第六章 模型车参数.................................................. 14第七章
结论....................................................... 157.1系统的特色.................................................. 157.2系统的不足.................................................. 15参考文献........................................................... 16致谢............................................................... 17附录............................................................... 18第一章
引言1.1 赛事概况受教育部司委托,高等学校自动化专业教学指导分委员负责主办
全国大学生智能车竞赛。为加强大学生的创新意识、实践能力、合作精神的培养, 举办了第八届“飞思卡尔”杯大学生智能车邀请赛。该项比赛已列入教育部主办 的全国五大竞赛之一。月,举行第九届全国大学生智能汽车竞赛。本届比赛首先是在全
国八个赛区进行预选赛,之后经各赛区选拔出的120只赛车队伍将在成都电 子科技大学进行总决赛。在比赛中,参赛选手须使用大赛组委会统一提供的竞赛 车模,自主构思控传感器信号采集处理、控制算法及执行、动力电机驱动、转向 控制等,完成智能车工程制作及调试,于指定日期与地点参加场地比赛。参赛队 伍之名次(成绩)由赛车现场成功完成赛道比赛时间为主,技术方案及制作工程 质量评分为辅来决定,车模改装完毕后,车模尺寸宽度不超过250mm,长度没 有限制,比赛过程中长度不得发生改变。跑道表面为白色。根据比赛技术要求, 电磁组竞赛,需要选手设计的智能车能够检测到道路中心线下电线中20KHz交 表电流产生的磁场来导引小车沿着道路两轮着地行驶。在平时调试和比赛过程中 需要能够满足比赛技术要求的20KHz,100mA(±20mA)的交流电源驱动中心 线下埋有线圈的赛道上行驶。1.2 方案简介在方案设计的过程中,我们参阅了很多兄弟院校的往届大赛技术报告,如清 华大学、北京科技大学,杭州电子科技大学等。在国内,他们对智能车研究起步 得比较早,例如清华大学首创记忆算法。在信号采集方面,我们采用主流的10mH 电感作为磁场信号检测传感器,为了使采集的信号干净,使用了硬件滤波,软件 滤波,归一化等方法。控制器采用飞思卡尔K60作为主控制器。在方向控制方 面,采用官方提供的S3010舵机,使用数字位置式PD控制算法。在速度控制方
1面,电机采用车模原配的电机,使用数字增量式PID控制算法,测速方面采用Mini256Z编码器,形成速度的闭环控制。方案优势将在后文中阐释。1.3 方案内容安排本技术报告的正文分为四个部分。第一部分是对整个系统实现方法的一个
概要说明,对整个技术方案的概述;第二部分是对系统机械结构的说明,主要 介绍机械结构改装等;第三部分是对硬件电路设计的说明,主要介绍系统传感器 的设计及其他硬件电路的设计原理、创新点和实现过程等;第四部分是对系统软 件设计部分的说明,主要内容是智能模型车设计中主要用到的控制理论、算法说 明及代码设计介绍等。第二章
技术方案概述本模型车的制作的主要思路是利用十个10mh电感线圈来检测赛道的磁场信
息,将信息通过硬件滤波后传递到K60单片机中。在K60单片机中利用一定的 算法来控制模型车的运行状态。模型车的控制系统包括电源管理模块、MCU模块、磁场信息检测模块、电机驱动模块、速度测量模块、液晶按键控制模块等。在整个系统中,由电源管理模块实现对其他各模块的电源管理。其中,对单 片机提供3.3V电压、传感器检测、速度测量电路提供5V电压,对液晶键盘电 路提供3.3V电压。MCU模块采用飞思卡尔K60控制器作为主控制器,实现人机交互,电压检 测,配合磁场检测模块实现磁场信号的处理,实现舵机控制,速度测量和电机控制。磁场信息检测模块主要实现对电磁场信号的检测,通过硬件滤波电路完成信 号的硬件滤波后输入到单片机的AD采样口。电机驱动模块采用MOS管组成的桥式电路,实现对电机的驱动。速度测量模块采用欧姆龙两百线编码器,配合MCU模块实现速度的闭环控制。2液晶和按键模块则主要实现人机交互功能,实现参数设定和显示的功能。 以上是对制作方案的概述,接下来将详细阐述。第三章 车身机械结构调整3.1传感器放置传感器位置放置方式对于智能车控制起决定性作用,经过对以往技术报告分 析,我们选用了十个传感器的方案。十个传感器分三排放置,最前排放置七个电 感,三个相对于车体行进方向垂直放置,两个水平放置,两个成45°角放置。 垂直的两个电感为主要的电感,确定小车前进的主要路径。水平的电感用于直道 的检测。斜45°电感用于大弧以及急弯的检测。正中垂直的电感用于坡道的检 测。中间一排放置了两个相对于车体行进方向垂直放置的电感,用于辅助远瞻电 感。最后一排放置了一个相对于车体行进方向垂直放置的电感,用于抓线。电感 排布如图3.1所示。另外,今年智能车竞赛赛道元素新加了砖头,所以为了检测 砖头我们新加了CCD,放置在小车近处。图3.1传感器位置3.2舵机放置舵机的位置放置以及安装方式对于智能车的转向来说至关重要,舵机安装的 太靠前或者是太靠后,转向的传动臂轴线就不在前轮转向的切线上,会分解一部 分舵机传动臂的力,不利于提高前轮的转向灵敏度,还会增加舵机的负荷。我们
3采用了舵机的竖立式安装如图3.2所示,这种方式更有利于提高舵机转向的对称 性和响应速度以及灵敏度,并且相对于底盘的重心比较低,这样更好地平衡整体 车身性能。图3.2 舵机位置3.3车轮调整3.3.1轮胎的处理轮胎是智能车跑快的一个非常重要的因数,在调试当中不仅仅要考虑到轮胎 的摩擦力,还要考虑到轮胎外形,以及轮胎与赛道接触面的形状的问题。智能车 的轮胎是统一购买的,一般摩擦系数都差不多,但是智能车的轮胎的结构是中空 不密封的,里面只有一块海绵,我们都知道到智能车在转向的时候需要的是轮胎图3.3.1轮胎处理4提供侧向摩擦力,这样的轮胎在转弯的时候不仅形变很大,导致侧向与赛道接触 面接减小,而且容易脱离轮毂,造成智能车转向时侧滑和发生抖动。为了防止车 轮在高速转动和转弯情况下轮胎脱离轮毂,为了增大轮胎与地面的有效接触面积 ,我们适当的用胶水将轮胎内边缘粘合在了轮毂上,如图3.3所示,这样能有效 的减小轮胎的形变,有利于提高智能车转弯的稳定性。3.3.2前轮机械的调整3.3.2.1主销后倾相关内容可查看相关资料,这里不再赘述。3.3.2.2主销内倾相关内容可查看相关资料,这里不再赘述。3.3.2.3前轮前束相关内容可查看相关资料,这里不再赘述。3.4车体重心调整车身的重心位置直接影响智能车的整体性能。在质量相同的情况下,如果重 心太靠前,大大增加了前轮和舵机的负载,影响转向的轻便性,造成迟滞,同时 后轮的摩擦力会降低,容易发生滑动摩擦。如果重心太靠后,虽然转向灵敏度提 高了,但是会造成严重的甩尾现象,同样不利于转弯。此外如果重心太靠上,高 速转弯时智能车容易发生侧翻现象。相对的来说重心接近地面比较合适,不仅能 够提高智能车转弯的稳定性,而且有效的减轻车轮及其构件的负载,但同时会面 临静电影响,因此要做好静电处理。具体做法如下3.4.1降低电池重心电池是除车身外最重的配件,在很大程度上决定着整车的重心位置。具体做法如图3.4.1所示5图3.4.1降低电池重心3.4.2 降低底盘调整底盘高度直接影响到车身的重心,具体的我们是通过前后轮的高度来调整的,具体方式如图所示。图3.4.2降低底盘第四章 硬件电路设计本方案的电路设计采用模块化的设计。这种情况下可以有效地防止因为
6某一种电路的损坏而使得整个PCB板子无法利用的结果,同时还可以有的 排列各个模块板子的位置,使得小车的重心更加的合适,更加的优化。4.1 电源管理模块智能车虽以车为主体,但其任何行动完全由其电路控制。模型车通过自身
系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前 进转向等动作,各部分都需要由电路支持,电源管理尤为重要。一旦电源出现问 题,各部分电路的功能将受到很大的影响。该设计中K60用的是3.3V电源,液 晶模块用的是3.3V电源,编码器、角度传感器用的是5V电源,驱动电机模块上 用的全桥驱动芯片用的是电池电压。考虑到竞赛规定的电源为镍镉蓄电池组,额 定电压为7.2V,实际充满电后电压则为8.2~8.5V,出于功耗和稳定性的考虑, 电源模块的主要部分如下所示:4.1.1 MCU、液晶供电电路采用LMV供电,电路图参照官方提供典型电路图。4.1.2电磁传感器、编码器供电电路采用L2940提供5V电压,电路图参照官方提供典型电路图。4.1.3 舵机供电电路采用L2941提供6V电压,电路图参照官方提供典型电路图。4.2 MCU模块本系统采用龙丘的K60最小系统板,因此MCU模块电路图只是对用到引脚转接。4.3磁场检测模块采用LM386作为放大芯片,以及RC组成的滤波电路。如图所示。7图4.3磁场检测4.4电机驱动模块采用MOS管搭建的桥式电路,如图所示。图4.4电机驱动4.5速度检测模块采用的是Mini256Z的编码器。4.6液晶和按键模块8图4.6液晶和按键4.7电池电压检测模块
9图4.7电池电压检测模块第五章 软件设计软件的总体思路依然采用模块思想,这样的框架简洁明了,易于阅读和调试。程序主要用到K60芯片中的FTM(PWM)模块、PIT周期定时器模块、正交 编码模块、ATD模块等模块化设计。FTM(PWM)模块主要用来控制舵机和电机 的运转;PIT周期定时器模块主要是用在了测速模块和数据采集,捕捉中断并计 算瞬时速度;正交编码模块主要用在测速、ATD模块主要是用来A/D转换和信 号处理。5.1循迹算法设计导引小车沿着道路行驶要求传感器能够检测到道路中心线下电线中20K交 流电流产生的磁场。我们制作的传感器感应磁场经硬件滤波和放大电路处理后得 到电压,再经过A/D转换后的值会在0-3.3v之间变化。采集到的电压值经过软 件均值滤波滤除随机噪声后进行归一化处理消除信号源电压不稳定带来的误差。 对得到的主传感器(前面两端电感)电压值进行差除和处理后的到的值作为舵机 控制的偏差进行PD控制,作为循迹依据。5.2 PID控制算法PID 控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输
入e(t)与输出u(t)的关系为Δu(t) = q0e(t) + q1e(t-1) + q2e(t-2)式中积分的上下限分别是0
。因此它的传递函数为:10G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数; TI为积分时间常数;TD为微分时间常数 比例KP 用来 控制当前,误差值和一个负常数P(表示比例)相乘,然后和预定的值相加。P 只是在控制器的输出和系统的误差成比例的时候成立,KP能够快速的跟随变化 量。及时的产生与之相关的调节作用。但是是有差调节,无法消除静态误差。积 分KI来控制过去,误差值是过去一段时间的误差和,然后乘以一个负常数I, 然后和预定值相加。I从过去的平均误差值来找到系统的输出 结果和预定值的平 均误差。一个简单的比例系统会振荡,会在预定值的附近来 回变化,因为系统 无法消除多余的纠正。通过加上一个负的平均误差比例值, 平均的系统误差值 就会总是减少。所以,最终这个PID回路系统会在预定值定下来。SU(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)]微分KD来控制将来, 计算误差的一阶导,并和一个负常数D相乘,最后和预定 值相加。这个导数的控制会对系统的改变作出反应。导数的结果越大,那么控制 系统就对输出结果作出更快速的反应。这个D参数也是PID被成为可预测的控 制器的原因。D参数对减少控制器短期的改变很有帮助。一些实际中的速度缓慢 的系统可以不需要D参数。由于小车的平衡和方向控制是一个具有大的延迟的执行机构,所以在PID
控制中不能加入积分环节。否则会导致小车震荡。所以小车采用PD控制。同时 加入一个一阶惯性 环节,构成不完全微分,给小车一个超前的调节。实际使用 中,为了减少计算时间,将位置式PID转化为增量式。 增量式PID公式:
PWM = PID_steer_P*(err or)+PID_steer_D*(error-last_error)5.3 PID参数整定试凑法是通过闭环试验,观察系统响应曲线,根据各控制参数对系统响应
的大致影响,反复试凑参数,以达到满意的响应,最后确定PID控制参数。试
凑不是盲目的,而是在控制理论指导下进行的。试凑法的具体实施过程为:(1)整定比例部分,将比例系数由小变大,并观察相应的系统响应,直至
11得到反应快、超调小的响应曲线。如果系统静差小到允许范围,响应曲线已属满 意,那么只需比例控制即可,由此确定比例系数。(2)如果在比例控制基础上系统静差不能满足设计要求,则加入积分环节, 整定时首先置积分时间i 为很大值,并将经第一步整定得到的比例系数略微缩T 小(如缩小为原值的0.8),然后减小积分时间,使得在保持系统良好动态的情 况下,静差得到消除,在此过程中,可根据响应曲线的好坏反复改变比例系数和 积分时间,以期得到满意的控制过程,得到整定参数。(3)若使用比例积分控制消除了静差,但动态过程经反复调整仍不能满意, 则可加微分环节,构成比例、积分、微分控制器。在整定时,先置微分时间d 为零,在第二步整定基础上增大,同样地相应改变比例系数和微分时间,TdT逐 步试凑以获得满意的调节效果和控制参数。5.4
PWM 子程序设计K60内部定时器的功能是非常强悍的,其中的FTM模块就可以用来产生PWM波,和配置成正交编码功能来对编码器进行计数的。FTM特性包括:(1)FTM源时钟是可选的源时钟可以是系统时钟,固定频率时钟或者一个外部时钟;固定频率时钟是 一个附加的时钟输入,允许选择一个片内时钟源,而不用系统时钟;选择外部时 钟源,即将FTM时钟与片级输入引脚相连,因此允许同步FTM
计数器和片外 时钟源;预分频因子有1,2,4,8,16,32,64或者128 。(2)FTM有一个16位计数器它可以为自由运行计数器或者为有初始和结束 值的计数器,计数可以为增加或者增加--减少;每个通道可以被配置为输入捕捉, 输出比较或者边沿对齐PWM模式; 当处于输入捕捉模式时 捕捉可以发生在上 升沿,下降沿或者是两种沿处 ;一个输入过滤可以为几个通道同时选择;当处 于输出比较模式时,输出信号可以被置位,清0或者在匹配时切换,所有的通道 可以被配置为中央对齐PWM模式 每一对通道可以联合起来产生一个PWM信 号(独立控制PWM信号的两种边沿)。12(3)输入过滤的正交解码器相关的位置计数和外部事件的位置计数中断或者 位置结束捕捉 。5.5
小车控制策略对于小车的控制,主要分为直道和弯道进行处理。通过循迹方案得到的偏差值可以判定直道和弯道,由偏差值作为方向和速度控制的决策。5.6
软件开发环境IAR Embedded Workbench for ARM(下面简称IAR EWARM)是一个针对 ARM 处理器 的集成开发环境,它包含项目管理器、编辑器、C/C++编译器和 ARM 汇编器、连接器XLINK和支持RTOS 的调试工具C-SPY。在EWARM 环 境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。比较其他的ARM
开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。目前IAR
EWARM支持ARM Cortex-M4 内核的版本是 6.3版本。
IAR EWARM 中 包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟 各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估 IAR EWARM 的功能和使用方法。IAR EWARM 的主要特点如下:● 高度优化的IAR ARM C/C++ Compiler● IAR ARM Assembler● 一个通用的IAR XLINK Linker● IAR XAR和XLIB建库程序和 IAR DLIB C/C++ 运行库● 功能强大的编辑器● 项目管理器● 命令行实用程序● IAR C-SPY调试器(先进的高级语言调试器)● 用IAR环境开发Kinetis是非常的方便的13第六章 模型车参数项目
参数路径检测方法(赛题组)
车模几何尺寸(长、宽、高)(毫米)
780*250*200 车模轴距/轮距(毫米)
160车模平均电流(匀速行驶)(毫安)
450电路电容总量(微法)
传感器种类及个数10mH 电感:
赛道信息检测空间精度(毫米)
1014赛道信息检测频率(次/秒)
1000主要集成电路种类/数量LM1117*1、LM2940*2、IR4227*2、
IRF3205*4、IRF4905*4LM386*10、K60*1车模重量(带有电池)(千克)
1.2kg第七章
结论7.1系统的特色在智能车的设计制作过程当中,通过小组成员的努力思考与探索,同时结 合以往比赛中优秀赛车的特点,我们在以下几个方面引入了自己的设计特色:(1)鉴于路径识别模块的性能对整个系统运行的重要作用,本系统采用了
十个传感器的路径识别方案,由于车模的长度没有限制,所以我们采用加长传
感器支架的长度来增加传感器的前瞻,大大提高了系统识别路径的精度并提升
了赛车速度。(2)采用系统模块化思想,把各个重要模块独立开,电路设计简洁明了,大大 减轻了系统维修的工作量和成本。(3)在机械上精心设计,降低车的重心,增加车辆转弯的向心力,使车辆抓地 力更加强,更有利于快速拐弯,增强车体稳定性。(4)自己设计的OLED液晶键盘模块,为设置参数和调试赛车带来了极大的方便, 同时加入参数存储功能,更有利于调试。(5)软件算法上对传感器的值进行滤波和归一化处理。7.2系统的不足尽管我们作了很大的努力,但是由于时间紧迫以及缺乏经验等原因,本系统 仍然存在着一些问题,主要有以下几点:(1)赛车机械安装部分为人工完成,没有使用精密的检测仪器辅助安装,安装
15精度受限。(2)系统控制算法采用传统的PID 算法。可以考虑更加高级的控制算法以改进 系统性能。对于一些先进的控制方法没有做到深入的研究。(3)在整个调试过程中,赛车不能避免地会冲出跑道,传感器很容易在赛车与 防护栏相撞的时候损坏。参考文献[1]谭浩强《C 程序设计》清华大学出版社[2]阎石《数字电子技术基础》高等教育出版社[3]臧杰,阎岩《汽车构造》机械工业出版社[4]吴建平《传感器原理及应用》机械工业出版社[5]邵贝贝《嵌入式实时操作系统(第2 版)》清华大学出版社[6]仇慎谦《PID调节规律和过程控制》江苏科学技术[7]卓晴,黄开生,邵贝贝《学做智能车―挑战》北京航空航天大学出版社[8]陶永华,尹怡欣,葛芦生《新型PID控制及其应用》机械工业出版社[9]韩绍坤,许向阳,王晓华《自动控制原理》北京理工大学出版社[10]李仕伯马旭卓晴《基于磁场检测的寻线小车传感器布局研究》电子产品世界.2009.12[11]刘坤,高征红,晃阳《Protel99SE电路设计实例教程》清华大学出版社[12]唐俊瞿,张群瞻《ProtelDXP原理与应用》冶金工业出版社[13]马建伟,李银伢《满意PID控制设计理论与方法》科学出版社[14]邵贝贝《单片机嵌入式应用的在线开发方法》清华大学出版社16致谢首先要感谢学校领导和学院领导对我们的大力支持,以及指导老师武林老师 和潘日敏老师对我们的悉心指导,在本方案的设计过程中,老师经常询问进度和 鼓励我们,使我们有信心面对各种困难和挑战,顺利的完成了对模型车的制作和 调试。同时还要感谢在此过程中帮助过我们的老师。在此谨向各位老师致以崇高 的敬意和衷心的感谢。感谢在设计和调试期间得到的友队和师兄们的支持,是你们的支持使我们
能够顺利完成本次竞赛。最后要感谢本次大赛的各位评委,能够在百忙之中抽出宝贵的时间,对我
们的模型车方案进行评定并提出非常宝贵的改进建议。17附录程序源码://=========传感器电压归一化处理=====================//float getNormalizedADValue(float ADinput, float Min_val, float Max_val,float Normalize_MIN,float Normalize_MAX){tmp = ADtmp = tmp&Min_val?Min_val: //最小截取tmp = tmp&Max_val?Max_val: //最大截取tmp = (Normalize_MAX-Normalize_MIN)*(tmp-Min_val)/(Max_val-Min_val)+Normalize_MIN; //归一值}//=========舵机PID控制=====================//void PID_DJ(void){/*--------r)));last_error=add_error+=if(error&0.99)DJ_PWM=DJ_PWM_if(error&(-0.99))DJ_PWM=DJ_PWM_if(DJ_PWM&DJ_PWM_max)DJ_PWM=DJ_PWM_
//极限值限定
if(DJ_PWM&DJ_PWM_min)DJ_PWM=DJ_PWM_
//极限值限定 转向舵机PD控制-----------------------*/
DJ_PWM=DJ_mid_shedin+((DJ_P*error)+(DJ_I*add_error)+(DJ_D*(error-last_erro 18DJ_PWM_last=DJ_PWM;LPLD_FTM_PWM_ChangeDuty(FTM2,FTM_Ch0,(u16)DJ_PWM);
//舵机给PWN}//=========电机PID控制=====================//void PID_moter(void){rel_speed_L=qd_result_Lrel_speed_R=qd_result_Rerror_L=set_speed_L-rel_speed_L;
//速度误差error_R=set_speed_R-rel_speed_R;
//速度误差pwm_temp_L=(Motor_Speed_L+motor_L_P*(error_L-last_error_L)+motor_L_I*(error_L)+motor_L_D*(error_L+pre_error_L-2*last_error_L));
//增量式PID公式 //(error-last_error)-(last_error-pre_error)Motor_Speed_L= pwm_temp_L;pwm_temp_R=(Motor_Speed_R+motor_R_P*(error_R-last_error_R)+motor_R_I*(error_R)+motor_R_D*(error_R+pre_error_R-2*last_error_R));
//增量式PID公式 //(error-last_error)-(last_error-pre_error)Motor_Speed_R= pwm_temp_R;pre_error_L
= last_error_L;last_error_L = error_L;add_error_L+=error_L;/*--------------------*/pre_error_R
= last_error_R;last_error_R = error_R;add_error_R+=error_R;/*---------------------------------*/19if(Motor_Speed_L&0)Motor_Speed_L=0;if(Motor_Speed_R&0)Motor_Speed_R=0;last_Motor_Speed_L=Motor_Speed_L;last_Motor_Speed_R=Motor_Speed_R;motor_PWN_updat();}//=========获取电源电压=====================//void get_power_AD(void){static u16 ADC_count=0;
//采AD计数 用于取均值static float ADC1_val1_temp=0;
//电源电压暂存ADC_count++;ADC1_val1_temp+=LPLD_ADC_Get(ADC0,//换算电源电压if(ADC_count&=500){ADC1_val1=ADC1_val1_temp/ADC_ADC_count=0;ADC1_val1_temp=0;}}//=========速度路程计算=====================// AD14)*.10;void car_speed_dis(void){car_journey_PL+=rel_car_journey=car_journey_PL/7332;if(car_time&0.1)car_speed_m_s=car_journey/car_
//注意防止分母不为 20零}//=========相关数据通过串口发至电脑上===========//unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT) {unsigned short CRC_Tunsigned char i,j;CRC_Temp = 0for (i=0;i&CRC_CNT; i++){CRC_Temp ^= Buf[i];for (j=0;j&8;j++){if (CRC_Temp & 0x01)CRC_Temp = (CRC_Temp &&1 ) ^ 0xa001;elseCRC_Temp = CRC_Temp && 1;}}return(CRC_Temp);}void OutPut_Data(float OutData[4]){int temp[4] = {0};unsigned int temp1[4] = {0};unsigned char databuf[10] = {0};21unsigned short CRC16 = 0;for(i=0;i&4;i++){temp[i]
= (int)OutData[i];temp1[i] = (unsigned int)temp[i];}for(i=0;i&4;i++){databuf[i*2]
= (unsigned char)(temp1[i]%256);
databuf[i*2+1] = (unsigned char)(temp1[i]/256);
}CRC16 = CRC_CHECK(databuf,8);databuf[8] = CRC16%256;databuf[9] = CRC16/256;for(i=0;i&10;i++)LPLD_UART_PutChar(UART0, databuf[i]); }22
第九届飞思卡尔智能小车浙江赛区-电磁组-浙江师范大学-尖峰电磁一队技术报告相关文章
《》由(在点网)整理提供,版权归原作者、原出处所有。
Copyright &
All Rights Reserved.

我要回帖

更多关于 飞思卡尔 电磁直立车 的文章

 

随机推荐