matlab做比例积分微分控制,收放卷卷径计算+闭环摆杆控制参数自适应PID控制算法(变比例变积分变微分)介绍...

项目简介

最近在一个客户现场搞熔边机项目,涉及到收放卷工艺的卷径计算,同时张力控制使用的是摆杆,然后通过PID控制输出辅助转速补偿收卷伺服速度。单一的PID参数不能自动适应卷径变化,如在小卷径200mm下调试整定出的一组PID参数,当收卷卷径大于300mm的时候该组参数就不能稳定,系统会发散。于是想出了本篇文章将要为大家介绍的变比例变积分变微分自适应PID控制器。

硬件介绍

0ccba445aaf8165712632f0d78526318.png

上图1为位置传感器,图中2部分为摆杆。摆杆运动的时候达到左右限位输出的值范围是0到500,中间位置为250.摆杆是通过气缸控制的,气缸输出一定的力。收卷使用的是伺服速度模式,收卷轴卷径变化范围为100mm-1000mm,系统卷径变化较大。系统最大运行速度为220m/min。速度可以通过HMI进行输入。

收卷轴的速度是根据牵引主轴速度确定的,这里只用牵引主轴的速度是不能保证摆杆在中间位置的,所以还要在此速度基础上 根据摆杆的位置反馈计算出PID补偿的辅助速度。    我为了实现系统优化,本套系统采用了两层变比例变积分变微分分段自适应PID控制器算法。具体的介绍如下:

变比例变积分变微分自适应PID控制器原理介绍

收卷的主速度是根据牵引主轴的给定速度计算出来的,辅速度是根据摆杆的位置通过位置式PID控制器算出的辅助速度。收卷轴的真正速度 = 主速度+辅助速度。

这里收卷轴,卷径是可以通过线长相等计算而来的。计算思路:要保证张力恒定的话,就是牵引走过的线长和收卷轴转过的线长应该是相等的。牵引走过的距离与收卷转过的距离是相等的,这里再通过一定的方法算出走过的这段距离中收卷转动的圈数,然后就能算出实时卷径了。

我们可以观察到一个现象,同样的牵引速度下,卷径小的时候收卷计算出的主转速n是比较快的,卷径增大的过程中同样的线速度下其收卷转速是减小的。具体的数学关系如下:

V = w*r = 2πnr 所以:n = v/2πr,也就是说主速度和(v/r)呈正比例关系。这里收卷伺服给定的转速n给定 = n主 + n辅,因为n主是和(v/r)呈正比例关系的,所以这里的PID计算出来的n辅也应该和(v/r)呈正比例关系。所以可以推得 PID参数也应该和(v/r)呈正比例关系。

上面介绍的是第一层变比例变积分变微分PID算法(实际上可以理解为跟随速度和卷径自适应的PID参数),实际上我在应用中,还使用了第二层变比例变积分变微分分段PID控制器,第二层分段PID控制参数实际上是根据偏差进行自动调整计算的。这里偏差是作为第二层分段PID的分段指标的,如下图:

0833c421896e9cc796f375a0867dffa3.png

当前自适应PID算法实现方法与参数整定介绍

第一层自适应PID参数整定方法

首先PID参数不乘以(v/r)这个时变系数,使用二倍二分法辅助看目标值和反馈值曲线调试PID参数。先确定一组在速度固定为200,卷径固定在100到200mm范围内的一组PID参数。把这组PID参数确定好之后,再乘以(v/r)系数。这个算出来的PID参数作为第二层根据偏差的分段PID的小偏差范围内的kp1 ki1 kd1(上图中),然后这里为了方便,再将kp1 ki1 kd1乘以一个系数,我们就能得到kp2 ki2 kd2参数了。

这里PID控制器参数的整定采用的是控制变量法,每次只调一组参数,然后看波形。

#为了系统更稳定,这里采用多重滤波处理:

反馈滤波以及转速滤波,滤波后效果波形如下所示

采用一阶低通 滤波后的数据 = (1-s)上次滤波数据 + s此次实时反馈数据

反馈滤波系数0.9和0.1

转速滤波系数 0.9和0.1

转速:红色为滤波后转速 D470蓝色 D1208为主+辅算出的转速n

反馈:D66实时反馈采样 D572反馈滤波后曲线

8ae12f05fac9ee02ea3cf670f571c06e.png

反馈滤波系数0.95和0.05

转速滤波系数0.95和0.05

192c4e65ec78a0911daacd323160b3ea.png

反馈滤波系数0.99和0.01

转速滤波系数0.99和0.01(滞后非常严重)

c03ce7811dd82f029bf9a1774178677d.png

反馈滤波系数0.96和0.04

转速滤波系数0.96和0.04

9973be65d6672f41291c1e6972c82e33.png

最终确定卷径200mm v = 200m/min左右 的PID参数

Kp = 1400

Ki = 500

Kd = 70

最终确定卷径100mm v = 200m/min左右 的PID参数

Kp = 1600

Ki = 600

Kd = 180

然后根据上面说到的控制原理,推算出相应的系数,得到自适应PID控制器的自动调整参数。

具体参数整定过程如下:

目标位置是250,实际位置曲线如黄线所示

Kp = 100

Ki = 0

Kd = 0

R = 247

9b1078640afb0743bbcebdcea685a0c4.png

Kp = 200

Ki = 0

Kd = 0

R = 251

914e81edbe372d3a5054bd05f0bbf2fe.png

Kp = 400

Ki = 0

Kd = 0

R = 262

0604d17c17e223f66cccc5003291c2e0.png

Kp = 800

Ki = 0

Kd = 0

R = 262

ad17876c3d451e758a6ea29af4a6caa4.png

Kp = 1600

Ki = 0

Kd = 0

R = 268

b86af013afba1248f3bf765e14236862.png

Kp = 3200

Ki = 0

Kd = 0

R = 275

1530c5d6600bc4506d127fe6d9892cf9.png

Kp = 2000

Ki = 0

Kd = 0

R = 278

d8ba0f2a547426d7965a9177c04135af.png

Kp = 1400

Ki = 0

Kd = 0

R = 278

98f73be66f8559855f13c9c1810d6761.png

Kp = 1200

Ki = 0

Kd = 0

R = 278

c7f900a01376fc4878fa66f368ea53c1.png

Kp = 1200

Ki = 0

Kd = 100

R = 203

e62d91e9bdf262047b80aaa86b8dbeea.png

Kp = 1200

Ki = 0

Kd = 50

R = 311

6150497eb675f02eed2f0b3bfff1f550.png

Kp = 1200

Ki = 0

Kd = 60

R = 311

bb88e7e64e712b8f0491fd97053e16a8.png

Kp = 1200

Ki = 0

Kd = 200

R = 203

95addc3ecd4c346151ecd9b0a197c978.png

Kp = 1200

Ki = 0

Kd = 25

R = 321

5132fb7ad2d4afb6fc4e4c3aa776ea23.png

Kp = 1200

Ki =0

Kd = 35

R = 322

6117288d3cc36fffbeeefc15fffdb167.png

Kp = 1200

Ki =0

Kd = 40

R = 322

9829e7335d69008b700d5d8c8cd93d7b.png

Kp = 1200

Ki = 400

Kd = 50

R = 324

68275bf9af6c2046a59e429132e9d635.png

Kp = 1200

Ki = 800

Kd = 50

R = 331

6363389587613c2b0905fdabfe51c409.png

Kp = 1200

Ki = 800

Kd = 70

R = 338

efb9716041cb3cf366e30b6245ff02be.png

Kp = 1200

Ki = 800

Kd = 80

R = 338

18ff7b77f5b89c03b70726bdedde6f9b.png

Kp = 1200

Ki = 800

Kd = 80

R = 338

86626af1783c2350de6480c540f2cbeb.png

Kp = 1200

Ki =100

Kd = 0

R = 285

86571bdb8b82420ec9e4d90a47813f86.png

Kp = 1200

Ki = 200

Kd = 0

R = 292

2e0d17a952f3e7a1442a617dc947666c.png

Kp = 1200

Ki = 400

Kd = 0

R = 302

f267a68df8f2ecd9289292ba94b2b197.png

关注本站微信公众号,可以更方便的获得更多资源资料

燕骏工控博客[环宇工控博客]–www.yanjuntech.cn 专注于工业自动化领域,分享工控相关经验与教程,分享收集的百度云盘工控资料资源,记录个人生活读书感悟。期待与您相遇~~

cba9019686716b70fc546f3c201058d7.png

赞赏作者

喜欢 (11)or分享 (0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openfire学习4---android客户端聊天开发之聊天功能开发

前面我们已经把服务器搭建完成,并且在客户端实现了登录了。 和我们使用的QQ一样,想一想,登录成功之后呢?肯定是要有一个好友列表,通过这个列表,我们可以选择我们需要聊天的好友。 这里我们先研究下 xmpp的数…

C#实现冒泡排序

一、算法原理 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一…

PHP - 使用 Pear 进行安装和卸载包

安装: 首先运行到php根目录: 输入要安装的包文件名: 使用语法: pear install 要安装包的名称 回车确认: 如果没有其他意外,显示安装成功。查看安装的包的信息: 语句: pear info 包的…

CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)

所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 前言: 从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大。 但是外面调用方式仍保持一致向下兼容&#xff0…

SQL Server 2012安装图解

方法/步骤 在资源管理器中双击SQL Server 2012的安装光盘,此时会出现一个安装窗口,在左侧的界面中点击“安装”选项卡,如图所示。然后点击右边的第一项“全新SQL Server 独立安装...”选项。 点击“下一步”按钮继续下一步安装。耐心等待片刻…

Contest - 2014 SWJTU ACM 手速测试赛(2014.10.31)

