学生--PID控制MATLAB仿真实验
PID控制算法及MATLAB仿真分析

题目:以PID控制进行系统仿真学院自动化学院专业班级工业自动化111班学生姓名黄熙晴目录1 引言 (1)1.1本论文研究内容 (1)2 PID控制算法 (1)2.1模拟PID控制算法 (1)2.2数字式PID控制算法 (3)2.3PID控制算法的改进 (5)2.3.1微分项的改进 (5)2.3.2积分项的改进 (9)2.4模糊PID控制算法 (11)2.4.1模糊推理的系统结构 (12)2.4.2 PID参数在线整定原则 (12)2.5PID控制器研究面临的主要问题 .................................. 错误!未定义书签。
3 MATLAB编程和仿真 (13)3.1PID控制算法分析 (13)3.2MATLAB仿真 (15)4结语 (20)参考文献...................................................................................... 错误!未定义书签。
1 引言PID控制器以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
光学表面等离子共振生物传感技术受温度影响很大,因此设计高精度的温度控制器对于生物分析仪十分重要。
研究PID的控制算法是PID控制器整定参数优化和设定的关键技术之一。
在工业过程控制中,目前采用最多的控制方式依然是PID方式。
它具有容易实现、控制效果好、鲁棒性强等特点,同时它原理简单,参数物理意义明确,理论分析体系完整,并为工程界所熟悉,因而在工业过程控制中得到了广泛应用。
在实际的应用中,许多被控过程机理复杂,具有高度非线性、时变不确定性和纯滞后等特点,特别是在噪声、负载扰动等因素的影响下,参数复杂烦琐的整定过程一直困扰着工程技术人员。
为了减少参数整定的工作量,克服因环境变化或扰动作用造成系统性能的降低,就要提出一种PID控制参数的自动整定。
1.2本论文研究内容本文在介绍传统的PID控制算法,并对传统算法改进后,在学习的基础上提出一种模糊参数自整定方法,这种模糊控制的PID算法必须精确地确定对象模型。
基于matlab的pid控制仿真课程设计

这篇文章是关于基于Matlab的PID控制仿真课程设计的,主要内容包括PID控制的基本原理、Matlab的应用、课程设计的目的和意义、课程设计的具体步骤和具体操作步骤。
文章采用客观正式的语气,结构合理,旨在解释基于Matlab的PID控制仿真课程设计的重要性和实施方法。
1. 简介PID控制是一种常见的控制算法,由比例项(P)、积分项(I)和微分项(D)组成,可以根据被控对象的实际输出与期望输出的偏差来调整控制器的输出,从而实现对被控对象的精确控制。
Matlab是一种强大的数学建模与仿真软件,广泛应用于工程领域,尤其在控制系统设计和仿真方面具有独特优势。
2. PID控制的基本原理PID控制算法根据被控对象的实际输出与期望输出的偏差来调整控制器的输出。
具体来说,比例项根据偏差的大小直接调整输出,积分项根据偏差的积累情况调整输出,微分项根据偏差的变化速度调整输出。
三者综合起来,可以实现对被控对象的精确控制。
3. Matlab在PID控制中的应用Matlab提供了丰富的工具箱,其中包括控制系统工具箱,可以方便地进行PID控制算法的设计、仿真和调试。
利用Matlab,可以快速建立被控对象的数学模型,设计PID控制器,并进行系统的仿真和性能分析,为工程实践提供重要支持。
4. 课程设计的目的和意义基于Matlab的PID控制仿真课程设计,旨在帮助学生深入理解PID控制算法的原理和实现方法,掌握Matlab在控制系统设计中的应用技能,提高学生的工程实践能力和创新思维。
5. 课程设计的具体步骤(1)理论学习:学生首先需要学习PID控制算法的基本原理和Matlab在控制系统设计中的应用知识,包括控制系统的建模、PID控制器的设计原理、Matlab的控制系统工具箱的基本使用方法等。
(2)案例分析:学生根据教师提供的PID控制实例,在Matlab环境下进行仿真分析,了解PID控制算法的具体应用场景和性能指标。
(3)课程设计任务:学生根据所学知识,选择一个具体的控制对象,如温度控制系统、水位控制系统等,利用Matlab建立其数学模型,设计PID控制器,并进行系统的仿真和性能分析。
PID仿真实验报告

