飞思卡尔电磁组检测设计
基于飞思卡尔芯片电磁引导智能车设计

基于飞思卡尔芯片的电磁引导智能车设计飞思卡尔智能车竞赛是由教育部高等自动化专业教学指导分委员会主办的全国大学生智能汽车竞赛。
所使用的车模是一款带有差速器的后轮驱动模型车,由组委会统一提供。
比赛跑道为表面白色,中心有0.1 mm~0.3mm直径的连续漆泡线作为引导线,其中漆泡线通有100ma交流电流。
比赛规则限定了跑道宽度50cm和拐角最小半径50cm。
飞思卡尔智能车竞赛一、硬件设计1.电磁传感器对于电磁组来说,传感器的选择是尤为重要的,最原始的办法用线圈产生磁场的办法去切割跑到上的磁场来检测道路信息,开始因为线圈的缠绕是有要求的,电感的大小也是有要求的,漆泡线的粗细也是有要求的,基于上面的问题,我们实验没有成功。
后来,围绕传感器做了很多的实验,做了两个传感器:一个是用三极管做放大的,另一个是用运放做放大的,但结果用运放成本高,运放要双电源而且一般的放大器频带窄满足不了要求,所以选择用三极管做放大。
在距离导线50mm的上方放置垂直于导线的10mh 电感,为了能够更加准确测量感应电容式的电压,还需要将上述感应电压进一步放大,一般情况下将电压峰峰值放大到1v~5v左右,就可以进行幅度检测,所以需要放大电路具有100倍左右的电压增益(40db)。
最简单的设计,可以只是用一阶共射三极管放大电路就可以满足要求。
2.速度传感器车模的驱动力来源于一个直流电动机,为了能很好地控制车模的速度,我们引入了闭环控制系统,这就需要车体能实时地或者尽可能快地了解到速度变化,从而对驱动的电压电流进行调整,尽可能快地达到设定速度并且稳定在设定速度上。
从往届的参赛队伍经验得知,使用一个增量编码器能很好地解决以上问题,终选择了欧姆龙的180线增量型光电编码器。
这款编码器为2相输出。
在实际的测试中,让单片机每10ms返回一次传感器的值,当车模在1米/秒左右速度时能返回60~70多个脉冲,当大于2.5米能返回170多个脉冲,反复测试反馈准确,稳定。
飞思卡尔智能车 电磁组 技术报告

//#define K10
//#define Kp 1;//PID的//#define Kd 1;
#include <hidef.h>
#include <stdio.h>
#include <math.h>
#include <MC9S12XS128.h>
3.1.3
考虑到适当增加力臂来提高舵机的灵敏度和为了赛车布局的的紧凑,采取了如图3.2所示的安装方法。
图3.2舵机安装结构
3.1.4
采用接插件与焊接结合的方式连接传感器、主控板、编码器、电机驱动电路、电机、赛道起始检测等单元,既考虑可靠性,又兼顾结构调整与安装的便利性。具体安装结构如图3.3所示,
图3.3主控板安装结构
[6]卓晴.基于磁场检测的寻线小车传感器布局研究[J].清华大学.2009
[7]杨延玲.载流直导线的电磁场特性分析[J].山东师范大学.2007
[8]王毅敏.马丽英等.一种改进的数字PID控制算法及其在励磁系统中的应用电网技术[J].1998
[9]高金源,夏洁.计算机控制系统[M].清华大学出版社.2007
本校积极组队参加第六届“飞思卡尔”杯全国大学生智能汽车竞赛。从2010年底着手准备,历时半年多,经过不断试验设计,最终设计出较为完整的智能赛车。在赛区比赛中获得了较好的综合性能和成绩。
在本次比赛中,采用大赛组委会统一提供的竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,构思控制方案及系统设计,进行包括机械结构的调整与优化,硬件的设计与组装、软件控制算法的编写与改进等过程(小车上的具体方案模块有传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等)从而实现小车智能化的识别道路,最终实现智能化竞速。
第八届飞思卡尔智能车电磁组技术报告华德思源队

飞思卡尔电磁组

