积分分离PIDsimulink仿真
积分分离PIDsimulink仿真
想使用积分分离PID在simulink中进行仿真,我们需要写S函数。关于如何写S函数构建灵活控制器,和写积分分离PID,可以看我往期博客。
S函数简单使用
PID各种算法
搭建模型
普通位置式PID调试:
进行PID参数整定:
积分分离式C代码
typedef struct
{volatile double Proportion; // 比例常数 Proportional Constvolatile double Integral; // 积分常数 Integral Constvolatile double Derivative; // 微分常数 Derivative Constvolatile double Error1; // Error[n-1]volatile double Error2; // Error[n-2]volatile double iError; // Error[n]volatile double Error_sum;volatile double index; //积分分离标志
} PID;double PID_increase(int iError,PID* sptr)
{double iIncpid=0;sptr->iError=iError; // 计算当前误差sptr->iError=iError;//积分分离处理 if(fabs(sptr->iError)> 180) sptr->index=1; else sptr->index=1;sptr->Error_sum+=sptr->iError;iIncpid=sptr->Proportion * sptr->iError // P+sptr->Integral * sptr->Error_sum*sptr->index // I+sptr->Derivative * (sptr->iError-sptr->Error1); // DiIncpid=PID_OutputLimit(iIncpid);//限幅处理sptr->Error1=sptr->iError; // 存储误差,用于下次计算 return(iIncpid); // 返回计算值}
引入积分分离调试
if(fabs(sptr->iError)> 25) sptr->index=1; //index是积分分离标志位else sptr->index=1;
判断积分误差值太小,积分部分不起作用,存在较大静差。
对积分值的判断条件进行调整:
也就是这个判断条件进行调整,调试找到比较合适的值:
if(fabs(sptr->iError)> 150) sptr->index=1; //index是积分分离标志位
else sptr->index=1;
继续调整值:
if(fabs(sptr->iError)> 150) sptr->index=1; //index是积分分离标志位
else sptr->index=1;
通过一简单调试,发现对比普通位置式PID,超调量明显下降,曲线稳定时间差不多。
积分分离PIDsimulink仿真相关推荐
- 积分分离PID控制算法
积分分离PID控制算法 积分分离PID控制: 积分分离控制基本思路: 积分分离控制算法表示: 积分分离式PID控制算法程序流程图: 注:本文内容摘自<先进PID控制MATLAB仿真(第4版)&g ...
- PID控制器开发笔记之二:积分分离PID控制器的实现
前面的文章中,我们已经讲述了PID控制器的实现,包括位置型PID控制器和增量型PID控制器.但这个实现只是最基本的实现,并没有考虑任何的干扰情况.在本节及后续的一些章节,我们就来讨论一下经典PID控制 ...
- PID积分饱和 和 积分分离
PID积分饱和 和 积分分离 1.积分饱和:积分是当前误差的累加ei_sum=ei_sum +err_now;积分饱和则是当你pid输出到了你想要的最大值,但存在外界干扰造成err_now当前误差仍然 ...
- PLC PID控制优化系列之积分分离、变积分系数(FC)
由于积分系数Ki是常数,所以在整个控制过程中,积分增量(这里指线性系统的斜率)是不变的.然而系统对于积分项的要求是,系统偏差大时积分作用应该是弱调节或者不调节,而在偏差小时,则应该加强.积分系数取大了 ...
- ADRC新手洗白之1“线性ADRC积分串联型仿真”
注:初始ADRC参数如下(wc/wo=0.5):输入为阶跃 TD:采用离散fhan函数,且r0=10,h=0.1(对比且r0=10,h=1). ESO:采用线性LESO,β01=3*20,β02=3* ...
- Matlab仿真PID控制(带M文件、simulink截图和参数分析)
文章目录 0.符号说明 1.如何根据连续系统建立差分方程 1.1.获取连续系统的传递函数 1.2.获取离散系统的传递函数 1.3.转换为差分方程 2.基本PID控制原理 3.比较PID输出,分析参数产 ...
- matlab限幅器无饱和怎么设置,抗积分饱和算法:输出限幅.ppt
抗积分饱和算法:输出限幅 模块八 数字控制器设计 本章要点 1. 连续化设计方法 重点:数字PID设计 2. 直接离散化设计方法 重点:最少拍控制算法 3. 大林算法与纯滞后控制 4. 模糊控制基础 ...
- 带滤波器的PID控制仿真-3(Simulink仿真)
在带滤波器的PID控制仿真-2的基础上对算例进行Simulink仿真. 控制器采用积分分离PI控制,即当误差的绝对值小于等于0.80时,加入积分控制,仿真结果如图1和2所示. 图1 加入滤波器时PID ...
- matlab仿真炉温控制,基于MATLAB的炉温控制系统的仿真.doc
PAGE 11 PAGE 11 控制系统仿真 课程大作业 题目: 基于MATLAB的炉温控制系统的仿真 院系名称: 电气工程学院 专业班级: 自动F0904 学生姓名: 学号: 指导教师: 教师职称: ...
最新文章
- HTML的标签描述4
- UVa12100 - Printer Queue
- HTTP Status 405 - JSPs only permit GET POST or HEAD问题的分析和解决办法
- python内存的回收机制_简单介绍python的垃圾回收机制
- 【AI视野·今日CV 计算机视觉论文速览 第198期】Fri, 14 May 2021
- 机器学习实战(6):SVM-SMO-核函数 手写识别
- 同济大学自动化与计算机科学,同济大学本科专业选通信工程好,还是选自动化好呢?...
- javascript中将字符串转换为json格式的三种方法
- echo 多行_分享laravel-echo-server广播服务搭建-Laravel
- emacs linux 教程,Emacs基础入门教程(三)使用 Emacs 必知必会
- 夏泽网 中国渔业统计年鉴年鉴资料网
- 直接在Google Chrome浏览器中查看文档和PDF
- lamp兄弟连的解决问题套路
- java基础之静态代理和动态代理
- 云计算是什么?云计算的发展趋势是什么?
- 股市股票基金市场研报合集(2022年,共195份)
- VCPKG 特性 - Overlay triplets
- 我用一根网线,控制了整栋楼的网络
- 用服务器玩安卓虚拟机,Android手机上运行linux虚拟机
- 数据结构中数据、数据对象、数据元素、数据项之间的关系
热门文章
- 苹果电脑快速安装双系统 Winclone镜像包 Winclone安装Win7/Win8.1/Win10镜像
- 两条命令!Win7本本变无线基站
- 小白和坑爹的ATI显卡
- 9.那些年我们一起经历过的痛-“15个最常见介词的深层次含义”
- 电竞路由器推荐指南游戏宅看过来
- 区块链包装是什么,区块链项目包装又是怎么做的,近距离接触大咖为您一一解读
- j和jk是有区别的_JK制服和水手服有什么区别?
- 一键可消除锁屏密码 手机安全机制亟待完善
- 台式计算机清洁除尘内容,台式机怎么清理灰尘
- springboot实现多线程定时发送邮件