




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、直流电机转速测量与控制系统设计实验报告评语:成绩教师:年月日班级:学号:姓名:地点:吋间:直流电机转速测量与控制系统设计与实现一、课程设计题目:直流电机转速测量与控制系统实验。二、课程设计目的:1. 了解以微机为核心的闭坏控制系统的组成原理。掌握电机转速闭坏控制系统的构成方法。2. 了解霍尔器件的工作原理:电机转速的测量与控制的基本原理。掌握pwm调速原理和应川 方法。3. 掌握控制系统的设计与调试方法,提高分析问题和解决问题能力。三、课程设计的内容:设计一个对肓流电机转速测最与转速控制的闭环控制系统。微机控制屮心在监控界面上 设置电机转速。电机转速测量利用崔尔传感器电路产牛转速脉冲,定时/计
2、数电路通过脉冲 计数获得转速参量。电机转速调整采用pwm (脉宽调节)方法,控制中心采样到电机转速参 量,算得转速值同预定转速设置值进行比较,若不相同,则调整控制转速脉冲的占空比,来 达到调速的冃的。(占空比二脉冲宽度/脉冲周期)四、系统功能要求与设计要求:1. 系统监控界面设计:监控系统具有转速参数设置窗11、采样的电机转速数据显示窗11、转速动态曲线显示窗 口相应功能选择菜单。2. 监控程序设计要求:a)监控程序用查询方式获取转速数据。b)监控程序川中断方式获取转速数据。3. 硬件设计要求:充分利用现有实验系统资源设计一个性能较好的直流电机转速闭环控制系统。利用带锁 存的i/o接口电路(如
3、8255, 74ls273, d/a-da0832)输出控制电机转速的脉冲。采样转速用 崔尔传感器件提供电机转速脉冲。利用定时/计数电路对电机转速脉冲计数。微机对从定时/ 计数电路中获得电机转速数值,并产生控制电机转速的pwm脉冲。五、设计详情:1)闭坏控制系统原理图电机转速测量与控制闭环系统基本功能图2)电机控制及转速测量原理图tno -pc1rt13)操作步骤直流电机在控制脉冲作用下转动,电机转盘上的永久磁铁随z旋转,霍尔传感器件 3101t受磁场的影响,从端口 out输出脉冲信号,电机旋转一圈,霍尔传感器输出一个脉冲, 脉冲频率于电机转速成正比。通过测出脉冲信号的频率(单位时间脉冲个数)
4、就可以计算出 电机的转速。测量转速时,需要一个定时器,设定时间为t,述筋耍一个计数器,将崔尔传感器的(out 端)输出脉冲引导计数器的输入端。电机转动时,同时启动定时器和计数器,当定时器定时 时间t到时,停止计数器的脉冲计数,并读出计数器的计数值s(即:时间t内的转数),可 以计算出主流电机的转速r二s/t。总流电机转速调整:首先确定控制脉冲占空比的调整方式,一种是设定正(或负)脉冲宽度,不断调整负脉 (或正)冲宽度实现转速,当转速高于设定转速时,加大负脉冲(或减小正脉冲)的宽度。 另一种是同时调整正负脉冲的宽度实现肓流电机转速调整。在调整了脉冲占空比后,同时启动定时器和计数器,进行转速测量,
5、直流电机转速调整 与测量交叉进行。a. 编制利用带锁存功能i/o端口 (如8255, 74ls273, d/a-da0832)输出控制电机转速的pwm 脉冲程序b. 编制利用定时器/计数器测最电机转速程序c. a)程序和b)程序合并,实现电机转速测量与控制d. 编制系统监控界而的程序e. 电机转速测量与闭坏控制系统的连调。4) 课程设计试验环境:1. 微机一台(pentium 4)微机接口技术实验箱一个isa - pci转接卡一块连接电缆一条万用表一块微机接口技术实验讲义一木导线、剥线钳等2. 软件环境:windows xp 平台visual c+ 6.0 编译器六、实验结果:我们在完成了实验
6、的基本要求基础上,还完成了实验的全部三个附加要求。详情如下:1)界面截图羽直流电机转速测量与控制粟统控制与监控设定转速开始实测转速运行时间实测占空比运行状态停止11 hi 1 n i 1界面2)测试数据设定转速2600r/m2100r/m1800r/s1200r/m600r/m300r/m实测转速40r/s37r/s30r/s19r/sllr/s0调整时间oo015s8s20soo误差oo5. 71%0. 0%5%10%oo实际观察设定速度最接近设电机刚启电机刚启电机刚启由于速度情况如:调超过了额定速度,并动后,立即动后,立即动后,立即太小,电机节快慢,波定最大速且刚启动达到最大达到最大达到最
7、大收到阻尼,动大小等度,无法平就稳定。速度,等待速度,等待速度,等待产生震荡,衡,因此该一段时间一段时间一段时间无法测出数据为坏后,下降到后,下降到后,下降到实际速度。值。设定速度。设定速度。设定速度。七、实验心得:这次实验的题目确实比较难,因为是6个人一组,设为组长,我们首先讨论 了耍完成这个题目需要做的工作,于是我们首先对任务进行了分工,两个人负责 顶层软件的设计以及具体的程序控制,两个人对硬件进行设计,两个人进行中间 接口的设计和分析8255, 8253等-起的代码,在做完之后大家再-起讨论,争 取使每个人都能明白整个实验的原理和具体的实现过程。经过这次试验,我明0t 8255, 825
8、3等器件的用处以及对这两种器件的编 程,对硬件的编程有了更深的理解,由于在实验过程中,我负责的是顶层的软件 设计与控制,所以对mfc进行了学习,对mfc也有了进一步的认识与了解。实验过程中,大家在一起交流学习,共同为一个课题而努力,这是平吋很难 得的机会。增进了友谊,促进了学习。很希望大学期间可以多有一些这样的课程 设计!八、实验附录:实验代码:#inelude "stdafx. h"include kkk.h#inelude "kkkdlg. h"#include pci9o52d11. h#ifdef _debug#define new debug.
9、new#undef this_filestatic char this ftle = file ;#endif/i/!/ caboutdlg dialog used for app aboutclass caboutdlg : public cdialogpublie:caboutdlg();/ dialog data/afx data(caboutdlg)enum idd = idd aboutbox ;/afx_data/ classwizard generated virtual function overrides/afx_v1rtual(caboutdlg)protected:vir
10、tual voi d dodataexchange(cdataexchange* pdx);/ ddx/ddv support/afx_vtrtual/ implementationprotected:/ afxj1sg (caboutdlg)/ afxjisgdeclare_message_map();caboutdlg:caboutdlgo : cdialog(caboutdlg:idd)/afx data init(caboutdlg)/afx_data_initvoid caboutdlg:dodataexchangc(cdataexchangc* pdx)cdialog:dodata
11、exchange(pdx);/afx_data_map(caboutdlg)/afx_data_mapbeg in_message_map(caboutdlg, cdialog)/afx_msg_map(caboutdlg)/ no message handlers/afx_msg_mapend message map()/ ckkkdlg dialogckkkdlg:ckkkdlg(cwnd* pparent /*二null*/):cdialog(ckkkdlg:1dd, pparent)/afx_data_init(ckkkdlg)mstr = _t("");m_set
12、_speed = 30;/afx_data_init/ note that loadicon does not require a subsequent destroylcon in win32 m hlcon = afxgetapp()->loadicon(idr mainframe);void ckkkdlg:dodataexchange(cdataexchange* pdx)cdialog:dodataexchange(pdx);/afx data map(ckkkdlg)ddx_text(pdx, tdc_edtt_speed, m_str);ddx_text(pdx, 1dc_
13、ed1t_set_speed, m_set_speed);ddvminmaxint(pdx, m_set_speed, 0, 2400);/afx_data_mapbegtn_message_map(ckkkdlg, cdialog)/afx_msg_map(ckkkdlg)on_wm_syscofmand ()on_wm_paint()onjvnlquerydragtconoon_bn_clicked(tdc_button1, onspeed_add)on_bn_clicked(idc_butt0n2, onspeed_min)on_wm_timer()on bn clicked(1dc b
14、utton add, onbuttonadd)on_bn_clicked(idc butt0n4, onstop)/afx_msg_mapend_message_map()/ ckkkdlg message handlersbool ckkkdlg:0ntnitdialogocdialog:0ninitdialog();/ add "about." menu item to system menu./ idm_aboutbox must be in the system command range.assert(仃dm_aboutbox & oxfffo) = td
15、m_aboutbox);assert(idm aboutbox < oxfooo);cmenu* psysmenu = getsystemmenu(false);if (psysmenu != null)cstring straboutmenu; straboutmenu. loadstring(ids_aboutbox); if (!straboutmenu. isemptyo)psysmenu->appendmenu(mf separator);psysmenu->appendmenu(mf_string, tdmaboutbox, straboutmenu);/set
16、the icon for this dialog the framework does this when the application's main windowautomaticallyis not a dialog big icon small iconsettcon(mhtcon, true);/ setsetlcon(m_hlcon, false);/ set/ todo: add extra initialization here /this->settimer(1235, 1000, 0);opendeviceo ;gettobase(&ustoaddrl
17、);datal=0x50;outbyte(usloaddrl+0x08+3, datal);datal=0xff;outbyte(usioaddr1+0x08+1, datal);return true; / return true unless you set the focus toa controlvoid ckkkdlg: :onsyscoinmand(uint nid, lparam 1 param)if (ntd & oxfffo)二二 tdm aboutbox)caboutdig dlgabout; dlgabout. domodal (); elsecdialog:0n
18、syscommand(nid, 1param); /the code be1owtf you add a minimize button to your dialog, you will needto draw the icon. for mfc appiications using the document/view model, this is automatically done for you by the framework.extern int data100; extern int index_data;extern int indexx; void ckkkdlg:0npain
19、t()if (islconico)cpaintdc de(this); / device context for paintingsendmessage (wm_1conerasebkgnd, (w'param) de. getsafelldc 0, 0); / conter icon in client rectangle int cxlcon 二 getsystemmetrics(sm_cxicon); int cytcon = getsystemmetrics(smcytcon);crect rect;getclientrect(&rect);int x = (rect.
20、 width() - cxlcon + 1) / 2;int y = (rect. height () - cylcon + 1)/2;/ draw the iconde. drawtcon (x, y, m htcon);elsecdialog:0npaint();cc1ientdc de (this);/xdc.movcto(0, 300);de. lineto(700, 300);de. moveto (685, 295);de. lineto(700, 300);de. moveto (685, 305);de. lineto(700, 300);/yde. moveto (20, 0
21、);de. lineto(20, 300);de. moveto (15, 20);de. lineto(20, 0);de. moveto (25, 20);de. lineto(20, 0);/xxxxxcpen pen;pen. creat epen (ps_sol1d, 2, rgb(0, 0, 255);cpen *oldpen=dc. sei ectobject(&pen);de. moveto(0, 300-m set_speed*5);de.lineto(700, 300-m_set_speed*5);de.selectobject(oldpen);/draw data
22、cpen pcnl;penl. createpen(ps solid, 2, rgb(255, 0, 0);oldpen二de. selectobject(&penl);i ndex data二0;ford nt i=0;i in dex xt;i+)de.moveto(index data+20, 300-datai*5);de. lineto(index_data+10+20, 300-datai+l*5); index_data+=10;de.selectobject(oldpen);/font. deleteobject();/ the system calls this to
23、 obtain the cursor to display whi1e the user drags / the minimized window.hcursor ckkkdlg:onquerydraglcon()return (hcursor) m_hlcon;#define num 1024int data100;int index_x二0;int indox_data=0;int count=0;int flag=num/2;int last二0;bool isstop二0;int timelast=0;void ckkkdlg:0nspeed_add()/ todo: add your
24、 control notification handler code hereif(flag<num-10)flag+=10;cstring str;str. format flag*l. 0/num);setdlgttemtext(tdc edtt pwm, str);void ckkkdlg:0nspeod_min()/ todo: add your control notification handler code hereif(flag>=10)flag-=10;cstring str;str. format (,z%fz,, flag*l. 0/num);setdlgtt
25、emtext(tdc edit pwm, str);voi d ckkkdlg:ontimer(utnt ntdevent)/ todo: add your message handler code here and/or call default /read 8253inbyte(usloaddrl+0x09, ftldatal);int temp=255-ldatal;datal二oxff;outbyte(usioaddr1+0x08+1, datal);updatedatao ;while (temp=m_set_speed)goto loop;if(tcmp>m set spee
26、d+1)if(flag>=20)flag-二20;el se if(temp<m_set_speed-l)if(flag<num-20)flag+=20;loop:cstring str;str. formattemp);setdlgttemtext 仃dc edit speed, str);/cstring str;str. format (f, flag*l. 0/num);setdlgltemtextddc edit pwm, str);if(isstop) this->killtimer(1235);/drawing/cclientdc dc(this);dataindex_x=tomp;index_x+;if(index_x>70) index x二0;/ timelast+;/ str. format (z/%d:%dz,, timelast/60, timelast%60);/ setd1g11emtext(1dc_edit_t1me, str);doub1e t=(temp-m_set_speed)*1. 0/m_set_speed;if(t>0. 1)setdlgttemtext仃dc_edtt_error, "error");timelast+;str. format(,%d:%d,/, tim
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 返租合同的协议
- 合伙协议合同范本4人
- 古代书画买卖合同协议
- 企业与食堂水电协议合同
- 合同协议六人怎样称呼
- 购买镜子合同协议书范本
- 蛋糕学徒合同协议
- 暂停租赁合同协议
- 设备场地租赁协议合同书
- 员工合同协议生效
- 《数字图像处理课程设计》课程教学大纲
- 园艺大棚建设合同
- 冠状动脉粥样硬化性心脏病-28
- 药用氧化镁项目营销计划书
- 任务1 混合动力汽车转向系统典型构造与检修
- 三维地籍解决方案白皮书
- 住院患者VTE相关评估量表课件
- 高中物理选修二第一章《安培力与洛伦兹力》测试题(含答案解析)
- 江苏省徐州市睢宁县2023-2024学年七年级下学期期中考试数学试卷(含答案)
- 中职护理专业护理服务质量评价体系研究
- 小学生卫生知识健康教育精课件
评论
0/150
提交评论