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

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

首先弄清楚PID是一种控制算法!!!
1,“如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感器反馈,这样算是一个自动控制吗”你这是控制系统,但是效果会非常差,尤其是对于温度控制这种大惯性系统,达到预定值就停止加热,但是由于惯性,温度肯定会继续上升,电炉烧水的时候,水开了,断电之后水还要沸腾一定时间的(沸腾是很消耗能量的,由此可见如果是加热的话温度上升更严重,你也可以自己用温度计试试看);“低了就加热”是同样的道理。如果系统对控制精度有要求,你这样做肯定达不到要求。PID是一种控制算法,相对于其他控制算法来说算是最简单的了。PID能够做到在温度快要达到设定值的时候降低加热功率,让温度上升速度变慢,最终稳定在设定值。如果用你的直接控制,温度会在设定值上下振荡,永远不会停在设定值。
2,一般的控制系统都需要加反馈,以构成闭环控制系统,相对的还有开环控制系统。开环控制系统,举个例子,就是你加热的时候事先计算好大约需要多少热量,然后考虑一下环境影响,计算出加热时间,然后控制加热系统按照你这个时间加热。你觉得这样的系统能够稳定工作吗?环境稍稍有变动就挂了!开环控制系统的特点就是很容易受到环境的影响;闭环控制系统就稳定很多,你用1L水可用,2L水也行,500W电能用,1000W电炉也能用,这就是闭环的优点。
因此,大多数的控制系统都是闭环的,开环很少单独使用,即使用到了也是有闭环的。开环其实也是有优点的,开环在控制系统里面叫做前馈(跟反馈对应的),比如你的系统里面电源电压上升了,加热速度肯定会变快,如果你对电源电压采样,将采样的结果输入到闭环里面,对闭环做一个轻微的修正,控制的精度会更好,这就是开环的优势,它是超前的,能够预知结果(根据地源电压提高就能知道需要降低输出功率了)。
说完这些,你应该明白了,反馈是必需的(前馈也可以要,但是不是必需的),PID不能被取代(除非你用其它更复杂的控制算法)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-23
at89c51属于单片机,它的硬件设计是不支持pwm的,但是你可以通过软件编程输出pwm的驱动脉冲。
如果楼上的想实现pwm,不妨使用专业的dsp芯片,比如ti
的tms320
f2812。
它可以驱动两个pwm桥,输出电压型pwm的控制脉冲。
实在要用at89c51,可以参考一下张崇巍,张兴的一本书,看看控制脉冲怎么生成,书名叫《pwm整流器及其控制》,32开的,写的比较详细。
第2个回答  2020-02-03
毕业设计?呃!
相似回答