微机原理-无刷直流风扇调速与测速分析

合集下载

无刷直流电机调速系统的控制原理

无刷直流电机调速系统的控制原理

无刷直流电机调速系统的控制原理下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

此文下载后可定制随意修改,请根据实际需要进行相应的调整和使用。

并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Downloaded tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The documents can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!无刷直流电机调速系统是一种能够实现精准控制电机转速的技术,它在工业生产和生活中有着广泛的应用。

微机原理无刷DC风机调速及测速.doc

微机原理无刷DC风机调速及测速.doc

微机原理无刷DC风机调速及测速理工学院微机原理(三级)项目报告名称:微机原理课程设计项目名称:无刷DC风扇速度调节和速度测量讲师;█ █部门:机电专业:机械设计、制造和自动化团队成员的信息科学数量;姓氏:王█ █团队成员信息编号:姓氏:郭█ █完成时间:结果从XXXX 12月1日到XXXX 1月3日:审阅者:目录一、学习目标 (1)第二,该项目要求 (1)第三,速度测量和调节系统的硬件构成 (1)四、程序流程图和解释思路 (3)五、风机转速与占空比的关系表及曲线 (4)六、设计过程 (5)七、设计问题分析 (12)八.计划摘要 (13)一、学习目标本系统作业的目的是:(1)通过脉宽调节改变无刷直流风扇的转速;(2)通过风扇旋转时产生的脉冲信号测量并显示风扇的转速;(3)将每个风扇组从某一转速(600转/分)到另一转速(XXXX 12月1日至XXXX 1月3日)的结果进行比较:审阅者:目录一、学习目标 (1)第二,该项目要求 (1)第三,速度测量和调节系统的硬件构成 (1)四、程序流程图和解释思路 (3)五、风机转速与占空比的关系表及曲线 (4)六、设计过程 (5)七、设计问题分析 (12)八.计划摘要 (13)一、学习目标本系统作业的目的是:(1)通过脉宽调节改变无刷直流风扇的转速;(2)通过风扇旋转时产生的脉冲信号测量并显示风扇的转速;(3)比较每组风扇从某一速度(600转/分)稳定运行到另一速度(2000转/分)所需的时间。

通过比较测试结果的估计结果并讨论产生差异的主要原因,学生可以展示他们对无刷直流风扇数学模型建立和调整方法的局限性的深入理解。

二.项目要求检查项目要求速度显示风扇速度可在发光二极管上显示,速度单位为r/min,刷新周期约为1秒,风扇速度可调节,风扇速度可在700时改变:根据要求接线:黄线连接到Vcc,黑线接地,绿线连接到P3 ,蓝线连接到P2 .输出:输出,如下图所示Iv .画一个程序流程图并解释程序思想。

直流无刷电机是如何实现调速的?

直流无刷电机是如何实现调速的?

直流无刷电机是如何实现调速的?
【导读】直流无刷电机是如何实现调速的?这个问题机电公司每隔几天都会遇到,是对无刷电机有使用需求的潜在客户来电咨询的常见问题,所以很有必要为大家讲解一下这方面的知识。

直流无刷电机没有电刷磨损,维护相对简单,较有刷可靠,但需加装驱动(换向)电路。

直流无刷电机的调速方式第一种情况是:主要靠电压来控制,力矩主要由电流来控制,一般会带一个配套的电机驱动器,改变驱动器的输出电压就可以控制电机的速度,如果没有驱动器,想自己直接控制电机的话,需要看电机的功率和工作电流。

如果是小功率的电机可以用电阻调速(不建议使用,方法很简单,串联个电位器即可,不过这种方式会降低效率,所以不提倡),大功率的电机不能使用电阻调速,因为这样需要一个小阻值大功率的电阻(电机工作阻值很小),这种电阻不好找而且这种方案效率太低,最好还是找个配套的驱动器。

直流无刷电机的第二种调速方式:PWM调速,直流电机的PWM调速原理与交流电机调速原理不同,它不是通过调频方式去调节电机的转速,而是通过调节驱动电压脉冲宽度的方式,并与电路中一些相应的储能元件配合,改变了输送到电枢电压的幅值,从而达到改变直流电机转速的目的。

它的调制方式是调幅。

PWM控制有两种方式:
1.使用PWM信号,控制三极管的导通时间,导通的时间越长,那么做功的时间越长,电机的转速就越高
2.使用PWM控制信号控制三极管导通时间,改变控制电压高低来实现
直流有刷电机的优点在于启动力矩大,调速系统结构简单,价格低廉,然而缺点也有很多如噪音大,容易损坏,要换碳刷,所以逐步被直流无刷电机所取代。

微机原理大作业-测量电风扇转速的方案

微机原理大作业-测量电风扇转速的方案

测量电风扇转速的方案0 引言电风扇是每家每户都会有的一个电器,在空调尚未普及之前,炎炎夏日人们能在风扇面前吹着风就已经是很好的享受了。

但是不知道大家有没有想过,我们常见常用的风扇叶片的转速究竟是多少呢。

接下来我们便来探讨测量电风扇转速的一种方法。

1 可行性研究1.1 背景风扇转速是指风扇扇叶每分钟旋转的次数,单位是rpm。

风扇转速由电机内线圈的匝数、工作电压、风扇扇叶的数量、倾角、高度、直径和轴承系统共同决定。

在风扇结构固定的情况下,直流风扇(即使用直流电的风扇)的转速随工作电压的变化而同步变化。

风扇的转速可以通过内部的转速信号进行测量,也可以通过外部进行测量(外部测量是用其他仪器看风扇转的有多快,内部测量则直接可以到BIOS里看,也可以通过软件看。

内部测量相对来说误差大一些)。

风扇转速与散热能力并没有直接的关系,风量是决定散热能力的根本条件,更高的风扇转速会带来更高的噪声,选购散热器产品时如果风量差不多,可以选择转速低的风扇,在使用时会安静一些。

1.2 应用现状/对比案例查阅资料可知,在其他的转速测量方法中,有一些采用了内部测量转速的方法需要采集的电子参数过多,电路逻辑分析也过于复杂(如图1、图2),故在电风扇转速的测量中,我们应尽量选用外部测量的方法,这样可以简化操作并有效减小误差。

图1其他方案转速采集电路仿真图2其他方案控制系统示意图1.3 效益分析本方案中所选取的单片机、传感器均为常见且易得的器件,在花费上可以有效节省费用。

2 总体方案/初步设计2.1 方案总述针对在工程实践中很多场合都需要对转速这一参数进行精准测量的目的,采用以STC89C51芯片为核心,结合转动系统、光电传感器、显示模块等构成光电传感器转速测量系统,实现对电风扇转速的测量。

通过测试表明该系统具有结构简单、所耗成本低,测量精度高、稳定可靠等优点,具有广阔的应用前景。

2.2 总体方案系统总体结构如图3所示,主要包含以单片机为核心的主控电路、以传感器为主的信息采集处理单元、转动系统、显示模块等。

无刷直流电动机调速知识讲解

