⑴ PID算法怎么用
U不能代替V,它们有关联但不是同一个东东。
一般在自动控制中,控制模块(PID等)输出的是控制值,但不是输出值。它们的关系在于PID控制模块输出到PID输出的部分——这个部分,你初入门把它当成“另一个系统X或另一个单独的设备X”即可。系统X是接受U输入,再产生V输入。
拿个实际的例子来说,有个PID要控制水箱水位,上面有入水的水龙头,下方是出水口流出。这个水位就是V输入,通过某个测量器(水位计什么的)输入到PID。然后PID输出U,这里请注意!它的输出U接到水龙头,而水龙头给出的控制方式,是以它的水量影响水箱水位,最后绕回来,水位被测出以V输入到PID。
所以在这个系统中,除PID外,“水龙头-出水-水箱水位”可以视为一套单独的系统,PID以输出影响水龙头(水龙头排出的水量),再注意一下,水龙头对水箱水位的控制是不可预知的,因为不是小学数学题,没有恒定值。水龙头开了100%能产生的流量,可能是200,可能是180,也可能是170,更进一步在水箱中,因为排出量可能变化的影响,即例水龙头恒定了流量,水位也会波动,因此PID外部的“水龙头-出水-水箱水位”系统,可能会有不可预知的波动,但“大方向”是可预料的,比如这个系统,PID的U影响水龙头,间接对水位的大小是一个正向变化,U越大,水位V(输出值)在正常情况下加一个向上增值的影响。
考虑有个同学,他按“人工思考”的方式控制水箱水位,他的能力是可以操作水龙头,能看到水箱水位,相当于上面的U和V,现在BOSS要求他说,必须把水箱水位控制在40%这个位置(给定值),有误差可以,尽量控制。当他看到水位低于40%时,会把水龙头开大,然后根据水位的变化再调水龙头出水的大小,好吧他发现开了水龙头,水位从30%缓慢上升,他一想可能是下面出水太多,就会把水龙头拧大一点(D算法,偏差变化越大,正反向开得越大,I算法,经过一定时间累积值越大,调节U的力度越大),反之亦然,水位从30%向给定的40%上升的速度太快,他会想,快到40%前把水龙头拧小点,让出水和进水差不多。
说回你那个电机,它接受U,相当于“水龙头”,后面电机的输出不可能立即当成V送回PID,而是控制某个设备作正向或反向的增加量,比如这电机连接到一个送料器,控制容器送出给料,那就是个反向增量,PID系统测量出料的多少为V,同样的,由于现实系统的一些不确定性,经常会有另一个扰动加在送料系统上。PID的目的就是找出控制参数,尽量找到一个平衡点,令U对V的间接输出趋近PID的给定值
⑵ 怎样用PID算法对恒温箱的温度进行控制,求相关的51单片机汇编程序
本设计要求:本温度控制系统为以单片机为核心,实现了对温度实时监测和控制,实现了控制的智能化。设计恒温箱温度控制系统,配有温度传感器,采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输,采用了PID控制技术,可以使温度保持在要求的一个恒定范围内,配有键盘,用于输入设定温度;配有数码管LED用来显示温度。
技术参数和设计任务:
1、利用单片机AT89C2051实现对温度的控制,实现保持恒温箱在最高温度为110℃。
2、可预置恒温箱温度,烘干过程恒温控制,温度控制误差小于±2℃。
3、预置时显示设定温度,恒温时显示实时温度,采用PID控制算法显示精确到0.1℃。
4、温度超出预置温度±5℃时发出声音报警。
5、对升、降温过程没有线性要求。
6、温度检测部分采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输
7、人机对话部分由键盘、显示和报警三部分组成,实现对温度的显示、报警。
需要的话联系用户名扣扣
⑶ 怎样用PID算法对恒温箱的温度进行控制,求相关的51单片机汇编程序
本设计要求:本温度控制系统为以单片机为核心,实现了对温度实时监测和控制,实现了控制的智能化。设计恒温箱温度控制系统,配有温度传感器,采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输,采用了PID控制技术,可以使温度保持在要求的一个恒定范围内,配有键盘,用于输入设定温度;配有数码管LED用来显示温度。
技术参数和设计任务:
1、利用单片机AT89C2051实现对温度的控制,实现保持恒温箱在最高温度为110℃。
2、可预置恒温箱温度,烘干过程恒温控制,温度控制误差小于±2℃。
3、预置时显示设定温度,恒温时显示实时温度,采用PID控制算法显示精确到0.1℃。
4、温度超出预置温度±5℃时发出声音报警。
5、对升、降温过程没有线性要求。
6、温度检测部分采用DS18B20数字温度传感器,无需数模拟∕数字转换,可直接与单片机进行数字传输
7、人机对话部分由键盘、显示和报警三部分组成,实现对温度的显示、报警。
需要的话联系用户名扣扣