本文的pdf文件:link
一、问题重述
控制一个三阶传递函数的阶跃响应:
G
p
(
s
)
=
523500
/
(
s
3
+
87.35
s
2
+
10470
s
)
G_p (s)=523500/(s^3+87.35s^2+10470s)
Gp(s)=523500/(s3+87.35s2+10470s)
其中对象采样时间为1ms,采用专家PID设计控制器,在仿真的过程中,采样时间为0.001s,程序中的五条规则与控制算法的五种情况相对应。
(1)编程实现上述系统的阶跃响应,画出输出波形
(2)编程实现传统PID对上述系统的矫正结果(设置十组参数)
(3)编程实现专家PID对上述系统的矫正结果
二、原理分析
2.1 系统函数
根据三阶系统的传递函数,可以得到其图像,由于计算机中不存在真实连续的图像,所以设置采样间隔为0.001s,并得到系统函数图像。
2.2 阶跃响应
2.2.1单位阶跃函数
其函数图像如图所示:
2.1.2 系统的阶跃响应
阶跃响应是指系统在阶跃信号的作用下所产生的响应。根据matlab中的函数“step”,可以求解得到系统的阶跃响应。
2.2 传统PID
2.2.1 PID应用及特点
PID控制是一种结构简单、稳定好、工作可靠、调整方便的方法,主要应用在被控对象的结构和参数不能完全掌握,或者得不到精确的数学模型时,控制理论的其它技术难以采用,系统控制器的结构和参数必须依靠经验和现场调试来确定的情况。
2.2.2 相关术语介绍
反馈:系统的输出成为输入的部分,反过来作用于系统本身,从而影响系统的输出,反馈分正反馈和负反馈。
开环:输入信号决定输出,输出不会影响系统输入。
闭环:输出信号会被用来作为输入的一部分(反馈),输出影响系统的输入。
2.2.3 PID控制算法原理
PID(proportion integration differentiation)是指比例,积分,微分控制。当得到系统的输出后,将输出经过比例,积分,微分3种运算方式,叠加到输入中,从而控制系统的行为,其运行流程如下图所示。
1、比例控制算法
比例控制,假设一种情况下,需要系统一直保持一种状态,而初始状态下,该状态并未达到系统规定的状态,这时,当前时刻和目标状态之间存在一个误差error,这时需要外力来改变这个状态,以此来达到目标状态,设改变量为u,则比例控制指的是u和误差error成正比,即
u
=
k
p
∗
e
r
r
o
r
u=k_p*error
u=kp∗error
假设我们需要对一个系统进行控制,使得其最终状态保持在stata=1,初始情况下state=0.2.
首先,假设一旦达到某个状态,系统就会一直维持该状态。根据上述的比例控制算法,假设
k
p
k_p
kp取0.5,error为0.8,那么t=1时(表示第一次对系统施加控制),那么
u
=
0.5
∗
0.8
=
0.4
u=0.5*0.8=0.4
u=0.5∗0.8=0.4,所以这一次会使状态在0.2的基础上增加0.4,达到0.6。接着,t=2时刻(第2次施加控制),当前状态是0.6,所以error是0.4。
u
=
0.5
∗
0.4
=
0.2
u=0.5*0.4=0.2
u=0.5∗0.4=0.2,会再次上升0.2,达到0.8。如此这么循环下去,就是比例控制算法的运行方法。
但是,比例控制存在着一些不足,其中一点就是稳态误差,如上述的例子,根据
k
p
k_p
kp取值不同,系统最后都会达到1,只不过
k
p
k_p
kp大了到达的快,
k
p
k_p
kp小了到达的慢一些,不会有稳态误差。但是,考虑另外一种情况,假设系统在减小误差的过程中,还存在增大误差的情况,假设每次改变状态时,系统都会减少0.1,仍然假设
k
p
k_p
kp取0.5,那么会存在着某种情况,假设经过几次控制后,当前状态到0.8时,系统将不再变化,因为,系统为0.8,则误差error=0.2. 所以每次改变系统的量为
u
=
0.5
∗
0.2
=
0.1
u=0.5*0.2=0.1
u=0.5∗0.2=0.1,同时,每次系统又会减少0.1增加与减小相等,系统将不再变化。目标是1,但是最后系统达到0.8就不再变化了,且系统已经达到稳定,由此产生的误差就是稳态误差。
2、积分控制算法
积分控制算法,该分量和误差的积分是正比关系。所以,比例+积分控制算法为:
u
=
k
p
∗
e
r
r
o
r
+
k
i
∗
∫
e
r
r
o
r
u=k_p*error+k_i*∫error
u=kp∗error+ki∗∫error
还是用上面的例子来说明,第一次的误差error是0.8,第二次的误差是0.4,至此,误差的积分(离散情况下积分其实就是做累加),
∫
e
r
r
o
r
=
0.8
+
0.4
=
1.2
∫error=0.8+0.4=1.2
∫error=0.8+0.4=1.2. 这个时候的控制量,除了比例的那一部分,还有一部分就是一个系数ki乘以这个积分项。由于这个积分项会将前面若干次的误差进行累计,所以可以很好的消除稳态误差,假设在仅有比例项的情况下,系统卡在稳态误差了,即上例中的0.8,由于加入了积分项的存在,会让输入增大,从而使得系统可以大于0.8,渐渐到达目标的1.0。
3、微分控制算法
微分就是error的差值,就是t时刻和t-1时刻error的差,即
u
=
k
d
∗
(
e
r
r
o
r
(
t
)
−
e
r
r
o
r
(
t
−
1
)
)
u=kd*(error(t)-error(t-1))
u=kd∗(error(t)−error(t−1))
其中的kd是一个系数项。可以看到,error越来越小,所以这个微分控制项一定是负数,在控制中加入一个负数项。
切换到上面例子,就是当发现系统快要接近1的时候,加入微分项,可以防止系统加到超过1的高度,减少控制过程中的震荡
4、PID控制
U
(
t
)
=
k
p
(
e
r
r
o
r
(
t
)
+
1
/
t
1
∫
[
e
r
r
o
r
(
t
)
d
t
+
(
T
D
d
e
r
r
o
r
(
t
)
)
/
d
t
)
]
U(t)=k_p (error(t)+1/t_1 ∫[error(t)dt+(T_D derror(t))/dt)]
U(t)=kp(error(t)+1/t1∫[error(t)dt+(TDderror(t))/dt)]
括号内第一项是比例项,第二项是积分项,第三项是微分项,前面仅仅是一个系数。很多情况下,仅仅需要在离散的时候使用,则控制可以化为
每一项前面都有系数,将这些系数进行统一,即:
2.3 专家系统PID
2.3.1 专家系统
专家系统是一个智能计算机程序,含有大量专家水平的知识和经验,能模拟人类专家的思维过程,求解困难问题。实际生活中,存在许多无法用数学模型或计算解决的问题,专家一般根据自己丰富的知识和经验进行推理从而解决问题。而专家系统正是模仿这一特点设计的。
专家系统的分类:
1,直接型专家系统
直接专家控制器用于取代常规控制器,直接控制生产过程或被控对象,具有模拟延伸,扩展操作工人智能的功能。该控制器的任务和功能相对比较简单,但是需要在线,实时控制。
2,间接型专家系统
用于和常规控制器相结合,组成对生产过程或被控对象进行简介控制的智能控制系统。
同一般的计算机应用系统相比,专家系统具有如下特点:
(1)从处理的问题性质看,专家系统善于解决那些不确定性的,非结构化的,没有算法解或虽有算法解但是在现有的机器上无法实施的困难问题。
(2)从处理问题的方法看,专家系统则是靠知识和推理来解决问题,所以,专家系统是基于知识的智能问题求解系统。
专家系统的特征
(1)具有专家水平的知识:必须表示专家的技能和高度的技巧以及足够的鲁棒性。系统的鲁棒性是指不管数据正确与否,都能够得到正确的结论或者指出错误。
(2)能进行有效的推理:能够运用专家的经验和知识进行搜索、推理。
(3)具有透明性:在推理时,不仅能够得到答案,而且还能给出推理的依据。
(4)具有灵活性:知识的更新和扩充灵活方便。
(5)复杂性:人类的知识可以定性或定量的表示,专家系统经常表现为定性推理和定量计算的混合形式,比较复杂。
专家系统是一个具有大量专门知识与经验的程序系统,根据某个领域的专家提供的知识和经验进行推理和判断,模拟人类专家的决策过程。
2.3.2 专家系统的开发步骤
1,问题识别阶段
知识工程师和专家确定问题的重要特点,抓住问题各主要方面的特征。
2,概念化阶段
主要任务是揭示描述问题所需的关键概念,关系和控制机制,子任务,策略和有关问题求解的约束。
3,形式化阶段
把概念化阶段概括出来的关键概念,子问题和信息特征形式化的表示出来。
4,实现阶段
把形式化知识变成计算机的软体,即要实现知识库,推理机,人机接口和解释系统。
5,测试阶段
通过运行实例评价原型系统以及用于实现它的表达形式,从而发现知识库和推理机制的缺陷。
2.3.3 控制过程
PID专家控制的实质是,基于受控对象和控制规律的各种知识,无需知道被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直接型专家控制器。
典型的二阶系统单位阶跃响应误差曲线如图所示:
专家整定PID控制系统
具体控制过程
流程图如图所示:
三、结果求解
3.1 传统PID矫正
由上述公式可知,传统PID控制需要自行设定其参数,分别为
k
p
k_p
kp,
K
i
K_i
Ki和
K
d
K_d
Kd,每个参数都对结果有影响,所以采用控制变量法,分别分析独立参数变化时系统阶跃响应的矫正结果。
3.1.1 k p k_p kp改变, K i K_i Ki和 K d K_d Kd保持不变
设置
k
p
k_p
kp=[0.2,0.25,0.3,0.35],分别得到其对系统的矫正,如图所示:
其中蓝色代表输入,红色代表输出,绿色代表误差曲线,可以看到,随着
k
p
k_p
kp的增大,误差逐渐减小,例如当
k
p
k_p
kp=0.2时,误差会超过0.5,但是当
k
p
k_p
kp=0.35时,误会超过,且最终达到的稳态与目标状态更加接近。
3.1.2 K i K_i Ki改变, k p k_p kp和 K d K_d Kd保持不变
设置
K
i
K_i
Ki=[0.1,0.15,0.2,0.25],分别得到其对系统的矫正,如图所示:
其中蓝色代表输入,红色代表输出,绿色代表误差曲线.
3.1.3 K d K_d Kd改变, k p k_p kp和 K i K_i Ki保持不变
设置
K
d
K_d
Kd=[0,0.001,0.005,0.01],分别得到其对系统的矫正,如图所示:
其中蓝色代表输入,红色代表输出,绿色代表误差曲线.
3.2 专家系统PID矫正
使用专家系统对上述系统进行矫正,结果如图:
四、结果分析
对比上述两种不同的控制方法,我们可以得到其分别对于系统阶跃响应的矫正,根据图像可知,在传统PID中,矫正过程的持续时间过长,且不同的参数对于结果的影响也比较大,但是针对参数的设置,并未有有效的方法,只能不断的试错,以此达到比较好的控制结果,而且该系统一旦设置很难迁移,在其他场景下就需要另外选择参数。而专家系统PID是根据专家知识来得到的,具有可扩展性。