智能车简介
飞思卡尔智能车大赛分三种赛组:
摄像头组
光电组
电磁组
调试视频
调试视频
电磁组原理概述
车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式,让车模以两
个后轮 驱动进行直立行走。 在电磁组比赛中,利用 车模双后轮驱动的特点,实现两轮自平衡行走。相 对于传统的四轮行走的车 模竞赛模式,车模直立行走在硬件设计、控制软件开发 以及现场调试等方面提出了更高 的要求。
原理篇
原理篇
• 1.路径检测 • 2.直立控制 • 3.算法设计
• 路径检测的整体思路流程:
• 磁场感应 选频 放大 检波 A/D采集(单片机萨法尔定律可求得通电的导线周 围空间上某一定点的磁场强度。
• 再由法拉利定律和楞次定律可得处在该点处磁感线圈的感应 电动势大小
算法设计
• 在车模控制中的直立、速度和方向控制三个环节中,都使用 了比例微分(PD)控制,这三种控制算法的输出量最终通过 叠加通过电机运动来完成。 • (1)车模直立控制:使用车模倾角的PD(比例、微分)控 制;
• (2)车模速度控制:使用PD(比例、微分)控制; • (3)车模方向控制:使用PD(比例、微分)控制。
单 管 共 射 交 流 放 大 电 路
检波电路
• 测量放大后的感应电动势的幅值E可以有多种方法。最简单的 方法就是使用二极管检波电路将交变的电压信号检波形成直 流信号,然后再通过单片机的AD采集获得正比于感应电压幅 值的数值。
A/D输入
单片机
检测部分的系统框图
直立行走的原理
• 车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式, 让车模以两个后轮驱动进行直立行走。
车模控制任务分解图
• 三个分解后的任务各自独立进行控制。由于最终都是对同一 个控制对象(车模的电机)进行控制,所以它们之间存在着 耦合。这三个任务中保持车模平衡是关键。由于车模同时受 到三种控制的影响,从车模平衡控制的角度来看,其它两个 控制就成为它的干扰。因此对车模速度、方向的控制应该尽 量保持平滑,以减少对于平衡控制的干扰
(整理)飞思卡尔智能车比赛电磁组路径检测设计方案

精品文档电磁组竞赛车模路径检测设计参考方案(竞赛秘书处2010-1,版本 1.0)一、前言第五届全国大学生智能汽车竞赛新增加了电磁组比赛。
竞赛车模需要能够通过自动识别赛道中心线位置处由通有100mA 交变电流的导线所产生的电磁场进行路径检测。
除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。
具体要求请参阅《第五届智能汽车竞赛细则》技术文档。
本文给出了一种简便的交变磁场的检测方案,目的是使得部分初次参加比赛的队伍能够尽快有一个设计方案,开始制作和调试自己的车模。
本方案通过微型车模实际运行,证明了它的可行性。
微型车模运行录像参见竞赛网站上视频文件。
二、设计原理1、导线周围的电磁场根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。
智能汽车竞赛使用路径导航的交流电流频率为20kHz,产生的电磁波属于甚低频(VLF)电磁波。
甚低频频率范围处于工频和低频电磁破中间,为3kHz~30kHz,波长为100km~10km。
如下图所示:图1:电流周围的电磁场示意图导线周围的电场和磁场,按照一定规律分布。
通过检测相应的电磁场的强度和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航的目的。
由于赛道导航电线和小车尺寸l远远小于电磁波的波长 ,电磁场辐射能量很小(如果天线的长度l远小于电磁波长,在施加交变电压后,电磁波辐射功率正比于天线长度的四次方),所以能够感应到电磁波的能量非常小。
为此,我们将导线周围变化的磁场近似缓变的磁场,按照检测静态磁场的方法获取导线周围的磁场分布,从而进行位置检测。
精品文档由毕奥-萨伐尔定律知:通有稳恒电流I长度为L的直导线周围会产生磁场,距离导线距离为r处P点的磁感应强度为:精品文档图 2 直线电流的磁场⎝1 4 r由此得: B = cos⎝4 r对于无限长直电流来说,上式中⎝1 = 0 ,⎝ 2 = ,则有B = (1)。
图3:无限长导线周围的磁场强度在上面示意图中,感应磁场的分布是以导线为轴的一系列的同心圆。
电磁组_飞思卡尔

小车代码源程序RouteTest.c#include <hidef.h> /* common defines and macros */#include <MC9S12XS128.h> /* derivative information */#include "main.h"#define uint unsigned intuint AD0,AD1,AD2,AD3,AD4,AD5,AD6,AD7,AD8,AD9,ADFULL=0; uint A0=0,A1=0,MAXTEMP0,MINTEMP0,MAXTEMP1,MINTEMP1; uint A2=0,A3=0,MAXTEMP2,MINTEMP2,MAXTEMP3,MINTEMP3; uint A4=0,A5=0,MAXTEMP4,MINTEMP4,MAXTEMP5,MINTEMP5; uint A6=0,A7=0,MAXTEMP6,MINTEMP6,MAXTEMP7,MINTEMP7; uint A8=0,A9=0,MAXTEMP8,MINTEMP8,MAXTEMP9,MINTEMP9;void RouteTest(void){while(!ATD0STAT2_CCF0); //判断通道0是否转换完成AD0=ATD0DR0;if(A0==0){MAXTEMP0=AD0;MINTEMP0=AD0;}else{if(MAXTEMP0<AD0) MAXTEMP0=AD0;if(MINTEMP0>AD0) MINTEMP0=AD0;}A0++;if(A0==LENGTH) {MAXTEMP0=MAXTEMP0-MINTEMP0;}while(!ATD0STAT2_CCF1); //判断通道1是否转换完成 AD1=ATD0DR1;if(A1==0){MAXTEMP1=AD1;MINTEMP1=AD1;}else{if(MAXTEMP1<AD1) MAXTEMP1=AD1;if(MINTEMP1>AD1) MINTEMP1=AD1;}A1++;if(A1==LENGTH) {A1=0;MAXTEMP1=MAXTEMP1-MINTEMP1;}while(!ATD0STAT2_CCF2); //判断通道2是否转换完成 AD2=ATD0DR2;if(A2==0){MAXTEMP2=AD2;MINTEMP2=AD2;}else{if(MAXTEMP2<AD2) MAXTEMP2=AD2;if(MINTEMP2>AD2) MINTEMP2=AD2;}if(A2==LENGTH) {A2=0;MAXTEMP2=MAXTEMP2-MINTEMP2;}while(!ATD0STAT2_CCF3); //判断通道3是否转换完成 AD3=ATD0DR3;if(A3==0){MAXTEMP3=AD3;MINTEMP3=AD3;}else{if(MAXTEMP3<AD3) MAXTEMP3=AD3;if(MINTEMP3>AD3) MINTEMP3=AD3;}A3++;if(A3==LENGTH) {A3=0;MAXTEMP3=MAXTEMP3-MINTEMP3;}while(!ATD0STAT2_CCF4); //判断通道4是否转换完成 AD4=ATD0DR4;if(A4==0){MAXTEMP4=AD4;MINTEMP4=AD4;}else{if(MAXTEMP4<AD4) MAXTEMP4=AD4;if(MINTEMP4>AD4) MINTEMP4=AD4;}A4++;if(A4==LENGTH) {A4=0;MAXTEMP4=MAXTEMP4-MINTEMP4;}while(!ATD0STAT2_CCF5); //判断通道5是否转换完成 AD5=ATD0DR5;if(A5==0){MAXTEMP5=AD5;MINTEMP5=AD5;}else{if(MAXTEMP5<AD5) MAXTEMP5=AD5;if(MINTEMP5>AD5) MINTEMP5=AD5;}A5++;if(A5==LENGTH) {A5=0;MAXTEMP5=MAXTEMP5-MINTEMP5;}while(!ATD0STAT2_CCF6); //判断通道6是否转换完成 AD6=ATD0DR6;if(A6==0){MAXTEMP6=AD6;}else{if(MAXTEMP6<AD6) MAXTEMP6=AD6;if(MINTEMP6>AD6) MINTEMP6=AD6;}A6++;if(A6==LENGTH) {A6=0;MAXTEMP6=MAXTEMP6-MINTEMP6;}while(!ATD0STAT2_CCF7); //判断通道7是否转换完成 AD7=ATD0DR7;if(A7==0){MAXTEMP7=AD7;MINTEMP7=AD7;}else{if(MAXTEMP7<AD7) MAXTEMP7=AD7;if(MINTEMP7>AD7) MINTEMP7=AD7;}A7++;if(A7==LENGTH) {A7=0;MAXTEMP7=MAXTEMP7-MINTEMP7;}while(!ATD0STAT2_CCF8); //判断通道8是否转换完成if(A8==0){MAXTEMP8=AD8;MINTEMP8=AD8;}else{if(MAXTEMP8<AD8) MAXTEMP8=AD8;if(MINTEMP8>AD8) MINTEMP8=AD8;}A8++;if(A8==LENGTH) {A8=0;MAXTEMP8=MAXTEMP8-MINTEMP8;}while(!ATD0STAT2_CCF9); //判断通道9是否转换完成 AD9=ATD0DR9;if(A9==0){MAXTEMP9=AD9;MINTEMP9=AD9;}else{if(MAXTEMP9<AD9) MAXTEMP9=AD9;if(MINTEMP9>AD9) MINTEMP9=AD9;}A9++;if(A9==LENGTH) {A9=0;MAXTEMP9=MAXTEMP9-MINTEMP9;}ADFULL=ADFULL+1;}CarControl.c#include <hidef.h> /* common defines and macros */ #include <MC9S12XS128.h> /* derivative information */ #include "SetPwm.h"#include "main.h"#include "RouteTest.h"#define uint unsigned int#define uchar unsigned char#define value01L -43#define value23L -94#define value45L -90#define value67L -120#define value89L -60#define value01R 43#define value23R 90#define value45R 110#define value67R 130#define value89R 60//#define bentspeed 45//#define dirspeed 45#define valueDL -220#define valueDR 220uint SPEED;//小车速度int CARREL01=0,CARREL23=0,CARREL45=0,CARREL67=0,CARREL89=0; //小车偏移量int ERROR=4050,D_ERROR=0,LASTERROR=4050,E_ERROR=4050,ERRORREL=0; int speedrel=0;uint setspeed=60,realspeed=0;void Delay10us(uint m) //延时10us{uint u;for(;m>0;m--)for(u=0;u<38;u++);}void CarControl(void){//采样100个数据if(ADFULL==LENGTH) {ADFULL=0;//***********************************************CARREL01=MAXTEMP0-MAXTEMP1;CARREL23=MAXTEMP2-MAXTEMP3;CARREL45=MAXTEMP4-MAXTEMP5;CARREL67=MAXTEMP6-MAXTEMP7;CARREL89=MAXTEMP8-MAXTEMP9;if(CARREL01>value01R)//01右转处理{ERROR=4050+CARREL01-value01R;if(ERROR>=4100)ERROR=4100;setspeed=dirspeed;}if(CARREL23>value23R)//23右转处理{ERROR=4100+2*(CARREL23-value23R);if(ERROR>=4264)ERROR=4264;setspeed=dirspeed;}if(CARREL45>value45R)//45右转处理{ERROR=4264+6*(CARREL45-value45R);if(ERROR>=4411)ERROR=4411;setspeed=40;}if(CARREL67>value67R)//67右转处理{ERROR=4411+6*(CARREL67-value67R);if(ERROR>=4600)ERROR=4600;setspeed=bentspeed;}//以上是右转弯处理//******************************************************************* ******//以下是左转弯处理if(CARREL01<value01L)//01{ERROR=4050+CARREL01-value01L;if(ERROR<=4000)ERROR=4000;setspeed=dirspeed;}if(CARREL23<value23L)//23{ERROR=4000+3*(CARREL23-value23L);if(ERROR<=3886)ERROR=3886;setspeed=dirspeed;}if(CARREL45<value45L)//45{ERROR=3886+4*(CARREL45-value45L);if(ERROR<=3794)ERROR=3794;setspeed=(dirspeed+bentspeed)/2;}if(CARREL67<value67L){ERROR=3794+8*(CARREL67-value67L);if(ERROR<=3600)ERROR=3600;setspeed=bentspeed;}D_ERROR=D_ERROR+ERROR-LASTERROR; //误差累积计算 if(D_ERROR>valueDR || D_ERROR<valueDL ) {ERRORREL=D_ERROR;}LASTERROR=ERROR; //保存前一次误差E_ERROR=ERROR+ERRORREL; //叠加误差累计值if(E_ERROR>4600) E_ERROR=4600;if(E_ERROR<3600) E_ERROR=3600;PWMDTY23=E_ERROR;ERRORREL=0;//PWMDTY01=bentspeed;//**************速度控制*************************realspeed=(xishu+1)*speed;speedrel=setspeed-realspeed;if(speedflag==0){if(speedrel<=-10 && (E_ERROR>4400 ||E_ERROR<3800)){PWMDTY45=90; //反转迅速减速PWMDTY01=0;}else{PWMDTY45=0;PWMDTY01=setspeed;}}else{PWMDTY01=setspeed;PWMDTY45=0;}}}Main.c#include <hidef.h> /* common defines and macros */#include <MC9S12XS128.h> /* derivative information */#include "RouteTest.h"#include "CarControl.h"#include "SetPwm.h"#define uint unsigned int#define uchar unsigned char//#define dirspeed 60uint STOPCAR=0,speed,speedsum=0,xishu=0,flag=0,jishi=0; uint bentspeed=0,dirspeed=0;uint speedflag=0;void Delay10(uint m) //延时10us{uint u;for(;m>0;m--)for(u=0;u<38;u++);}void Delay(int k) //延时k*1ms{int u;for(;k>0;k--)for(u=0;u<3998;u++);}//总线时钟设置void setbusclock(void){SYNR = 0x02;REFDV = 0x01;while (!(CRGFLG&0x08));CLKSEL =0x80;}/*****************************************************功能:时基中断初始化,实现5ms中断500us进行一次测速。
飞思卡尔智能车电磁组分区算法介绍

飞思卡尔智能车电磁组分区算法介绍写在之前的话:1、⽬前我是⼀名在校学⽣,这也是我第⼀次写博客,不周之处,请多谅解;2、此算法并⾮原创,借鉴⾃⼭东德州学院第⼋届⽩杨队(PS:个⼈看法,对于⼀些⼈把别⼈的开源东西改头换⾯⼀下就说是⾃⼰的原创⾏为⼗分鄙视);3、对于此算法的理解和说明并⾮纸上谈兵,算法已经被我运⽤到了⼩车⽐赛中并取得好的成绩(具体就不多说了,⽐赛时车莫名其妙坏了,⽐赛前调试的速度绝对能进国赛,⽐较遗憾),总之这算法是我尝试过的最好的算法;4、这⼀次所介绍的只是路径算法和⼀些知识普及,后⾯有时间会介绍其余部分算法及许多好的思路(舵机电机控制思路(不只是简单的PID),双车策略);5、希望对于这⽅⾯有涉及的⼈能与我联系并交流或指出不⾜之处。
---------------------------------------------------------------分割线-----------------------------------------------------------------------------⼀、没有这⽅⾯了解的可以看看 飞思卡尔智能车分为三组:摄像头、光电、电磁,我做的是电磁车,三种车队区别在于传感器的不同,所以获得路径信息的⽅法也不⼀样,摄像头和光电识别的是赛道上的⿊线(⽩底赛道),⽽电磁车则是检测埋在赛道下的通⼊100mh电流的漆包线,摄像头和光电采⽤的是摄像头和ccd作为传感器,电磁则是⽤电感放在漆包线周围,则电感上就会产⽣感应电动势,且感应电动势的⼤⼩于通过线圈回路的磁通量成正⽐,⼜因为漆包线周围的磁感应强度不同,因此不同位置的电感的感应电动势就不同,因此就可以去确定电感位置;因此在车⼦前⾯设置了50cm的前瞻,电感布局如下(怎么发不了图⽚):分为两排,前排3个,编号0,1,2(前期还加了两个竖直电感⽤来帮助过直⾓弯,后来改为了⼋字电感);后排2个,编号3,4;现在车⼦获得了不同位置的感应电动势的⼤⼩了,但这些值是不能处理的:1、感应电动势太微弱;2、是模拟信号,信号太微弱就放⼤它;这就涉及到模拟电路的知识了,就不多说了(因为要把这讲完到PCB绘制的篇幅就⾜够写另开⼀号专门写这些⽅⾯来(PS:题外话(我的题外话⽐较多)):放⼤部分外围你设计的再好也抵不过⼀个更好的芯⽚,有两个例⼦,⼀个是我⾃⼰的:之前⽤的是NE5532,但是效果不理想,加了好多什么滤波,补偿,都⽤上,没⽤,软件⾥处理后⾯再说,后来⼀狠⼼换了AD620,感觉像是春天来了,因为它是仪⽤放⼤器,还有就是贵。
飞思卡尔智能车-电磁传感器与实践

电磁传感器与实践
电磁传感器与实践
由毕奥-萨伐定律有: 0 I B 4 r
其中u为真空磁导率:
所以不难想象磁场强度 非常的弱,难以使用测 磁场的方式检测。
电磁传感器与实践
我们有很多测量磁场的方法,磁场传感器 利用了物质与磁场之间的各种物理效应:磁电效 应(电磁感应、霍尔效应、磁致电阻效应)、磁 机械效应、磁 光效应、核磁共振、超导体与电 子自旋量子力学效应。 我们选取最为传统的电磁感应线圈的方案。 它具有原理简单、价格便宜、体积小(相对小)、 频率响应快、电路实现简单等特点,适应于初学 者快速实现路经检测的方案。
电磁传感器与实践
从上面检测原理可以知道,测量磁场核心是检测线圈的感应电动 势 E 的幅 值。电磁传感器的设计主要包括:感应线圈的选择、信号 选频放大、整流与检测等几个方面,将会涉及到电磁场与波、高频、 模电等相关学科的知识点,这里不再详细的给出各个方案的具体论证 过程,直接给出电路设计系统框图:
电磁传感器与实践
电磁传感器与实践
对于实际传感器摆放位置的说明: 1、水平方向两个平行的线圈
2、水平方向两个内八字的线圈
电磁传感器与实践
3、水平方向两个垂直的线圈 4、水平和竖直方向两个线圈
电磁传感器与实践
使用色环电感制作的传感器:
电磁传感器与实践
使用多排传感器:
电磁传感器与实践
当然传感器的安装方法还有非常多的方法,要靠我们自 己去探索实验,在寻找时,也是一种乐趣,当找的更好 的方法时,你会感到一种满足 感! 由于本人的水平有限,PPT中可能有不少漏洞,有不全 面的地方,详细内容可以参照《智能小车设计指导》第 二版,本人已上传到QQ群的共享文件中。
h h Ed E1 E2 2 2 2 h 为两传感器之间的距离 x为其中一个传感器到中间导线的距离
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+5V
20kHz 频率
R1 510k
1-100
长波通讯
> 30kHz
10-6-10-3
赛道中心导线周围 0.5 米范围 20kHz
10-4-10-2
比赛选择 20kHz 的交变磁场作为路径导航信号,在频谱上可以有效地避开 周围其它磁场的干扰,因此信号放大需要进行选频放大,使得 20kHz 的信号能 够有效的放大,并且去除其它干扰信号的影响。
为了验证 RLC 选频电路的效果,我们对比了在有和没有谐振电容两种情况 下的电感输出的感应电压。在导线中通有 20kHz 左右,100mA 左右方波电流, 在距离导线 50mm 的上方放置垂直于导线的 10mH 电感,使用示波器测量输出电 压波形。如下图 12 所示。
电流参考波形
电感10mH感 应 电 压 距离h=5cm 电感L=10mH
图 1:电流周围的电磁场示意图
导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度 和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航的目的。
由于赛道导航电线和小车尺寸 l 远远小于电磁波的波长 λ ,电磁场辐射能量 很小(如果天线的长度 l 远小于电磁波长,在施加交变电压后,电磁波辐射功率 正比于天线长度的四次方),所以能够感应到电磁波的能量非常小。为此,我们 将导线周围变化的磁场近似缓变的磁场,按照检测静态磁场的方法获取导线周围 的磁场分布,从而进行位置检测。
是并联谐振电容。上述电路谐振频率为:
f0
=
2π
1 LC
。已知感
应电动势的频率 f0 = 20kHz ,感应线圈电感为 L = 10mH ,可以计算出谐振电容
的容量为:
( ) C
=
( 2π
1
)f0 2
L
=
2π
1 × 20 ×103
3 ×10 ×10−3
ቤተ መጻሕፍቲ ባይዱ
=
6.33 ×10−9
(F)
通常在市场上可以购买到的标称电容与上述容值最为接近的电容为 6.8nF, 所以在实际电路中我们选用 6.8nF 的电容作为谐振电容。
线圈
引脚
磁性 10mH 材料
运动方向
L
h
模型车
电流/100mA 赛道中心线
图5 双水平线圈检测方案
为了讨论方便,我们在跑道上建立如下的坐标系,假设沿着跑道前进的方向
为z轴,垂直跑道往上为y轴,在跑道平面内垂直于跑到中心线为x轴。xyz轴满足 右手方向。
假设在车模前方安装两个水平的线圈。这两个线圈的间隔为L,线圈的高 度为h,参见下图5所示。左边的线圈的坐标为(x,h,z),右边的线圈的位置(x-L,h,z)。 由于磁场分布是以z轴为中心的同心圆,所以在计算磁场强度的时候我们仅仅考 虑坐标(x,y)。
在下面所介绍的检测方法中,我们选取最为传统的电磁感应线圈的方案。它 具有原理简单、价格便宜、体积小(相对小)、频率响应快、电路实现简单等特 点,适应于初学者快速实现路经检测的方案。
通电导线周围的磁场是一个矢量场,场的分布如图四所示。如果在通电直导 线两边的周围竖直放置两个轴线相互垂直并位于与导线相垂直平面内的线圈,则 可以感应磁场向量的两个垂直分量,进而可以获得磁场的强度和方向。
个感应线圈,计算两个线圈感应电动势的差值:
Ed
=
E1
− E2
=
h2
h +
x2
−
h2
h + (x − L)2
下面假设 L = 30cm ,计算两个线圈电动势差值 Ed 如下图所示:
Ed/ V
0.2
0.15
0.1
0.05
0
-0.05
-0.1
-0.15
-0.2
-5
0
5
10
15
20
25
30
35
x/cm
图 8 感应电动势差值 Ed 与距离 x 之间的函数
感应电动势的方向可以用楞次定律来确定。
由于本设计中导线中通过的电流频率较低,为 20kHz,且线圈较小,令线圈
中心到导线的距离为 r ,认为小范围内磁场分布是均匀的。再根据图 3 所示的
导线周围磁场分布规律,则线圈中感应电动势可近似为:
E = − dΦ(t) = k dI = K dt r dt r
由于线圈的轴线是水平的,所以感应电动势反映了磁场的水平分量。根据公
式(2)可以知道感应电动势大小与
x2
h + h2
成正比。
车模前进 方向
赛道
y
z
中心
x
(x,h)
L
水平线圈
h
交变电流
导航 电线
x
(100mA)
(x-L,h) 水平线圈
0
Y
z
线圈
L h
X
I/100mA
x
0
图6 感应线圈的布置方案
假设 h = 5cm,
从上图可以看出,当左边线圈的位置 x = 15cm 的时候,此时两个线圈的中 心恰好处于跑道中央,感应电动势差值 Ed 为0。当线圈往左偏移, x ∈ (15,30) , 感应电动势差值小于零;反之,当线圈往右偏移, x ∈ (0,15) ,感应电动势大于 零。因此在位移 0 ∼ 30cm 之间,电动势差值 Ed 与位移 x 是一个单调函数。可以 使用这个量对于小车转向进行负反馈控制,从而保证两个线圈的中心位置跟踪赛
道的中心线。通过改变线圈高度 h ,线圈之间距离 L 可以调整位置检测范围以及
感应电动势的大小。
三、电路设计原理 从上面检测原理可以知道,测量磁场核心是检测线圈的感应电动势 E 的幅
值。下面将从感应线圈、信号选频放大、整流与检测等几个方面讨论电路设计的 问题,最后给出电路设计系统框图和实际电路。
1、感应磁场线圈: 检测线圈可以自行绕制,也可以使用市场上能够比较方便购买的工字型
感知地球磁场的方向,从而发明了指南针。但是对于磁场定量精确的测量以及更 多测量方法的发现还是在二十世纪初期才得到了突飞猛进的进展。
现在我们有很多测量磁场的方法,磁场传感器利用了物质与磁场之间的各种 物理效应:磁电效应(电磁感应、霍尔效应、磁致电阻效应)、磁机械效应、磁 光效应、核磁共振、超导体与电子自旋量子力学效应。下面列出了一些测量原理 以及相应的传感器:
可以使用 LC 串并联电路来实现选频电路(带通电路),如下图所示:
电路示意图
L
C Vo
谐振 电容
感应 线圈
电感 内阻
等效电路图
R0/10Ω
Vo
L/10mH E
C/6.8nf
感应电动势
图 11:RLC 并联谐振电路
上述电路中,E 是感应线圈中的感应电动势,L 是感应线圈的电感量,R0 是
电感的内阻,C
放大,放大倍数一般要大于 100 倍(40db)。 (2) 噪声多:一般环境下,周围存在着不同来源、不同变化频率的磁场。
如下表所示:
表 1:典型的环境磁场强度范围
磁场环境
磁场性质
磁场强度(高斯)
家用电器周围一米范围
50Hz
10-3-10-2
地表面地球磁场
恒定
0.2-0.5
工业电机和电缆周围十米范围 50Hz
55μs
线圈感应电压 160mVpp
55μs
电流参考波形
电 感 1 0 m H感 应 谐 振 电 压 距离h=5cm 电感L=10mH 电容C=6.8nF
线圈感应谐振电压 55μs 300mVpp
55μs
(A)没有谐振电容时感应电压输出 (B)有谐振电容时感应电压输出 图 12:测量感应线圈两端的感应电压。
L1
C1
10mH 6.8nF
C2/104
R2 5.1k
C3/104
放大输出
T1
Vout
1815 D1
β>150
图 13:单管共射交流放大电路
电磁组竞赛车模 路径检测设计参考方案
(竞赛秘书处 2010-1,版本 1.0)
一、 前言 第五届全国大学生智能汽车竞赛新增加了电磁组比赛。竞赛车模需要能够通
过自动识别赛道中心线位置处由通有 100mA 交变电流的导线所产生的电磁场进 行路径检测。除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。具体要 求请参阅《第五届智能汽车竞赛细则》技术文档。
x
∈ (−15,
+15)cm
,计算感应电动势
E
=
h2
h +
x2
随着线圈水平位
置 x 的变化取值,如下图所示:
感应电动势
0.22
0.2
0.18
0.16
0.14
E/V
0.12
0.1
0.08
0.06
0.04
0.02
-15
-10
-5
0
5
10
15
x/cm
图 7 线圈中感应电动势与它距导线水平位置 x 的函数
如果只使用一个线圈,感应电动势 E 是位置 x 的偶函数,只能够反映到水平 位置的绝对值 x 的大小,无法分辨左右。为此,我们可以使用相距长度为 L 的两
)
。
对于无限长直电流来说,上式中θ1
=
0
,θ2
=
π
,则有
B
=
μ0 I 4π r
。
图 3:无限长导线周围的磁场强度