无刷直流电动机调速知识讲解
无刷直流电动机调速
9.1 同步电动机变压变频调速系统的特点及基本类型
同步电动机的定子与三相异步电动机的一样,而转子是磁极,由 直流励磁或永久磁铁励磁,是交流电动机中两大机种之一。同步 电动机因其转速n与供电电源频率f1之间保持严格的同步关系而得 名。只要供电电源的频率f1不变,其转速n就绝对不变。 同步电动机的应用范围也比较广泛,小到电子钟和记录仪表的定 时旋转机构,大到发电机组、空气压缩机、鼓风机等无不利用其 转速恒定的特点。
上述逆变器为1200通电型的六拍逆变器,每一时刻都只有两只功率 管导通,至于哪两只功率管导通则由转子位置检测器发出的信号 来控制。
10
二、控制方式 按照三相星型桥式接法为例说明其工作方法:
1
3
5
A
4
6
2
B C
逆变器为桥式接法、三相绕组为星型接法
1、两两导通方式 逆变器中功率管导通的顺序一般安排为: ..V 1 . .V 2 . .V 3 V 4 V 5 V 6 V 1 ..... 各触发脉冲相互间隔600,任意时刻有2只功率管导通,每只管子导通 时间为1200,各管子之间换流是在相邻桥臂中进行的。
性或容性三种状态下(同步补偿机就工作在容性状态下)。可调节转子
励磁电流改变输入功率因数,使其在 cos 1下运行。
异步电动机靠加大转差率提高转矩,同步电动机靠加大功率角来提高转 矩。(功率角为定子相电流与感应电动势的夹角)。
4
例如,同步电动机的变频启动,转子先加励磁电流,定子绕组输入频率很 低的三相交流电,由于定子(电枢)旋转磁通势的转速很低,可带动转子 开始旋转。将定子频率逐步增加,转子转速随之逐步升高,到达额定转速 时,启动过程结束。
2
1
iAC A

直流无刷风扇原理

直流无刷风扇原理

直流无刷风扇原理
直流无刷风扇是一种利用无刷直流马达驱动的风扇设备。

它采用了与传统电动机不同的工作原理,使得风扇具有更高的效率和更低的噪音。

直流无刷风扇的工作原理是基于电磁感应和电流控制的。

风扇的转子上有多个永磁体,而定子上有多个电磁线圈。

当通电时,定子的电磁线圈会产生一个旋转磁场,与转子上的永磁体相互作用,使得转子开始旋转。

为了控制转子的旋转速度,控制器根据风扇的使用需求来调节定子线圈通电的方式。

通过改变通电时序和大小,控制器可以实现转子的高效率转动。

这样一来,直流无刷风扇可以根据需要调节风速,减小能耗,降低噪音和延长使用寿命。

与传统风扇相比,直流无刷风扇有许多优势。

首先,它们能够提供更大的风力输出,因为无刷直流马达的转速可以更高。

其次,直流无刷风扇的噪音水平更低,这是由于其马达设计和电流控制技术的改进。

再次,直流无刷风扇的功耗较低,使其在能源效率上比传统风扇更具优势。

由于直流无刷风扇具有高效、低噪音和低功耗的特点,它们在各种领域中得到了广泛应用。

例如,在电脑机箱、散热器和空调设备中,直流无刷风扇可以有效降温。

此外,直流无刷风扇还被广泛应用于汽车、电子设备和家用电器等领域。

总结起来,直流无刷风扇利用电磁感应和电流控制的原理实现
高效、低噪音和低功耗的风力输出。

它们在各种应用场景中具有广泛的应用前景和市场需求。

直流无刷电机调速原理

直流无刷电机调速原理

直流无刷电机调速原理直流无刷电机是一种新型的电动机,它具有高效率、低噪音、低振动、长寿命等优点,因此被广泛应用于各种电动设备中。

在实际应用中,直流无刷电机需要根据实际需求进行调速,以满足不同的工作要求。

本文将介绍直流无刷电机的调速原理及其实现方法。

一、直流无刷电机的基本原理直流无刷电机是一种基于电子换向技术的电动机,它的转子上没有传统的电刷和集电环,而是采用永磁体或电磁铁作为转子,靠电子器件对电机的转子进行换向控制。

直流无刷电机的转子和定子之间通过磁场相互作用产生电磁转矩,从而实现电机的转动。

直流无刷电机的工作原理可以分为两个阶段:电子换向和电磁转矩产生。

在电子换向阶段,电机控制器通过检测转子位置信号,控制电子器件对电机的相序进行调整,从而使得电机的磁场方向与转子位置相匹配,实现电子换向。

在电磁转矩产生阶段,电机的转子和定子之间产生的磁场相互作用产生电磁转矩,从而推动电机的转动。

二、直流无刷电机的调速原理直流无刷电机的调速原理主要是通过改变电机的电压和电流来改变电机的转速。

在实际应用中,直流无刷电机的调速方式主要有以下几种:1. 电压调速电压调速是最简单的调速方式,它通过改变电机的电压来改变电机的转速。

当电机的电压降低时,电机的转速也会降低。

因此,通过控制电机的电压,可以实现电机的调速。

电压调速的缺点是效率低,因为电机的功率不变,但电压下降会导致电机的电流增加,从而产生大量的损耗。

2. 电流调速电流调速是通过改变电机的电流来改变电机的转速。

当电机的电流增加时,电机的转速也会增加。

因此,通过控制电机的电流,可以实现电机的调速。

电流调速的优点是效率高,因为电机的功率不变,但电流增加不会产生大量的损耗。

但是,电流调速需要较为复杂的电路控制,因此成本较高。

3. PWM调速PWM调速是一种基于脉冲宽度调制技术的调速方式,它通过改变电机的脉冲宽度来改变电机的平均电压和电流,从而实现电机的调速。

当脉冲宽度增加时,电机的平均电压和电流也会增加,从而实现电机的加速。

基于单片机的无刷直流风扇转速测量与调节

基于单片机的无刷直流风扇转速测量与调节

