根据SIMULINK的PID自动控制控制器设计与仿真

根据SIMULINK的PID自动控制控制器设计与仿真
根据SIMULINK的PID自动控制控制器设计与仿真

基于SIMULINK的PID控制器设计与仿真

1.引言

MATLAB是一个适用于科学计算和工程用的数学软件系统,历经多年的发展,已是科学与工程领域应用最广的软件工具。该软件具有以下特点:数值计算功能强大;编程环简单;数据可视化功能强;丰富的程序工具箱;可扩展性能强等。Simulink是MATLAB下用于建立系统框图和仿真的环境。Simulink环境仿真的优点是:框图搭建方便、仿真参数可以随时修改、可实现完全可视化编程。

比例-积分-微分(Proporitional-Integral-Derivative,PID)是在工业过程控制中最常见、应用最广泛的一种控制策略。PID控制是目前工程上应用最广的一种控制方法,其结构简单,且不依赖被控对象模型,控制所需的信息量也很少,因而易于工程实现,同时也可获得较好的控制效果。

2.PID控制原理

当我们不能将被控对象的结构和参数完全地掌握,或者是不能得到精确的数学模型时,在这种情况下最便捷的方法便是采用PID 控制技术。为了使控制系统满足性能指标要求,PID 控制器一般地是依据设定值与实际值的误差,利用比例(P)、积分(I)、微分(D)等基本控制规律,或者是三者进行适当地配合形成相关的复合控制规律,例如,PD、PI、PID 等。

图2-1 是典型PID 控制系统结构图。在PID 调节器作用下,对误差信号

分别进行比例、积分、微分组合控制。调节器的输出量作为被控对象的输入控制量。

图2-1典型PID 控制系统结构图

PID 控制器主要是依据给定值r (t )与实际输出值y (t )构成控制偏差,用公式表示即e (t )=r (t )-y (t ),它本身属于一种线性控制器。通过线性组合偏差的比例(P )、积分(I )、微分(D ),将三者构成控制量,进而控制受控对象。控制规律如下:

1

01()

()[()()]p d i de t u t K e t e t dt T T dt

=++?

其传递函数为:

()1()(1)()p d i U s G s K T S E s T s

=

=++ 式中:Kp--比例系数; Ti--积分时间常数; Td--微分时间常数。

3.Simulink 仿真 3.1 建立数学建模

3.2 仿真实验

在传统的PID 调节器中,参数的整定问题是控制面临的最主要的问题,控制系统的关键之处便是将Kp

、Ti 、Td 三个参数的值最终确定下来。而在工业

过程控制中首先需要对PID 控制中三参量对系统动态性的影响进行实际深入地了解,才能确定怎样将三参数调节到最佳状态。在本实验中,对各参量单独变化对系统控制作用的影响进行讨论,其中在对一个参量变化引发的影响进行讨论时,需要将其余两个参数设定为常数。

3.2.1 P 控制作用分析

先分析比例控制作用。设Td= 0、Ti=∞、Kp= 3 、6和9。输入信号阶跃函数,分别进行仿真,在simulink 中建立的仿真模型如图3-1所示,系统的阶跃响应如图3-2所示。

3-1 P 控制仿真模型

3-2P 控制阶跃响应曲线

图3-2显示的仿真结果表明:系统的超调量会随着Kp 值的增大而加大,系

Time(sec)

A m p l i t u d e

统响应速度也会会随Kp值的增大而加快。但是系统的稳定性能会随着Kp的增大而变差。

3.2.2 比例积分控制作用的分析

设比例积分调节器中Kp= 3,讨论Ti= 3、2和1时。输人信号阶跃函数,分别进行仿真,在simulink中建立的仿真模型如图3-3所示,系统的阶跃响应如图3-4所示。

3-3 PI控制仿真模型

3-4 PI 控制阶跃响应曲线

图3-4显示的仿真结果表明:系统的超调量会随着Ti 值的加大而减小,系统响应速度随着Ti 值的加大会略微变慢。

3.2.3 比例积分微分控制作用的分析

设Kp= 3、Ti= 3,讨论Td= 0.1、0.2和0.3时对系统阶跃响应曲线的影响。输人信号阶跃函数,分别进行仿真,在simulink 中建立的仿真模型如图3-5所示,系统

的阶跃响应如图3-6所示。

Time(sec)

A m p l i t u d e

3-5 PId 控制仿真模型

3-6 PID 控制阶跃响应曲线

图3-6显示的仿真结果表明:Kp= 3、Ti= 3不变时,随着Td 值的加大,闭环系统的超调量增减小,响应速度变慢。

3.2.4 使用编程方法仿真

程序分别如下述程序所示,结果与上述类似,不再附图。 P 控制程序:

Go = tf(2,conv([2,1],[0.5,1])); Kp = [3,6,9]; for m = 1:3

sys = feedback(Kp(m)*Go,1); step(sys); hold on; end

PI 控制程序:

Go = tf(2,conv([2,1],[0.5,1])); Kp =3; Td = [1,2,3]; for m = 1:

Time(sec)

A m p l i t u d e

相关主题
相关文档
最新文档