毕业设计-基于 PID 控制算法仿真算法研究- Matlab

这篇具有很好参考价值的文章主要介绍了毕业设计-基于 PID 控制算法仿真算法研究- Matlab。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

课题背景和意义

实现技术思路

一、 基本原理

 二、无超调 PID 控制器的设计

三、无超调 PID 设计的验证

代码

实现效果图样例

最后


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于 PID 控制算法仿真算法研究- Matlab

课题背景和意义

ID 控制器(亦称 PID 调节器)是发展 最早的控制算法之一。它的参数整定方式简便,结构改变灵活,有比例调节、比例积分调节以及比例积分加微分调节。 然而,随着控制过程日益复杂,控制要求不断提高,很多产品的生产过程要求不允许超过设定值,例如 在葡萄酒的酿制过程中,任何一种原料的一点点超标都会影响葡萄酒的整体口味,因此生产过程中的无超 调控制是非常重要的。在发展速度越来越快的今天,工业自动化的科技水 平已成为一个国家发展快慢的重要标志,同时国家的发 展会加快工业化的速度。而在控制领域,PID 控制算法 从上世纪三四十年代出现到现在一直占据举足轻重的 地位。 但由于工业的严谨性、逻辑严密性以及对产品误差 要求的提高,在很多产品的设计与制造过程中超调量是 一个不可忽视的因素,比如在建筑设计中,沙子和水泥 的配比是不能改变的,如果沙子或者水泥的量稍微多一 点都会影响整个建筑的耐受能力以及坚固力。PID 控制 算法虽已日渐成熟,但很多 PID 的参数整定都存在超调 量,这使得 PID 的使用存在一定的局限性和不利性,针 对这些实际问题,对无超调控制算法的研究已成为了一 种热点。

实现技术思路

一、 基本原理

1)PID 控制器结构及原理
PID 控制器的设计有三部分组成,比例部分、积分部分、微分部分。其原理如图

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 PID 控制器是一种线性控制器,图中控制器的输入 e 为系统输入 r(t)与系统输出 y(t)的偏差:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

PID 控制器的算法为:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 写为传递函数形式:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 数字 PID 控制技术

由于计算机只能处理数字信号,且数字信号比模拟信号的优点多、缺点少,所以自从计算机进入控制领域以来,又进一步地推动了数字 PID 的发展,数字 PID 使得 PID 技术进一步理论化、系统化、规范化、实用化。
1)利用 MATLAB 对增量式 PID 控制算法进行仿真MATLAB 是一种用于算法开发、数据可视化、数据 分析及数值计算的高级技术计算语言和交互式环境。 MATLAB 的应用范围非常广,可用于动态系统的建模、分析和方针,包括信号和图像处理、通信、系统控制设计、测试和测量、财务建模和分析,以及计算生物学等众多应用领域。
增量式 PID 控制器的 MATLAB 实现:
根据递推原理得:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 增量式 PID 控制算法:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 根据增量式 PID 控制算法,设计了仿真程序,假设被控对象为:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

PID 控制参数:kp=6.5,ki =0.1,kd=2,程序仿真结果如图:

  输入和实际输出曲线:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 输出误差曲线:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 Simulink 仿真结构:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

输入信号结果:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

输出信号结果 :

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 二、无超调 PID 控制器的设计

响应曲线法的基本原理
响应曲线法是根据给定对象的瞬态响应特性参数 K、T 和 τ 来确定 PID 控制器的参数,整定公式如表所示

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 PID 控制算法为:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 PID 控制表示为:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 仿真实例

对含有纯滞后一阶传递函数 G= 1/60s+1 e- 80 t 进行仿真,如图:
Simulink 仿真:
毕业设计-基于 PID 控制算法仿真算法研究- Matlab

仿真结果

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 pid 算法离散化进行仿真

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 基于 Z-N 经验公式的无超调 PID 设计