基于单片机的无刷直流风扇转速测量与调节——09ME-LLQ测量风扇型号:品牌:台达,型号:AFB0712HHB东流电子HOT 51系列单片机学习板数码管显示芯片:74HC573 74HC138使用C语言编程一、项目开发流程:流程图开始中断产生PWM波计算风扇产生脉冲数码管显示理论值和实际值串口通信输入转速输出对应占空比的PWM波控制转速二、源程序#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define ulong unsigned longuchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //不带小数点数字uchar code LED_W[8] = {0,1,2,3,4,5,6,7}; //亮数码管位sbit d1=P1^0;ulong number;uint num,tta,ttc,bb,cc,pm;uchar i=0;void Delay(uint i) //用于显示数码管,软件廷时1ms{uchar x,j;for(j=0;j<i;j++)for(x=0;x<=148;x++);}void display(num) //显示程序{P0 = table[num/1000]; //显示转速测量值if((num/1000)!=0){P2 = LED_W[4];}Delay(1);P0 = table[(num/100)%10];P2 = LED_W[5];Delay(1);P0 = table[(num/10)%10];P2 = LED_W[6];Delay(1);P0 = table[num%10];P2 = LED_W[7];Delay(1);P0 = table[bb/1000]; //显示转速目标值if((bb/1000)!=0){ P2 = LED_W[0]; }Delay(1);P0 = table[(bb/100)%10];P2 = LED_W[1];Delay(1);P0 = table[(bb/10)%10];P2 = LED_W[2];Delay(1);P0 = table[bb%10];P2 = LED_W[3];Delay(1);}void Init(void) //程序初始化{EA=0;tta=0;num=0;bb=600;number=0;pm=800;TMOD = 0x26; //T0计数模式3,T1定时模式3 PCON = 0x00;SCON = 0x50;TH0=0xff; //计数器T0,一个脉冲溢出TL0=0xff;TH1 = 0xFd; //设置串口波特率9600TL1 = 0xFd;RCAP2H=(65536-50)/256; //定时器T2,定时0.5msRCAP2L=(65536-50)%256;ET0=1; //开T0、T1、T2中断允许ET2=1;TR0=1;TR1=1;TR2=1; //启动定时器1ES=1; //开串口中断EA=1; //开总中断}void pwm(bb) //调速程序{if(bb>=2100) pm=1910;else if(bb>=2000) pm=1835;else if(bb>=1900) pm=1650;else if(bb>=1800) pm=1500;else if(bb>=1700) pm=1370;else if(bb>=1600) pm=1240;else if(bb>=1500) pm=1150;else if(bb>=1400) pm=1110;else if(bb>=1300) pm=1030;else if(bb>=1200) pm=990;else if(bb>=1100) pm=905;else if(bb>=1000) pm=845;else if(bb>=900) pm=770;else if(bb>=800) pm=718;else if(bb>=700) pm=655;else if(bb>=600) pm=620;else if(bb>=500) pm=575;else if(bb>=400) pm=535;else if(bb>=300) pm=500;}void Main(void) //主函数{Init();while(1){if(num<bb-12) //速度微调pm=pm+1;else if(num>bb+12)pm=pm-1;elsepm=pm;display(num);}}void exter1() interrupt 1 using 1 // 定时器T0,P3.4接口计数方式{i++;number=number+tta;tta=0;if(i==3) //测量三次求平均值,减小转速波动{i=0;num=1800000/number;number=0;}}/* void Timer1 (void) interrupt 4 using 2 //T1,串口接收十六进制格式发送的目标转速{static uchar i=1; //定义为静态变量,当重新进入这个子函数时i的值不会发生改变EA = 0;if(RI == 1) //当硬件接收到一个数据时,RI会置位{if(i==1){cc=SBUF;RI=0;EA=1;}if(i==0){cc=cc*256+SBUF;RI=0;EA=1;i=2;bb=cc;cc=0;}i--;}pwm(bb);} */void Timer1 (void) interrupt 4 using 2 //T1,串口接收字符格式发送的目标转速{static uchar i=3; //定义为静态变量,当重新进入这个子函数时i的值不会发生改变EA = 0;if(RI == 1) //当硬件接收到一个数据时,RI会置位{if(i==3){cc=(SBUF-48);RI=0;EA=1;}if(i==2){cc=cc*10+(SBUF-48);RI=0;EA=1;}if(i==1){cc=cc*10+(SBUF-48);RI=0;EA=1;}if(i==0){cc=cc*10+(SBUF-48);RI=0;EA=1;i=4;bb=cc;cc=0;}i--;}pwm(bb);}void timer2() interrupt 5 using 3 //定时器T2,0.5ms中断产生PWM方波{static uchar i=0;TF2=0;i++;tta++;ttc++;if(ttc>=pm) //占空比0.22以下,风扇不转{d1=0;if(ttc==2000) //PWM波周期为100ms,周期越小,转速越稳定{d1=1;ttc=0;}}}。

微机原理-无刷直流风扇调速与测速分析

微机原理-无刷直流风扇调速与测速分析

████工学院微机原理(3级)项目报告项目名称:微机原理课程设计项目题目:无刷直流风扇调速与测速指导教师:███系别:机电系专业:机械设计制造及其自动化组员信息学号:姓名:王██组员信息学号:姓名:郭██完成时间:2014 年12 月01日至2016 年 1 月 3 日成绩: 评阅人:目录一、学习目标....................................................(1)二、项目要求....................................................(1)三、转速测量和调节系统的硬件构成................................(1)四、程序流程图并说明方案思路....................................(3)五、风扇转速与占空比之间的关系表格和曲线..................... (4)六、设计程序....................................................(5)七、分析设计过程出现的问题......................................(12)八、方案总结................................................. (13)一、学习目标本次系统作业的目的在于:①ﻩ通过脉冲宽度调节实现无刷直流风扇转速的改变;②借助风扇转动时产生的脉冲信号,测量风扇的转速并显示;③ﻩ比较每组风扇从某一转速(600r/min)到另一转速(2000r/min)稳定运转的所需要的时间。

通过比较试验结果的估算结果并讨论结果差异的主要原因,让学生展示对无刷直流风扇数学模型建立和调节方法局限性有深入理解。

二、项目要求检查项目要求转速显示风扇转速能够显示在LED上,转速单位是r/min,刷新周期为1秒钟左右风扇转速可调风扇转速可以改变,根据要求转速在700-1400r/min风扇转速与显示通过简单方法给风扇加负载,随着转速的下降应该看到转速变化的显示转速指令输入环节通过串口或键盘输入给定转速给定某一转速,1200-1500之间,看显示转速的稳定性转速调节功能在稳定转动条件下1500r/min,在30cm处加载一个外加一个风扇,对照加载前后的稳态转速回答问题随机提出有关转速测量、PWM输出和转速控制方面的问题,要有针对性,检查设计过程中的付出。

无刷直流电机工作原理及PWM调速

无刷直流电机工作原理及PWM调速
永磁材料的去磁曲线表示永
磁材料被完全磁化后无外励
磁时的 B—H关系。
华北电力大学 电机教研室
《电机学》
§25-1永磁材料及其特性参数

永磁材料分类 常用的永磁材料有铝镍钴(AlniCo)、钡铁氧体 (Ba-Ferrite)和锶铁氧体(Sr-Ferrite)、钐钴 (SmCo 2∶17 型和SmCo 1∶5 型)和钕铁硼 (NdFeB),这是按发明的先后顺序排列的; 若按年产吨位排列则为:铁氧体、钕铁硼、铝镍 钴、钐钴;若按销售额排列则为:铁氧体和钕铁 硼并列第一,然后是钐钴、铝镍钴。

无刷直流电机的构成
无刷直流电机包括:直流电源,永磁电机,电子换向 电路(逆变器),转子位置检测,电流换向控制。
华北电力大学 电机教研室
《电机学》
§25-2 无刷直流电机的工作原理

永磁电机
表面磁钢结构的永磁电机
内永磁结构的永磁电机
分数槽绕组的永磁电机
华北电力大学 电机教研室
《电机学》
§25-2 无刷直流电机的工作原理
华北电力大学电机教研室电机学无刷直流电机的pwm调速252无刷直流电机的工作原理pwmon模式调制方法示意图华北电力大学电机教研室电机学无刷直流电机的pwm调速252无刷直流电机的工作原理onpwm模式调制方法示意图华北电力大学电机教研室电机学无刷直流电机的pwm调速252无刷直流电机的工作原理pwmonpwm模式调制方法示意图华北电力大学电机教研室电机学无刷直流电机的pwm调速252无刷直流电机的工作原理通过调整pwm的占空比调节加在电机绕组上的电压的大小可以实现像直流电机一样调速性能
华北电力大学 电机教研室
《电机学》
§25-2 无刷直流电机的工作原理

直流风机调速原理

直流风机调速原理

直流风机调速原理今天咱们来唠唠直流风机调速的原理,这可挺有趣的呢。

咱先得知道直流风机是咋工作的。

直流风机里面有个直流电机,这就像是它的心脏一样。

