📄 数字pid控制算法.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0097)http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/ccs2-2/ccs2-2-2/ccs2-2-2.htm -->
<HTML><HEAD><TITLE>数字PID控制算法</TITLE>
<SCRIPT language=JAVASCRIPT>
<!--
var ap_name = navigator.appName;
var ap_vinfo = navigator.appVersion;
var ap_ver = parseFloat(ap_vinfo.substring(0,ap_vinfo.indexOf('(')));
var time_start = new Date();
var clock_start = time_start.getTime();
var dl_ok=false;
function init ()
{
if(ap_name=="Netscape" && ap_ver>=3.0)
dl_ok=true;
return true;
}
function get_time_spent ()
{
var time_now = new Date();
return((time_now.getTime() - clock_start)/1000);
}
function show_secs () // show the time user spent on the side
{
var i_total_secs = Math.round(get_time_spent());
var i_secs_spent = i_total_secs % 60;
var i_mins_spent = Math.round((i_total_secs-30)/60);
var s_secs_spent = "" + ((i_secs_spent>9) ? i_secs_spent : "0" + i_secs_spent);
var s_mins_spent = "" + ((i_mins_spent>9) ? i_mins_spent : "0" + i_mins_spent);
document.fm0.time_spent.value = s_mins_spent + ":" + s_secs_spent;
window.setTimeout('show_secs()',1000);
}
// -->
</SCRIPT>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff background=数字PID控制算法.files/Bg.gif
onload="init(); window.setTimeout('show_secs()',1);"><FONT lang=ZH-CN face=宋体
size=3>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="33%"><A
href="http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/ccs2-2/ccs2-2-1/ccs2-2-1.html"
target=down><IMG height=30 alt=上一篇 src="数字PID控制算法.files/prev.gif"
width=100 border=0></A></TD>
<TD width="33%">
<P align=center><A
href="http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/index.htm"
target=down><IMG height=30 alt=本章目录 src="数字PID控制算法.files/toindex.gif"
width=130 border=0></A></P></TD>
<TD width="34%"><A
href="http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/ccs2-3/ccs2-3-1/ccs2-3-1.htm"
target=down><IMG height=30 alt=下一篇 src="数字PID控制算法.files/next.gif"
width=100 align=right border=0></A></TD></TR></TBODY></TABLE>
<P align=center> </P>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="59%">
<P align=left><SMALL><FONT color=#0000ff>当前位置:</FONT><FONT lang=ZH-CN
face=宋体 color=#000000 size=2>主页</FONT><FONT lang=ZH-CN face=宋体
color=#000000 size=3> -> </FONT><FONT lang=ZH-CN face=宋体 color=#000000
size=2>教程</FONT><FONT lang=ZH-CN face=宋体 color=#000000 size=3> ->
</FONT><FONT lang=ZH-CN face=宋体 color=#000000 size=2>数字PID</FONT><FONT
lang=ZH-CN face=宋体 color=#000000 size=3> -> </FONT><FONT lang=ZH-CN
face=宋体 color=#000000 size=2>数字PID控制</FONT></SMALL></FONT><FONT lang=ZH-CN
face=宋体 size=2>算法</FONT><FONT lang=ZH-CN face=宋体 size=3> </FONT></P></TD>
<TD width="41%"><SMALL>
<FORM name=fm0 onsubmit=0><FONT color=#0000ff>
<DIV align=right>
<P>停留时间:</FONT></SMALL><FONT color=#6060ff> </FONT><INPUT
onfocus=this.blur() size=7
name=time_spent></P></DIV></FORM></TD></TR></TBODY></TABLE></CENTER></DIV>
<P align=center><IMG height=40 alt="kzsuanfa.gif (3756 bytes)"
src="数字PID控制算法.files/kzsuanfa.gif" width=200></P>
<P align=center> </P>
<P align=justify><IMG height=40 alt="shixian.gif (3899 bytes)"
src="数字PID控制算法.files/shixian.gif" width=200></P>
<P align=justify> 在电子数字计算机直接数字控制系统中,<FONT
color=#0000ff>PID控制器</FONT>是通过计算机PID控制算法程序实现的。计算机直接数字控制系统大多数是采样-数据控制系统。进入计算机的连续-时间信号,必须经过采样和整量化后,变成数字量,方能进入计算机的存贮器和寄存器,而在数字计算机中的计算和处理,不论是积分还是微分,只能用数值计算去逼近。</P>
<P align=justify>
在数字计算机中,PID控制规律的实现,也必须用数值逼近的方法。当采样周期相当短时,用求和代替积分,用差商代替微商,使PID算法离散化,将描述连续-时间PID算法的微分方程,变为描述离散-时间PID算法的差分方程。</P>
<P align=justify><A name=weizhi></A></P>
<P align=justify><IMG height=40 alt="weizhi.gif (4455 bytes)"
src="数字PID控制算法.files/weizhi.gif" width=200></P>
<P align=center><IMG height=150 alt="tu3-2a2active.gif (5427 bytes)"
src="数字PID控制算法.files/tu3-2a2active.gif" width=350><FONT face=宋体
size=3></P></FONT>
<P align=justify>考虑式(3-4),用矩形积分时,有</P>
<P align=left> <IMG height=46 src="数字PID控制算法.files/Image73.gif"
width=157> (3-5)</P>
<P align=justify>用差分代替微分</P>
<P align=left> <IMG height=46 src="数字PID控制算法.files/Image74.gif" width=194>
(3-6)</P>
<P align=justify>将式(3一5)、(3一6)代入式(3一4),PID算法变为</P>
<P align=left> <IMG height=52 src="数字PID控制算法.files/Image75.gif"
width=498> (3-7)</P>
<P align=justify>或 </P>
<P align=left><IMG height=46 src="数字PID控制算法.files/Image76.gif"
width=515> </P>
<P align=justify>式中 u <SUB>0</SUB>——控制量的基值,即k=0时的控制;</P>
<P align=justify> u(k)——第k个采样时刻的控制;
K<SUB>P</SUB>——比例放大系数; K<SUB>I</SUB>——积分放大系数;</P><FONT face=宋体
size=3>
<P></FONT> <FONT face=宋体 size=3><IMG height=46 src="数字PID控制算法.files/Image3.gif"
width=78 align=left></FONT></P>
<P align=left> </P>
<P align=left> K<SUB>D</SUB>——微分放大系数;</P><FONT face=宋体 size=3>
<P></FONT> <FONT face=宋体 size=3><IMG height=45 src="数字PID控制算法.files/Image4.gif"
width=84 align=left></FONT></P><FONT face=宋体 size=3>
<P align=justify></FONT> </P>
<P align=justify> T<SUB>S</SUB>——采样周期。</P>
<P align=justify>
式(3-7)是数字PID算法的非递推形式,称全量算法。算法中,为了求和,必须将系统偏差的全部过去值e(j)(j=1,2,3,...
,k)都存储起来。这种算法得出控制量的全量输出u(k),是控制量的绝对数值。在控制系统中,这种控制量确定了执行机构的位置,例如在阀门控制中,这种算法的输出对应了阀门的位置(开度)。所以,将这种算法称为“位置算法”。</P>
<P align=justify><A name=zengliang></A></P>
<P align=justify><IMG height=40 alt="zengliang.gif (4670 bytes)"
src="数字PID控制算法.files/zengliang.gif" width=200></P>
<P align=justify>
当执行机构需要的不是控制量的绝对值,而是控制量的增量(例如去驱动步进电动机)时,需要用PID的“增量算法”。</P>
<P align=center><IMG height=180 alt="tu3-2bactive.gif (7494 bytes)"
src="数字PID控制算法.files/tu3-2bactive.gif" width=480></P>
<P align=justify> 由位置算法求出</P>
<P align=left><IMG height=46 src="数字PID控制算法.files/Image63.gif" width=357></P>
<P align=justify>再求出</P>
<P align=left> <IMG height=46 src="数字PID控制算法.files/Image64.gif" width=426> </P>
<P align=justify>两式相减,得出控制量的<A name=增量算法>增量算法</A></P>
<DIV align=left>
<TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
<TBODY>
<TR>
<TD width="100%"><IMG height=21 src="数字PID控制算法.files/Image65.gif"
width=153></TD></TR>
<TR>
<TD width="100%"> <IMG height=45
src="数字PID控制算法.files/Image66.gif" width=416>
(3-8)</TD></TR></TBODY></TABLE></DIV>
<P align=justify>式(3-8)称为增量式PID算法。</P>
<P align=justify> 对增量式PID算法(3-8)归并后,得</P><FONT face=宋体 size=3>
<P align=justify> <IMG height=24 src="数字PID控制算法.files/Image1.gif"
width=257>
(3-9)</P>
<P align=justify>其中</P>
<P align=justify><IMG height=140 src="数字PID控制算法.files/Image2.gif" width=140
align=left></P>
<P align=justify> </P>
<P align=justify> </P>
<P align=justify> </P>
<P align=justify> </P>
<P
align=justify>(3-9)已看不出是PID的表达式了,也看不出P、I、D作用的直接关系,只表示了各次误差量对控制作用的影响。从式(3-9)看出,数字增量式PID算法,只要贮存最近的三个误差采样值e(k)、e(k-1)、e(k-2)就足够了。</P>
<P align=justify> 图</FONT><FONT size=3>3-3</FONT><FONT face=宋体
size=3>表示了增量式</FONT><FONT size=3>PID</FONT><FONT face=宋体
size=3>控制算法的流程图。</FONT></P>
<P align=center><IMG height=400 alt="tu3-3active2.gif (51776 bytes)"
src="数字PID控制算法.files/tu3-3active2.gif" width=510></P>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR><FONT lang=ZH-CN face=宋体 size=3>
<TD width="33%"><A
href="http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/ccs2-2/ccs2-2-1/ccs2-2-1.html"
target=down><IMG height=30 alt=上一篇 src="数字PID控制算法.files/prev.gif"
width=100 border=0></A></FONT></TD>
<TD width="33%">
<P align=center><A
href="http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/index.htm"
target=down><IMG height=30 alt=本章目录 src="数字PID控制算法.files/toindex.gif"
width=130 border=0></A></P></TD>
<TD width="34%"><A
href="http://www.ee.zsu.edu.cn/irp/uploadfile/netclass/CONTROL/LESSON/ccs2/ccs2-3/ccs2-3-1/ccs2-3-1.htm"
target=down><IMG height=30 alt=下一篇 src="数字PID控制算法.files/next.gif"
width=100 align=right
border=0></A></TD></TR></TBODY></TABLE></FONT></FONT></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -