基于单片机AT89c51的数字PID控制直流电机PWM调速系统C语言程序

控制算法主要是要用到数字PID,可以进行按键启动和停止、加减电机速度、实现电机正反转,用液晶显示器1602显示直流电机的速度。
谢谢!急!!!!!急!!!!!急!!!!!希望大侠帮助,感激不尽!!!!!


首先弄清楚PID是一种控制算法!!!

1,“如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感器反馈,这样算是一个自动控制吗”你这是控制系统,但是效果会非常差,尤其是对于温度控制这种大惯性系统,达到预定值就停止加热,但是由于惯性,温度肯定会继续上升,电炉烧水的时候,水开了,断电之后水还要沸腾一定时间的(沸腾是很消耗能量的,由此可见如果是加热的话温度上升更严重,你也可以自己用温度计试试看);“低了就加热”是同样的道理。如果系统对控制精度有要求,你这样做肯定达不到要求。PID是一种控制算法,相对于其他控制算法来说算是最简单的了。PID能够做到在温度快要达到设定值的时候降低加热功率,让温度上升速度变慢,最终稳定在设定值。如果用你的直接控制,温度会在设定值上下振荡,永远不会停在设定值。
2,一般的控制系统都需要加反馈,以构成闭环控制系统,相对的还有开环控制系统。开环控制系统,举个例子,就是你加热的时候事先计算好大约需要多少热量,然后考虑一下环境影响,计算出加热时间,然后控制加热系统按照你这个时间加热。你觉得这样的系统能够稳定工作吗?环境稍稍有变动就挂了!开环控制系统的特点就是很容易受到环境的影响;闭环控制系统就稳定很多,你用1L水可用,2L水也行,500W电能用,1000W电炉也能用,这就是闭环的优点。
因此,大多数的控制系统都是闭环的,开环很少单独使用,即使用到了也是有闭环的。开环其实也是有优点的,开环在控制系统里面叫做前馈(跟反馈对应的),比如你的系统里面电源电压上升了,加热速度肯定会变快,如果你对电源电压采样,将采样的结果输入到闭环里面,对闭环做一个轻微的修正,控制的精度会更好,这就是开环的优势,它是超前的,能够预知结果(根据地源电压提高就能知道需要降低输出功率了)。

说完这些,你应该明白了,反馈是必需的(前馈也可以要,但是不是必需的),PID不能被取代(除非你用其它更复杂的控制算法)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-25
先百度吧,实在不会留QQ,我做过过,可以帮你追问

紧急情况!弄不出来!

第2个回答  2011-05-25
即使给你现成的也不一定合适吧追问

差不多就行……可将就着改正一些,编写这个实在受不了,看到就讨厌!

谢谢!

第3个回答  2011-05-25
毕业设计?呃!

基于单片机AT89c51的数字PID控制直流电机PWM调速系统C语言程序
首先弄清楚PID是一种控制算法!!!1,“如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感器反馈,这样算是一个自动控制吗”你这是控制系统,但是效果会非常差,尤其是对于温度控制这种大惯性系统,达到预定值就停止加热,但是由于惯性,温度肯定会继续上升,电炉烧水的时候,水...

求:用AT89C51单片机实现直流电机PWM调速原理图,protues仿真、程序
\/***\/ \/***控制位定义***\/ uchar code smg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};\/\/程序存储区定义字型码表 char data led[4]={0x08,0x04,0x02,0x01}; \/\/位码 uint x; \/\/数码管显示的数值 display(); \/\/数码管显示 delays()...

设计基于单片机控制的直流电机闭环PWM调速系统
摘要:基于AT89C51单片机的直流电机调速设计采用目前市场上性能价格比较高的51单片机作为主控部分。同时利用PWM控制直流电机转速。并通过共阴极数码管显示出来。主要有单片机最小系统模块、LED显示模块、PWM电机转速控制模块和电源模块组成。通过调节输出矩形波的占空比来控制直流电机转速。使用简单的电路实现了智能速...

基于at89c51系列单片机的两路互补SPWM波形实现,程序如何编写?要求频率5...
PWM1=0;\/\/一个管脚置低 PWM2=1;\/\/另一个管脚置高 TR0=1;中断程序中:TH0=...TL0=...PWM1=!PWM1;PWM2=!PWM2;

步进电机控制程序
AT89C51单片机,步进电机驱动器L298N驱动,实现单片机识别并输出显示键盘输入的数据信息(转角)并产生连续脉冲控制步进电机转动,电机型号是两相步进电动机42BYG121,其步进角为1.8度,通过半步驱动方式进行细分可获得0.9度的步进角;环形分配器和电机驱动器...控制器接收到上位机的命令后,首先获取需要...

怎样用单片机控制直流电动机
1、通过设置PWM波的占空比来控制直流电机的转速,占空比越大,转速越快,越小转速越低。2、当然单片机的I\/O口是不能直接驱动电机的,所以你还需要用一个马达驱动芯片。像LG9110、CMO825等。马达驱动IC可以将单片机I\/O输出信号放大,这样电机中流过的电流足够大,电机才能转起来。3、你要是不清除PWM是...

这是一个直流驱动电机电路图,其中P20是AT89C51的引脚,PWM输入到电路中...
P20是51单片机IO口出来的电压,这里默认为5V,电路图中P20输出的电流为(5-0.7)\/1000=4.3mA,0.7为Vbe的导通电压(估算值)。R16起限流作用,这里主要是为了使三极管工作在饱和区,起开关作用。Ic≈12\/10000=1.2mA,所以根据Ib=Ic\/β,从手册里可以看到此时的8050的β大约只有10,所以当Ib大于1...

利用单片机AT89C51与ADC0808设计一个数字电压表,能够测量0~5V的直流电...
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了...

51单片机输出pwm脉宽怎么控制电流?
找个锂充控制IC看下你就明白PWM信号怎样转换的,很简单,就是利用占空比的时间长短来控制输出电压的高低,当然要外加电容和P管及电感之类的外围元件,总之,像0501锂充就是利用这种原理来工作的,看下它的厂家推荐电路你的明白了。

电子工程毕业论文
1.基于labVIEW虚拟滤波器的设计与实现 2.双闭环直流调速系统设计3.单片机脉搏测量仪 4.单片机控制的全自动洗衣机毕业设计论文5.FPGA电梯控制的设计与实现 6.恒温箱单片机控制7.基于单片机的数字电压表 8.单片机控制步进电机毕业设计论文9.函数信号发生器设计论文 10.110KV变电所一次系统设计11.报警门铃设计论文 12.51...

相似回答