直流电机呢,靠直流电来驱动。

你想啊,电就像小魔法,一进入电机,电机就开始欢快地转动起来,然后带动风机的叶片呼呼地转,风就这么产生啦。

那调速是咋回事呢?这就像是给风机的转动速度踩刹车或者踩油门一样。

直流风机调速的一个常见方法就是改变电压。

你可以把电压想象成推动电机转动的力量大小。

电压高的时候呢,就像有人在后面大力地推着电机跑,电机就转得飞快,风机的叶片也就跟着快速地转起来,风就呼呼地特别猛。

相反,要是电压低了,就好像推的力量变小了,电机就慢悠悠地转,风机的风也就变得轻柔了。

还有一种办法是改变电机的磁场。

电机里面的磁场就像一个神秘的小世界,磁场强的时候,电机就像被紧紧拉住的小马车,跑起来就快。

要是磁场弱了呢,电机就没那么大的束缚啦,转起来的速度也就不一样了。

这就好比是磁场在和电压一起玩拔河比赛,它们俩谁的力量大一点或者小一点,都会影响电机的转速,进而影响风机的风速。

咱再说说这个脉宽调制(PWM)调速。

这名字听起来是不是有点高大上?其实原理也不难懂啦。

就好比是给电机送电的时候,不是一股脑地一直给,而是像开关灯一样,快速地开开关关。

如果开的时间长,关的时间短,电机得到的电就多,就转得快;要是开的时间短,关的时间长呢,电机得到的电就少,转得就慢。

这就像是在给电机送电的时候玩一个小把戏,通过巧妙地控制这个开和关的时间比例,就能让风机的速度乖乖听话啦。

直流风机调速的原理其实也不是特别复杂,就像是我们生活中的一些小窍门一样。

你看,通过调整电压、磁场或者玩脉宽调制这个小把戏,我们就能让直流风机按照我们想要的速度来转动,吹出我们想要的风。

不管是让我们在炎热的夏天享受凉爽的强风,还是在稍微有点热的时候感受轻柔的微风,都是靠这些原理来实现的呢。

而且啊,直流风机调速还有很多好处呢。

无刷直流电机测速原理

无刷直流电机测速原理

无刷直流电机测速原理无刷直流电机是一种常见的电机类型,其具有高效率、高功率密度、低噪音等优点,因此被广泛应用于各种领域。

测速是无刷直流电机控制中非常重要的一部分,其原理如下:1. 电机测速原理无刷直流电机的转速可以通过检测电机内部的反电动势(back EMF)来实现。

当电机运转时,由于磁场变化引起线圈内部产生反向电势,这个反向电势随着转速的增加而增加。

因此,通过检测反向电势大小可以确定电机的转速。

2. 反向电势检测原理为了实现反向电势检测,需要在驱动无刷直流电机时采用PWM调制方式。

PWM调制方式是指通过改变占空比来控制输出信号的有效值。

在PWM调制方式下,输出信号会周期性地从高状态(+V)到低状态(-V),然后再回到高状态。

当输出信号处于高状态时,线圈中会产生磁通,并且随着时间的推移这个磁通会逐渐增加。

当输出信号从高状态变为低状态时,线圈内部产生的磁通会逐渐减少,同时也会产生反向电势。

反向电势的大小与线圈中的磁通变化率成正比。

3. 反向电势检测电路原理为了实现反向电势检测,需要在无刷直流电机驱动电路中添加一个反向电势检测电路。

该电路包括一个比较器和一个滤波器。

比较器用于将反向电势信号与参考信号进行比较。

参考信号可以是一个固定的阈值,也可以是由微控制器生成的一个可变参考信号。

滤波器用于去除噪声和干扰,以保证检测到的反向电势信号稳定可靠。

常用的滤波器包括低通滤波器和带通滤波器等。

4. 反向电势测速方法通过上述原理和方法,可以实现无刷直流电机的反向电势测速。

具体步骤如下:(1)将PWM调制方式应用到无刷直流电机驱动中;(2)通过比较器将反向电势信号与参考信号进行比较;(3)通过滤波器去除噪声和干扰;(4)根据反向电势信号的大小计算出电机转速。

总之,无刷直流电机测速原理是基于反向电势检测的,通过比较器和滤波器等电路将反向电势信号转换为可靠的转速信号。

这种方法简单、可靠,广泛应用于各种无刷直流电机控制系统中。

直流无刷电机调速原理

直流无刷电机调速原理

直流无刷电机调速原理直流无刷电机调速原理直流无刷电机是一种通过电力信号控制电流方向、大小和时间,实现转子运转的一种电机。

它具有高效率、低噪音、长寿命、可靠性强等特点,在家电、电动工具、机器人、电动车辆等众多领域得到广泛应用。

而对于无刷电机调速,是实现无刷电机工作效率提高的关键。

无刷电机调速原理中,我们需要先了解电机转子的工作原理。

以磁铁为例,我们常常看到不同磁极的磁力互相吸引或排斥,这是因为磁铁有南北极的磁场。

而在直流无刷电机中,转子被镶嵌着若干个永磁体,形成了转子磁场。

定子则是一组固定的电线圈,通过电力信号使得其产生不断变化的磁场,与转子磁场相互作用,使转子旋转。

调速时,可以调整电源电压或控制电流大小,从而改变电机的转速。

但是,这种方法存在许多问题,如容易损坏电机、存在能量浪费等问题。

而直流无刷电机调速使用的则是PWM(Pulse Width Modulation)技术。

这是一种使得电压和电流断断续续的调节方法,其原理是在特定时间间隔内,让电压和电流交替进行开关,从而通过调整开关时间长度控制电机的电流大小和方向,使其转速发生变化。

通过调整PWM 信号的占空比(开空时间与一个周期时间的比值),可以控制电机的转速。

具体实现时,需要使用电机驱动电路进行PWM信号的产生和输出。

无刷电机调速的优点是精度高,能够实现稳定的恒速工作,能有效减少噪音和电机寿命损耗。

同时,在电机负载变化较大时,也能够保证电机的速度和扭矩稳定。

通过使用无刷电机调速,可以实现多种应用的要求,提高电机工作效率和稳定性,为人们的生产和生活带来便利。

无刷直流电动机调速算法的讨论

无刷直流电动机调速算法的讨论

无刷直流电动机调速算法的讨论首先是PID调速算法。

PID调速算法是最常用的调速算法之一、PID控制器根据误差信号、误差积分和误差变化率三者来控制输出。

PID控制的优点是调节简单、响应快速,但是在传统PID调速算法存在固有的缺陷,比如调节过程中可能出现超调现象,调节过程需要经验来调整参数,对调节对象参数变化敏感等。

因此,若要在无刷直流电动机的调速过程中应用PID算法,需要进行优化和改进。

其次是模糊控制调速算法。

模糊控制是一种基于经验规则的控制方法,可以针对不确定系统进行控制。

模糊控制调速算法可以解决传统PID算法中的一些问题,比如无需事先确定数学模型、处理非线性等。

模糊控制器的输出是模糊集合,通过模糊控制规则对输出进行映射。

然而,模糊控制器的设计需要依赖人工经验,对模糊规则的构建和系统的建模存在一定困难,也不易进行参数调节。

最后是变结构控制调速算法。

变结构控制是通过将控制对象划分为不同的状态,对每个状态进行不同的控制方式。

