当前课程知识点:智能控制 >  第二章 专家控制专题 >  2.3 专家PID  >  2.3.2 专家PID (下)

返回《智能控制》慕课在线视频课程列表

2.3.2 专家PID (下)在线视频

下一节:3.1.1 模糊控制概述

返回《智能控制》慕课在线视频列表

2.3.2 专家PID (下)课程教案、知识点、字幕

下面

我们结合一个实际问题

来看一下

如何设计专家PID控制器

针对这样一个

典型的三阶被控对象

给出它的传递函数

我们要画出

它的单位阶响应曲线

这时候

被控对象采样周期为1毫秒

分别采用了

传统的PID控制策略

和专家PID控制算法

这是利用Matlab实现了仿真程序

第一步初始化

用clc命令可以对命令进行清除

下面第二步第二行

就是给出了采样时间

就是1毫秒

也就是0.001秒

那么下一行命令

就是给定了被控对象的

传递函数tf

Transfer Function 表示传递函数

这样的话

就给出了系统的传递函数模型

下一步就是c2d表示

对连续时间的传递函数

进行离散化

得到了关于z的传递函数

那么采用tfdata命令

就可以把z域的传递函数

分子分母给确定下来

这样的话

便于后面进行差分方程

以及相应的程序编写

首先

第一段程序作为变量初始化

这里面

u_1 u_2 u_3分别对应的

就是u(k-1) u(k-2) u(k-3)

而y_1 y_2 y_3分别对应的

就是y(k-1) y(k-2) y(k-3)

x的初始状态是0 0 0

x2_1=0表示x2在(k-1)的时刻是0

首先

给出PID控制器参数的初始值

kp为0.6

ki为0.03

kd为0.01

那么定义error_1为0

下面就开始进行控制算法的循环

这里面我们采用的

仿真时间是500个周期

也就是每个周期1毫秒

所以总的时间是0.5秒

那么time描述的就是第k步的时候

对应的时间也就是

k乘以ts采样周期

那么给定的设定值信号

因为考虑的是单位阶响应曲线

所以其实k从1开始循环的时候

我这个设定值一直为1的

所以k一直为1

下面PID控制器的输出u(k)是什么呢

是根据x1 x2 x3

也就是偏差

偏差变化率以及它的求和积分

乘以相应的系数kp kd ki

得到了这样一个控制指令

下面

我们就要分别对应

前面的专家规则

给出相应的程序

第一步

专家规则第一条

就是进行开环控制

它是分别考虑的是

误差在绝对值在不同的情况下

我们分别采用不同的控制指令

是个常数

比如说如果x1也就是误差

它的绝对值大于0.8

那么控制量就是0.45

否则的话0.4到0.8之间

控制量就0.4

如果误差在0.2到0.4之间

它的控制指令就是0.12

如果误差在0.01到0.2之间

控制指令就是0.1

这是第一条

那么第二条就根据偏差以及偏差导

也就是偏差的增量

e(k)就是x1

delta e(k)就是x2

看它俩的乘积是否大于0

或者是得到e(k)是否为0

来进行分别考虑

x1也就是误差的绝对值

是否大于或等于0.05

分别实施较强的控制作用

和较弱的控制作用

一个系数是2

一个系数0.4

下面第三条规则

就是根据

x1 e(k) x2是e(k)减 delta e(k)

x2_1就是 delta e(k-1)

来判断

这个时候

考虑它是控制量

要保持不动

也就是u(k)等于u(k)

这是第三条规则

第四条规则

我们就是根据x(1) e(k) x2

delta e(k) x2_1

delta e(k-1)

根据它们的情况

再考虑一下

当误差的绝对值

是否大于或等于0.05

分别实施较强的控制作用

较弱的控制作用

这是根据

极值时刻的误差来决定的

因为极值发生在k-1时刻

所以后面的系数是error_1

这是第四条规则

第五条规则就是看

x(1)的绝对值

是否大于或等于0.001

如果大于或等于0.001

控制量就等于0.5倍的x(1)

加上0.01倍的x(3)

实际上

这就是最后对应的第五条规则

那么下面这条程序

实际上就是限制了

控制量的取值范围

那么实际工程中

控制指令它是有上限和下限的

实际系统一般选择范围是

在控制指令阀门开度

比如说是在0%到100%之间

它不可能接受百分之负100的命令

那么有的问题

