不完全微分PID控制算法及仿真

news2024/11/15 16:01:21

在 PID控制中,微分信号的引入可改善系统的动态特性,但也易引进高频干扰,在误差扰动突变时尤其显出微分项的不足。若在控制算法中加入低通滤波器,则可使系统性能得到改善。

克服上述缺点的方法之一是在 PID算法中加入一个一阶惯性环节(低通滤波器),可使系统性能得到改善。

不完全微分PID的结构如图(a)、(b)所示,其中图(a)是将低通滤波器直接加在微分环节上,图(b)是将低通滤波加在整个PID控制器之后。下面以图(a)为例进行仿真说明不完全微分PID如何改进了普通PID的性能。

仿真实例:

采用第一种不完全微分算法,被控对象为一时滞系统传递函数:

在对象的输出端加幅值为0.01的随机信号n(k)。采样时间为20ms.低通滤波器为:

取M=1,采用具有不完全微分PID方法,其控制阶跃响应结果如图1所示。取M=2,采用普通PID 方法,阶跃响应结果如图2所示。由仿真结果可以看出,引入不完全微分后,能有效地克服普通PID的不足。尽管不完全微分PID控制算法比普通PID控制算法要复杂些,但由于其良好的控制特性,近年来越来越得到广泛的应用。

图1 不完全微分控制阶跃响应(M=1)

图2 普通PID控制阶跃响应(M=2)

仿真程序:

%PID Controler with Partial differential

clear all;

close all;

ts=20;

sys=tf([1].[60,1].'inputdelay',80);

dsys=c2d(sys,ts,'zoh');

[num,den]=tfdata(dsys,'V);

u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;

ud_1=0;

y_1=0;y_2=0;y_3=0;error_l=0;

ei=0;

for k=1:1:100

time(k)=k*ts;

yd(k)=1.0;

%Linear model

y(k)=-den(2)*y_l+num(2)*u_5;

n(k)=0.01*rands(1);

y(k)=y(k)+ n(k);

error(k)=yd(k)-y(k);

%PID Controller with partly differential

ei=ei+errorKy

kc=0.30;

ki=0.0055;TD=140;

kd=kc*TD/ts;

Tf=180;

Q-tf[1],[Tf,1]); %Low Freq Signal Filter

M=2;

if M==1 %Using PID with Partial differential

alfa=Tf(ts+Tf);

ud(k)=kd*(1-alfa)*(error(k)-error_1)Halfaud_l;

u(k)=ke*error(k)+ud(k)+ki*ei;

ud_1=ud(k);

elseif M==2 %Using Simple PID

u(k)=kc*error(k)+kd*(error(k)-error_1)+ki*ci;

end

%Restricting the output of controller

if u(k)>=10

u(k)=10;

end

if u(k)<=-10

u(k)=-10;

end

u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);

y 3=y 2:y_2=y_1;y_1=y(k);

error_l=error(k);

end

figure(1);

plot(time,yd,'r,time,y,'k:',linewidth',2);xlabel('time(s)');ylabel('yd.y');

legend('Ideal position signal', Position tracking);figure(2);

plot(time,u,'r.'linewidth' 2);xlabel('time(s));ylabel('u');figure(3);

bode(Q,T);dcgain(Q);

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

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

相关文章

pdf如何合并,用这个方法又快又好使

我们在整理文档的时候经常被要求最后提交的得是PDF&#xff0c;所以有时候手头上的文档有多份&#xff0c;但最后还得整合成一份PDF才行。合并PDF后我们才可以进行后续的操作&#xff0c;所以学会如何快速合并PDF很重要。要把多个文档整合到一起&#xff0c;借助下面这些工具就…

一文带你了解学习python的用处及好处,建议收藏

目录 学习Python能做什么&#xff1f; Python的用途有哪些 普通人学习python有什么好处 用处&#xff0c;很重要的呢 今天这一讲很关键&#xff0c;如果你都不知道python的好处&#xff0c;以及python的用处&#xff0c;那你python就算是白学了 学习Python能做什么&#xf…

【目标检测】------rcnn、fastrcnn、fasterrcnn

RCNN流程图 sppnet流程图 fastRcnn fasterrcnn网络 RPN&#xff08;Region Proposal Network&#xff09;是Faster-RCNN网络用于提取预选框&#xff08;也就是RCNN中使用selective search算法进行Region Proposal的部分&#xff09;&#xff0c;我们知道RCNN及Fast-RCNN中一个…

【Maven】属性管理

1. 属性 问题导入 定义属性有什么好处&#xff1f; 1.1 属性配置与使用 ①&#xff1a;定义属性 <!--定义自定义属性--> <properties><spring.version>5.2.10.RELEASE</spring.version><junit.version>4.12</junit.version> </prop…

第二章——CSS基础选择器,标签选择器,类选择器, id 选择器,通配符选择器

文章目录2.1 CSS选择器的作用2.2 CSS选择器分类2.3 CSS 基础选择器分类2.4 标签选择器2.5 类选择器2.5.1 多类名选择2.6 id选择器2.7 id选择器与类选择器的区别‘2.8 通配符选择器2.9 选择器对比2.1 CSS选择器的作用 选择器(选择符)就是根据不同需求把不同的标签选出来这就是选…

python图像处理(直方图增强)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 前面几篇文章谈到了对图像的处理,但是它们大多数都是对图像像素进行一些时空的转换,本身像素的内容并没有发生转变。比如旋转,镜像、移动、放大、缩小等等,像素还是这些像素,只…