题目列表: 2146 Problem A【手速】阔绰的Dim2147 Problem B【手速】颓废的Dim2148 Problem C【手速】我的滑板鞋2149 Problem D【手速】潦倒的Dim2150 Problem E【手速】被NTR的Dim2146 Problem A: 简单的最长回文串统计算法,这里没有过高要求…

DFS应用——遍历有向图+判断有向图是否有圈

【0】README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 “DFS应用——遍历有向图判断有向图是否有圈” 的idea 并用源代码加以实现 ;0.2) 判断有向图是否有圈的rule—— 一个有向图是无圈图当且…

AbleCloud智能行业解决方案助力体重秤企业向“中国智造”转变

近年来,体重秤消费群体的年龄层次与需求逐渐向多元化发展,品牌众多、竞争激烈的传统体重秤行业迎来了前所未有的挑战——智能体重秤成为行业发展的大趋势,功能单一、同质化严重已经成为阻碍传统体重秤企业成长的桎梏,打造出具备“…

javaScript事件(一)事件流

一、事件 事件是文档或者浏览器窗口中发生的,特定的交互瞬间。 事件是用户或浏览器自身执行的某种动作,如click,load和mouseover都是事件的名字。 事件是javaScript和DOM之间交互的桥梁。 你若触发,我便执行——事件发生,调用它的…

php输入对话框,如何使用JavaScript实现输入对话框

我们有时在网页上进行注册用户信息时会出现弹窗进行提示,你需要输入内容进行确认,那么,这样的输入对话框是怎么实现的呢?本篇文章就来介绍关于使用JavaScript实现输入对话框的方法。我们可以使用prompt显示输入对话框要在JavaScri…

CodeVS 1081 线段树练习 2

1081 线段树练习 2 时间限制: 1 s空间限制: 128000 KB题目等级 : 大师 Master题目描述 Description给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? 输入描述 Input Description第一行一个正整数n&#…

iOS开发UI篇—九宫格坐标计算

iOS开发UI篇—九宫格坐标计算 一、要求 完成下面的布局 二、分析 寻找左边的规律,每一个uiview的x坐标和y坐标。 三、实现思路 (1)明确每一块用得是什么view (2)明确每个view之间的父子关系,每个视图都只有一个父视图,拥有很多的子视图。 (3)…

工业4.0时代企业如何用CRM实现模式变革

当前,全球经济正处于变革的巨大浪潮之中,对于制造业来说,德国提出工业4.0,美国提出工业互联网,而我国,正在大力推进“中国制造2025”。制造业实现转型升级势在必行。我国政府提出,要大力支持传统…

Nginx 反向代理 websocket 协议

为什么80%的码农都做不了架构师?>>> 主要配置内容 server {listen 80;server_name xxx.xxx.xxx;location / {try_files $uri $uri/ /index.html;root /workspace/www;index index.html index.htm;}location ^~/letchat/ {proxy_pass http:/…

oracle中区间大小,Oracle的逻辑结构(表空间、段、区间、块)——总结

Oracle逻辑结构全景结构图以下为个人整理的一些关于Oracle逻辑结构的相关数据字典:SELECT * FROMDBA_TABLESPACES--记录各个表空间的详细信息SELECT * FROMDBA_TABLESPACE_USAGE_METRICS--记录各个表空间的使用状况SELECT * FROMDBA_DATA_FILES --记录各个数据文件的…

[C++] Nested Radical Constant

做高数助教被天煞的大一学生坑了,发现是个未解问题,没有解析解。。 用C搞了下,就是这样。。。 No closed-form expression is known for this constant (Finch 2003, p. 8; S. Plouffe, pers. comm., Aug. 29, 2008). /*********************…

api-gateway实践(03)新服务网关 - 网关请求拦截检查

参考链接:http://www.cnblogs.com/jivi/archive/2013/03/10/2952829.html 一、为什么要拦截检查请求? 防止重放攻击、篡改重放,进行使用规格检查 1、请求可能是重放攻击 重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方…

转载-使用 Feed4JUnit 进行数据与代码分离的 Java 单元测试

JUnit 是被广泛应用的 Java 单元测试框架,但是它没有很好的提供参数化测试的支持,很多测试人员不得不把测试数据写在程序里或者通过其它方法实现数据与代码的分离,在后续的修改和维护上有诸多限制和不便。Feed4JUnit 是开源的基于 JUnit 的扩…

dp递推 hdu1978

How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5422 Accepted Submission(s): 3185 Problem Description这是一个简单的生存游戏,你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的…

glTF格式初步了解

glTF格式初步了解近期看到Qt 3D的进展。偶然了解到了一种新的格式:glTF格式。这样的格式据说比现有的3D格式更加符合OpenGL应用的须要。这引起了我的好奇。于是我在Qt 3D的外部链接中找到了有关glTF的相关链接。上海萌梦信息科技有限公司(微博&#xff1…