它有正负方向的问题

它的范围

可能会在正负某个数之间

这实际中

都会对它进行一个限幅的

所以这段程序

如果控制量u(k)大于或等于10的话

那么直接让它等于10

如果u(k)小于等于-10的话

就让它直接等于-10

其实也就是

限制了最终的控制指令

u(k)一定会在正负10之间

也就是对它进行了限幅处理

那么下面

我们就考虑一下

被控对象的数学模型

由于我们已经知道了

被控对象离散化的结果

关于z的传递函数

可以通过对应的差分方程

把y(k)求出来

就是通过这个式子

找到了y(k)当前时刻

被控对象的输出

被控对象 上一时刻

输出y(k-1) y(k-2) y(k-3)

以及控制指令

上一时刻值 u(k-1) u(k-2) u(k-3)

之间的一个数学模型

这是它对应的差分方程

那么这里面由于我们是计算机仿真

所以我们这里面u(k)是

按照这个模型来计算出来的

实际系统中

我们控制的肯定不是模型

实际系统中我们控制的是什么呢

是真实的被控对象

那么这个y(k)

在实际系统中就应该来自于

测量变送仪表

反馈给控制系统的信号

也就是说它通过反馈信号

也就是模拟量输入通道

反馈给控制系统的

这样一个现场测量信息

也就是说实际控制系统中

我们控制的是真实的被控过程

现在我们做仿真控制的是一个模型

这里面用差分方程把它描述出来

那么显然这里面定义的误差

误差e(k)是设定值r(k)和反馈值y(k)

之间的偏差

后面做一些参数迭代

u(k-3)等于u(k-2)

u(k-2)等于u(k-1)

u(k-1)等于u(k)

相应地

y(k-3)等于y(k-2)

y(k-2)等于y(k-1)

y(k-1)等于y(k)

实际上这就是我们常见的

在算法程序设计中常见的迭代

因为下一时刻k是要增加1的

所以我们就相应的用y

用u(k-2) u(k-1) u(k)的值

分别送到

u(k-3)

u(k-2)

u(k-1)中

实现参数的迭代

那么下面x1

是定义为当前时刻误差的error(k)

x2(k-1)是定义为x2的

这里面是一个初始值的时候

它就是x2

x2定义为什么呢

当前时刻的误差

减去上一次的误差

除以采样周期

也就是得到了微分信号

x3是什么东西呢

一个积分的信号

他在x3初始值为零

的基础上叠加

每次都叠加

加上当前时刻的误差error(k)

乘以采样周期ts

然后下一步就是error_1

也就是e(k-1)

进行一个迭代

这循环就完成了

下面我们就可以画出它们图形

用plot命令

就可以在一张图里面

把设定值r和被控变量y

分别用blue蓝色的线

和r red红色的线进行区分

并标注它的横坐标 纵坐标

这是第一张图

第二张图

我们就可以把设定值r

和反馈值y之间的偏差

画一条曲线

呈现在画面上

那么采用专家PID

得到了单位阶跃响应曲线

如图所示

我们发现显然是没有超调的

而且调节时间很快

迅速地响应达到了设定值

实现了对设定值的

迅速准确稳定跟踪

那么把采用传统的PID

和专家PID控制算法进行对比

把它们画在一张图里面

就是这样两条

单位阶响应曲线

显然采用专家PID

可以达到更好的控制性能

这是从图形上得到了

一个定性的一个结论

那么这是把他们的偏差

画在一张图上

得到这样一个结果

显然专家PID中偏差的变化

收敛速度更快

那么从量化的角度进行一个比较

采用传统的PID得到了

上升时间

调节时间

峰值时间

超调量

ITAE

还有专家PID的性能指标

分别做个对比

我们发现

采用专家PID控制算法之后

它的上升时间更短

峰值时间更小

调节时间更短

超调量显著减小了

获得了更好的控制性能

这个例子里面

虽然ITAE有点偏大

但是它的性能

还是要优于传统的PID

这节课讲到这里

智能控制课程列表:

第一章 智能控制课程概论

-开篇

--开篇

-1.1课程考试方式

--1.1课程考试方式

-1.2 数据、信息、知识与智能

--1.2 数据、信息、知识与智能

-1.3传统控制面临的挑战

--1.3 传统控制面临的挑战.

-1.4 控制科学发展过程

--1.4 控制科学发展过程.

-1.5 智能控制的多元论

