离散系统的数字PID控制仿真Word格式文档下载.docx
《离散系统的数字PID控制仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《离散系统的数字PID控制仿真Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![离散系统的数字PID控制仿真Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/12/eb628426-cad0-4d5e-9c97-3916d228bcf7/eb628426-cad0-4d5e-9c97-3916d228bcf71.gif)
其中R为设定的期望值,y为控制变量S为实际输出值,e为控制偏差(e=R-S)。
PID调节器按其调节规律可分为比例调节、比例积分调节和比例积分微分调节等。
PID算法是将描述连续过程的微分方程转化为差分方程,然后,根据差分方程编制计算程序来进行控制计算的,另外在PID控制中,由于PID算式选择的不同,最终所得到的控制效果是不同的。
题目:
用数字PID控制传递函数为G(s)的被控对象:
G(s)=
,采样时间为1ms,采用z变换进行离散化,经过z变换后的离散化对象为:
y(k)=-den
(2)y(k-1)-den(3)y(k-2)-den(4)y(k-3)+num
(2)u(k-1)+
num(3)u(k-2)+num(4)u(k-3)
其中num和den为离散化系数。
位置式及增量式PID控制算法简介:
位置式基本PID控制器的理想算式为:
(1)
式中:
u(t)——控制器(也称调节器)的输出;
e(t)——控制器的输入(常常是设定值与被控量之差,即e(t)=r(t)-c(t));
Kp——控制器的比例放大系数;
Ti——控制器的积分时间;
Td——控制器的微分时间。
设u(k)为第k次采样时刻控制器的输出值,可得离散的PID算式
(2)
由于计算机的输出u(k)直接控制执行机构(如阀门),u(k)的值与执行机构的位置(如阀门开度)一一对应,所以通常称式
(2)为位置式PID控制算法。
位置式PID控制算法的当前采样时刻的输出与过去的各个状态有关,计算时要对e(k)进行累加,运算量大;
而且控制器的输出u(k)对应的是执行机构的实际位置,如果计算机出现故障,u(k)的大幅度变化会引起执行机构位置的大幅度变化。
增量式PID是指数字控制器的输出只是控制量的增量Δu(k)。
采用增量式算法时,计算机输出的控制量Δu(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必须具有对控制量增量的累积功能,才能完成对被控对象的控制操作。
执行机构的累积功能可以采用硬件的方法实现,也可以采用软件来实现。
仿真之一:
指令为阶跃信号、正弦信号和方波信号
设计离散PID控制器。
其中,S为信号选择变量,S=1时为阶跃跟踪,S=2时为方波跟踪,S=3时为正弦跟踪。
本次实验采用位置式PID控制算法。
分析过程:
1、对G(s)进行离散化即进行z变换得到z传递函数:
注:
之所以为z的三次式,这是通过matlab进行z变换后,观察num,den的数据得到z传递函数形式为z的三次式,若为其他次数n,则相应有n+1项。
2、分子分母除以z的最高次数即除以z的3次得到:
,有:
(
)
Y(z)=
)U(z)
3、由z的位移定理Z[e(t-kt)]=z^k*E(z)逆变换得到差分方程:
=
通常m1=1
y(k)=
程序清单如下图:
通过改变S的值可以得到不同的跟踪结果!
PID的参数分别为:
取Kp=0.5,Ki=0.001,Kd=0.001。
对以上程序作出部分解释:
ts=0.001,数字制器采样时间,
sys=tf(5.235e005,[1,87.35,1.047e004,0]),控制对象的传递函数,
dsys=c2d(sys,ts,'
z'
);
被控对象传递函数离散化
[num,den]=tfdata(dsys,'
v'
离散化后的数据矩阵转化为z传函
u_1=0.0;
u_2=0.0;
u_3=0.0;
初始化差分方程的初始值
x=[0,0,0]'
;
PID的三个变量并赋予初值
error_1=0;
作为偏差的前一时刻的变量
S=3;
此处的值可以被改变,可以选择不同的信号输入
ifS==1阶跃信号
elseifS==2方波信号
elseifS==3正弦信号
u(k)=kp*x
(1)+kd*x
(2)+ki*x(3);
PID控制器输出,作为被控对象的输入
ifu(k)>
=10限制控制器的输出
u_3=u_2;
u_2=u_1;
u_1=u(k);
参数反馈,差分方程得以继续
y_3=y_2;
y_2=y_1;
y_1=y(k);
x
(1)=error(k);
数字控制器的P编程实现
x
(2)=(error(k)-error_1)/ts;
数字控制器的D编程实现
x(3)=x(3)+error(k)*ts;
数字控制器的I编程实现
error_1=error(k);
得到当前的偏差作为PID运算中进行偏差运算
得到的三种跟踪结果为:
阶跃跟踪结果:
方波跟踪结果:
正弦信号结果为:
以上各个仿真结果基本上达到了实验要求。
但是,数字PID控制位置式算法的缺点是:
由于采用全量输出,所以每次的输出都与过去的状态有关,计算时要对error(k)量进行累加,计算机输出控制量u(k)对应的是执行机构的实际位置偏差,如果位置传感器出现故障,u(k)可能出现大幅度变化。
u(k)的大幅度变化会引起执行机构位置的大幅度变化,这种情况在生产中是不允许的。
仿真之二:
采用simulink实现离散PID控制器。
这里要用到simulink的模块封装功能:
子系统封装的意义:
子系统封装技术可以让一个子系统有自己的特点。
封装后的子系统可以有自己的图标、自己的参数和具有功能描述的控制对话框,甚至自己的help文档,同时参数的修改更为方便(不用深入子系统,只需在对话框中修改便可),内部结构也不易被修改。
模块的封装是在Mask
Editor中进行的。
要打开Mask
Editor,需要两步:
①选中要封装的子系统;
②选择菜单Edit->
Edit
Mask或者右键菜单中的Edit
Mask。
Mask
Editor的样子如下:
Editor中共有如下四个选项页:
Icon,主要是对子系统的外观图标进行设置;
Parameters,主要对封装子系统的参数进行设置。
如果子系统中有一个或多个模块需要手动设置参数,那么在仿真之前需要进入到子系统里面去对这些模块分别进行参数设计,很麻烦。
而用Mask
Editor中的Parameters设置参数,使这些参数能够将参数值传入到subsystem的模块中去。
这样就可以直接对subsystem进行参数设计,既明了又方便;
Initialization,提供了一个Matlab语言命令框,可以在其中写入一些程序,当子系统有被载入、改变参数或初始化等情况发生时,Simulink会自动执行这些程序。
所以可以将一些仿真前需要对subsystem做的设置,以程序的形式写入到编辑框内来实现;
Documentation,编辑子系统的描述和生成help文档。
左下角的Unmask按钮可以取消对subsystem的封装。
Icon界面
:
该选项页有三部分:
Options、Icon
Drawing
Commands和Examples
of
drawing
commands。
其中Icon
Commands中可以编辑相应的绘图命。
Parameters
界面:
该选项页布局如下图所示
如上图所示,该选项页有两个设置栏Dialog
Parameters和Options
for
selected
parameter。
在Dialog
Parameters左侧有四个按钮,分别代表增加参数、删除参数、上移和下移。
对子系统的参数设置如上图所示。
按照上面的步骤对系统进行封装以后,点击界面上的OK按钮,便得到一个封装好的PID模块。
离散PID控制的封装界面如下图所示,在该界面中可设定PID的三个系数、采样时间以及控制输入的上下界。
以上为子系统模块的封装及参数设置过程。
离散PID控制的比例、微分、积分三项分别由simulink的封装模快实现:
Simulink主程序:
PID控制器子程序:
仿真结果为:
由以上仿真结果可知,在0.3秒左右系统已经基本上达到稳定。
满足控制的要求。
通过学习与研究我们可以知道:
数字PID调节是连续系统控制中广泛应用的一种控制方法。
由于它结构改变灵活,所以,可根据系统的要求,在常规PID调节的基础上进行多种PID变型控制,如PI、PD控制,比例PID控制,不完全微分控制,带死区的PID控制等等。
特别是PID控制不需控制对象的精确的数学模型,这对大多数很难得到或根本得不到精确的数学模型的工业控制对象来说,无疑更适合应用PID控制。
因此,PID控制技术在工业过程控制中应用的非常广泛。
通过以上对数字PID控制算法的分析与研究,可得出位置式PID算法的优缺点如下:
1)位置式PID算法结构改变灵活,算法简单,鲁棒性好和可靠性高。
但是每次输出都与控制偏差e过去整个变化过程相关,这样容易产生较大的累积偏差,特别是当计算机发生故障时,由于调节器是全量输出,控制变量y可能会发生大幅振荡,给生产带来严重危害。
而如果采用增量式PID算法,由于计算机只输出控制变量的增量Δy发生故障时只影响本次增量的大小,故影响较小。
2)系统从手动切换到自动时,位置式PID算法需将调节器的输出置为Y0,这样才可能实现无冲击切换,而增量式PID算法易于实现手动到自动的无冲击切换。
3)位置式PID算法要求计算累加和(∑ek),故运算量大。
而增量式PID算法不需计算累加和(∑ek),故运算量小。
4)位置式PID算法中,由于差分公式中有对偏差的累加计算,所以,容易产生积分饱和现象,造成系统失控。
而在增量式PID算法中,由于差分公式中不存在有对偏差的累加计算,所以,不会产生积分失控现象,避免了系统的超调和振荡现象的发生。
但增量式PID算法有产生比例和微分失控现象的可能,使系统的动态性能变坏。
综上所述,数字PID调节是系统控制中广泛应用的一种控制方法,位置式PID与增量式PID算法各有自己的优缺点,因此我们在应用之中应该结合实际情况,来选择具体的,最合适的控制方法。