Pytorch基础知识

Pytorch 基础知识 1.1 张量的概念 在PyTorch中&#xff0c;张量&#xff08;Tensor&#xff09;属于一种数据结构&#xff0c;它可以使一个标量、一个向量、一个矩阵&#xff0c;甚至是更维度的数组。类似于numpy中的数组 (ndarray),并且它们是可以相互转化的&#xff0c;在P…

python3:openpyxl解析和生成excel的常用方法

解析 打开已经存在的工作簿 openpyxl.load_workbook()方法 from openpyxl import load_workbookwb2 load_workbook(test.xlsx) print wb2.get_sheet_names() [Sheet2, New Title, Sheet1] 生成 创建一个工作簿 from openpyxl import Workbook# 一个工作簿(workbook)在创建…

kafka的关键细节 以及 分区和主题的概念

文章目录Kafka中的关键细节1.消息的顺序存储2. 单播消息的实现3.多播消息的实现4.查看消费组及信息主题、分区的概念1.主题Topic2.partition分区Kafka中的关键细节 1.消息的顺序存储 消息的发送方会把消息发送到broker中&#xff0c;broker会存储消息&#xff0c;消息是按照发…

python本科毕业设计基于神经网络的虚假评论识别系统源码,含模型及数据

主要函数&#xff1a; 1.corpusprocess原始语料处理函数 2.train_word2vec生成word2vec向量 3.generate_id2wec获得索引的w2id,和嵌入权重embedding_weights 4.prepare_data 数据预处理 完整代码下载地址&#xff1a;python本科毕业设计基于神经网络的虚假评论识别系统源码 代…

多线程(初阶)——多线程基础

多线程(初阶)——多线程基础 文章目录多线程(初阶)——多线程基础1.认识线程2.多线程程序2.1 第一个Java多线程程序2.2 观察线程的详细情况2.3 sleep方法2.4 run和start方法的区别3.创建线程3.1 继承Thread类3.2实现Runnable接口3.3 通过匿名内部类创建线程3.4通过实现Runnable…

【目标检测】------yolox网络结构

YOLOX网络结构图 卷积和池化计算器&#xff1a; http://www.sqflash.com/cal.html

ServletAPI 2-10复杂参数, 解析完的参数值都会放到 ModelAndViewContainer里面

总结&#xff1a; 找到解析器后&#xff0c;用解析器去解析参数&#xff0c;都使用了resolveArgument()中以下方法 mavContainer.getModel(); mavContainer:模型和视图容器 视图&#xff1a;页面请求要返回一个地方&#xff0c;这个地方的地址叫视图 。比如要到/sucess 模…

CV——day70 零基础学YOLO:YOLOv1

YOLO系列1. 不同阶段算法优缺点分析2. IOU指标计算3. MAP指标计算**指标分析**如何计算MAP4 YOLOv14.1 YOLOv1核心思想4.2 YOLOv1网络架构那么&#xff0c;7 * 7 * 30的输出是怎么来呢&#xff1f;4.3 损失函数4.3.1 位置误差4.3.2 置信度误差(含object)4.3.3 置信度误差(不含o…

股票量化分析工具QTYX使用攻略——小市值轮动选股策略(更新2.5.9)

搭建自己的量化交易系统 如果要长期在市场中立于不败之地&#xff01;必须要形成一套自己的交易系统。 如何学会搭建自己的量化交易系统&#xff1f; 边学习边实战&#xff0c;在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习&#xff0c;也可以用于实战炒股分析…

Springboot农产品特产销售网站maven mysql idea

摘 要 I 1 绪论 1 1.1研究背景 1 1.2研究现状 1 1.3研究内容 2 2 系统关键技术 3 2.1 JSP技术 3 2.2 JAVA简介 3 2.3 MYSQL数据库 4 2.4 B/S结构 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2经济可行性 5 3.1.3操作可…

[Android开发基础2] 七大常用界面控件(附综合案例)

文章目录 一、文本TextView 二、按钮Button 三、编辑输入框EditText 四、图片ImageView 五、单选按钮RadioButton 六、复选框CheckBox 七、系统消息框Toast 综合案例&#xff1a;账号注册界面 一、文本TextView TextView控件用于显示文本信息。 演示&#xff1a; <?…

kafka可视化web管理工具-KafkaMmap

kafka可视化web管理工具-KafkaMmap ​ 使用过kafka的小伙伴应该都知道kafka本身是没有管理界面的&#xff0c;所有操作都需要手动执行命令来完成。但有些命令又多又长&#xff0c;如果没有做笔记&#xff0c;别说是新手&#xff0c;就连老手也不一定能记得住&#xff0c;每次想…

blender绑定骨骼法 2 rig

image.pngimage.png生成一个body_temp add neck 脖子 add chin 下巴 image.pngadd shoulder肩膀 image.pngadd wrist手腕 add spline root .额那个位置 image.pngadd ankle脚踝 image.pngFACIAL setup是面部的骨骼绑定,这里没眼球啥的就不弄了直接 点go 就生成了骨骼. image.pn…

1、SPSS 25的安装

目录 一、简介 二、竞争优势 三、安装步骤 一、简介 SPSS 是一款用于Windows操作系统的数据和科学图形的数值分析软件&#xff0c;能够为用户提供多样的数据统计、处理、报告等功能&#xff0c;还能根据数据帮用户生成离散图、折线图等图形&#xff0c;以更加直观的方式向你…