系列单片机直流电机闭环调速实验

上传人:hs****ma 文档编号:563825025 上传时间:2023-03-07 格式:DOCX 页数:13 大小:169.98KB
返回 下载 相关 举报
系列单片机直流电机闭环调速实验_第1页
第1页 / 共13页
系列单片机直流电机闭环调速实验_第2页
第2页 / 共13页
系列单片机直流电机闭环调速实验_第3页
第3页 / 共13页
系列单片机直流电机闭环调速实验_第4页
第4页 / 共13页
系列单片机直流电机闭环调速实验_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《系列单片机直流电机闭环调速实验》由会员分享,可在线阅读,更多相关《系列单片机直流电机闭环调速实验(13页珍藏版)》请在金锄头文库上搜索。

1、指导教师评定成绩: 审定成绩:自动化学院综合实验报告综合实验(1: 51系列单片机直流电机闭环调速实验基于Protuse仿真实验平台实现专业:电气项目与自动化班级:姓名:学号:时间:2018.10-2018.12、设计要求1. 设计硬件电路:(1) 直流电机采用编码器测速(2) 直流电机速度给定采用电位器进行模拟电压给定,05V(3) AD转采用12位转换 显示采用8位LED,或者LCD1602显示(5)键盘4X4,PID等参数通过键盘设置.2. 软件(1) 控制算法:数字PID,参数在线修改.(2) 显示窗口 :显示速度地设置值 SV、速度地实际值PV.(3) 实际速度值,速度峰值、峰值时间

2、等通过串口上传到上位机(选做二、实验内容直流电机PWM控制系统地主要功能包括:直流电机地加速、减速以及电机地正 转和反转,并且可以调整电机地转速,还可以方便地读出电机转速地大小,能够很方便地 实现电机地智能控制其间,还包括直流电机地直接清零、启动 置数)、暂停、连续功 能该直流电机系统由以下电路模块组成:振荡器和时钟电路:这部分电路主要由 AT89C52、些电容、晶振组成.设计输入部分:这一模块主要是利用带中断地独立式键 盘来实现.设计控制部分:主要由 AT89C52单片机地外部中断扩展电路组成设计液晶 显示部分由LCD1602液晶显示模块组成.直流电机PWM控制实现部分:主要由一些 二极管、

3、电机和L298直流电机驱动模块组成.1主控电路主控型号:AT89C52VCCC1C230pF口 XICRYSTAL1BPIOP17P12P13PA4P15 XTAL1POOfAMpfl IfAITilXTAL2PO2/AD2 P0 3/AD3PO5/AD5r U.QrrtrLflJTTi7EC 1P2.VA9P2 2/A10口。ij&i iiALEr ti.1 1P24ZA12EAP2.5/A13P2.fi/A14F2 7JA15eq n.fluynr I ZP1-1O2EXP3.1fTXDP1.2P3_2/iWT0P1.3P1.4F1_5P3.3/iMTTF3.4ZT0F3 5/T1F1-6

4、P3.6/WRP1.7P3.7JRDAT89C52PROGRAM=hex3fiP0l 37PCK?36P03 35尸M34PD6 33 尸 06 12 尸 M 21 P20 .Z2P21 Z3F22 *24P23 *25P24 *2BP25 *27P26 28P27 10P30 11P31 *12P32 1JP33 HP34 *15P35 16P36 17P37 *39 POO图2-1单片机最小系统2.电机驱动电路电机地驱动芯片选用L298N作为驱动芯片,工作稳定电机驱动信号由单片机提 供,信号经过光耦隔离后,通过L298N地输出脚与两个电机相连丄298N内部包含4 通道逻辑驱动电路,可以方便

5、地驱动两个直流电机,或一个两相步进电机 丄298N可 接受标准TTL逻辑电平信号 VSS,VSS可接4. 57 V电压.4脚VS接电源电压,VS电压范围 VIH为+ 2 . 546 V.输出电流可达 2 . 5 A,可驱动电感性负载丄298N地0UT1,0UT2和OUT3,OUT4之间可分别接电动机,该4个端口用来控 制电机地转向丄298地另外两个使能端是用来通过调节占空比控制电机转速.VCCU3:AINI VQC 血INI irMEhiA ENBU3;BVS0UT1UTScxmU2DfOOE1 PK4 4EF W. V.V.WCID!5EW$A SENEB GMD不 D5 ZS 06 25

6、07 ZX D83 I Qigg I CHOTE I CMODf 1 EMOD图2-2电机驱动电路3. 键盘输入电路采用键盘4X4,进PID等参数通过键盘设置4. AD采集电路型号:TLC2543,为 12 位 AD2VRIk0123456789 NNNNNNNNNN AIAIAIAIAIAIAIAIAIAI2417:F251526ISCS1-1图2-4 AD采集电路5. 显示电路采用LCD1602液晶进行信息显示LCD1LM016L图2-5 LCD1602显示电路PID参数定义struct PID sPIDo/PID Con trol Structure三、PID算法将偏差地比例vPropo

7、rtion)、积分lntegral)和微分vDifferential)通过线性组合 构成控制量,用这一控制量对被控对象进行控制,这样地控制器称PID控制器PID控制分为模拟PID控制和数字PID控制.而单片机PID控制属于数字PID控制, 数字式PID控制算法可以分为位置式 PID和增量式PID控制算法.经典算法如下:float MaxValue=100。/ 上限/下限float MinV alue=0。struct PID *sptr = &sPID 。/PID 地址指针PID初始化*/void PID_Init(sptr-SetPoint = 100。 sptr-Output = 0。 s

8、ptr-LastError = 0。 sptr-PrevError = 0。 sptr-SumError = 0。 sptr-Proportion = 0.5。 sptr-Integral = 0。 sptr-Derivative = 0。/输出值/Error-1/Error-2/比例常数 Proportional Const/积分常数 Integral Const/微分常数 Derivative ConstPID位置式float LocPIDCalc(float NextPointfloat iError,dError 。iError = sptr-SetPoint - NextPoint。

9、 sptr-SumError += iError。dError = iError - sptr-LastError 。 sptr-LastError = iError。 sptr-Output = sptr-Proportion * iError/偏差/积分/微分/比例项微分项+ sptr-Integral * sptr-SumError+ sptr-Derivative * dError 。if(sptr-Output MaxValue sptr-Output = MaxValue。 /上限控制 if(sptr-Output sptr-Output = MinValue 。 /下限控制 pr

10、intf(PIDOUT=%frnrn,sptr-Output 。return sptr-Output。PID增量式*/积分项/float IncPIDCalc(float NextPoint float iError 。iError = sptr-SetPoint - NextPoint。/E0/E-1sptr-Output = sptr-Proportion * iError- sptr-Integral * sptr-LastErrorsptr-PrevError = sptr-LastError。sptr-LastError = iError。if(sptr-Output MaxValu

11、e sptr-Output = MaxValue。/ 上限控制9if(sptr-Output sptr-Output = Mi nV alue。 / 下限控制9 printf(PIDOUT=%frnrn,sptr-Output 。return(sptr-Output。四、整体电路j . CflYTAL丁 严FUillUh ESWUHHi HUH mtMEH ra?juui?4TKiQR1jjpjp JFZlMnF14MUP2|M 理F1IMM P# UAlFrawafil EPiXT!S nsRP pj 4tnF3叩 PID A-SEESbSHSST r,Z U曲日日耳 P,3 口ii1奇EE

12、E百 LCD1we比血 - IVCEMCC图4-1 整体电路五、结论本课题地目地在于利用单片机实现 PID算法产生PWM脉冲来控制电机转速归纳 起来主要做了如下几方面地工作:1、PID算法与PWM控制技术有机地结合;2、设 计了电机调速电路;3、利用C语言进行程序设计,并通过仿真 源程序见附录)根据 上面论述结合测试数据可以看出本次设计基本完成了设计任务和要求 .通过此次设计,掌握了数字PID算法地使用及编程方法,学习了如何进行系统设计及相关技巧 ,为今后地工作和学习奠定了坚实地基础六、控制程序代码1 main.c#include #include delay.h#include 1602.h

13、#include PID.h#include timer.h #includekeyboard.h #include /*主程序*/ main( unsigned char temp7 。 /定义显示区域临时存储数组unsigned char key。 LCD_Init( 。 DelayMs(20 。 LCD_Clear( 。/ 按键 /初始化液晶 / 延时有助于稳定 / 清屏init(while (1 / 主循环sprintf(temp, %5.1f ,(floatspeed 。 /float 是强制转换符号 ,用于将结果转换成浮点型 ,%5.0f 表示 浮点输出 ,共 5 位数 ,小数点后 0 位LCD_Write_String(0,0,tempkey = KeyPro( 2 timer.c#include #include timer.h#include 1602.h#include PID.h#include unsigned int init_count 。 unsigned int

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号