无刷直流电动机调速可以看作是有多个不同工作区间的连续状态控制过程,变结构控制算法恰好适用于这种场景。

变结构控制算法可以提供良好的鲁棒性和适应性,能够对参数变化和负载干扰进行自适应调节,且不依赖系统的数学模型。

但是变结构控制算法的实现较为复杂,需要对控制逻辑和各个区间参数进行设计和调整。

除了上述几种常用的调速算法外,还有一些其他的调速算法,如神经网络调速算法、模型预测控制调速算法等。

这些算法在实际应用中也有成效,但是对于无刷直流电动机的调速仍然存在一些问题,如计算量大、参数调整困难等。

总之,无刷直流电动机的调速算法是一个研究热点,不同的调速算法各有优缺点,适用于不同的应用场景。

在实际应用中,需要根据具体需求选择合适的调速算法,并通过优化和改进来使调速过程更加稳定、快速和准确。

同时,未来的研究方向可以探索新的调速算法和控制策略,提高调速性能和控制效果。

无刷电机 调速原理

无刷电机 调速原理

无刷电机调速原理无刷电机是目前应用最广泛的一类电机,其特点是高效、可靠、寿命长。

而无刷电机的调速原理则涉及了许多知识,包括无刷电机的构造、电子调速系统以及传感器的应用等等。

下面我将详细介绍无刷电机的调速原理。

无刷电机的构造无刷电机一般由转子、定子和控制系统组成。

转子上固定了一组永磁体,定子上的绕组通过控制系统产生磁场,从而感应出转子上的永磁体,并驱动转子旋转。

定子的绕组是通过与控制系统配合进行调速的。

电子调速系统在无刷电机的调速过程中,电子调速系统起着重要的作用。

它通过不同的方法,改变绕组中的磁场分布,从而改变电机的转速。

常用的方法有PWM调速、电流调速和电压调速等。

1.PWM调速:PWM调速是通过不断改变绕组电流的通断比例来实现的。

当绕组电流通断的频率很高时,电机产生的力矩就可以平均输出,从而控制电机的转速。

通过改变通断比例,可以实现不同的转速。

2.电流调速:电流调速通过改变绕组电流的大小来调整电机的转速。

电机的转速与载荷之间存在着一定的关系,当负载变化时,电机的转速也需要相应调整。

电流调速可以通过改变控制系统的输出电流来实现。

3.电压调速:电压调速是通过改变绕组电压的大小来调整电机的转速。

在电机的正常工作范围内,电压和转速有着一定的线性关系,可以通过改变电压的大小来调整电机的输出转速。

传感器的应用在无刷电机的调速过程中,传感器的应用也是很重要的。

传感器可以通过监测电机的转速和位置等参数,反馈给控制系统,从而实现对电机的精确控制。

1.霍尔传感器:霍尔传感器常用于检测电机的转子位置。

通过安装在定子上的霍尔传感器,可以实时监测到转子的位置,从而准确地控制电机的转速。

2.编码器:编码器常用于检测电机的转速。

编码器可以安装在电机的轴上,通过固定的脉冲信号来反映电机的转速,提供给控制系统进行调整。

总结无刷电机的调速原理涉及了无刷电机的构造、电子调速系统以及传感器的应用等多个方面。

通过改变绕组电流的通断比例、大小以及改变绕组电压的大小,可以实现对电机转速的调整。

基于单片机的无刷直流风扇转速测量与调节

基于单片机的无刷直流风扇转速测量与调节

微机原理三级项目项目设计说明书设计题目:基于单片机的无刷直流风扇转速测量与调节指导老师:项目成员:XX大学机电工程系xxxx年xx月xx日一、项目设计要求1、实现无刷直流电机转速的测量和控制。

2、给定转速指令:由PC发送转速值,经单片机控制器,使得电机达到并稳定在指定转速上。

二、硬件设备1、测量风扇型号:品牌:台达,型号:AFB0712HHB2、51系列单片机学习板3、PC三、方案设计1、硬件电路P1.1口接PWM波输入,P3.2口接测速脉冲输入USB提供+5V电源,可以实现PC机与开发板的数据通讯和程序下载。

数码管显示速度和占空比,按键控制转速和占空比。

风扇电路连接:1、输出信号----转速输出每转输出2个脉冲OC输出,如右图2、 OC输出的特点外加集电极电源和负载;输出幅值任意;3. 输入信号--- PWM输入2、程序流程图说明:程序应用模块化进行设计,主要有初始化模块、显示模块、测速模块和调速模块。

编程次序可按此先后进行。

(1)、初始化模块:T0工作方式、标志位状态、所用单元初值、中断设置以及初始显示等。

(2)、显示模块:显示风扇转速的实测值及其对应的PWM占空比。

(3)测速模块:测出2s内风扇的脉冲数,进而求出风扇每分钟的转速。

(4)调速模块:通过键盘按键对PWM波占空比的调节,来控制风扇转速的大小。

3. 占空比与转速关系:占空比0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 转速r/min 250 435 585 735 870 990 1140 1275 占空比0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00 转速r/min 1380 1485 1590 1710 1815 1920 1985 2010风扇转速低于250r/min时,由于电压过低,风扇停转,图表中只能测出占空比0.25以上的数据。

4、设计程序:#include<reg52.h>#define uchar unsigned char //0-255#define uint unsigned int //0-65535sbit dula=P2^6; //数码管段选sbit wela=P2^7; //数码管位选sbit P1_1=P1^1; //控制电机I/O口定义sbit P3_4=P3^4;sbit key_1=P3^1; //加速键sbit key_2=P3^3; //减速键sbit key_3=P3^5; //快加键sbit key_4=P3^6; //快减键sbit P1_6=P1^6; //占空比百位int ge,shi,bai,qian; //定义转速各位int m,n,num,PWM=200,PWMH=100;int zhuansu,PWMH_1,PWMH_2,PWMH_3; //转速uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示数据表/*=============延时函数==============*/ void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=50;y>0;y--);}/*=============数码管显示函数============*/ void display(){dula=1;P0=table[ge];dula=0;P0=0xff; //消隐wela=1; //显示转速个位P0=0xdf;wela=0;delay(3);dula=1;P0=table[shi];dula=0;P0=0xff; //消隐wela=1; //显示转速十位P0=0xef;wela=0;delay(3);dula=1;P0=table[bai];dula=0;P0=0xff; //消隐wela=1; //显示转速百位P0=0xf7;wela=0;delay(3);dula=1;P0=table[qian];dula=0;P0=0xff; //消隐wela=1; //显示转速千位P0=0xfb;wela=0;delay(3);dula=1;P0=table[PWMH_2];dula=0;P0=0xff; //消隐wela=1; //显示占空比十位P0=0xfe;wela=0;delay(3);dula=1;P0=table[PWMH_3];dula=0;P0=0xff; //消隐wela=1; //显示占空比个位P0=0xfd;wela=0;delay(3);}/*=========定时器0 PWM输出,调节转速========*/ //初始化,每次一溢出时间500usvoid csh(){TMOD=0x01;TH0=(65536-461)/256;TL0=(65536-461)%256;IT0=1;//下降沿EA=1;EX0=1;//打开外部中断0ET0=1;}//键盘扫描部分void keyscan(){if(key_1==0){delay(3); //延时祛去抖if(key_1==0){PWMH++;if(PWMH>=PWM)PWMH=PWM;while(!key_1); //等待按键释放}}if(key_2==0){delay(3);if(key_2==0){PWMH--;if(PWMH<=0)PWMH=0;while(!key_2); //等待按键释放}}if(key_3==0){delay(3); //延时祛去抖if(key_3==0){PWMH=PWMH+10;if(PWMH>=PWM)PWMH=PWM;while(!key_3); //等待按键释放}}if(key_4==0){delay(3);if(key_4==0){PWMH=PWMH-10;if(PWMH<=0)PWMH=0;while(!key_4); //等待按键释放}}}/*===========测量转速,利用外部中断INT0和定时器T0,每2s计算一次======*///定时器0中断部分void T0_time() interrupt 1{TH0=(65536-461)/256;TL0=(65536-461)%256;num++;n++;if(num==201) //周期定位200个num=0;if(num<=PWMH)P1_1=1; //置高电平else if(num>PWMH)P1_1=0; //置低电平if(n==3998) //2s时间到,计算转速{n=0;zhuansu=m*30/2;m=0;qian=zhuansu/1000;bai=zhuansu%1000/100;shi=zhuansu%100/10;ge=zhuansu%10;}}//外部中断0部分void X0_time() interrupt 0{EX0=0;m++;EX0=1;}/*=======显示占空大小======*/void PWMH_(){PWMH_1=PWMH/100;PWMH_2=PWMH%100/10;PWMH_3=PWMH%10;if(PWMH_1==1)P1_6=0; //显示占空比百位elseP1_6=1;}void main() //主函数{P3_4=0; //打通P3^4控制的按键csh(); //初始化子函数while(1){PWMH_();keyscan();display();}}五、方案总结该项目程序的转速是通过规定时间内求转数的方法测量的,转速显示误差为±15转每分钟,调速范围较广(235r/min到2010r/min),基本上能达到了设计任务的要求。