PID仿真实验报告PID控制是一种经典的控制方法,被广泛应用于工业自动化控制系统中。
本次实验主要针对PID控制器的参数调整方法进行仿真研究。
实验目的:1.研究PID控制器的工作原理;2.了解PID参数调整的方法;3.通过仿真实验比较不同PID参数对系统控制性能的影响。
实验原理:PID控制器由比例(P)、积分(I)、微分(D)三个控制部分组成。
比例控制:输出与误差成比例,用来修正系统集成误差;积分控制:输出与误差的积分关系成比例,用来修正系统持续存在的静态误差;微分控制:输出与误差变化率成比例,用来修正系统的瞬态过程。
PID参数调整方法有很多种,常见的有经验法、Ziegler-Nichols法和优化算法等。
实验中我们使用经验法进行调整,根据系统特性来进行手动参数调整。
实验装置与步骤:实验装置:MATLAB/Simulink软件、PID控制器模型、被控对象模型。
实验步骤:1. 在Simulink中建立PID控制器模型和被控对象模型;2.设定PID控制器的初始参数;3.运行仿真模型,并记录系统的响应曲线;4.根据系统响应曲线,手动调整PID参数;5.重复第3步和第4步,直到系统的响应满足要求。
实验结果与分析:从图中可以看出,系统的响应曲线中存在较大的超调量和震荡,说明初始的PID参数对系统控制性能影响较大。
从图中可以看出,系统的响应曲线较为平稳,没有出现明显的超调和震荡。
说明手动调整后的PID参数能够使系统达到较好的控制效果。
总结与结论:通过本次实验,我们对PID控制器的参数调整方法进行了研究。
通过手动调整PID参数,我们能够改善系统的控制性能,提高系统的响应速度和稳定性。
这为工业自动化控制系统的设计和优化提供了参考。
需要注意的是,PID参数的调整是一个复杂的工作,需要结合具体的控制对象和要求进行综合考虑。
而且,不同的参数调整方法可能适用于不同的控制对象和场景。
因此,在实际应用中,需要根据具体情况选择合适的参数调整方法,并进行实验验证。
学生--PID控制MATLAB仿真实验

