设计一种PID控制算法实现对海水流量的控制.docx
- 文档编号:9263483
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:243.71KB
设计一种PID控制算法实现对海水流量的控制.docx
《设计一种PID控制算法实现对海水流量的控制.docx》由会员分享,可在线阅读,更多相关《设计一种PID控制算法实现对海水流量的控制.docx(20页珍藏版)》请在冰豆网上搜索。
设计一种PID控制算法实现对海水流量的控制
摘要:
本文介绍了一种PWM结合数字PID算法在液体流量变量控制系统中的应用方案,系统以AVR单片机atmega32为核心,以比例电磁阀为控制对象,利用atmega32的PWM功能,采用数字PID调节实现液体流速闭环控制。
仿真结果表明采用PWM和数字PID控制液体流速具有良好的动态、稳态性,从而证明了这种设计的合理性和优越性。
关键词:
AVR单片机PWM PID比例电磁阀
1. 引言
液体流量控制通常采用电磁阀实现,近年来,电磁阀的结构和控制方式发生了很大的变
化,随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控制的开关功率元件进行脉宽调制(pulsewidthmodulation,简称PWM)控制方式得到了广泛的应用。
这种控制方式很容易在单片机中实现,从而为电磁阀的控制数字化提供了契机。
将偏差的比例(proportion)、积分(integral)、微分(differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称PID控制器。
PID控制器最早出现在模拟控制系统中,传统的模拟PID控制器是通过硬件(电子元件、气动和液压元件)来实现它的功能。
随着计算机的出现,把它移植到计算机控制系统中来,将原来的硬件实现的功能用软件来代替,因此称作数字PID控制器,所形成的一整套算法则称作数字PID算法。
数字PID控制器与模拟PID控制器相比,具有非常强的灵活性,可以根据试验和经验在线调整参数,因此可以得到更好的控制性能。
2. 液体流量控制系统组成
本系统采用AVR系列的atmega32单片机为核心,通过设置atmega32的PWM控制寄存器产生脉宽可调的PWM波,对比例电磁阀的输入电压进行调制,从而实现了对液体流量的变量控制。
单片机统过涡轮流量计采集实际流量信号,根据该信号在其内部采用数字PID算法对PWM控制寄存器的值进行修改,从而达到精确的变量控制。
为了防止外界干扰信号进入控制系统,单片机和涡轮之间采用光藕隔离,提高了系统的可靠性。
温度传感器和压力传感器用来做监测喷杆中的压力和温度。
通过4*4键盘和128*64液晶模块实现人机对话,便于用户操作。
系统原理图如图2-1所示:
3硬件部分
3.1PWM驱动电路
单片机输出的PWM脉冲信号分别经7406和7407输入到Q1,Q2的G极,在每个PWM周期的高电平区间,Q1导通,Q2截止,电磁阀导通。
在每个PWM周期的低电平区间,Q1截止从而切断了电源,电磁阀的感应电动势经Q2内部续流二极管形成回路。
此时Q2的G极为高电平但是由于二极管的钳位作用使开关二极管关闭,因此通过调整单片机的PWM波就可以实现电磁阀输入电压占空比的调节,从而实现对流量的调节。
3.2比例电磁阀
比例电磁阀在上世纪60年代末就已经得到了应用,最初是用于液压控制系统。
随着单片机和集成电路的发展,其逐渐应用到各种液体的流量控制中。
比例型电磁铁的工作原理如下:
线圈通电后,轭铁和衔铁内部产生磁通并产生电磁吸力,将衔铁吸向轭铁,同时衔铁上的弹簧受到压缩,当衔铁上的电磁力和弹簧力平衡时,衔铁停止位移。
比例型电磁铁的吸力在有效行程范围内和线圈的电流或电压大小具有线形关系。
因此通过调解输入的电流或者电压就可以控制其开口的大小,从而达到变量控制的目的。
本系统采用的比例电磁阀特性曲线如图3-1所示:
(Kvs代表比例电磁阀最大开口时的流量,Kv代表对应某一电压或者电流值时的流量值)。
图3-1
4. 软件部分
4.1PWM波的产生
设计采用单片机atmega32产生PWM信号。
atmega32的定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。
本设计采用快速PWM模式,快速PWM可以的到比较高频率的PWM输出,响应比较快,因此具有很高的实时性。
此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。
快速PWM模式的控制寄存器设置如下:
//输出端口初始化
PORTD=0x44;
DDRD=0x20;
//T/C1初始化
TCCR1A=0xC3;/*比较匹配时OC1A输出高电平,在top值时清零ICP下降沿捕捉,
时钟1/8分频(暂定),即工作在反相pwm模式*/
TCCR1B=0x0A;//10位快速pwm模式
TCNT1H=0x00;//startat0
TCNT1L=0x00;
4.2 PID算法
图4-1
常规的PID算法的基本原理如下图4-1所示,模拟PID控制器的控制规律为
图4-2
用C编程实现程序如下所示:
voidPID()
{floatu; //电压差值
sintz; //本次输出增量
sinttemp1; //临时记录值
floatt;
t=itime*T;
Speed_change(); //将流速转化为数字量
if(Ek==(0-Sheding_liusu)) //当Ek大于某一值时直接加最大
{temp1=0x0000;
SetOutputOCR1A(temp1);}//设置输出比较寄存器值
else{
Ek=Sheding_liusu-Celiang_liusu;
u=A*((Ek-Ek_1)+(t/B)*Ek+(C/t)*(Ek-2*Ek_1+Ek_2)); //增量式PID算法
z=u/U1*0x03FF;
temp1=GetOutputOCR1A(); //读取输出比较寄存器值
temp1=temp1+z;
SetOutputOCR1A(temp1);
Ek_2=Ek_1;
Ek_1=Ek;}
TCNT1=0x00;}
4. Matlab下的仿真
Matlab是控制系统的一种分析和仿真软件,利用它可以方便准确的对控制系统进行仿真,为了验证数字PID算法的可靠性,采用Matlab6.5下的simulink组件对增量数字PID算法进行了仿真,仿真程序如图5-1所示,仿真结果如图5-2所示.。
图5-1
如图5-2Kp=0.5,Ki=0.001,Kd=0.001
仿真结果表明运用PID对PWM方波进行调解具有良好的动态性和稳定性,从而证明了该液体流量控制系统得可行性。
6.结束语
本文介绍了运用数字PID算法结合AVR单片机的PWM功能实现液体流量控制的方案,并运用Matlab软件进行了仿真,证明了系统的可行性。
数字PID算法调整控制参数较之硬件PID控制器操作简便,系统设置灵活。
该控制系统可应用于工业、农业等领域的液体流量控制中,也可用于液压系统的电磁阀控制。
一、概述:
KLD-□□K□系列控制器是PID参数模糊自整定、高智能化、多功能调节、控制器。
广泛应用于石油化工、发电、集中供热等一切需要对温度、流量、液位、压力功率等参数进行PID调节、两位控制、时间控制的场所。
二、显示功能:
KLD-□□K□控制器采用8位数码管做显示器。
显示器按照功能分为两段,左边四位为第一段,右边四位为第二段。
第一段作为功能参数显示段,第二段为过程参数显示段。
各段左数第一位均为功能显示位。
功能位右边三位为参数显示位。
第一段功能位显示“C”的反像,其右边3位数字表示控制模式选择参数,有效值0~3,因此只有个位数有效。
“0”表示手动操作控制模式;“1”表示PID控制模式;“2”表示两位控制模式;“3”表示时间控制模式。
用户可根据需要设定该参数。
第一段功能位显示“P”,表示其右边三位参数是比例增益。
该参数可以人工设定初值,控制器按照模糊控制算法自动修正。
第一段功能位显示“L”,表示其右边三位参数是积分增益。
该参数可以人工设定初值,控制器按照模糊控制算法自动修正。
(积分通用符号应该是“I”,考虑到容易和“1”混淆采用“L”代替)
第一段功能位显示“d”,表示其右边三位参数是微分增益。
该参数可以人工设定初值,控制器按照模糊控制算法自动修正。
第一段功能位显示“C”,表示其右边三位参数是PID控制的给定值。
用户根据工艺要求,在可控制范围内自由设定该参数值。
第一段功能位显示“n”,表示其右边三位参数是两位控制的下限设定值。
用户根据工艺要求,在可控制范围内自由设定该参数值。
第一段功能位显示“U”,表示其右边三位参数是两位控制的上限设定值。
用户根据工艺要求,在可控制范围内自由设定该参数值。
第一段功能位显示“A”,表示其右边三位参数是定时设定值。
用户根据工艺要求,在可控制范围内自由设定该参数值。
第一段功能位显示“F”,其右边3位数字表示被控参数的上限报警值。
该参数对各种控制模式均有效。
用户根据工艺要求,在可控制范围内自由设定该参数值。
第一段功能位显示“F”的反像,其右边3位数字表示被控参数的下限报警值。
该参数对各种控制模式均有效。
用户根据工艺要求,在可控制范围内自由设定该参数值。
第一段功能位显示“F”的倒像,其右边3位数字表示手动操作控制器的输出信号值,有效范围是1%~99%。
在手动操作模式下,用户可通过键盘,改变控制器输出信号大小,从而达到调节被控参数的目的。
第二段功能位显示“A”的倒像表示其右边三位参数是控制器运行过程中,实时监测的过程参数。
三、控制功能:
0、手操控制:
用户通过控制器键盘,改变控制器的输出信号大小,从而改变控制对象的输入功率,达到修正被控参数的目的。
一般的说,手动操作只是作为PID控制的初级调整,以减小PID投入过程的超调幅度。
1、PID控制:
又称比例、积分、微分调节。
它可以实现对温度、湿度、液位、流量、压力、功率等过程参数进行无偏控制。
控制器根据控制对象特性,在用户设定的“P”“L”“D”参数基础上,再对PID参数按照模糊算法,进行实时自动调整,使控制器工作逼进优化状态,从而有效地缩短了过渡时间,减小了超调峰值,提高了控制系统的动态稳定性。
有效地克服了常规PID控制器的积分饱和现象,在很大的偏差范围内就可以投入PID自动控制模式(即在C:
的镜像参数中选“1”)。
控制器会自动地把被控参数稳定在给定值“C”附近。
稳态控制偏差可达量程的±1%。
2、两位控制:
又称回差控制,当控制器的测量值大于预先给定的上限值“U”时,控制器输出信号关闭控制对象的输入功率,当控制器的测量值小于预先给定的下限值“n”时,控制器输出信号开启控制对象的输入功率。
在连续生产过程中,如果在关闭控制对象输入功率期间,需要对控制对象进行某种人工操作,例如在轴承加热过程中,需要更换加热工件。
根据更换工件操作时间,合理设定控制器的下限值,使换完工件稍候,控制器自动送电,这样可免于每次重新复位控制器的繁琐,提高工作效率。
如果不希望在被控参数下限值处,控制器自动启动功率输入,可将被控参数下限值设定在环境参数以下,这样被控参数永远下降不到下限值,控制器不会自动启动输入功率。
3、时间控制:
对于线性定常系统进行断续控制时,利用计时,间接控制过程参数,可以省掉传感器。
例如:
机械设备的轴和轴承属于过渡配合,制造厂或检修单位在安装轴承时,需要对轴承进行加热处理,就可以通过对电磁加热装置的加电计时,控制轴承的加热温度。
为了免于在不同环境温度情况下,进行摸索温度和时间的对应关系,在加热第一个轴承时,建议先用两位控制。
设定好需要的温度上限值,下限值。
在这种模式下,控制器在给加热装置送电的同时开启计时器,左边四位数码管每一秒钟加一个数,当工件温度达到上限值时,控制器自动关闭加热电源,并停止计时。
左边四位数码管的数值即是加热工件所需要的时间,单位为秒。
用户可将该参数设定为时间控制模式的时间“A”值。
当加热第二个工件时,可以改用时间控制模式。
控制器在给加热器送电的同时,会把设定的“A”时间值显示在左边四位数码管上,并且减数进行倒计时。
当倒计时为零时,控制器自动关闭加热电源。
更换完工件,需要再加热,点击“CON”即可。
周而复始重复上述过程。
四、控制器技术指标:
1、测量范围:
0-999可调(根据用户要求)。
2、测量分辨率:
1个字。
3、测量精度:
±1%SPAN。
4、控制精度:
±3%SPAN。
5、测量输入通道:
Pt100铂电阻,一路。
E型或K型热电偶二路。
(路数及分度号用户可选)4-20mA输入两路。
可选择其中两路。
6、控制输出通道:
脉宽输出,可驱动固态继电器。
4-20mA输出,可驱动固态调压器、调节阀、变频调速器等一切可接收4-20mA标准信号的执行机构。
电平输出。
(用户可选,最多两路)。
7、控制算法:
PID(比例、积分、微分)一路。
两位控制,(回差控制)一路、二路(用户可选)。
总计不超过两路输出驱动。
五、控制器设定方法:
一般的说,控制器在投用之前,根据应用对象特性不同,需要对控制器参数进行设定,设定方法如下:
1、等待命令状态:
控制器加电后,自动进入等待命令状态,如果上次运行前已经对控制器参数进行过设定,并且本次运行不想改变上次参数,此时点击除“CON”键,控制器将按照上次设定模式立即投入运行。
“RST”键是复位键,而控制器具有加电复位功能,刚加电时刻控制器已经自动复位,再点击“RST”键控制器原地踏步。
六、控制模式设置
控制器加电后,连击两次“MOD”键,“模式”指示灯点亮,表示已进入“模式”设定状态。
第一显示段,功能位显示“C”的反像,提示是否进行“模式”参数设定。
如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,待设定参数个位闪烁显示,表示进入选位状态,再击“↓”键,”调整”指示灯点亮,表示现在可以进行模式数值设定。
该参数只有个位有效,其余数位均为零。
有效位只有“0”“1”“2”“3”可选。
“0”表示手操控制模式,“1”表示“PID”控制模式,“2”表示“两位”控制,“3”表示“时间”控制。
根据你想用控制器的哪一种模式,选其对应值。
当你确定了控制模式后,还需要对相应的控制模式的相关参数进行设定。
当然也可以把所有参数一并设置完毕保存,以备后来使用方便。
七、PID控制参数设定
1、比例参数设定:
连击“MOD”键,直至“比例”指示灯点亮,表示已进入“比例、积分、微分”控制设定状态。
第一显示段,功能位显示“P”提示是否进行比例参数设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再击“点击“↓”键,“调整”指示灯点亮,表示现在已经进入比例参数个位修改状态。
连击“↓”键,闪烁位连续加1,加到9再从0开始,在你认为合适的数值处停止击键,点击一次“←”键,“调整”指示灯熄灭,个位数设定完成,又进入选位状态。
再点击一次“←”键,十位数闪烁显示,再点击一次“↓”键,”调整”指示灯点亮,表示现在已经进入比例参数十位修改状态。
连击“↓”键,闪烁位连续加1,加到9再从0开始,在你认为合适的数值处停止击键,点击一次“←”键,“调整”指示灯熄灭,十位数设定完成,又进入选位状态。
再点击一次“←”键,百位数闪烁显示,再点击一次“↓”键,”调整”指示灯点亮,表示现在已经进入比例参数百位修改状态。
连击“↓”键,闪烁位连续加1,加到9再从0开始,在你认为合适的数值处停止击键,点击一次“←”键,“调整”指示灯熄灭,百位数设定完成。
到此比例参数设定完毕。
注意:
在参数设定过程中,如果你认为有的参数位不用修改,可直接点击“←”键进行下一位参数修改。
控制器进入运行状态时,输出“脉宽”指示灯、输出“电流”指示灯、“手操”指示灯应该有一个点亮,视模式状态设定而异。
2、积分参数设定:
在“调整”指示灯点亮状态下,点击“MOD”键,进入积分参数设定,此时“比例”指示灯仍然点亮,表示还在“比例、积分、微分”控制设定状态。
第一显示段,功能位显示“L”提示是否进行积分参数设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再击“↓”键,“调整”指示灯点亮,表示现在可以进行积分数值修改。
个、十、百位调整同上比例参数设定,不再重复。
3、微分参数设定:
在“调整”指示灯点亮状态下,点击“MOD”键,进入微分参数设定,此时“比例”指示灯仍然点亮,表示还在“比例、积分、微分”控制设定状态。
第一显示段,功能位显示“d”提示是否进行微分参数设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再点击“↓”键,“调整”指示灯点亮,表示现在可以进行微分数值修改。
个、十、百位调整同上比例参数设定,不再重复。
4、PID给定值设定:
在“调整”指示灯点亮状态下,点击“MOD”键,进入给定值参数设定,此时“比例”指示灯仍然点亮,表示还在“比例、积分、微分”控制设定状态。
第一显示段,功能位显示“C”提示是否进行给定值参数设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再点击“↓”键,“调整”指示灯点亮,表示现在可以进行给定值修改。
个、十、百位调整方法同上比例参数设定,不再重复。
八、两位控制参数设定:
1、下限值设定
在“调整”指示灯点亮状态下,点击“MOD”键,“位控”指示灯点亮,表示已进入“两位控制”参数设定状态。
第一显示段,功能位显示“n”提示是否进行“两位控制”的下限参数设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再击“↓”键,“调整”指示灯点亮,表示现在可以进行下限数值修改。
个、十、百位调整方法同上比例参数设定,不再重复。
2、上限值设定:
在“调整”指示灯点亮状态下,点击“MOD”键,“位控”指示灯点亮,表示已进入“两位控制”参数设定状态。
第一显示段,功能位显示“U”提示是否进行“两位控制”的上限参数设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待”调整”的个位数闪烁显示。
再击“↓”键,“调整”指示灯点亮,表示现在可以进行上限数值修改。
个、十、百位调整方法同上比例参数设定,不再重复。
九、时间控制参数设定:
1、在“调整”指示灯点亮状态下,点击“MOD”键,“时控”指示灯点亮,表示已进入“时间控制”参数设定状态。
第一显示段,功能位显示“A”提示是否进行“时间控制”参数设定。
如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再击“↓”键,“调整”指示灯点亮,表示现在可以进行时间秒数值修改。
个、十、百位调整方法同上比例参数设定,不再重复。
十、过程参数实时监测报警值设定
1、高限报警设定:
在“调整”指示灯点亮状态下,点击“MOD”键,进入高限报警参数设定,此时“高限”指示灯点亮,第一显示段,功能位显示“F”提示是否进行高限报警值设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再点击“↓”键,“调整”指示灯点亮,表示现在可以进行上限报警值修改。
个、十、百位”调整”方法同上比例参数设定,不再重复。
该值不得大于控制器量程上限值。
2、低限报警设定:
在“调整”指示灯点亮状态下,点击“MOD”键,进入低限报警参数设定,此时“低限”指示灯点亮,第一显示段,功能位显示“F”的镜像,提示是否进行低限报警值设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再点击“↓”键,“调整”指示灯点亮,表示现在可以进行低限报警值修改。
个、十、百位调整方法同上比例参数设定,不再重复。
该值不得大于控制器量程上限值。
十一、量程上限值设定:
在“调整”指示灯点亮状态下,点击“MOD”键,“量程”指示灯点亮,第一显示段,功能位显示“E”的镜像,提示是否进行量程上限值设定,如果否,可再击“MOD”键进入下一步提示,如果是,点击“↓”键,进入选位状态,待调整的个位数闪烁显示。
再击“↓”键“调整”指示灯点亮,表示现在可以进行量程上限值修改。
个、十、百位调整方法同上比例参数设定,不再重复。
(注意:
本参数,用户不得调整。
只能由厂家调整,因为要配合硬件变动)
十二、控制器投入运行:
参数设定好后,应注意在调整指示灯点亮状态点击“MOD”键进入模式设定状态,此时点击“CON”键,控制器将自动保存已经设定好的参数,而后进入控制程序运行。
如果控制器不是第一次运行,本次运行又不想改变上次设定,在控制器加电后,直接点击“CON”键,控制器立即投入运行。
十三、控制模式切换:
手操控制,一般作为PID控制投入的前期调整措施,在测量值与给定值的偏差比较小时切换到PID控制,可以使被控参数超调量减小。
如果用手动操作控制调整到被控参数的平衡点,再切换到PID状态,可以做到无扰动切换。
从PID状态切换到手动状态,直接改变“MOD”状态参数即可。
这就是业内人员所说的双向无扰切换。
连续生产过程中,手动操作控制与PID控制的相互切换比较频繁。
为了方便,避免在初始状态下点击冗长的菜单,该两种操作可在运行过程当中进行。
在运行过程中,点击“MOD”键,第一段功能位显示“C”的反像,其右边3位数字表示控制模式选择参数,有效值0~3,因此只有个位数有效。
“0”表示手动操作控制模式;“1”表示PID控制模式;“2”表示两位控制模式;“3”表示时间控制模式。
用户可根据需要设定该参数,进行MOD状态切换。
该菜单就两项,一是MOD参数选择完成状态切换,二是手动操作输出信号修正,在“调整”指示灯点亮状态下,点击“MOD”键,第一段功能位显示“F”的倒像,其右边3位数字表示手动操作控制器的输出信号值,有效范围是1%~99%。
用户可通过键盘,改变控制器输出信号大小,寻找被控参数的平衡点。
操作方法同前初始参数设定,不再重复。
十四、紧急切断控制对象输入功率:
控制器运行过程中,工艺上因为某种原因,可能需要立即切断控制对象的输入功率,只要点击“RST”键即可。
当然,能够切断总电源更好。
十五、安装开孔尺寸:
十五、端子接线图:
十六、型号定义及选型方法:
KLD—□□□1—□—□—□□□—□.□—□
□□□2—□—□—□□□—□.□
□□□3—□—□—□□□—□.□
左数第一段:
KLD—公司名称拼音字头。
左数第二段:
□□□1—控制器用途选择。
温度控制填写WDK。
液位控制填写YWK。
压力控制填写YLK。
流量控制填写LLK。
两个方框后跟1、2、3分别标示1-3个测控回路。
左数第三段:
□—所在回路输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 一种 PID 控制 算法 实现 海水 流量
![提示](https://static.bdocx.com/images/bang_tan.gif)