【精品】直流风扇电机转速测量与PWM控制

【精品】直流风扇电机转速测量与PWM控制

本课题是对直流电机PWM调速器设计的研究,主要实现对电动机的控制。

因此在设计中,对直流调速的原理,直流调速控制方式以及调速特性,PWM基本原理及实现方式进行了全面的阐述。

为实现系统的微机控制,在设计中,采用了STC89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示,驱动模块,实现对电动机的转速的显示和测量;由命令输入模块,光电隔离模块及H型驱动模块组成。

采用带中断的独立式键盘作为命令的输入,单片机在程序的控制下,不断给光电隔离电路发送PWM波形,H型驱动电路完成电机的正反转控制。

在设计中,采用PWM调速方式,通过改变PWM的占空比从而改变电动机的电枢电压,进而实现对电动机的调速。

设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大的简化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。

摘要............................................... 错误!未指定书签。

1直流电机 ......................................... 错误!未指定书签。

1.1直流电机的结构............................. 错误!未指定书签。

1.2直流电机的工作原理......................... 错误!未指定书签。

1.3直流电机的主要的技术参数...................... 错误!未指定书签。

1.4直流电机的调速的技术指标...................... 错误!未指定书签。

2单片机的相关知识.................................. 错误!未指定书签。

2.1单片机的简介.................................. 错误!未指定书签。

2.2单片机的发展史................................ 错误!未指定书签。

无刷直流电机调速控制原理

无刷直流电机调速控制原理

电子技校电子报/2004年/04月/18日/第013版/无刷直流电机调速控制原理天津潘旗 电动助力车大都使用轮毂电机,即把电机做成轮毂的样子,直接驱动后轮,从而降低成本,且可提高其电能与机械能的转换效率。

现在的电动助力车,一般都采用如下三种电机:高效低速稀土永磁直流无刷电机、高效低速永磁直流有刷电机、高效高速稀土永磁直流有刷电机。

直流电机在转动过程中,绕组中的电流要不断地改变方向,以使转子向一个方向转动。

其中,有刷电机是采用电刷与换相器通过机械接触的方式进行换相的;而无刷电机则是通过霍尔传感器检测出绕组实时运转位置的信号,再通过微处理器或专用芯片对采集的信号进行处理,并实时控制相应的驱动电路对电机绕组进行控制。

由于无刷电机的换相是通过传感器及相关电路进行的,所以这种电机没有电刷与换相器的机械接触与磨损,不需要经常换电刷等易损器件,从而可有效提高电机的使用寿命,减少维修费用。

同时,由于无刷电机没有电刷与换相器之间的摩擦,所以在换相期间没有电火花产生,。

但是,由于无刷电机的电流换相需要专门的电路进行控制,所以整个控制电路将会比较复杂。

通常,电动助力车的无刷电机与车的后轮主轴为一体,其定子安装在主轴上,电机的外壳作为转子,通过钢丝与后轮钢圈连接。

电动助力车的无刷电机三个绕组按三角形方式连接,当给电机加直流电时,其三个绕组中的电流流向变化有三种(如图1所示):1.设第一拍C端悬空,则I C=0,电流从B端流向A端,可得知I B=I A,但极性相反,另有I1=I2。

2.第二拍时A端悬空,电流从C端流向B端。

3.第三拍工作时B端悬空,电流从A端流向C端。

第二拍与第三拍的分析与第一拍类似。

假设按上述顺序对电机进行电流运行方向控制,每经过三个节拍的电流方向就会转换,由于绕组产生的磁场在定子中旋转了一圈(360°),故称为一个循环周期。

由于转子的结构设计所决定:每6个循环周期(18拍),转子旋转一圈,即车轮转动一周。

微机原理实验报告直流电机测速实验

微机原理实验报告直流电机测速实验

微机原理实验报告直流电机测速实验本科实验报告课程名称:微机原理及接口技术课题项目:直流电机测速实验专业班级:电科1201 学号:学生姓名:王天宇指导教师:任光龙19 年5 月24 日直流电机测速实验一、实验目的1. 掌握8254 的工作原理和编程方法2. 了解光电开关,掌握光电传感器测速电机转速的方法。

二、实验内容光电测速的基本电路有光电传感器、计数器/ 定时器组成。

被测电机主轴上固定一个圆盘,圆盘的边缘上有小孔。

传感器的红外线发射端和接收端装在圆盘的两侧,电机带动圆盘转到有孔的位置时,红外线光通过,接收管导通,输出低电平。

红外线被挡住时,接收截止,输出高电平。

用计数器/ 定时器记录在一定时间内传感器发出的脉冲个数,就可以计算车电机的转速,三、线路连接线路连接:8254计数器/定时器0和2作为定时器,确定测速时间,定时器0的CLKO 连1MHZ 永冲频率,OUT0乍为定时器2的输入,与CLK2相连,输出OUT% 8255的PA0端相连。

GATEC 和GATE2均接+5V, 8354计数器/定时器1作为计数器,,输入CLK1与直流电机计数端连接,GATE1与8254的PC0相连。

电机DJ端与+5V〜0V模拟开关SW1相连。

女口下图所示。

四、编程提示8254 计数器/定时器1作为计数器记录脉冲个数,计数器/定时器0和2作为定时器,组成10〜60秒定时器,测量脉冲个数,算出点击每分钟的转速并显示在屏幕上,8255 的PAO根据OUT2勺开始和结束时间,通过PCO向8254计数器/定时器1发出开始和停止计数信号。

