编码盘测速原理
- 格式:pptx
- 大小:893.97 KB
- 文档页数:6
测速编码器工作原理测速编码器是一种用于测量物体运动速度的设备,它在工业自动化领域得到广泛应用。
测速编码器通过测量物体相对于编码器的位移来计算其速度。
它可以精确地测量高速运动物体的速度,并提供实时的速度反馈。
测速编码器的工作原理基于光电传感技术。
它由编码盘和光电传感器组成。
编码盘上有许多等距分布的孔洞,光电传感器则位于编码盘的一侧。
当物体运动时,编码盘也会随之旋转。
光电传感器通过检测编码盘上的孔洞来确定物体的位移和速度。
光电传感器通常使用红外线或激光作为光源。
当孔洞通过光电传感器时,光电传感器会产生一个脉冲信号。
通过计算脉冲信号的数量和时间间隔,可以确定物体的位移和速度。
测速编码器可以根据应用需求选择不同的编码盘类型。
常见的编码盘类型包括光栅编码盘、光栅带编码盘和磁性编码盘。
光栅编码盘是最常见的类型,它具有高分辨率和精确度。
光栅带编码盘是一种灵活可调的编码盘,可以根据需要进行切割和连接。
磁性编码盘则使用磁性材料制成,具有较高的耐用性和适应性。
测速编码器还可以根据输出信号类型进行分类。
常见的输出信号类型包括脉冲输出和模拟输出。
脉冲输出是最常见的类型,它通过脉冲信号来表示物体的位移和速度。
模拟输出则将物体的位移和速度转换为模拟电压或电流信号。
测速编码器的精度取决于多个因素,包括编码盘的分辨率、光电传感器的灵敏度和采样频率等。
较高分辨率的编码盘和灵敏度较高的光电传感器可以提供更精确的测量结果。
采样频率越高,测量结果越准确。
测速编码器广泛应用于各个领域,包括机械制造、自动化控制、机器人技术等。
在机械制造中,测速编码器可以用于监测设备运动状态,实现精确控制和定位。
在自动化控制中,测速编码器可以用于反馈控制系统,实时调整设备运行速度。
在机器人技术中,测速编码器可以用于实现机器人运动轨迹规划和执行。
总之,测速编码器是一种重要的测量设备,它通过测量物体相对于编码器的位移来计算其速度。
它具有高精度、实时性强的特点,并广泛应用于各个领域。
第四届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告附件B 起跑线识别算法的研究[注]学校:西北师范大学队伍名称:瞬之队参赛队员:陈有生孙越汪国强带队教师:摆玉龙严春满关于技术报告和研究论文使用授权说明本人完全了解第四届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:带队教师签名:日期:目 录创新点 (1)第一章引言 (2)1.1 Freescale车模比赛简介 (2)1.2 发展现状 (3)1.3 章节安排 (3)第二章系统整体框架 (5)2.1 系统框架 (5)2.1.0 主要模块 (5)2.1.1 工作过程 (6)2.2 系统软件 (6)2.3 方案简介 (7)第三章机械结构与调整 (8)3.1 机械机构的安装 (8)3.1.1 舵机的安装 (9)3.1.2 光电编码器的安装 (9)3.1.3 系统版的安装 (10)3.1.4 总体布局 (10)3.2 机械调整 (11)3.2.1 主销内倾 (11)3.2.2 主销后倾 (11)3.2.3 前轮外倾角 (12)3.2.4 前后轮前束 (12)3.3.5 车体重心 (12)第四章硬件电路的设计与实现 (13)4.1最小系统板的设计 (13)4.2 电源模块 (14)4.3电机驱动模块 (16)4.4摄像头 (19)4.5速度传感器 (20)4.6串口和模式选择 (21)第五章软件系统设计与实现 (22)5.1 HSC12控制软件主要理论 (22)5.2 软件各功能模块设计 (22)5.2.1 时钟模块 (22)5.2.2 PWM输出模块 (22)5.2.3 ECT模块 (22)5.3 图像采集 (25)5.4 图像处理 (27)5.4.1 二值化算法 (27)5.4.2 黑线提取流程 (28)5.5 控制算法 (30)5.5.1 PID简介 (30)5.5.2 模拟PID与数字PID (30)5.5.3 PID控制原理 (31)5.5.4 位置式PID与增量式PID (32)5.5.5 PID各环节作用 (32)5.6 路径识别 (34)5.7 舵机控制 (34)5.8 电机控制 (35)第六章开发工具及调试 (37)6.1 上位开发工具 (37)6.2 串口调试工具 (38)6.3 车模技术参数表格 (39)结论 (40)致谢 (41)参考文献 (41)附录A (42)附录B (68)竞速车模的电子控制系统设计:本文详细介绍了以第四届全国飞思卡尔智能车大赛为背景的竞速车模自摘要:动循线控制系统方案。
编码器测速原理编码器是一种用于测量旋转速度和位置的设备,它可以将机械运动转换为电信号,从而实现对运动状态的监测和控制。
编码器测速原理是指通过编码器获取到的信号来计算出物体的速度,从而实现对物体运动状态的监测和控制。
在工业自动化控制系统中,编码器被广泛应用于各种设备和机械的运动控制中,如机床、机器人、电机等。
编码器的测速原理主要是基于编码器的工作原理和信号输出来实现的。
编码器通常由光电传感器和编码盘组成,当物体运动时,编码盘上的光栅或编码孔会随着物体的运动而产生变化,光电传感器会检测这些变化,并将其转换成电信号输出。
根据这些电信号,我们可以计算出物体的速度。
编码器的测速原理可以分为两种类型,增量式编码器和绝对式编码器。
增量式编码器通过检测编码盘上的脉冲数来计算物体的速度,它的原理是根据脉冲信号的频率和方向来确定物体的运动状态。
而绝对式编码器则可以直接输出物体的位置信息,它的原理是通过编码盘上的编码规律来确定物体的位置,从而实现对物体位置和速度的测量。
在实际应用中,编码器的测速原理可以通过信号处理和计算来实现对物体速度的准确测量。
通过对编码器输出信号的采集和处理,我们可以得到物体的运动状态,从而实现对物体的精确控制和监测。
同时,编码器的测速原理还可以应用于各种工业领域,如自动化生产线、机器人控制、电机调速等方面。
总的来说,编码器的测速原理是基于编码器的工作原理和信号输出来实现的,通过对编码器输出信号的采集和处理,我们可以实现对物体速度的准确测量,从而实现对物体运动状态的监测和控制。
在工业自动化控制系统中,编码器的测速原理具有重要的应用价值,可以帮助我们实现对各种设备和机械的精确控制和监测。
编码器测速原理编码器是一种用于測量物体位置、速度和方向的机械设备,在许多工业控制和自动化系统中广泛使用。
它通常由一个旋转部分和一个静止部分组成,旋转部分通过一系列脉冲信号将位置、方向和速度信息传输给控制系统。
编码器测速是其中一种常见的应用场景,通常用于掌握旋转部分的转速,从而实时控制机器的运行状态。
编码器测速的主要原理是通过检测编码器输出脉冲来计算旋转部分的速度。
编码器脉冲通信包括两个主要方面:脉冲频率和脉冲计数。
脉冲频率指的是编码器输出的脉冲数目,而单位时间内脉冲数目的变化就是编码器测量的速度。
脉冲计数指的是计算单位时间内脉冲数目,也就是用于计算速度的基础数据。
在使用编码器测速时,需要确定脉冲计数和单位时间的时间间隔,通常采用微秒或者毫秒为单位。
编码器测速可分为两种主要类型:增量式和绝对式。
增量式编码器是最常用的编码器类型之一,其原理是通过对每一次旋转的增量量进行计量,解码出速度和方向信息。
增量式编码器最大的特点是精度高,使用方便,但由于它基于计数和检测,因此需要进行定期检验并进行校准。
绝对式编码器则具有更高的准确度和精度,因为它可以确定在给定时间内旋转部分的位置,而不仅仅是速度和方向。
绝对式编码器通常包含多个单独的轨道(Track),每一个轨道上有一个独特的编码器序列,可以解析出每一个轨道的位置信息,从而确定旋转部分的位置。
除了基本的增量式和绝对式编码器外,还有一些高级编码器类型,例如线性编码器和旋转/线性编码器。
线性编码器可以用于测量直线移动的物体的位置和速度,其原理与旋转编码器类似。
旋转/线性编码器是一种可以用于同时测量转速和直线运动的编码器类型,其原理是将一个旋转式编码器放置在平移运动的轨道上,从而可以同时检测旋转和移动,并提供位置、速度和方向信息。
在使用编码器测速时,需要注意一些常见问题。
编码器信号的稳定性需要得到保证,可以采用较高的输出频率以提高测量精度。
编码器轴运动的摩擦、惯性和不明确的运动模式都可能对测量结果产生影响。
stm32编码器测速摘要:编码器是⼀种将⾓位移或者⾓速度转换成⼀串电数字脉冲的旋转式传感器。
编码器⼜分为光电编码器和霍尔编码器。
霍尔编码器是有霍尔码盘和霍尔元件组成。
霍尔码盘是在⼀定直径的圆板上等分的布置有不同的磁极。
霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若⼲脉冲信号,为判断转向,⼀般输出两组存在⼀定相位差的⽅波信号。
采集数据⽅式:第⼀种软件技术直接采⽤外部中断进⾏采集,根据AB相位差的不同可以判断正负。
第⼆种硬件技术直接使⽤定时器的编码器模式。
这⾥采⽤第⼆种。
也是⼤家常说的四倍频,提⾼测量精度的⽅法。
其实就是把AB相的上升沿和下降沿都采集⽽已,所以1变4。
⾃⼰使⽤外部中断⽅式实现就⽐较占⽤资源了,所以不建议使⽤。
速度计算⽅法:真实的物理转速:电机转动⼀圈的脉冲数:num1 单位:个单位时间:t 单位:秒单位时间内捕获的脉冲变化数:num2 单位:个(反应电机正反转)电机轮⼦半径:r 单位:m圆周率:pi 单位:⽆速度:speed 单位: mm/s因为半径⽤的是m为单位,速度为mm所以需要乘以1000。
代码:(使⽤TIM2和TIM4两个定时器来测两个轮⼦的速度)将编码器AB相使⽤的引脚设置成定时器的编码器模式,我们根据TIMx->CNT寄存器数据的变化,计算出单位时间内,脉冲的变化值。
然后在定时器中断服务函数中进⾏速度计算。
#include "encoder.h"/**************************************************************************函数功能:把TIM2初始化为编码器接⼝模式⼊⼝参数:⽆返回值:⽆**************************************************************************/void Encoder_Init_TIM2(void){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //使能定时器2的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端⼝时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //端⼝配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输⼊GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOATIM_TimeBaseStructInit(&TIM_TimeBaseStructure);TIM_TimeBaseStructure.TIM_Prescaler = 0x0; //预分频器TIM_TimeBaseStructure.TIM_Period = ENCODER_TIM_PERIOD; //设定计数器⾃动重装值TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //选择时钟分频:不分频TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM向上计数TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使⽤编码器模式3TIM_ICStructInit(&TIM_ICInitStructure);TIM_ICInitStructure.TIM_ICFilter = 10;TIM_ICInit(TIM2, &TIM_ICInitStructure);TIM_ClearFlag(TIM2, TIM_FLAG_Update); //清除TIM的更新标志位TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//Reset counterTIM_SetCounter(TIM2,0);//===============================================TIM2->CNT = 0x7fff;//===============================================TIM_Cmd(TIM2, ENABLE);}/**************************************************************************函数功能:把TIM4初始化为编码器接⼝模式⼊⼝参数:⽆返回值:⽆**************************************************************************/void Encoder_Init_TIM4(void){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); //使能定时器4的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能PB端⼝时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; //端⼝配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输⼊GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOBTIM_TimeBaseStructInit(&TIM_TimeBaseStructure);TIM_TimeBaseStructure.TIM_Prescaler = 0x0; // 预分频器TIM_TimeBaseStructure.TIM_Period = ENCODER_TIM_PERIOD; //设定计数器⾃动重装值TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //选择时钟分频:不分频TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM向上计数TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使⽤编码器模式3 TIM_ICStructInit(&TIM_ICInitStructure);TIM_ICInitStructure.TIM_ICFilter = 10;TIM_ICInit(TIM4, &TIM_ICInitStructure);TIM_ClearFlag(TIM4, TIM_FLAG_Update); //清除TIM的更新标志位TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);//Reset counterTIM_SetCounter(TIM4,0);//===============================================TIM4->CNT = 0x7fff;//===============================================TIM_Cmd(TIM4, ENABLE);}/**************************************************************************函数功能:读取编码器脉冲差值,读取单位时间内的脉冲变化值⼊⼝参数:TIM_TypeDef * TIMx返回值:⽆**************************************************************************/s16 getTIMx_DetaCnt(TIM_TypeDef * TIMx){s16 cnt;cnt = TIMx->CNT-0x7fff;TIMx->CNT = 0x7fff;return cnt;}/**************************************************************************函数功能:计算左右轮速⼊⼝参数:int *leftSpeed,int *rightSpeed返回值:⽆//计算左右车轮线速度,正向速度为正值,反向速度为负值,速度为乘以1000之后的速度 mm/s//⼀定时间内的编码器变化值*转化率(转化为直线上的距离m)*200s(5ms计算⼀次)得到 m/s *1000转化为int数据⼀圈的脉冲数:左:1560右:1560轮⼦半径:0.03m轮⼦周长:2*pi*r⼀个脉冲的距离:左:0.000120830m右:0.000120830m速度分辨率:左: 0.0240m/s右: 0.0240m/s200 5ms的倒数1000 扩⼤分辨率**************************************************************************/void Get_Motor_Speed(int *leftSpeed,int *rightSpeed){//5ms测速 5ms即这⾥说的单位时间*leftSpeed = getTIMx_DetaCnt(TIM4)*1000*200*0.000120830;*rightSpeed = getTIMx_DetaCnt(TIM2)*1000*200*0.000120830;}main.c#include "sys.h"//====================⾃⼰加⼊的头⽂件===============================#include "delay.h"#include "led.h"#include "encoder.h"#include "usart3.h"#include "timer.h"#include <stdio.h>//===================================================================int leftSpeedNow =0;int rightSpeedNow =0;int main(void){GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//禁⽤JTAG 启⽤ SWDMY_NVIC_PriorityGroupConfig(2); //=====设置中断分组delay_init(); //=====延时函数初始化LED_Init(); //=====LED初始化程序灯usart3_init(9600); //=====串⼝3初始化蓝⽛发送调试信息Encoder_Init_TIM2(); //=====初始化编码器1接⼝Encoder_Init_TIM4(); //=====初始化编码器2接⼝TIM3_Int_Init(50-1,7200-1); //=====定时器初始化 5ms⼀次中断while(1){printf("L=%d,R=%d\r\n",leftSpeedNow,rightSpeedNow);delay_ms(15);}}//5ms 定时器中断服务函数void TIM3_IRQHandler(void) //TIM3中断{if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发⽣与否:TIM 中断源 {TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除TIMx的中断待处理位:TIM 中断源Get_Motor_Speed(&leftSpeedNow,&rightSpeedNow);Led_Flash(100);}}。
编码器测速原理编码器是一种用于测量旋转运动或线性位移的装置,它能够将运动转换为电信号输出,常用于测速、位置和角度测量。
在工业自动化控制系统中,编码器起着至关重要的作用,因此了解编码器的测速原理对于工程技术人员来说至关重要。
编码器测速原理主要是通过测量物体运动时的脉冲信号来实现的。
编码器通常由光电传感器和编码盘两部分组成,光电传感器用于接收编码盘上的光信号,编码盘则是一个具有特定结构的圆盘,上面刻有一系列的光栅或磁性标记。
当物体运动时,编码盘上的光栅或磁性标记会随之旋转,光电传感器会将这些变化转换为电信号输出。
在编码器中,常用的测速原理有两种,一种是增量式编码器,另一种是绝对式编码器。
增量式编码器通过检测编码盘上的光栅或磁性标记的变化来产生脉冲信号,这些脉冲信号的数量与物体运动的速度成正比。
当物体运动时,光栅或磁性标记会随之旋转,光电传感器会产生一系列脉冲信号,通过计算脉冲信号的频率和时间间隔,就可以得到物体的速度。
而绝对式编码器则是通过编码盘上的光栅或磁性标记的排列位置来确定物体的位置和角度,它可以直接输出物体的位置信息,无需进行脉冲信号的计算。
绝对式编码器通常具有更高的精度和稳定性,适用于对位置和角度要求较高的场合。
除了增量式和绝对式编码器,还有一种常用的编码器测速原理是霍尔编码器。
霍尔编码器通过检测编码盘上的磁性标记来产生脉冲信号,它具有结构简单、成本低廉的特点,适用于一些简单的测速场合。
总的来说,编码器测速原理是通过测量物体运动时的脉冲信号来实现的,不同类型的编码器有着不同的工作原理和适用场合。
工程技术人员在选择和应用编码器时,需要根据实际需求和测量精度来选择合适的编码器类型,以确保系统的稳定性和精度。
对编码器测速原理的深入了解,有助于工程技术人员在工程实践中更好地应用编码器,提高系统的性能和可靠性。
编码器工作原理篇一:编码器工作原理编码器工作原理,光电编码器的工作原理分析作者:佚名来源:发布时间:20XX-3-815:18:00[收藏][评论]编码器工作原理,光电编码器的工作原理分析编码器工作原理绝对脉冲编码器:Apc增量脉冲编码器:spc两者一般都应用于速度控制或位置控制系统的检测元件.旋转编码器是用来测量转速的装置。
它分为单路输出和双路输出两种。
技术参数主要有每转脉冲数(几十个到几千个都有),和供电电压等。
单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。
增量型编码器与绝对型编码器的区分编码器如以信号原理来分,有增量型编码器,绝对型编码器。
增量型编码器(旋转型)工作原理:由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、b、c、D,每个正弦波相差90度相位差(相对于一个周波为360度),将c、D信号反向,叠加在A、b两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。
由于A、b两相相差90度,可通过比较A相在前还是b相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。
编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。
分辨率—编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。
信号输出:信号输出有正弦波(电流或电压),方波(TTL、hTL),集电极开路(pnp、npn),推拉式多种形式,其中TTL为长线差分驱动(对称A,A-;b,b-;Z,Z-),hTL也称推拉式、推挽式输出,编码器的信号接收设备接口应与编码器对应。
编码器工作原理及作用工作原理德国siko编码器由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。
由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。
编码器码盘的材料有玻璃、金属、塑料,玻璃码盘是在玻璃上沉积很薄的刻线,其热稳定性好,精度高,金属码盘直接以通和不通刻线,不易碎,但由于金属有一定的厚度,精度就有限制,其热稳定性就要比玻璃的差一个数量级,塑料码盘是经济型的,其成本低,但精度、热稳定性、寿命均要差一些。
分辨率—编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。
作用它是一种将旋转位移转换成一串数字脉冲信号的旋转式传感器,这些脉冲能用来控制角位移,如果编码器与齿轮条或螺旋丝杠结合在一起,也可用于测量直线位移。
编码器产生电信号后由数控制置CNC、可编程逻辑控制器PLC、控制系统等来处理。
这些传感器主要应用在下列方面:机床、材料加工、电动机反馈系统以及测量和控制设备。
在ELTRA编码器中角位移的转换采用了光电扫描原理。
读数系统是基于径向分度盘的旋转,该分度由交替的透光窗口和不透光窗口构成的。
此系统全部用一个红外光源垂直照射,这样光就把盘子上的图像投射到接收器表面上,该接收器覆盖着一层光栅,称为准直仪,它具有和光盘相同的窗口。
接收器的工作是感受光盘转动所产生的光变化,然后将光变化转换成相应的电变化。
一般地,旋转编码器也能得到一个速度信号,这个信号要反馈给变频器,从而调节变频器的输出数据。
故障现象:1、旋转编码器坏(无输出)时,变频器不能正常工作,变得运行速度很慢,而且一会儿变频器保护,显示“PG断开”。