单片机PID控制问题

1.单片机在自动控制上有用到PID,比如一个恒温发热系统也可以用PID控制,但我用到现在单片机没用过PID,如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感器反馈,这样算是一个自动控制吗?为什么有的用PID?是不是用PID要更精确?
2.我感觉很多单片机控制中可以用传感器反馈再用单片机逻辑判断,能简单的代替PID吗??
哪位能简单讲下用单片机PID算法控制PWM,进行恒温系统的方法?
就是PWM参数是怎么用PID确认的??
回答了再加分。

1.这当然算是自动控制,因为你是根据监测结果与预定值比较之后自动实现加热的;因为你从发出加热的信号到实现加热到达理想状态的过程是一个动态的过程,是有一个响应的过程,如果用PID控制,会更快,更平稳的到达这个稳定的状态,减小对系统的冲击;你调节的精确程度不仅仅与你的PID环节有关,还与你的传感器精度有关,用PID调节只能让你更快,更平稳的到达稳定的预想状态,不能单纯的说会让调节更精确。
2.不能代替,因为传感器反馈只是传回了实时的检测结果,更精确的检测结果只能提高你检测的灵敏度,而不能决定你的整个过程超调时间和稳态误差。
补充问题的回答:PID算法控制PWM:这个其实并不难,我做过温控项目,大概的意思是,离预设值较大时(比如预设50度,现在0度),可以全速加热(加热装置一直导通),离预设值较近时(预设50度,现在35度),可以加热六秒,关断四秒,(占空比控制用定时器开始计时的寄存器控制),离预设值非常近时(预设50度,现在48度),可以加热一秒,关断九秒,这样会防止你加热过渡,因为你没有制冷装置,所以离预设值较近时,要慢点加热。具体的PID算法控制PWM还要你多实验,多比较之后才能决定。我也只能提供一个思路。
哎呀,打字太辛苦了,希望你能满意吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-08
首先弄清楚PID是一种控制算法!!!

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

说完这些,你应该明白了,反馈是必需的(前馈也可以要,但是不是必需的),PID不能被取代(除非你用其它更复杂的控制算法)。本回答被提问者采纳
第2个回答  2010-11-08
PID要比其他方法精确的多。用传感器反馈再用单片机逻辑判断是很不精确的
第3个回答  2010-11-08
我给你举个简单的列子吧,要保持物体匀速行驶!就必需用PID 调速度,不光有反馈信号,而且还反馈需要加减的量。
第4个回答  2021-02-11

单片机C语言Pid闭环调速控制,加干扰竟还能调回来,太神了吧