神经网络P ID 控制及其Ma tlab 仿真

曾 军, 方厚辉

(湖南大学电气与信息工程学院 湖南长沙 410082)

摘 要: 讨论了基于神经网络的P ID 控制, 并将其作用于工业控制, 利用神经网络的自学习能力进行在线参数整定,并利用M at lab 软件进行仿真。仿真结果表明, 神经网络P ID 控制器具有较高的精度和较强的适应性, 可以获得满意的控制效果。

关键词: 神经网络; P ID 控制; M at lab 仿真; 工业控制

1 引 言

在工业控制中, P ID 控制是工业控制中最常用的方法。这是因为P ID 控制器结构简单、实现简单, 控制效果良好, 已得到广泛应用。据统计, 在目前的控制系统中, P ID 控制占了绝大多数。但是, 他具有一定的局限性: 当控制对象不同时, 控制器的参数难以自动调整以适应外界环境的变化。为了使控制器具有较好的自适应性, 实现控制器参数的自动调整, 可以采用神经网络控制的方法。利用人工神经网络的自学习这一特性, 并结合传统的P ID 控制理论, 构造神经网络P ID 控制器, 实现控制器参数的自动调整。

2 神经网络P ID 控制

神经网络P ID 控制是神经网络应用于P ID 控制并与传统P ID 控制相结合而产生的一种新型控制方法, 是对传统的P ID 控制的一种改进和优化。传统的P ID 控制器算式如下:u ( t) = K P [ e ( t) +1T I∫t0e ( t) dt + T Dde ( t)dt] (1)相应的离散算式为:u (k ) = K P e (k ) + K IΣkj= 0e ( j ) +KD [ e (k ) - e (k - 1) ] (2)其中: K P , K I , K D 分别为比例、积分、微分系数; e (k ) 为第k 次采样的输入偏差值; u (k ) 为第k 次采样时刻的输出值。根据式(2) , 用一个单神经元构造P ID 控制器, 如

图1 所示。

图1 神经网络P ID 控制器X 1 (k ) = e (k )

网络的输入为:X 2 (k ) = Σkj= 0e ( j ) (3)X 3 (k ) = $e (k ) = e (k ) - e (k - 1)

网络的输出为:

u (k ) = W 1X 1 (k ) + W 2X 2 (k ) + W 3X 3 (k ) (4)

其中: {W i} 为控制器的加权系数, 相当于P ID 控制器中的比例、积分、微分系数K P , K I , K D , 但与传统的P ID 控制器不同的是, 参数{W i} 可以进行在线修正。不断调整{W i}, 从而使之达到最优值{W3 } , 从而可以改善控制系统的控制性能。

3 神经网络的学习机理和控制算法

神经网络P ID 控制结构如图2 所示, 其中有2 个神经网络: NN I 系统在线辨识器、NNC 自适应P ID 控制器。系统的工作原理是: 在由NN I 对被控对象进行在线辨识的基础上, 通过实时调整NNC 的权系, 使系统具有自适应性, 达到有效控制的目的。

图2 神经网络P ID 控制框图

神经网络P ID 控制器NNC 的准则函数为:E 2 (k ) =12[ r (k + 1) - z(k + 1) ]2 (5)则网络权值调整算法为:$W i (k ) = - G25E 2 (k )5W i (k )(6)其中: G2 为学习步长。则神经网络控制器采用的算法如下:

u (k ) = W 1X 1 (k ) + W 2X 2 (k ) + W 3X 3 (k ) (7)

W i (k + 1) = W i (k ) + G

2 [ r (k + 1) - y

z

(k + 1) ]õ

X i (k )

5y

z

(k+ 1)

5$u (k )

(8)

4 神经网络的Ma tlab 仿真

实验中, 我们为了检验神经网络P ID 控制系统的性能, 进行了大量的仿真实验。下面我们以时滞缓变的一阶大时滞系统作为被控对象, 进行仿真实验。设被控对象为:G (s) =160s + 1e- 80s (9)相应的控制系统的阶跃响应曲线如图3, 图4 所示。

图3 普通P ID 控制阶跃响应

图4 神经网络P ID 控制阶跃响应

从图中可以看出, 神经网络P ID 控制比传统的P ID 控制具有更好的控制特性。神经网络P ID 控制方法简单, 从本文中我们可以得出, 神经网络P ID 控制有如下的优点:

(1) 无需建立被控系统的数学模型。

(2) 控制器的参数整定方便。

(3) 有很好的动静态特性。

参 考 文 献

[ 1 ]  徐丽娜1 神经网络控制[M ] 1 北京: 电子工业出版社, 20031