计算机控制技术实验指导书(MATLAB版)机电学院杨蜀秦编2012-11-19实验一 连续系统的模拟PID 仿真一、基本的PID 控制 在模拟控制系统中,控制器最常用的控制规律是PID 控制。
模拟PID 控制系统原理框图如图1-1所示。
图1-1 模拟PID 控制系统原理框图PID 控制规律为:⎪⎪⎭⎫⎝⎛++=⎰dt t de T dt t e T t e k t u DtI p )()(1)()(0或写成传递函数的形式⎪⎪⎭⎫ ⎝⎛++==s T s T k s E s U s G D I p 11)()()( Ex1 以二阶线性传递函数ss 251332+为被控对象,进行模拟PID 控制。
输入信号)2.0*2sin()(t t r π=,仿真时取3,1,60===d i p k k k ,采用ODE45迭代方法,仿真时间10s 。
仿真方法一:在Simulink 下进行仿真,PID 控制由Simulink Extras 节点中的PID Controller 提供。
仿真程序:ex1_1.mdl ,如图1-2所示。
图1-2 连续系统PID 的Simulink 仿真程序连续系统的模拟PID 控制正弦响应结果如图1-3所示。
图1-3 连续系统的模拟PID 控制正弦响应仿真方法二:在仿真一的基础上,将仿真结果输出到工作空间中,并利用m 文件作图。
仿真程序:ex1_2.mdl ,程序中同时采用了传递函数的另一种表达方式,即状态方程的形式,其中[]0,01,1330,25010==⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡-=D C B A ,如图1-4所示。
m 文件作图程序:ex1_2plot.mclose all ;plot(t,rin,'k',t,yout,'k'); xlabel('time(s)'); ylabel('r,y');二、线性时变系统的PID 控制 Ex2 设被控对象为Jss Ks G +=2)(,其中)2sin(300400),6sin(1020t K t J ππ+=+=,输入信号为)2sin(5.0t π。
PID控制器MATLAB仿真

实验4 PID 控制器一、 实验目的1. 了解PID 控制器中P ,I ,D 三种基本控制作用对控制系统性能的影响。
2. 进行PID 控制器参数工程整定技能训练。
二、实验内容:题目1 了解P 、I 、D 三种控制器的作用:. )11(s T sT K G d i p c ++= 已知被控对象传递函数为3)1(1+sA 获取比例系数为1的系统阶跃响应曲线;实验步骤:在matlab 命令窗口中键入: clcclear allg0=tf(1,conv([1 2 1],[1 1])); kp=1;sys=feedback(kp*g0,1); step(sys);legend('Kp=1');grid on 运行得到的图象如图一:Step ResponseTime (sec)A m p l i t u d e图一B 调节比例系数,分析p K 过大和过小对系统动态性能(s p t t ,,σ)有何影响?稳态性能(稳定/ss e )的影响;实验步骤:在matlab 命令窗口中键入: clcclear allg0=tf(1,conv([1 2 1],[1 1])); kp=0.1:0.6:3;for i=1:length(kp)sys=feedback(kp(i)*g0,1); step(sys);legend('first','second','third','four','five'); grid on hold onend 运行之后得到的图象如图二:0246810121416180.10.20.30.40.50.60.70.80.91Step ResponseTime (sec)A m p l i t u d e图二分析:图二中绘制了Kp 从0.1到3时的系统单位阶跃响应曲线,可以看到,当比例作用增大时,闭环系统稳态误差变小,响应的震荡加剧,响应速度变快。
数字PID控制算法及Matlab仿真

数字PID 控制算法及Matlab 仿真一.实验目的:1.学习数字PID 算法的基本原理。
2.学习数字PID 调节器参数调节方法。
二.实验属性及设备:验证性实验,使用电脑及相关专业软件。
三.实验原理:1.概述首先建立数字PID 直流电机控制模型,然后用Matlab 的LTI 状态分析工具箱进行仿真,并绘制转速及控制电压变化图形。
图:kk k y r e -=2.位置式数字PID 算法公式010j )(u e e K e K e K u k k D kk I k P k +-⨯+⨯+⨯=-=∑3.增量式数字PID 算法公式)2()(211---+-⨯+⨯+-⨯=∆k k k D k I k k P k e e e K e K e e K u kk k u u u ∆+=-14.Matlab LTI 工具箱函数(作为了解内容)例:一台150kW 直流电动机,额定电压220V ,额定转速1000r/min ,额定电流700A ,R a =0.05Ω,L d =2mH ,假设负载及电动机转动总惯量GD 2=125kg ·m 2,则:)min/185.0100005.0*700220r V n R I U C N a N N e ⋅=-=-=Am N C C e T /767.155.9⋅==s R L T a a a 04.005.01023=⨯==-s C C R GD T T e a m 051.0767.1185.037505.01253752=⨯⨯⨯==mA kg C C e M ⋅==18.003.1传递函数为4902526521051.000204.041.51/1)()(222++=++=++=s s s s s T s T T C s u s y m m a e利用Matlab 建立传递函数方法为:sys=tf(270.5,[1,40,50])当采样间隔为ts=0.01s 时,则其z 变换(离散)传递函数为:dsys=c2d(sys,ts,'z')Matlab 输出为(Transfer function):0.1217z +0.112-----------------------------z^2-1.736z +0.7788Sampling time:0.01获得分子和分母的函数为:[num,den]=tfdata(dsys,'v')如果电机输入电压状态为u k ,输出转速状态为y k 。
用MATLAB对PID控制做简单的仿真

⽤MATLAB 对PID 控制做简单的仿真PID 控制是⽬前⼯程上应⽤最⼴的⼀种控制⽅法,其结构简单,且不依赖被控对象模型,控制所需的信息量也很少,因⽽易于⼯程实现,同时也可获得较好的控制效果。
PID 控制是将误差信号e(t)的⽐例(P),积分(I)和微分(D)通过线性组合构成控制量进⾏控制,其输出信号为:下⾯⽤MATLAB 软件对PID 控制做简单的仿真描述。
1. 建⽴⼆阶负反馈控制系统,其开环传递函数为:clc; clear all; close all;Go = tf(1,conv([2,1],[5,1]));2. ⽐例控制,输出与输⼊偏差成⽐例,即直接将误差信号放⼤或缩⼩。
⽐例控制的传递函数为:取不同的⽐例系数,绘制系统的单位阶跃响应曲线:Kp = [0.5,2,5,10];for m = 1:4 sys = feedback(Kp(m)*Go,1); step(sys); hold on;end随着K P 值的增⼤,系统响应速度加快,但系统的超调也随着增加,调节时间也随着增长。
当K P 增⼤到⼀定值后,闭环系统将趋于不稳定。
⽐例控制具有抗⼲扰能⼒强、控制及时、过渡时间短的优点,但存在稳态误差,增⼤⽐例系数可提⾼系统的开环增益,减⼩系统的稳态误差,从⽽提⾼系统的控制精度,但这会降低系统的相对稳定性,甚⾄可能造成闭环系统的不稳定,因此,在系统校正和设计中,⽐例控制⼀般不单独使⽤。
3. 微分控制,输出与输⼊偏差的微分成⽐例,即与偏差的变化速度成⽐例。
微分控制(与⽐例控制同时使⽤)的传递函数为:取不同的微分系数,绘制系统的单位阶跃响应曲线:Kp = 10;u(t)=[e(t)+e(t)dt +]K P 1T I ∫t 0T D de(t)dt(s)=G O 1(2s +1)(5s +1)(s)=G C K P(s)=(1+s)G C K P T DTd = [0,0.4,1,4];for m = 1:4 G1 = tf([Kp*Td(m),Kp],[0,1]); sys = feedback(G1*Go,1); step(sys); hold on;end随着T D 值的增⼤,系统超调量逐渐减⼩,动态特征有改善。
PID控制算法matlab仿真实验

1 数字PID控制在MATLAB仿真实验下图为数字PID控制算法仿真实验的示意图:
在模拟的过程中,我们分别改变其中的一个参数,而其他的两个参数不变的情况下,观测他的图像变化。
1、当改变比例时:
分析结果:当只改变比例,积分和微分都不变的情况下,比例系数越大,调节作用越强,但是存在调节误差。
2、当只改变积分时
分析结果:当系统中只改变积分,而比例和微风都不变时,可以减少或消除误差,但响应慢。
3、当只改变微分时
分析结果:当系统中加入了微分环节时,改善了系统的稳定性能和动态性能,但是,它的响应比较慢。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 1-2 连续系统 PID 的 Simulink 仿真程序 连续系统的模拟 PID 控制正弦响应结果如图 1-3 所示。
图 1-3 连续系统的模拟
PID 控制正弦响应 m 文件作图。
仿真方法二 :在仿真一的基础上,将仿真结果输出到工作空间中,并利用
仿真程序: ex1_2.mdl ,程序中同时采用了传递函数的另一种表达方式,即状态方程的形式,其中
统的阶跃信号、正弦信号和方波信号的位置响应,设计离散 时是阶跃跟踪, S=2 时为方波跟踪, 求出 G(s) 对应的离散形式 S=3 时为正弦跟踪。
G ( z)
Y ( z) U ( z) 1) 1)
,其中 Y(z) 和 U(z) 是关于 z 的多项式,则可以得到其对应的
差分表达式
yout (k )
den( 2) y ( k num( 2)u ( k
%根据差分方程计算系统当前输出
y(k)
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3; error(k)=rin(k)-yout(k); %当前误差
%更新 u(k-1)
、 u(k-2)
、 u(k-3)
u(k)
k p e( k )
T TI
k
k
e( j )
j 0
TD T kd
(e( k )
e( k e( k 1)
1))
k p e( k )
ki
j 0
e( j )T
e( k )
T
PID 控制器的输入) , u 为控制信号(即控制器的输出) 。
式中,
ki
kp TI
, kd
k pT D , e 为误差信号(即
den( 3) y( k num( 3) u (k
2) 2)
den( 4) y( k num (4 )u ( k
3) 3)
仿真程序: ex5.m
%PID Controller clear all ;
5
close
all
;
ts=0.001;
%采样周期 % 被控对象连续传递函数
sys=tf(5.235e005,[1,87.35,1.047e004,0]); dsys=c2d(sys,ts, [num,den]=tfdata(dsys, 'z'
); %转换成离散 z 传递函数的形式 'v' ); %提取 z 传递函数中的分子和分母多项式系数
u_1=0.0;u_2=0.0;u_3=0.0; y_1=0.0;y_2=0.0;y_3=0.0; x=[0,0,0]'; error_1=0;
%u(k-1) %y(k-1)
、 u(k-2) 、 y(k-2)
S=input(
for
k=1:1:1500 %各采样时刻
time(k)=k*ts;
if
S==1
%阶跃输入时 % 各项 PID 系数 % 阶跃信号输入
kp=0.50;ki=0.001;kd=0.001; rin(k)=1;0;ki=0.001;kd=0.001; rin(k)=sign(sin(2*2*pi*k*ts)); elseif S==3
图 1-5 Simulink 子系统
2
实验二 数字 PID 控制 计算机控制是一种采样控制, 一、位置式 PID 控制算法 按模拟 PID 控制算法,以一系列的采样时刻点 以一阶后向差分近似代替微分,可得离散 kT 代表连续时间 t ,以矩形法数值积分近似代替积分, PID 位置式表达式: 它只能根据采样时刻的偏差值计算控制量。 PID 控制中,使用的是数字 因此连续 PID 控制算法不能 PID 控制器。 直接使用,需要采用离散化方法。在计算机
); %输入输出信号图 );
'time(s)'
); % 误差图
Ex4 被控对象是一个三阶传递函数
523500 s 87 .35s
2
,采用 Simulink 与 m 文件相结合的形式,
10470 s
m 文件实现。输入信号为
利用 ODE45 方法求解连续对象方程,主程序由 一个采样周期 1ms 的正弦信号。采用
、 y(k-1)
、 y(k-2)
、 y(k-3)
u_3=u_2;u_2=u_1;u_1=u(k);
6
y_3=y_2;y_2=y_1;y_1=yout(k);
x(1)=error(k); x(2)=(error(k)-error_1)/ts; x(3)=x(3)+error(k)*ts; error_1=error(k); end
1
A
0 0
close
1 25
all
,B
0 133
,C
1 0 ,D
0 ,如图 1-4 所示。
m 文件作图程序: ex1_2plot.m
;
plot(t,rin, xlabel( ylabel(
'k' 'time(s)' 'r,y' );
,t,yout, );
'k'
);
二、线性时变系统的 Ex2 设被控对象为
和 e(k-1)
figure(1); plot(time,rin, xlabel( figure(2); plot(time,rin-yout, xlabel( 'time(s)' 'r' ),ylabel( ); 'error'
3
'r'
,time,yout, ),ylabel(
'b' 'rin,yout'
Simulink 模块实现,控制器由
PID 方法设计控制器,其中
kp
1. 5, ki
2, k d
0.05 。
误差初始化由时钟功能实现,从而在
m 文件中实现了误差的积分和微分。
4
控制主程序: ex4.mdl
图 2-1 Simulink 仿真程序 控制子程序: ex4f.m
function persistent [u]=ex4f(u1,u2) errori error_1 %u1 为 Clock , u2 为图 2-1 中 Sum 模块输出的误差信号 e 的采样值
在仿真过程中,可根据实际情况,对控制器的输出进行限幅。 二、连续系统的数字 连续系统的数字 PID 控制仿真 DSP PID 控制可实现 D/A 及 A/D 的功能,符合数字实时控制的真实情况,计算机及
的实时 PID 控制都属于这种情况。 Ex3 设被控对象为一个电机模型传递函数
G ( s)
1 Js
%各项 PID 系数 %方波信号输入
kp=1.5;ki=1.0;kd=0.01; rin(k)=0.5*sin(2*2*pi*k*ts); end u(k)=kp*x(1)+kd*x(2)+ki*x(3);
%各项 PID 系数 % 正弦信号输入
%PID 控制信号输出 u(k)
%控制信号输出限幅 if u(k)>=10 u(k)=10; end if u(k)<=-10 u(k)=-10; end
tt 时刻对应的 y ,第二列为 tt 时刻对应的 y 导数
xk = xx(end,:); yout(k)=xk(1);
% A/D ,提取 xx 中最后一行的值,即当前 %xk(1) 即为当前系统输出采样值 y(k)
y 和 y 导数
e(k)=rin(k)-yout(k); de(k)=(e(k)-e_1)/ts;
计算机控制技术实验指导书 ( MATLAB 版)
机 电 学 院 杨蜀秦 编
2012-11-19
实验一 连续系统的模拟 一、基本的 PID 控制 在模拟控制系统中, 控制器最常用的控制规律是
比例 r(t) e(t) 微分 积分 + +
PID 仿真 1-1 所示。
PID 控制。模拟 PID 控制系统原理框图如图
控制主程序 ex3.m
clear close all all ; ;
ts=0.001; xk=zeros(2,1); e_1=0;
%采样周期 % 被控对象经 A/D 转换器的输出信号 初值 y 的初值 %误差 e(k-1)
3
u_1=0;
%控制信号 u(k-1)
初值
for
k=1:1:2000
%k为采样步数 %time 中存放着各采样时刻
2
Bs
,式中
J=0.0067,B=0.1 。输入信号为
0 .5 sin( 2 t ) ,采用 PD 控制,其中 k p Y ( s) U ( s) Js
2
20, kd
0.5 。采用 ODE45 方法求解连续被控对象方程。
d y dt
2 2
因 为
G ( s)
1 Bs
, 所
以
J
B
dy dt
u , 另
y1
y, y2
y , 则
y2
function u=para;
y y 1 2 ,因此连续对象微分方程函数 ( B / J (1 ) / yJ ) * u 2
dy = ex3f(t,y,flag,para)
ex3f.m 如下
J=0.0067;B=0.1;
dy=zeros(2,1); dy(1) = y(2); dy(2) = -(B/J)*y(2) + (1/J)*u;
if
u1==0 errori=0 error_1=0
% 当 Clock=0