




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录设计报告摘要4第1章 设计目的及要求 41.1 设计目的41.1 设计要求5第2章 设计的软硬件环境52.1 设计系统硬件环境52.1 设计系统软件环境10第3章 设计原理113.1 直流电机转速控制113.1.1直流电机转速控制的基本原理113.1.2 DAC0832芯片介绍123.1.3 8255芯片介绍123.1.4实验原理图133.2 直流电机测速13 3.2.1光电测速基本原理13 3.2.2 芯片8253介绍13 3.2.3 实验原理图143.3 键盘控制14 3.3.1 键盘控制的基本原理14 3.3.2 实验原理图143.4 七段数码管显示15 3.4.1 七段数码管显示基本原理15 3.4.2 七段数码管简介15 3.5 LED控制16 3.6 PID控制16 3.6.1 PID控制简介16 3.6.2 PID控制在本次课程设计中的应用18第4章 设计方案与具体实施18 4.1 总体设计方案18 4.2 直流电机转速控制184.3 七段数码管显示194.4 键盘控制194.5 LED显示状态194.6 直流电机测速204.7 PID控制204.8 其他21第5章 设计结果及分析21第6章 设计总结22附录一 机电系统设计日志23附录二 设计成果(加工出来的曲线图,轮廓图)24附录三 软件源程序26设计报告摘要本次机电系统课程设计,主要是利用清华大学科教仪器厂生产的TPCUP通用微机接口实用系统实验箱来完成用VC实现直流电机调速系统的设计。在实验中,我们利用芯片0832的数模转换功能,与芯片8255 组成电机调速系统;利用芯片8253的定时计数功能,与芯片8255组成电机测速系统;结合芯片8255的数据传输等功能实现七段显示码的显示以及LED的显示。在实现这些功能的基础上,利用VC软件编写控制界面。VC软件编写控制界面不仅实现了以上各种功能的,同时实现电机速度的给定调速,并加入PID调节算法,使其能快速准确的调速,通过所得的测速曲线对比,得出PID调节算法对调速系统的调节作用。在实验报告中,我们在第一章中主要介绍本次课程设计的设计目的及要求;第二章中主要谈谈本次实验所需要的软、硬件环境;在第三章中,将详细介绍设计过程中所涉及到的各部分原理;第四章主要阐述我们在设计过程中的设计方案及其具体实施;我们所设计的实验结果及分析结果将在第五章里呈现给大家;最后,我们在第六章中进行设计总结,并在附录中给出机电系统设计日志、设计成果和软件源程序。第1章 设计目的及要求1.1 设计目的 本次课程设计的目的在于通过设计来实现以下目的:1. 掌握数码管显示数字的原理2. 通过并行接口8255实现对LED的控制,进一步掌握对并行口的使用。3. 了解七段数码管(LED)显示数字的原理。4. 掌握只用一个段锁存器和一个位锁存器来同时显示多位数字的技术。5. 掌握8279键盘显示电路的基本功能及编程方法。6. 掌握一般键盘和显示电路的工作原理。7. 进一步掌握定时器的使用和中断处理程序的编程方法。8. 进一步了解DAC0832的性能及编程方法。9. 了解直流电机控制的基本方法。10. 了解光电开关的使用方法。11. 了解利用光电传感器测量电机转速的方法12. 掌握PID的控制原理13. 学会利用VC程序实现可视化控制。综上所述,本次课程设计的主要目的在于利用计算机控制课程所学知识,结合VC编程技巧,以及专业所学的知识设计一套用VC实现直流电机调速的系统。1.2设计要求本次课程设计,对用VC实现直流电机调速系统的设计的要求如下:利用TPC-UP实验箱搭建电路:利用实验台的键盘实现电机速度的给定、利用LED显示模块实现电机速度给定的显示和电机的测速显示、利用DA模块控制电机调速并利用8255和8253定时计数即实现电机的测速。利用VC编程实现电机调速的小系统的驱动。在用控制箱实现上述直流电机速度控制的同时,利用VC编写控制界面以同时实现电机速度的给定,并加入PID调节算法,利用曲线实现显示测量速度的实时显示。第2章 设计的软硬件环境2.1 设计系统硬件环境设计系统的硬件环境主要是清华大学科教仪器厂开发的TPCUP通用微机接口实用系统实验箱。该系统主要有以下特点: 根据不同学校的需求,可以配接PCI卡,也可以配接USB模块组成不同形式的微机实验系统。 实验台结构采用了综合实验板和扩展模块相结合的方式,既保证基本实验结构紧凑,实验方便又有扩展实验灵活的特点。 实验接线采用排线和单根自锁紧插线相结合的方式,插线方便灵活。 接口实验增加了实用性、趣味性的项目,使用C语言进行实验的程序。 I/O扩展模块包括:32位存储器读写实验和32位DMA实验;16X16发光二极管点阵实验;字符图形LCD实验;FPGA设计实验;红外收发实验等。 CPU扩展模块包括:51系列单片机模块;8086模块;1)装置基本组成:(1)、硬件:PCI接口卡一块、实验台(箱)一个。该实验装置在PC系统中的位置如下图所示(斜线标出):(2)、软件:光盘一张。(3)、资料:学生实验指导书一本。(4)、附件:话筒一个,50芯实验连接线一条。2)安装步骤:(1)关上PC机电源,打开微机主机箱。(2)将PCI总线接口卡插在任意扩展槽中。接口卡的结构如下图。(3)用50芯线扁平电缆线连接接口卡和实验台。(4)接上PC机电源,启动微机,Windows提示发现新硬件,请安装光盘“Disk驱动”目录里的安装配置文件(TPC.inf)(5)重新启动计算机后,运行光盘里的Setup程序安装运行支持库文件。3)实验台结构图1、I/O地址译码电路如图-1所示,地址空间:280H2BFH共分8条译码输出线:Y0Y7,其地址分别是280H287H;288H28FH;290H297H;298H29FH;2A0H2A7H;2A8H2AFH;2B0H2B7H;2B8H2BFH,8根译码输出线在实验台“I/O地址”处分别由“自锁紧”插孔引出,供实验选用。图-12、时钟电路如图-2 所示,可以输出1MHZ、2MHZ两种信号,供A/D转换器、定时器/计数器、串行接口实验使用。 图-23、逻辑电平开关电路如图-3所示,实验台右下方设有8个开关K7K0,开关拨到“1”位置时开关断开,输出高电平,向下打到“0”位置时开关接通输出低电平,电路中串接了保护电阻,使接口电路不直接同+5V、GND相连,可有效地防止学生因误操作、误编程损坏集成电路现象。 图-3 图-44、LED显示电路如图-4所示,实验台上设有8个发光二极管及相关驱动电路(输入端L7L0),当输入信号为“1”时发光,为“0”时灭。5、七段数码管显示电路如图-5所示,实验台上设有六个共阴极七段数码管及驱动电路,段码为同相驱动器,位码为反相驱动器,从段码与位码的驱动器输入端(段码输入端:a、b、c、d、e、f、g、dp,位码输入端:S0S5)输入不同的代码即可显示不同数字或符号。 图-56、键盘电路如图-6图-67、接口集成电路实验台上有微机原理硬件实验最常用接口电路芯片,包括:可编程定时器/计数器(8253)、可编程并行接口(8255)、可编程串行通信控制器8251、可编程键盘显示控制器8279、数/模转换器(DAC0832)、模/数转换器(ADC0809),这里芯片与CPU相连的引线除片选信号CS外都已连好,与外界连接的关键引脚在芯片周围用“自锁紧”插座引出,供学生实验时使用。其中数/模转换器附有双极性输出,模/数转换器附有双极性输入插座。8、存储器扩展电路实验箱上,有通用储储器芯片6116,分别用JC1,JC2连接地址线和数据线,另有Flash存储器芯片AT29C256,同样用JC1,JC2连接地址线和数据线,具体电路请参考存储器读写实验。9、5V电源插针为了减少主机5V电源的负担和各主要芯片的安全,在主要接口芯片的左上角都有相应的电源连接插针(标记为5V),当实验需要该芯片时,用短路块短接插针即可接通5V电源。对用不到的芯片可将短路片拔掉,以确保芯片安全。10、20芯扩展插座JP5和JP6实验台上有5个20芯扩展插座,分别标有JP5、JP6、JC1、JC2、JT1、JJD1。其中JP5和JP6是总线扩展插座,JP5是8位数据线、I/O读写和A0、A1,JP6是扩展地址线A2A19。JP5各引脚信号如下:JP6各引脚信号如下:11、20芯扩展插座JC1、JT1、JD120芯扩展插座JC1、JT1、JD1各引脚信号与JP5一一对应,分别是存储器实验、8279、简单并口扩展和电机测速计数时的数据线。做以上三种实验时分别将JC1、JT1、JD1用20芯电缆与JP5相连。12、20芯扩展插座JC2JC2各引脚信号与JP6各引脚信号一一对应,是存储器实验时A2A19扩展地址线。2.2 设计系统软件环境2.2.1 TPC-UP集成开发环境软件包TPC-UP集成开发环境是由清华大学科教仪器厂自主开发。它提供了用户程序的编辑和编译,调试和运行,实验项目的查看和演示,实验项目的添加等功能,方便了学生和老师实验程序的编制和调试。本软件基于windows环境,界面简洁美观,功能齐全,使用方便。本软件提供了完整的安装软件包,直接双击安装程序,按照提示回车直至安装结束即可。2.2.2用户程序的编辑和编译 TPC-UP集成开发环境软件支持两种类型的程序开发:汇编程序(.asm文件)和C语言程序(.cpp, .h文件)。除了一般的编辑功能外,本软件还支持语法高亮,大大提高了程序的可读性。用户编辑好程序并保存后,即可方便地进行编译。在本次实验中,我们主要是用C语言程序进行编辑的,主要用到Microsoft Visual C+ 6.0软件。并在此基础上,利用VC编程技术,编写控制界面。2.2.3用户程序的调试和运行 C语言程序的调试 大多数实验所用的程序需要用到配套的Visual Studio生成的静态链接库(.lib)或动态链接库(.dll)文件,因此本软件采用了Visual C+6.0的调试系统。 Visual C+6.0软件的具体操作可参考Visual C+6.0的相关书籍,这里不再加以说明。 第3章 设计原理本次课程设计目的是用VC实现直流电机调速系统,该系统分为VC控制面板控制和键盘控制两部分;当VC控制面板控制或键盘控制给出所需转速后,小直流电机进行调速,在调速过程中控制面板、LED、七段显示码分别实时给出电机的状态和其转速,与此同时,电机测速系统同步测速,与给定转速相比较,并通过PID控制进行实时调速,使电机快速准确的达到给定的转速。具体过程如图-7所示:图-7由图-7所示,设计内容分为直流电机转速控制、直流电机测速、键盘控制、七段显示码显示和LED控制等几个主要的模块和PID控制这6个部分进行介绍。3.1直流电机转速控制3.1.1直流电机转速控制的基本原理直流电机的转速是由Ub输出脉冲的占空比来决定的,正向占空比越大转速越快,反之越慢。见下面图例:在实验中,模拟量输出Ub为双极性,当输入数字量小于80H时输出为负,输入等于80H时为0V,输入大于80H时输出为正。在本实验中,DAC0832输入数字量由程序中的命令给定,通过不同的延迟时间达到改变小电机转速的目的。3.1.2 DAC0832芯片介绍3.1.3 8255芯片介绍3.1.4 实验原理图图-81、按图-8线路接线。DAC0832的CS接290H297H,Ub接DJ插孔。8255 CS接288H28FH。2、编程利用DAC0832输出一串脉冲,经放大后驱动小直流电机,利用程序中的命令改变输出脉冲的电平及持续时间,达到使电机加速,减速之目的。3.2 直流电机测速3.2.1 光电测速基本原理光电测速的基本电路由光电传感器、计数器和定时器组成。测量时在被测电机主轴上固定一个圆盘,圆盘的边缘上打上小孔。传感器的红外发射端和接收端装在圆盘的两测,电机带动圆盘转到有孔的位置时,红外光通过,红外接收管导通,输出低电平。红外光被挡住时接收管截止,输出高电平。用计数器记录在一定时间内传感器发出的脉冲个数就可以计算出电机转速。计数和定时部分主要由芯片8253来实现其功能。3.2.2 芯片8253介绍 在本次课程设计中,我们主要利用8253计数器0和计数器2组成定时器,用8253的计数器1进行计数。3.2.3 实验原理图:1.实验线路图-9如下2. 接线方法:用20芯扁平电缆连接JP5与JD1,8253CLK0接1MHZ、OUT0接CLK2、OUT2接8255的PC0、GATE0和GATE2接5V,8253CS接280H287H,8255PC7接293的CLR,“计数”接地,8255CS接288H28FH,JP5附近“BB”接2A0H2A7H,“AA”接2A8H2AFH, JD2的23短接并接CLK1口。3. 编程:利用74LS393计数器电路,记录脉冲个数,8253定时器0和定时器2组成5秒定时器,测量在一定时间内脉冲个数,以转/分钟为单位显示在屏幕上。图-9 3.3 键盘控制3.3.1 键盘控制的基本原理利用扩展板上提供的8279以及键盘和七段数码显示电路设计键盘控制电路。当键盘按下键后,通过74138芯片进行编码,由8279完成读键盘操作,并利用程序来实现键盘控制电机转速和数码管显示的目的。3.3.2 实验原理图1.实验线路图-10如下2.接线方法:用20芯扁平电缆连接JP5与JT1,8279CS接2B0H27BH,用8芯电缆连接“键盘”(4X4键盘上方)与“8279键盘”,连接“8279段码”与数码管“段码”,“8279位码”与数码管“位码”。3.编程:利用8279读键盘的功能,用键盘来控制电机的转速,并同时控制七段显示码的显示,实现转速的控制及转速的显示。 图-103.4 七段数码管显示 3.4.1 七段数码管显示基本原理七段数码管显示实验主要是利用数码管的显示数字的原理,结合8255数据传输功能实现直流电机转速的实时显示。3.4.2 七段数码管简介1、实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。2、七段数码管的字型代码表如下表:3.5 LED控制 LED显示主要是利用LED在高低电平下亮灭状况及不同颜色的LED来显示直流电机工作于不同状态。在显示不同状态时,通过8255芯片在程序控制下进行数据传输,以达到动态显示不同工作状态的目的。其电路连接如图-11。图-113.6 PID控制3.6.1 PID控制简介 PID的特点(1)是连续系统中技术最成熟、应用最为广泛的一种调节方式。(2)结构灵活(PI、PD、PID)(3) 参数整定方便。(4)适应性强。 (5)用计算机模拟PID方法可行。 (6)不用求出数学模型。 (7)人们对PID规律熟悉,经验丰富。P、I、D三作用调节器,在阶跃信号的作用下,首先产生的是比例微分作用使调节作用加强。而后进入积分,直到最后消除静差。因此,PID调节从动态、静态都有所改善,他是应用最广的调节器。PID调节算法适用于模拟调节系统,由于计算机系统只能接收数字量,因此,要想在计算机系统中实现PID调节,还必须把PID算法数字化,然后才能用计算机实现。图-12图-12所示为离散化的增量型PID编程流程图。在编写程序过程中可根据以上流程来编写程序。由于计算机控制系统的灵活性,除了按式(2-11)和式(2-12)进行标准的PID控制计算外,可根据系统的实际要求,对PID控制进行改进,以达到提高调节品质的目的。下面介绍几种发展的PID算式。不完全微分的PID积分分离的PID变速积分的PID带死区的PID比率PID在数字控制系统中,参数的整定是十分重要的,调节系统中参数整定的好坏直接影响调节品质。 一般的生产过程都具有较大的时间常数,而数字PID控制系统的采样周期则要小得多,所以数字调节器的参数整定,完全可以按照模拟调节器的各种参数整定方法进行分析和综合。但是,数字控制器与模拟调节器相比,除了比例系数KP、积分时间TI和微分时间TD外,还有一个重要的参数采样周期T需要很好的选择。合理的选择采样周期T,也是数字控制系统的关键问题之一。由香农(Shannon)采样定理可知,当采样频率的上限为f s2fmax时,系统可真实地恢复到原来的连续信号。 从理论上讲,采样频率越高,失真越小。但从控制器本身而言,大都依靠偏差信号E(k)进行调节计算。当采样周期T太小时,偏差信号E(k)也会过小,此时计算机将会失去调节作用。采样周期T过长又会引起误差。因此,采样周期T必须综合考虑。影响采样周期T的因素有:(1)加至被控对象的扰动频率的高低,扰动频率愈高,采样频率也应相应提高,即采样周期缩短。(2)对象的动态特性,主要与被控对象的纯滞后时间及时间常数有关。当纯滞后时间比较显著时,采样周期T与纯滞后时间基本相等。(3)数字控制器D(Z)所使用的算式及执行机构的类型,如采用大林算法及应用气动执行机构时,其采样周期比较长,而最快无波纹系统及使用步进电机等的采样周期就比较短。(4)控制的回路数,控制的回路越多,则T越大,否则T越小。(5)对象要求的控制质量,一般来说,控制精度要求越高,采样周期就越短,以减小系统的纯滞后。(6)对于多回路系统,以采样周期T大的通道T做为系统采样周期T。 采样周期的选择方法有两种,一种是计算法,一种是经验法。计算法由于比较复杂,特别是被控系统各环节时间常数难以确定,所以工程上用得比较少。工程上应用最多的还是经验法。 所谓经验法实际上是一种凑试法。即根据人们在工作实践中积累的经验以及被控对象的特点、参数,先粗选一个采样周期T,送入计算机控制系统进行试验,根据对被控对象的实际控制效果,反复修改T,直到满意为止。经验法所采用的采样周期,如表2.1所示。表中所列的采样周期T仅供参考。由于生产过程千变万化,因此实际的采样周期需要经过现场调试后确定。 本次课程设计我们所采用的参数就是通过经验法来确定的。3.6.2 PID控制在本次课程设计中的应用在本次课程设计中我们是根据PID控制的基本原理,通过离散化的增量型PID编程流程图进行编程的;在参数设定时,运用经验法进行参数设定。最后,确定PID算法及其参数。第4章 设计方案与具体实施4.1 总体设计方案在这次课程设计中,根据设计要求我们定下了如下的设计方案:根据原理分析,将总体设计分为直流电机调速、电机工作时的状态转速显示、键盘控制 、直流电机测速、双系统控制显示、直流电机测速、PID控制调速、速度曲线绘制和VC控制面板制作这几个方面来设计。在设计过程中,我们先进行直流电机调速、电机工作时的状态转速显示、键盘控制 ;在完成的前提下,完成双系统控制显示;之后进行直流电机测速和PID控制测速方面的设计;最后进行速度曲线的绘制;而VC控制面板的制作是伴随着前面几个方面的设计进行的。至于各部分的具体实施步骤在后面给出详细说明。4.2 直流电机转速控制直流电机转速控制是利用芯片0832和8255的功能完成电机转速控制,其工作原理已在设计原理部分给出,下面主要交易流程图的形式给出其具体实施步骤: 直流电机转速控制流程图4.3 七段数码管显示 七段数码管的显示原理见设计原理部分,该部分编程流程图如下: 七段数码管显示程序流程图4.4 键盘控制键盘控制主要有芯片8255、8279等工作的,其工作原理在设计原理部分已经给出,以下以流程图的形式给出其具体实施步骤: 键盘控制程序流程图4.5 LED显示状态 LED显示电机的工作状态主要是通过8255利用程序对于控制,其流程图如下: LED显示状态程序流程图在LED显示电机状态如下:启动电机:两绿灯亮。第一档:两黄灯亮,同时亮一红灯。第二档:两黄灯亮,同时亮两红灯。第三档:两黄灯亮,同时亮三红灯。第四档:两黄灯亮,同时亮四红灯。微调+:两黄灯加一绿灯亮。微调-:两黄灯加一红灯。暂停: 四个红灯亮。切换键盘:灯全亮。4.6 直流电机测速 直流电机测速主要是用芯片8253和8255来实现其功能,其程序流程图如下:4.7 PID控制PID控制主要是用于直流电机调速,使其能快速准确的达到所给定的电机转速值,其程序流程图如下: PID控制流程图4.8 其他 双系统操作使用程序将键盘控制和控制面板控制两程序有机结合起来构成双系统操作的。速度曲线绘制没完成,之后用程序将速度曲线读出,用MATLAB软件画出的。而VC面板是在熟悉VC编程之后将原有C语言所编的程序装换过去即可。第5章 设计结果及分析1、 经过两周多时间的努力,本次课程设计基本达到设计要求,具体结果是:2、 用VC编写出直流电机控制面板。控制面板如下:3、 设计结果能进行双系统控制。4、 七段数码管能实时显示电机工作状态机转速。5、 控制面板上能实时显示电机工作状态及转速,并能实时进行测速。6、 PID控制能有效改善直流电机调速性能。调整PID的实时曲线如下 7、 LED能实时显示电机工作状态。不足之处:1、 电机测速存在问题,不能稳定的测出电机转速,后需另一套设备检验了程序,程序稳定性不够好。2、 速度实时测速曲线程序没有设计出来。3、 PID控制程序是借助于另一套设备上完成调试的 。分析:电机测速不稳定,是由于测速程序还存在漏洞,且实验箱上芯片存在问题使得测速部分不能正常工作,从而影响了PID控制部分和速度实时曲线的绘制;同时,由于本身对VC软件的知识了解太少,是没能完成绘图根本原因。除此之外,完成了设计要求的其他部分,同时增加了控件实时测速和LED显示电机工作状态的功能,基本达到课程设计目的。第6章 设计总结 历经两周的机电系统课程设计,让我们学到了很多机电系统设计方面的知识。我们所设计的内容是用VC实现直流电机调速系统,所使用的是与其配套的TPC-UP实验箱;其设计是基于计算机控制课程的学习,并在此基础上应用VC编程实现系统控制。在设计过程中,经常碰到关于控制芯片的应用知识,如8255、8253、DAC0832、8259等芯片的使用,这里涉及到各芯片的工作命令和方式命令的设定;因此,要完成课程设计要求,必须对计算机控制中相关知识有比较深入的了解。虽然,在设计过程中我们碰到了很多问题,但经过同学和老师的帮助基本上完成了课程设计的要求,用VC编写控制界面以同时实现电机速度的给定,并加入PID调节算法,实时显示测量速度和电机工作状态;虽然未能实现曲线实时显示测量速度,但仍通过读实时测量数据实现绘制实时测速曲线功能。这次课程设计不仅达到考察我们所学知识的目的,同时对我们将来所从事工作学习均有很大的帮助。附录一 机电系统设计日志3月10日:确定课程设计的题目,了解自己所要做的项目,查找课程设计所需的书籍材料,对课程设计有大概的了解。3月11日:确定所作题目所包含的主要内容,确定本组课程设计的研究方向及方案,并根据要求开始做与实验相关的实验,完成了小直流电机转速控制实验、键盘显示控制实验、七段数码管实验等与TPCUP实验箱相关的基础实验,熟悉了实验箱的部分功能。3月12日:做小直流电机测速实验,发现实验指导书所给的材料无法完成实验。之后放弃小直流电机测速实验,开始在C+环境下编写小直流电机转速控制实验。在实验过程中,将C+环境下无法完成任意速度控制,将转速控制转换不同速度的党委控制,即系研究。3月13日:向老师咨询有关小直流电机测速实验的内容,初步解决测速实验的编程与接线问题。同时,在C+环境下将直流电机转速在七段显示码中的显示程序和在C+程序中的显示结果编写出来,初步完成显示部分要求。3月14日:在C+环境下,编写键盘控制程序,成功后开始编写键盘和电脑双系统控制,经一天的努力基本完成双系统的转速控制及其显示部分程序。除此之外,开始进入小直流电机测速部分程序的研究。3月15日、3月16日休息;3月17日:继续小直流电机测速部分程序的编写,由于实验中遇到种种困难,决定先进行VC控制面板的设计。在当天完成了VC控制面板控制控制的基本功能。3月18日:继续设计VC控制面板,完成了键盘与控制面板双系统控制,能进行正常的速度控制及速度、工作状态的显示,同时完成在七段显示码中的显示操作。和老师一起讨论直流电机测速问题的解决方法。3月19日:改造实验箱,开始测速部分程序的编写,虽经过一天的奋斗,但仍然未为完成测速部分程序。3月20日:继续测速程序的编写,经过方书明的指导程序部分有了很大的进展,但仍存在测速数据不对的问题,考虑到时间问题开始着手PID控制部分设计。3月21日:PID控制部分基本完成,由于测速部分存在问题无法进行PID控制程序的检测,着手绘制电机速度曲线部分,由于所学字是有限,当天下午基本是在查阅VC中有关画图的内容。3月23日:开始画图程序的编制,但一则该部分知识很贫乏,二则自己的测速程序还存在问题,最终空有绘图的模版,但未能编出绘图程序。3月24日:验收3月25日:编直流电机速度值采集程序,最终编写出测试电机速度程序,采集各不同工作状态下的速度变换数值,并绘制了曲线。附录二 设计成果1.VC控制面板2. PID实时调节曲线 如图所示,当给定速度为40时,在PID调节下,调速曲线有明显的改善,如图中P=0,I=O,D=0组与P=92,I=60,D=30组相比较可明显看出,在PID调节下,曲线快速达到设定速度,但不同的PID所调节的效果也不相同,如P=92,I=60,D=30组与其他组相比较,其效果明显高于其他组的效果。这原因主要是因为比例调节具有调节及时、调节作用强但不能消除静差的特点;而积分调节其调节作用的输出与偏差存在的时间有关,只要偏差存在调节器的输出就会随时间增长,直至偏差消除。所以,积分作用能消除静差。但积分作用缓慢,且在偏差刚刚出现时,调节作用很弱,不能及时克服扰动的影响,致使被调参数的动听偏差增大,因此,很少单独使用;微分调节其输出只能反映偏差出入变化的速度,对于一个固定的偏差,不论其数值多大,都不会引起微分作用,因此,它不能消除静差,而只是在偏差刚刚出现时产生一个大的调节作用。所以不同的PID调节所产生的效果不同,在本次试验中通过反复实验发现当P=92,I=60,D=30其调节效果最佳。3. 调试结果 调试的最终结果实现了用VC实现的直流电机调速系统的设计,利用实验箱 的键盘和控制面板双系统实现电机速度的给定、利用七段数码管显示模块实现电机速度给定的显示和电机的测速显示、利用DA模块控制电机调速并利用8255和8253定时计数即实现电机的测速。在电机速度的给定中,加入PID调节算法,并利用曲线实现显示测量速度的实时显示。附录三 软件源程序/ ShejiDlg.cpp : implementation file/#include stdafx.h#include Sheji.h#include ShejiDlg.h#include #include #include ApiEx.h#include #defineioport0x2b0/8279 数据口#defineioport10x2b1/8279 控制口#pragma comment(lib,ApiEx.lib)#ifdef _DEBUG#define new DEBUG_NE#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifint i,k,temp;intled= 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x67,0x37,0x73,0x31,0x3E,0x36,0x66,0x80,0x00;/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CShejiDlg dialogCShejiDlg:CShejiDlg(CWnd* pParent /*=NULL*/): CDialog(CShejiDlg:IDD, pParent)/AFX_DATA_INIT(CShejiDlg)m_strsudu = _T();m_strxianshi = _T();m_dangvalue = 0;m_djsdvalue = 0;m_Pvalue = 0;m_Ivalue = 0;m_Dvalue = 0;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);/m_nClickCount=0;void CShejiDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CShejiDlg)DDX_Text(pDX, IDC_sudu, m_strsudu);DDX_Text(pDX, IDC_xianshi, m_strxianshi);DDX_Text(pDX, IDC_dang, m_dangvalue);DDX_Text(pDX, IDC_djsd, m_djsdvalue);DDX_Text(pDX, IDC_P, m_Pvalue);DDX_Text(pDX, IDC_I, m_Ivalue);DDX_Text(pDX, IDC_D, m_Dvalue);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CShejiDlg, CDialog)/AFX_MSG_MAP(CShejiDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_star, Onstar)ON_BN_CLICKED(IDC_first, Onfirst)ON_BN_CLICKED(IDC_second, Onsecond)ON_BN_CLICKED(IDC_third, Onthird)ON_BN_CLICKED(IDC_fourth, Onfourth)ON_BN_CLICKED(IDC_stop, Onstop)ON_BN_CLICKED(IDC_weiadd, Onweiadd)ON_BN_CLICKED(IDC_weisub, Onweisub)ON_BN_CLICKED(IDC_key, Onkey)ON_BN_CLICKED(IDC_tuichu, Ontuichu)ON_BN_CLICKED(IDC_help, Onhelp)ON_BN_CLICKED(IDC_sudu, Onsudu)ON_BN_CLICKED(IDC_xianshi, Onxianshi)ON_EN_CHANGE(IDC_dang, OnChangedang)ON_BN_CLICKED(IDC_ensure, Onensure)ON_EN_CHANGE(IDC_djsd, OnChangedjsd)ON_BN_CLICKED(IDC_cskey, Oncskey)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CShejiDlg message handlersBOOL CShejiDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CShejiDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CShejiDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绍兴市诸暨市第一批机关事业单位编外招聘68人模拟试卷及答案详解1套
- 2024-2025学年度公安消防队每日一练试卷含答案详解(精练)
- 2025年摩托技巧考试题及答案
- 2025年新能源企业绿色品牌建设与市场竞争力报告
- 2025年新能源行业工业互联网设备预测性维护技术报告
- 某县亲商爱商优化投资环境典型经验材料
- 跨行业培训需求调研问卷模板
- 专业煤电开发分公司三方协议5篇
- 光大银行芜湖市镜湖区2025秋招群面模拟题及高分话术
- 民生银行深圳市龙华区2025秋招笔试热点题型专练及答案
- 三垦变频器说明书
- XX旅行社企业介绍模板
- 冲压质量培训
- 2025年辽宁交投集团招聘笔试参考题库含答案解析
- 设备维护与保养手册
- 喷雾干燥塔操作规程模版(3篇)
- 《天疱疮诊断及治疗》课件
- 学校教代会代表换届选举方案
- 现代交换原理第二章
- 2024版工业润滑油销售协议范例版
- 企业级智能数据分析系统开发与服务合同
评论
0/150
提交评论