五、流程图六、实验程序:DATA SEGMENTIOPORT EQU 0D880H-0280H IO8255K EQU IOPORT+283HIO8255A EQU IOPORT+280H IO8255C EQU IOPORT+282H IO8254K EQU IOPORT+28BH IO82542 EQU IOPORT+28AH IO82541 EQU IOPORT+289H IO82540 EQU IOPORT+288HMESS DB 'STRIKE ANY KEY,RETURN TO DOS!', 0AH, 0DH,'$' COU DB 0 COU1 DB 0 COUNT1 DB 0 COUNT2 DB 0 COUNT3 DB 0 COUNT4 DB 0 DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AXMOV DX, OFFSET MESS MOV AH, 09HINT 21H MOV DX, IO8254K MOV AL, 36HOUT DX, AL MOV DX, IO82540MOV AX, 50000 OUT DX, AL NOP NOPMOV AL, AH OUT DX, ALMOV DX, IO8255K MOV AL, 90H OUT DX, ALMOV DX, IO8255C MOV AL, 00OUT DX, AL LL: MOV AH, 01H INT 16HJNZ QUIT1 MOV DX, IO8254K MOV AL, 70HOUT DX, ALMOV DX,IO82541 MOV AL,0FFH OUT DX,AL NOP NOPOUT DX, ALMOV DX, IO8254K MOV AL, 90HQUIT1: A0: A1: DISP OUT DX, AL MOV DX, IO82542 MOV AL, 100OUT DX, AL MOV DX, IO8255C MOV AL, 01HOUT DX, AL JMP A0 JMP QUITMOV DX, IO8255A IN AL, DX AND AL, 01HJZ A1 MOV DX, IO8255C MOV AL, 00HOUT DX, AL MOV DX, IO8254K MOV AL, 70H OUT DX, ALMOV DX, IO82541 IN AL, DX MOV BL, AL IN AL, DXMOV BH, AL MOV AX, 0FFFFHSUB AX, BX CALL DISP MOV DL, 0DH MOV AH,02 INT 21HMOV DL, 0AH MOV AH, 02 INT 21HJMP LL PROC NEARMOV DX, 0000HMOV CX, 03E8H DIV CXMOV COUNT1, AL MOV AX, DX MOV CL, 64HDIV CL MOV COUNT2, AL MOV AL, AH MOV AH, 00H MOV CL, 10DIV CL MOV COUNT3, AL MOV COUNT4, AH MOV AL, COUNT1 CALL DISP1MOV AL, COUNT2 CALL DISP1MOV AL, COUNT3 CALL DISP1MOV AL, COUNT4 CALL DISP1 RET DISP ENDPDISP1 PROC NEAR AND AL, 0FH CMP AL, 09H JLE NUM ADD AL, 07H NUM: ADD AL, 30H MOV DL, AL MOV AH,02 INT 21H RET DISP1 ENDPQUIT: MOV AH, 4CH INT 21H CODE ENDSEND START七、实验步骤1. 连接试验电路2.打开主机进入DOS环境:开始一运行一cmd确定3. 编辑、汇编、链接汇编语言程序E: CD MASM(1)编辑汇编语言源程序:EDIT MA2.ASM编辑源程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

████工学院微机原理(3级)项目报告项目名称:微机原理课程设计项目题目:无刷直流风扇调速与测速指导教师:███系别:机电系专业:机械设计制造及其自动化组员信息学号:姓名:王██组员信息学号:姓名:郭██完成时间:2014 年12 月01 日至 2016 年 1 月 3 日成绩:评阅人:目录一、学习目标 (1)二、项目要求 (1)三、转速测量和调节系统的硬件构成 (1)四、程序流程图并说明方案思路 (3)五、风扇转速与占空比之间的关系表格和曲线 (4)六、设计程序 (5)七、分析设计过程出现的问题 (12)八、方案总结 (13)一、学习目标本次系统作业的目的在于:①通过脉冲宽度调节实现无刷直流风扇转速的改变;②借助风扇转动时产生的脉冲信号,测量风扇的转速并显示;③比较每组风扇从某一转速(600r/min)到另一转速(2000r/min)稳定运转的所需要的时间。

通过比较试验结果的估算结果并讨论结果差异的主要原因,让学生展示对无刷直流风扇数学模型建立和调节方法局限性有深入理解。

二、项目要求检查项目要求转速显示风扇转速能够显示在LED上,转速单位是r/min,刷新周期为1秒钟左右风扇转速可调风扇转速可以改变,根据要求转速在700-1400r/min风扇转速与显示通过简单方法给风扇加负载,随着转速的下降应该看到转速变化的显示转速指令输入环节通过串口或键盘输入给定转速给定某一转速,1200-1500之间,看显示转速的稳定性转速调节功能在稳定转动条件下1500r/min,在30cm处加载一个外加一个风扇,对照加载前后的稳态转速回答问题随机提出有关转速测量、PWM输出和转速控制方面的问题,要有针对性,检查设计过程中的付出。

三、系统硬件构成风扇电路:接线:黄线接Vcc,黑线接地,绿线接P3^2,蓝线接P2^5。

输出:OC输出,如下图四、画程序流程图并说明方案思路开始初始化中断产生PWM波显示转速和占空比查询是否需要反馈调整查询是否收到串口数据查询风扇转速是否更新查询有无按键操作调整占空比更新目标转速刷新数码管缓存数据计算需要的占空比YYYYNNNN程序主要用查询法判断需要执行的操作,并且利用中断处理函数来产生各种对应的标志位来通知主循环,在主循环中进行要求的运算。

其中T0定时约500us,它的每次中断相当于输出一个载波脉冲,实际上是用载波脉冲数为200个,载波周期为500us的方式构成周期为100ms的PWM波。

T1用做波特率发生器。

T2定时60ms。

每次T2中断能重置一次按键处理标志位,这个标志位能保证每60ms内只允许处理一次按键操作,让按键处理既能高速增减,也能准确;此外当有合计25次T2的中断发生时,它能保存当前的转速值并且通知主循环刷新数码管显示请况,因此我们计算转速的方式是“统计1.5s内风扇的转动圈数”。

利用在T2中断的定时判断,也能把当前数码管的显示请况发回PC机。

串口通讯方面,也是利用一个标志位来申明是否接受了数据。

使用“操作符+操作数据”的5字节字符串数据格式,例如用“A0980”代表需要风扇按n=980r/min的速度运行。

通知标志被主循环检测到的时候,会将串口数据检查并且保存成整数形式,方便后续函数的调用。

当串口数据不合理时,会发送信息到PC机。

五、风扇转速与占空比之间的关系表格和曲线编程实现单片机给PC定时发送转速与占空比数据后,取对应的数据制表如下。

将500个转速与占空比数据拟合成关系曲线如下可以发现,在风扇正常转动时,转速与占空比有着正相关的关系,占空比越大,风扇的转速越高。

此外,当占空比小于26%时,风扇停转。