1)K 的影响
对图所示的控制系统,控制器选用 PID 控制,参数整定采用 Z-N 公式,控制对象选一阶惯性加纯滞后模型,其传递函数可以写为:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 根据表得:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 将式子带入得:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 由式可知,控制对象的模型参数 K 被抵消了,所以 K 对系统的控制效果没有影响。

2)时间常数与纯滞后时间的影响
对含有一阶纯滞后系统 G= 1/60s+1 e-80 t 进行仿真。当(上升时间为 60,延迟时间为 80)时,如表  所示。
毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 最佳采样时间为 10s,稳定时间为 2270,而且当采样时间小于等于 10 时,无超调现象。 当(上升时间为 60,延迟时间为 60)时,如表所示。

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 最佳采样时间为 6s,稳定时间为 1416,而且当采样时间小于等于 9 时,无超调现象。当上升时间一样时,延迟时间的长短影响最佳采样时间和稳定时间,延迟时间越大, 采样时间和稳定时间都越长。当(上升时间为 80,延迟时间为 60)时,如表所示。

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 

①各个环节对超调量的影响
(1)设 T d =0, T i =∞,输入单位阶跃信号,如图所示。仿真结果表明:系统的超调量和响应速度都跟 K p 有关,而且 K p 越大,系统的稳定性也会变差。

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 (2)设 Kp=6,输入单位阶跃信号,如图所示。 仿真结果表明:系统的超调量会随着 Ti 值的增加而减小 

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 (3)设 Kp=6,Ti =6/0.1=60,输入阶跃信号进行仿真,如图所示。

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 ②无超调整定公式

对于 τ <0.6T 范围内的控制对象,Z-N 经验使得系统一直存在超调现象,所以希望对 Z-N 经验公式进行修正,从而获得一个无超调的 PID 控制器。

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

无超调 PID控制的公式如下:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

三、无超调 PID 设计的验证

对系统 G ( s )= e -28s/ 60s+1 进行仿真, K=1, T =60, τ =28 采用 Z-N 经验公式计算得到的参数为:
K p =2.5210, Ti = 56, T d = 14。 仿真结果如图

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 由于 τ<0.6T,所以用整定公式计算得 Kp =1.5466,Ti =140,Td=14。 仿真结果如图:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

代码

使用编程语句进行PID控制仿真

num=133;den=[1 20 0];

sys =tf(num,den);%开环传递函数

ts=0.001;%设采样时间为0.001秒,已经足够小

dis_sys =c2d(sys,ts, 'zoh'); %零阶保持器法

[dis_num, dis_den]= tfdata( dis_sys, 'v');

%获取离散传递函数的分子分母多项式

%根据dis_num和dis_den的阶次设置控制量和输出量的初值

u_1=0;e_1=0;e_2=0;de=0;ie=0;

y_1=0;y_2=0;

Kp=10;Kd=0.5;Ki=0.1; %设置PID控制器参数

Umax=2;%设置控制器的限幅值

N=10000;

for n=1:1:N

time(n)=n*ts;

r(n)=sign(sin(2*pi*time(n)/5)); %定义信号源的给定信号

de=(e_1-e_2)/ts;ie=e_1*ts+ie;

u(n)=-(Kp*e_1+Kd*de+Ki*ie);%计算PID控制器的输出量

if abs(u(n))>2

u(n)=sign(u(n))*Umax;

end

y(n)=-dis_den(2)*y_1-dis_den(3)*y_2+dis_num(1)*u(n)+dis_num(2)*u_1;

e(n)=r(n)-y(n);

e_2=e_1;e_1=e(n)

u_1=u(n);

end

实现效果图样例

PID预调节的具体过程图:

毕业设计-基于 PID 控制算法仿真算法研究- Matlab

 我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!文章来源地址https://www.toymoban.com/news/detail-459240.html

最后

到了这里,关于毕业设计-基于 PID 控制算法仿真算法研究- Matlab的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包