目录
前言
课题背景和意义
实现技术思路
一、 基本原理
二、无超调 PID 控制器的设计
三、无超调 PID 设计的验证
代码
实现效果图样例
最后
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于 PID 控制算法仿真算法研究- Matlab
课题背景和意义
ID 控制器(亦称 PID 调节器)是发展 最早的控制算法之一。它的参数整定方式简便,结构改变灵活,有比例调节、比例积分调节以及比例积分加微分调节。 然而,随着控制过程日益复杂,控制要求不断提高,很多产品的生产过程要求不允许超过设定值,例如 在葡萄酒的酿制过程中,任何一种原料的一点点超标都会影响葡萄酒的整体口味,因此生产过程中的无超 调控制是非常重要的。在发展速度越来越快的今天,工业自动化的科技水 平已成为一个国家发展快慢的重要标志,同时国家的发 展会加快工业化的速度。而在控制领域,PID 控制算法 从上世纪三四十年代出现到现在一直占据举足轻重的 地位。 但由于工业的严谨性、逻辑严密性以及对产品误差 要求的提高,在很多产品的设计与制造过程中超调量是 一个不可忽视的因素,比如在建筑设计中,沙子和水泥 的配比是不能改变的,如果沙子或者水泥的量稍微多一 点都会影响整个建筑的耐受能力以及坚固力。PID 控制 算法虽已日渐成熟,但很多 PID 的参数整定都存在超调 量,这使得 PID 的使用存在一定的局限性和不利性,针 对这些实际问题,对无超调控制算法的研究已成为了一 种热点。
实现技术思路
一、 基本原理
PID 控制器是一种线性控制器,图中控制器的输入 e 为系统输入 r(t)与系统输出 y(t)的偏差:
PID 控制器的算法为:
写为传递函数形式:
数字 PID 控制技术
增量式 PID 控制算法:
根据增量式 PID 控制算法,设计了仿真程序,假设被控对象为:
PID 控制参数:kp=6.5,ki =0.1,kd=2,程序仿真结果如图:
输出误差曲线:
Simulink 仿真结构:
输入信号结果:
输出信号结果 :
二、无超调 PID 控制器的设计
PID 控制算法为:
PID 控制表示为:
仿真实例
仿真结果
将 pid 算法离散化进行仿真
基于 Z-N 经验公式的无超调 PID 设计
根据表得:
将式子带入得:
由式可知,控制对象的模型参数 K 被抵消了,所以 K 对系统的控制效果没有影响。
最佳采样时间为 10s,稳定时间为 2270,而且当采样时间小于等于 10 时,无超调现象。 当(上升时间为 60,延迟时间为 60)时,如表所示。
最佳采样时间为 6s,稳定时间为 1416,而且当采样时间小于等于 9 时,无超调现象。当上升时间一样时,延迟时间的长短影响最佳采样时间和稳定时间,延迟时间越大, 采样时间和稳定时间都越长。当(上升时间为 80,延迟时间为 60)时,如表所示。
(2)设 Kp=6,输入单位阶跃信号,如图所示。 仿真结果表明:系统的超调量会随着 Ti 值的增加而减小 。
(3)设 Kp=6,Ti =6/0.1=60,输入阶跃信号进行仿真,如图所示。
②无超调整定公式
三、无超调 PID 设计的验证
由于 τ<0.6T,所以用整定公式计算得 Kp =1.5466,Ti =140,Td=14。 仿真结果如图:
代码
使用编程语句进行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预调节的具体过程图:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。文章来源:https://www.toymoban.com/news/detail-459240.html
毕设帮助,疑难解答,欢迎打扰!文章来源地址https://www.toymoban.com/news/detail-459240.html
最后
到了这里,关于毕业设计-基于 PID 控制算法仿真算法研究- Matlab的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!