六、设计程序1、主程序:#include <reg52.h>#define jingzhen 11059200UL /*使用11.0592M晶体*/#define botelv 9600UL /*波特率定义为9600*/volatile unsigned char sending;sbit dula =P2^6; //段选信号的锁存器控制sbit wela =P2^7; //位选信号的锁存器控制sbit PwmOut=P2^5; //PWM输出位置蓝线sbit need_steady=P3^4; //接地后开始调整sbit HideValue =P3^5; //接地后显示目标转速sbit K3 =P3^6; //增加占空比按钮sbit K4 =P3^7; //减少占空比按钮unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//数码管各位的码表unsigned char code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的码表unsigned char SPEED,SPEED_temp,count_time,count_send,wait;unsigned char PWM_count,PWM_turn,PWM_max; //控制PWM波的计数,转变值,周期个数,unsigned char Number[8]={0},value[6]={0}; //数码管显示缓存和串口字符串数据缓存int Target;bit flag=0,flag_k=0,flag_send=0,flag_direct=0; //通知标志void Timer0Init(void); //初始化函数void Timer2Init(void);void Ext0Init(void);void UARTInit(void);void check();void VALUE_To_Num(int num,unsigned char d); //数据填入数码管函数void direct(); //直接与反馈调节PWM函数void adjust();void Display();void send(unsigned char d);void sendc(unsigned char * pd);void sendc_num(unsigned char * pd);void main(){flag_direct=0;flag_send=0;wait=5;PWM_count=0,PWM_turn=170,PWM_max=200;Timer0Init();Timer2Init();Ext0Init() ;UARTInit() ;need_steady=1; //接地后开始调整HideValue =1; //接地后显示目标转速K3 =1; //增加占空比按钮K4 =1; //减少占空比按钮while(1) //主循环{if(flag_k) //控制每60ms允许通过按键调整一次PWM_turn{if(!K3&&PWM_turn<190) PWM_turn++;if(!K4&&PWM_turn>10 ) PWM_turn--;flag_k=0;}if(flag_direct){check();direct();flag_direct=0;wait=4; //传送了直接值后不能马上进行反馈调整,误差太大了}if(flag) //控制约1.5s允许调整数码管显示值{VALUE_To_Num((500*(SPEED_temp)/25),4);if(wait>0)wait--; //减缓约4.5~6s才允许反馈调整if((0==wait)&&(!need_steady)){ //满足条件时启用转速反馈调整adjust();}flag=0;}VALUE_To_Num(PWM_turn,0);if(!HideValue){ VALUE_To_Num(Target,0);} //直接按下K2显示当前的目标转速的值,可以检查有没有收到串口数据if(flag_send){ sendc_num(Number);flag_send=0;}Display();}}2、初始化子程序void Timer0Init(void){TMOD |= 0x01; //T0 16位定时TL0 = 0x33; //设置定时初值TH0 = 0xFE; //设置定时初值TF0 = 0; //清除TF0标志EA = 1; //总中断打开ET0 = 1; //定时器0中断打开TR0 = 1; //定时器0开始计时}void Timer2Init(void){RCAP2H = 0x28;RCAP2L = 0x00; //定时60msEA=1; //打开总中断ET2=1; //打开定时器2中断TR2=1; //定时器2开始计时}void ext0Init(void){INT0=1; //置高接收口P3.2PX0=1; //设置高中断优先级EA=1; //全局中断开IT0=1; //边沿触发EX0=1; //外部中断0开}void UARTInit(void) //9600bps@11.0592MHz{EA=0; //暂时关闭中断TMOD|=0x20; //定时器1工作在模式2,自动重装模式SCON=0x50; //串口工作在模式1TH1=256-jingzhen/(botelv*12*16); //计算定时器重装值TL1=256-jingzhen/(botelv*12*16);PCON|=0x80; //串口波特率加倍PS=1; //给串口中断高优先级ES=1; //串行中断允许TR1=1; //启动定时器1REN=1; //允许接收EA=1; //允许中断}3、中断操作程序/*********************************************************外部中断0统计转速脉冲*********************************************************/void ext0(void) interrupt 0 //负责统计速度值,信号下降沿产生中断{SPEED++;}/*********************************************************定时器0负责调控PWM波*********************************************************/void time0(void) interrupt 1 using 1 //负责产生PWM波{TL0 = 0x33; //设置定时初值TH0 = 0xFE; //设置定时初值PwmOut=PWM_count<PWM_turn?1:0; //计数值在0~199共200个组成;PWM_turn=0时只输出低电平,PWM_turn=PWM_max时只输出高电平PWM_count++;if(PWM_count>=PWM_max) //PWM_count达到顶端时回到初始PWM_count=0;}/*********************************************************串行中断服务函数接受速度控制命令*********************************************************/void serial() interrupt 4{static unsigned char write_point=0;static bit read_able=0;unsigned char Temp;if(RI) //判断是接收中断产生{RI=0; //标志位清零Temp=SBUF; //读入缓冲区的值if(read_able){value[write_point]=Temp;write_point++;if(write_point>4) //只读入4个字节{flag_direct=1; //通知主函数可以调节PWM了read_able=0;write_point=0;wait=4; //立即暂停反馈调整}}if(Temp=='A') //'A'作为特征码检测,也可以使用其他的字母来规定控制代码{write_point=0; //一旦收到A_ _ _ _,指针回到开头并且允许接受数据read_able=1;}}if(TI) //如果是发送标志位,清零{TI=0;sending=0; //清正在发送标志}}/*********************************************************定时器2调节数码管的刷新速度*********************************************************/void time2(void) interrupt 5 using 1 //定时器2中断{TF2=0;//必要的软件清中断标志count_time++;flag_k=1;if (count_time>=25){flag=1;SPEED_temp=SPEED;SPEED=0;count_time=0;count_send++;}if (count_send>=5){flag_send=1;count_send=0;}}4、辅助处理程序/*********************************************************检查串口数据*********************************************************/void check(){ unsigned char i;for(i=0;i<4;i++){if(value[i]<'0'||value[i]>'9')value[i]='0';}Target=(value[0]-'0')*1000+(value[1]-'0')*100+(value[2]-'0')*10+(value[3]-'0');if(Target>2180||Target<280) //禁止不可调节范围的PWMsendc("范围外的转速值!!\n");}/*********************************************************将数据填入数码管缓存*********************************************************/void VALUE_To_Num(int Num,unsigned char d){ unsigned char i;for(i=7;i>3;i--){Number[i-d]=Num%10;Num=Num/10;}}/*********************************************************直接调节PWM函数*********************************************************/void direct(){if(Target>2180||Target<280) //禁止不可调节范围的PWMreturn;if(Target<1520)PWM_turn=( 0.00003*Target*Target + 0.01311*Target + 53.467);//使用分段函数更贴合PWM-n 的关系elsePWM_turn=(-0.00009*Target*Target + 0.4299 *Target - 302.08);if(PWM_turn>200) PWM_turn=200;}/*********************************************************反馈调节PWM函数*********************************************************/void adjust(){double num;num=SPEED_temp*20;if(Target>2180||Target<280) //禁止不可调节范围的PWMreturn;if(Target<1520)PWM_turn=PWM_turn+( 0.00006*Target + 0.01311)*(Target-num);//原理是dy=f'(x)*dx else //属于比例调节PWM_turn=PWM_turn+(-0.00018*Target + 0.4299)*(Target-num);if(num<(Target/4)) //防堵转检测{ direct();wait=4;}if(PWM_turn>200) PWM_turn=200;}/*********************************************************数码管显示程序*********************************************************/void Display(){ unsigned char num;unsigned int m;for(num=0;num<8 ;num++){ P0=wei[num];wela=1;wela=0;P0=duan[Number[num]];dula=1;dula=0;for(m=128;m>0;m--); //时间间隔短,利用人眼的余辉效应,觉得每个数码管都一直在亮。

相关文档
最新文档