[ 2 ]  闻新周, 等1M at lab 神经网络应用设计[M ] 1北京: 科学出版社, 20001

[ 3 ]  杜建凤, 等1 神经网络P ID 控制[J ] 1 北京科技大学学报, 1998, (6) 1

作者简介 曾 军 男, 1978 年出生, 湖南大学电气与工

程学院, 硕士研究生。

来源:现代电子技术

如何在matlab中建立pid神经网络,神经网络PID控制及其Matlab仿真相关推荐

  1. 如何在Python中建立和训练K最近邻和K-Means集群ML模型

    One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...

  2. django 传递中文_如何在Django中建立消息传递状态

    django 传递中文 by Ogundipe Samuel 由Ogundipe Samuel 如何在Django中建立消息传递状态 (How to Build a Message Delivery ...

  3. MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等

    MATLAB光伏并网仿真模型,在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行. 太阳能电池,MPPT,包括输电线路,接入三电平 ...

  4. python中如何画logistic_如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

    原标题:如何在 Python 中建立和训练线性和 logistic 回归 ML 模型? 英语原文: 翻译:(Key.君思) 线性回归与logistic回归,是. 在我的里,你们已经学习了线性回归机器学 ...

  5. 如何在CCS中建立自己的工程

    如何在CCS中建立自己的工程 相信有很多人用了好久的CCS了,却不会建立自己的工程文件,大家要不就是在TI的例程里改,要不就是弄的工程文件路径很复杂,而且有时还会有致命的缺点--不能换路径,也就是说放 ...

  6. 如何在WordPress中建立电子邮件列表–电子邮件营销101

    Building an email list is a hot topic among bloggers and small business owners. Just about every exp ...

  7. 我如何在JavaScript中建立良好的发布过程

    by Dafna Rosenblum 达夫娜·罗森布拉姆(Dafna Rosenblum) 我如何在JavaScript中建立良好的发布过程 (How I established a good rel ...

  8. matlab 日期排序_在Matlab中对数据进行排序(Sorting Data in Matlab)

    在Matlab中对数据进行排序(Sorting Data in Matlab) 我试图在Matlab中对以下数据进行排序,但没有得到我需要的预期输出. 这是数据: '1B-3A-5A' '1A-3A- ...

  9. 如何在matlab中建立水箱模型_在MATLAB中实现水箱液位控制系统的设计

    在 MATLAB 中实现水箱液位控制系统的设计 [摘要] 本论文的目的是设计双容水箱液位串级控制系统. 在设计中充分利 用计算机技术, 自动控制技术, 以实现对水箱液位的串级控制. 首先对被控对象 的 ...

最新文章

  1. golang json 获取所有key_Golang —— JSON 大法
  2. 【机器学习】通俗的k-近邻算法算法解析和应用
  3. letcode 41. 缺失的第一个正数
  4. JS JavaScript模块化(ES Module/CommonJS/AMD/CMD)
  5. BSTR、char*和CString转换
  6. php redis 源码分析,从源码中分析关于phpredis中的连接池可持有数目
  7. mysql以user1登录_在mysql中创建用户后不能本地登录的解决方法
  8. VMware中CentOS设置静态IP
  9. openstack 官方文档配置 Open vSwitch
  10. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
  11. python类与对象的内置函数大全(BIF)
  12. XML语言学习2---方立勋教程DTD
  13. 2021WSB-day2-4: Raffaele教授演示利用OpenCV和Python实现一个指纹识别系统 (含代码) part6
  14. 精密测量专题2--光栅基片预处理
  15. 财会法规与职业道德【1】
  16. python3D绘图Axes3D函数详解
  17. 【计算机网络】第六话·数据的传输方式(上)
  18. 护照阅读器助力港珠澳大桥拓展大湾区
  19. 分享《生死狙击2》的大场景草渲染
  20. 疯狂英语(Chapter one)

热门文章

  1. 集成ssj思路与注意点
  2. Spring_SSJ集成
  3. Python(九)元编程
  4. Vue3教程:结合 Ant-Design-of-Vue 实践 Composition API
  5. 项目管理学习——第一课:概述
  6. 【解决问题】Qt项目不能添加新文件Files are not automatically added to the CmakeLists.text file of the CMake project.
  7. C/C++ Linux后端进BAT的学习路线(腾讯官方认证)丨Linux服务器开发
  8. 在现网中使用AAA 认证、授权、计费的详细教程
  9. vue3项目创建运行报错sockjs.js?9be2:1609 GET http://192.168.17.53:8080/sockjs-node/info?t=1637203080085
  10. C语言刷题随记 —— 求 s=a+aa+aaa+aaaa+aa...a 的值