【PSO-PID】使用粒子群算法整定PID参数控制起动机入口压力值
最近在学优化算法,接触到了经典寻优算法之粒子群PSO,然后就想使用PSO算法来调节PID参数,在试验成功之后将此控制算法应用到了空气起动系统上,同时与之前的控制器进行对比看看哪种控制效果最好。
0 引言
PID参数整定主要有两种:① 传统整定方法:幅值-相角裕度法、工程整定法、Z-N频率响应方法等,传统整定方法需要一定的工程经验,且只能获得相对意义上的最佳参数组合。② 新兴智能寻优算法如神经网络法、粒子群优化法等,其能自主的在约束条件的限制下寻找最优的控制参数,智能控制的发展为PID的参数整定提供了新的途径。
粒子群算法(PSO)属于种群搜索的自适应优化算法,其基本思想是把鸟群中的每个鸟看成一个粒子,鸟群寻找食物的过程中,不确定食物的具体位置,没有具体的飞行目标。只知道自己和食物的位置关系,为了尽快找到食物,它们通过对距食物最近的鸟的附近空间的搜索来达到找到食物的目的。
PSO优化算法因其结构简单,寻优效率高、精度高的特性常被广泛应用到参数整定中。
1 PSO算法原理
粒子群算法的整个寻优过程是:先对粒子群中的初始粒子的位置和速度进行初始化设置,然后进行粒子群算法的迭代过程,在迭代过程中,计算出每次迭代过程中粒子的适应度值,根据适应度值,粒子进行速度和位置信息的更新,直至迭代过程结束。在迭代结束后,得到全局最优粒子,控制器的参数组合也到达预设条件下的最优,以此来提高控制器的控制能力。粒子群算法中主要包括粒子、极值、适应度函数几个要素。
① 粒子:算法的每次迭代都是同时对粒子位置和速度进行更新,粒子位置代表的就是所要求的解,速度是每次迭代时位置的调节步长。为了避免算法中粒子盲目搜索,通常要根据实际控制量的具体范围设定位置和步长的上下限 [−Xmax,Xmax]\left[ -X_{\max}\text{,}X_{\max} \right][−Xmax,Xmax]、[−Vmax,Vmax]\left[ -V_{\max}\text{,}V_{\max} \right][−Vmax,Vmax]粒子的位置和步长更新方式为:
{vidk+1=w×vidk+c1×r1×(pid−xidk)+c2×r2×(pgd−xidk)xidk+1=xidk+vidk+1\begin{cases} v_{id}^{k+1}=w\times v_{id}^{k}+c_1\times r_1\times \left( p_{id}-x_{id}^{k} \right) +c_2\times r_2\times \left( p_{gd}-x_{id}^{k} \right)\\ x_{id}^{k+1}=x_{id}^{k}+v_{id}^{k+1}\\ \end{cases} {vidk+1=w×vidk+c1×r1×(pid−xidk)+c2×r2×(pgd−xidk)xidk+1=xidk+vidk+1式中,vidk+1v_{id}^{k+1}vidk+1 表示第 iii 个粒子在第 k+1k+1k+1 次迭代中第 ddd 维上的速度信息,xidk+1x_{id}^{k+1}xidk+1 表示第 iii 个粒子在第 k+1k+1k+1 次迭代中第 ddd 维上的位置信息,c1c_1c1 和 c2c_2c2 为学习因子,www 为惯性权重。
② 极值:算法的每次迭代都需要参考两个极值,即全局最优值 pgdp_{gd}pgd 和粒子个体的历史最优值 pidp_{id}pid 。通过不断比较、计算种群中每个粒子的适应度值来得到这两个极值。
③ 适应度函数: 粒子群算法中,为了检验所求值的优劣,引入适应度函数,目前为止所有的适应度值函数中考量最为综合、合理的评判指标为 ITEA 方法,即J=∫0∝t∣e(t)∣dtJ=\int_0^{\propto}{t\left| e\left( t \right) \right|dt} J=∫0∝t∣e(t)∣dt
PSO算法粒子迭代示意图为:
2 改进PSO算法
由于惯性权重 www对于算法的寻优过程影响很大,现在的研究也大多集中在惯性权重的改进方面,来解决粒子群算法容易陷入局部最优的问题。
惯性权重 www 的设计方法有:① 线性递减惯性权重策略:w=wmax−(wmax−wmin)tTmaxw=w_{\max}-\left( w_{\max}-w_{\min} \right) \frac{t}{T_{\max}} w=wmax−(wmax−wmin)Tmaxt② 非线性递减惯性权重策略:w=wmax−(wmax−wmin)(tTmax)2w=wmax−(wmax−wmin)[2tTmax−(tTmax)2]w=w_{\max}-\left( w_{\max}-w_{\min} \right) \left( \frac{t}{T_{\max}} \right) ^2 \\ w=w_{\max}-\left( w_{\max}-w_{\min} \right) \left[ \frac{2t}{T_{\max}}-\left( \frac{t}{T_{\max}} \right) ^2 \right] w=wmax−(wmax−wmin)(Tmaxt)2w=wmax−(wmax−wmin)[Tmax2t−(Tmaxt)2] 通过对比,在相同的条件下,采用非线性惯性权重的粒子群算法收敛速度更快,陷入局部最优的情况减少,得出的控制器参数更加有效。
3 PSO-PID控制器设计
利用 PSO 算法的寻优特性对 PID 控制器的三个参数进行调整,将 PSO 算法的维度设定为3,每个粒子的位置信息在这 3 个维度的分解量都对应的表示一组 PID 参数值。粒子群PSO-PID优化流程如下图所示。
4 仿真结果与分析
将PSO-PID控制方法与PID控制、RBF-PID控制、ADRC控制这三种控制方法进行对比,在相同的参数下进行仿真,仿真模型以及结果如下。
① 搭建模型
② PSO-PID的迭代过程和ITAE变化曲线为
可以看出,随着迭代次数的增加,群体适应值在不断地减小直至稳定在一个值左右。
③ PID参数变化曲线:
可以看出比例系数 Ki 随着迭代次数的增加逐渐减小,而积分系数 Ki 和微分系数 Kd 始终保持在一个值,无明显变化。
④ 寻优前后的跟踪对比:
可以看出寻优前与寻优后存在明显的改进,寻优后的跟踪曲线控制效果更好,能更好的跟踪上参考曲线。
⑤ 四种控制器的控制效果对比:
可以看出最后的控制效果从好到坏依次为:PID < RBF-PID < PSO-PID < ADRC。但是,ADRC也有它的缺点,即当采样时间不在0.001~0.0001这个区间内时,其控制效果达不到最好。在实际的PLC控制系统中,对于一般优先级的模块来说,PLC的采样时间在100ms或10ms这种量级,达不到1ms甚至0.1ms这种级别,所以当采样时间过大时,可能ADRC的控制效果还不如PID控制。
另外,我还发现个问题,几乎所有文献中,使用PSO-PID控制器的参考输入都是用的阶跃输入信号或者常值输入信号,在我多次使用其他类型输入仿真试验之后得出结论,使用阶跃信号的PSO优化效果最好,调优效果最明显。
5 参考文献
[1] 曹刚,令狐克均,吴怀超,等. 基于PSO-PID的重型AT主油压调节的研究[J]. 机床与液压,2019,47(16):152-156
[2] 康日晖. 基于改进PSO-PID算法的四轴飞行器飞控系统研究[D]. 山西:太原理工大学,2018.
[3] 高杰. 基于粒子群算法的微电网经济调度优化[D]. 长江大学,2021.
[4] 杜文正,谢政,童国林. 桥式起重机PSO-PID防摆控制器的设计[J]. 机床与液压,2013,41(13):98-100.
相关文章:
【PSO-PID】使用粒子群算法整定PID参数控制起动机入口压力值
最近在学优化算法,接触到了经典寻优算法之粒子群PSO,然后就想使用PSO算法来调节PID参数,在试验成功之后将此控制算法应用到了空气起动系统上,同时与之前的控制器进行对比看看哪种控制效果最好。 0 引言 PID参数整定主要有两种&…...
当代数据分析指南:激发商业洞见的七个方法(上)
如果说眼下的发生的事能证明什么,那就是基于实时可信的数据分析正在变得越来越重要。但是要是想要在需要的时候准确地获取中肯的洞察,我们所需要的可不只是漂亮的可视化。 如何让你的员工都有能力和机会都做出最好的决策,不管这个决策会有多…...
javaWeb核心02-JSP、EL、JSTL、MVC
文章目录JSP1,JSP 概述2,JSP 快速入门2.1 搭建环境2.2 导入 JSP 依赖2.3 创建 jsp 页面2.4 编写代码2.5 测试3,JSP 原理4,JSP 脚本4.1 JSP 脚本分类4.2 案例4.2.1 需求4.2.2 实现4.2.3 成品代码4.2.4 测试4.3 JSP 缺点5࿰…...
spring-boot+mybatis-plus连接Oracle数据库,及查询相关数据
配置java 略(这里我用的是jdk1.8) 配置maven 环境变量: M2_HOME:D:\LJ\software\java\maven\apache-maven-3.6.3 Path:%M2_HOME%\bin 仓库/jdk/镜像云设置(./config/sitting) 仓库 <localRepository> D:/…...
电商使用CRM系统有什么好处,如何选择
数据显示,使用电商CRM客户管理系统后,企业销售额提高了87%,客户满意度提高了74%,业务效率提高了73%。要在竞争激烈的电商市场取得成功,与目标受众的有效沟通是有效的方法。下面说说什么是电商CRM系统?电商C…...
Nacos2.2.0多数据源适配oracle12C-修改Nacos源码
从2.2.0版本开始,可通过SPI机制注入多数据源实现插件,并在引入对应数据源实现后,便可在Nacos启动时通过读取application.properties配置文件中spring.datasource.platform配置项选择加载对应多数据源插件.本文档详细介绍一个多数据源插件如何实现以及如何使其生效。 文章目录一…...
第十四届蓝桥杯三月真题刷题训练——第 5 天
目录 题目1:数的分解 题目描述 运行限制 代码: 题目2:猜生日 题目描述 运行限制 代码: 题目3:成绩分析 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 题目4:最大和…...
大数据框架之Hive:第3章 DDL(Data Definition Language)数据定义
第3章 DDL(Data Definition Language)数据定义 3.1 数据库(database) 3.1.1 创建数据库 1)语法 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPER…...
概率论小课堂:统计学是大数据方法的基础
文章目录 引言I 统计学1.1 统计学的内容1.2 统计学的目的II 用好数据的五个步骤2.1 设立研究目标2.2 设计实验,选取数据。2.3 根据实验方案进行统计和实验,分析方差。2.4 通过分析进一步了解数据,提出新假说。2.5 使用研究结果III 数据没用好的原因3.1 霍桑效应3.2 数据的稀…...
监控集群概念讲解
监控概述 1、监控的重要性 监控是运维日常的重要工作之一; 监控是有多重要? 监控可以帮助运维监控服务器的状态;要及时解决; 如果淘宝、腾讯宕机了1个小时? 损失是无法估量的; 服务器是否故障、宕不…...
如何通过DAS连接GaussDB
文章目录1 实验介绍2 实验目的3 配置DAS服务4 SQL使用入门1 实验介绍 本实验主要描述如何通过华为云数据管理服务 (Data Admin Service,简称DAS) 来连接华为云GaussDB数据库实例,DAS是一款专业的简化数据库管理工具,提供优质的可视化操作界面…...
支持在局域网使用的项目管理系统有哪些?5款软件对比
一、选择私有部署的原因以及该方案的优点有很多可能的原因导致人们更倾向于使用私有部署的企业管理软件,其中一些原因可能包括:1.数据安全性要求:一些企业管理软件包含敏感的商业数据和隐私信息,为了保护这些信息不被未经授权的第…...
Linux CentOS7 MySQL 5.7安装
准备工作 //创建目录 mkdir /opt/mysql //跳转目录 cd /opt/mysql下载MySQL 请耐心等待,也可以在Windows下载以后上传到 /opt/mysql目录 wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar解压 tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-b…...
Kubernetes学习(四)控制器
ReplicaSet ReplicaSet的目的是维护一组在任何时候都处于运行状态的Pod副本的稳定集合。因此,它通常用来保证给定数量的、完全相同的Pod的可用性。 ReplicaSet的工作原理 ReplicaSet是通过一组字段来定义的,包括一个用来识别可获得的pod的集合的选择符…...
vue组件间通信的几个方法
一,props属性传递数据 适用场景:父组件传递数据给子组件 子组件设置props属性,定义接收父组件传递过来的参数 父组件在使用子组件标签中通过字面量来传递值 Children.vue props:{ // 字符串形式 name:String // 接收的类型参数 // 对象…...
商品价格区间设置与排序--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)
实例2:商品价格区间设置与排序 在网上购物时,面对琳琅满目的商品,我们应该如何快速选择适合自己的商品呢?为了能够让用户快速地定位到适合自己的商品,每个电商购物平台都提供价格排序与设置价格区间功能。假设现在某平…...
mybatis中sqlSession的使用
文章目录sqlsession的使用依赖jdbc.propertiesmysql-config.xml配置逆向工程创建sqlSessionsqlsession的使用 在最开始我们使用jdbcUtil的方式进行硬编码,sql字符串写的很难受,使用mybatis可以解决这个问题,它提供了数据库与实体类的关系映射…...
TPOT(Tree-based Pipeline Optimization Tool) API简介
文章目录TPOT简介TPOT APIClassification接口形式:Parameters:Attributes:Functions:Regression接口形式Parameters:(只列与分类任务有差异的参数)TPOT简介 TPOT是一个Python自动机器学习(AML)…...
Java 19和IntelliJ IDEA,如何和谐共生?
Java仍然是目前比较流行的编程语言,它更短的发布节奏让开发者每六个月左右就可以试用新的语言或平台功能,IntelliJ IDEA帮助我们更流畅地发现和使用这些新功能。IntelliJ IDEA v2022.3正式版下载(Q技术交流:786598704)在本文中&am…...
js循环判断的方法
js循环判断的方法if语句if else语句if else if else if......三元表达式switchswitch语句和if语句的区别for循环while循环do while循环for inforEachfor of性能问题if语句 条件满足就执行,不满足就不执行 if(条件){语句}if else语句 条件满足,执行语句…...
git快速入门(1)
1 git的下载与安装1)下载git安装包下载路径:https://git-scm.com/我的操作系统是window,64位的,我下载的Git-2.33.0-64-bit.exe,从官网下载或者从网址下载链接:链接地址:https://pan.baidu.com/…...
韩国绿芯1~16通道触摸芯片型号推荐
随着技术的发展,触摸感应技术正日益受到更多关注和应用,目前实现触摸感应的方式主要有两种,一种是电阻式,另一种是电容式。电容式触摸具有感应灵敏、功耗低、寿命长等特点,因此逐步取代电阻式触摸,成为当前…...
Go语言设计与实现 -- http服务器编程
Go http服务器编程 初始 http 是典型的 C/S 架构,客户端向服务端发送请求(request),服务端做出应答(response)。 golang 的标准库 net/http 提供了 http 编程有关的接口,封装了内部TCP连接和…...
MySQL-视图
视图是什么? 一张虚表,和真实的表一样。视图包含一系列带有名称的行和列数据。视图是从一个或多个表中导出来的,我们可以通过insert,update,delete来操作视图。当通过视图看到的数据被修改时,相应的原表的数…...
都工作3年了,怎么能不懂双亲委派呢?(带你手把手断点源码)
💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...
Hive 运行环境搭建
文章目录Hive 运行环境搭建一、Hive 安装部署1、安装hive2、MySQL 安装3、Hive 元数据配置到 Mysql1) 拷贝驱动2) 配置Metastore 到 MySQL3) 再次启动Hive4) 使用元数据服务的方式访问Hive二、使用Dbaver连接HiveHive 运行环境搭建 HIve 下载地址:http://archive.a…...
SAP ABAP 深度解析Smartform打印特殊符号等功能
ABAP 开发人员可以在 Smartform 输出上显示 SAP 图标或 SAP 符号。例如,需要在 SAP Smart Forms 文档上显示复选框形状的输出。SAP Smartform 文档上可以轻松显示空复选框、标记复选框以及 SAP 图标等特殊符号。 在 SAP Smartform 文档中添加一个新的文本节点。 1. 单击“更…...
React17+React Hook+TS4 最佳实践仿 Jira 企业级项目笔记
前言 个人笔记,记录个人过程,如有不对,敬请指出React17React HookTS4 最佳实践仿 Jira 企业级项目项目完成到第十章,剩下后面就没有看了,说的不是特别好 github地址:https://github.com/superBiuBiuMan/React-jira husky方便我们管理git hooks的工具 REST-API风格 https://zh…...
35- tensorboard的使用 (PyTorch系列) (深度学习)
知识要点 FashionMNIST数据集: 十种产品的分类. # T-shirt/top, Trouser, Pullover, Dress, Coat,Sandal, Shirt, Sneaker, Bag, Ankle Boot.writer SummaryWriter(run/fashion_mnist_experiment_1) # 网站显示一 tensorboard的使用 在网站显示pytorch的架构:1.1 …...
ChatGPT在工业领域的用法
在工业数字化时代,我们需要怎么样的ChatGPT? 近日,ChatGPT热度高居不下,强大的人机交互能力令人咋舌,在国内更是掀起一股讨论热潮。一时间,这场由ChatGPT引起的科技飓风,使得全球最顶尖科技力量…...
做程序的网站/百度保障中心人工电话
有时候添加网络打印机难免会出现稀奇古怪的问题。比如:开始运行中\\ip时候会出现以下提示:添加打印机显示你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。但是遇到这个问题对某些不懂电脑的人来说比较困难,…...
网站建设的界面风格有哪些/关于新品牌的营销策划
很久没更新,几乎每天8点半下班,回到家做做家务陪陪娃,睡觉时间都不够。周末经常跑香港买奶粉兼代购补贴家用,累到不想动。 一些笔记也没时间整理,抽空发一篇以前整理的非技术文章。 昨天晚上在群里问了下大家在mac上怎…...
济南做网站的公司哪家好/百度一下你就知道百度一下
10241024是程序员的节日,程序员就像是一个个1024,以最低调、踏实、核心的功能模块搭建起整个科技世界。随着映入程序员眼帘的第一行代码“Hello, World”,也请对自己说一声“Hello,Me”,对自己说:你好,我自…...
推荐一下做图文的网站/西安网站建设公司十强
conda install seaborn 是安装到jupyter那个环境的 1. 整体风格设置 对图表整体颜色、比例等进行风格设置,包括颜色色板等 调用系统风格进行数据可视化 set() / set_style() / axes_style() / despine() / set_context() import numpy as np import pandas as pd im…...
山东食品行业网站开发/查排名
世界再嘈杂, 匠人的内心, 绝对必须是安静、安定的。 ——李宗盛《致匠心》 为什么?我们要保留我们最珍贵的、最引以为傲的。一辈子总是还得让一些善意执念推着往前,我们因此能愿意去听从内心的安排。 专注做点东西,至…...
网站建设与管理难学吗/谷歌浏览器下载电脑版
参考资料 https://blog.csdn.net/gskull/article/details/82758553 https://blog.csdn.net/zm_miner/article/details/95083719 asp.net core webapi文件上传 最近开发一个新项目,使用了asp.net core 2.0,采用webapi开发后台,postgresql为…...