--1.5

-1.6 控制策略的渗透与融合

--1.6

-1.7 智能控制与传统控制的联系与区别

--1.7

-1.8 智能控制的类型之分级递阶智能控制系统

--1.8

-1.9 智能控制的类型之专家控制系统

--1.9

-1.10 智能控制的类型之模糊控制系统

--1.10

-1.11 智能控制的类型之神经网络控制系统,智能控制的类型之基于规则的仿人智能控制系统,集成智能控制系统,组合智能控制

--1.11

-1.12智能控制系统的类型之基于规则的仿人智能控制系统,集成智能控制系统,组合智能控制

--1.12

-1.13本章小结

--1.13

-第一章测试

第二章 专家控制专题

-2.1基于搜索的问题求解

--2.1.1 搜索与人工智能的关系

--2.1.2 算法1 随机搜索

--2.1.3 算法2 引入CLOSED表.

--2.1.4 算法3 引入OPEN表.

--2.1.5 纵向搜索算法(深度优先搜索)

--2.1.6 横向搜索算法(广度优先搜索)

-- 2.1.7 均一代价搜索

--2.1.8 启发式搜索

--2.1.9 登山法和最佳优先搜索.

-- 2.1.10 A星算法

-- 2.1.11 八数码魔方实例分析

-2.2 专家系统简介

--2.2.1 专家系统简介(上)

--2.2.2 专家系统简介(下)

- 2.3 专家PID

--2.3.1 专家PID (上)

--2.3.2 专家PID (下)

-第二章测试

第三章 模糊控制的理论基础

-3.1 模糊控制概述

--3.1.1 模糊控制概述

-3.2 模糊集合

--3.2.1 模糊集合(上)

--3.2.2 模糊集合(中)

--3.2.3 模糊集合(下)

-3.3 隶属函数

--3.3隶属函数.

-3.4 模糊关系及其运算

--3.4模糊关系及其运算

-第三章测试

第四章 模糊控制

- 4.1 模糊自适应整定PID控制原理

--4.1.1 模糊自适应整定PID控制原理(上)

--4.1.2 模糊自适应整定PID控制原理(下)

-4.2 基于FF的模糊PID控制试验验证

-- 4.2.1 基于FF的模糊PID控制试验验证(上)

-- 4.2.2 基于FF的模糊PID控制试验验证(下)

-第四章测试

第五章 神经网络的理论基础

- 5.1 神经网络简介

--5.1 神经网络简介

- 5.2 神经网络的发展简史

--5.2 神经网络的发展简史

-5.3 神经网络的基本概念

--5.3 神经网络的基本概念

- 5.4 神经网络的分类

--5.4 神经网络的分类

-5.5 神经网络的学习算法、基本特征和研究领域

--5.5 神经网络的学习算法、基本特征和研究领域

-第五章测试

第六章 典型神经网络

-6.1 感知器

--6.1.1 感知器的数学模型.

--6.1.2.1 感知器应用实例分析(实现逻辑运算与或非)

--6.1.2.2 感知器应用实例分析(实现逻辑运算异或)

- 6.2 BP神经网络

--6.2.1.1 BP神经网络简介(上)

--6.2.1.2 BP神经网络简介(中)

--6.2.1.3 BP神经网络简介(下)

--6.2.2.1 BP神经网络应用实例分析之一:逻辑运算异或实现

--6.2.2.2 BP神经网络应用实例分析之二:非线性函数拟合

-第六章测试

第七章 遗传算法及其应用

- 7.1 什么是遗传算法

--7.1 什么是遗传算法

-7.2 遗传算法的特点

--7.2 遗传算法的特点

-7.3 遗传算法的基本操作之复制

--7.3 遗传算法的基本操作之复制

-7.4 遗传算法的基本操作之交叉与变异

--7.4 遗传算法的基本操作之交叉与变异

-第七章测试

第八章 遗传编程

-8.1 遗传编程工作原理

--8.1 遗传编程工作原理

-8.2 遗传编程基本操作之复制

--8.2 遗传编程基本操作之复制

-8.3 遗传编程基本操作之交换和突变

--8.3 遗传编程基本操作之交换和突变

- 8.4 遗传编程的工作步骤及实例分析

-- 8.4 遗传编程的工作步骤及实例分析

-第八章测试

期末测试

-期末测试

2.3.2 专家PID (下)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。