pid控制算法仿真
㈠ 用算法优化PID参数时都要用matlab与simulink结合吗
不一定。虽然Matlab和Simulink是常用的PID算法设计和仿真工具,但也可以使用其他编程语言和仿真软件进行PID算法设计和优化。
Matlab和Simulink具有以下优点:
丰富的PID工具箱和库:Matlab提供了丰富的PID算法工具箱和库,包括自动调节工具、系统辨识工具和PID控制工具。这些工具可以帮助设计师更快迟兆速、更精确地设计和优化PID参数。
仿真环境:Simulink提供了一个直观的仿真环境,可以方便地建立模型、仿真、调试和分析PID控制器的性能。
易于使用:Matlab和Simulink的用户界面友好,容易上手,且具有广泛的社区支持和学习资源。
但是,其他编程语言和仿真软件亮旦纳也可以用于PID算法的设计和优化。例如,Python具有强大的科学计算库和机器学习工具,可以用于PID参数自适应控制器的设计和优化。同时,仿真软件如LabVIEW、Ansys、OpenModelica等也可以用于PID控制器的建模和仿敬没真。
因此,是否使用Matlab和Simulink进行PID算法优化取决于具体应用场景和工程师的个人喜好和熟练程度。
㈡ 基于PID算法的单片机温度控制系统设计(实现制冷效果)
看看我以前回答过的一个问题,或许有帮助。
所谓PID指的是Proportion-Integral-Differential。翻译成中文是比例-积分-微分。
记住两句话:
1、PID是经典控制(使用年代久远)
2、PID是误差控制()
对压缩泵转速进行控制:
1、变频器-作为压缩机驱动;2、温度传感器-作为输出反馈。
PID怎么对误差控制,听我细细道来:
所谓“误差”就是命令与输出的差值。比如你希望控制压缩机转速为1500转(“命令电压”=6V),而事实上控制压缩机转速只有1000转(“输出电压”=4V),则误差: e=500转(对应电压2V)。如果泵实际转速为2000转,则误差e=-500转(注意正负号)。
该误差值送到PID控制器,作为PID控制器的输入。PID控制器的输出为:误差乘比例系数Kp+Ki*误差积分+Kd*误差微分。
Kp*e + Ki*∫edt + Kd*(de/dt) (式中的t为时间,即对时间积分、微分)
上式为三项求和(希望你能看懂),PID结果后送入电机变频器或驱动器。
从上式看出,如果没有误差,即e=0,则Kp*e=0;Kd*(de/dt)=0;而Ki*∫edt 不一定为0。三项之和不一定为0。
总之,如果“误差”存在,PID就会对变频器作调整,直到误差=0。
评价一个控制系统是否优越,有三个指标:快、稳、准。
所谓快,就是要使压力能快速地达到“命令值”(不知道你的系统要求多少时间)
所谓稳,就是要压力稳定不波动或波动量小(不知道你的系统允许多大波动)
所谓准,就是要求“命令值”与“输出值”之间的误差e小(不知道你的系统允许多大误差)
对于你的系统来说,要求“快”的话,可以增大Kp、Ki值
要求“准”的话,可以增大Ki值
要求“稳”的话,可以增大Kd值,可以减少压力波动
仔细分析可以得知:这三个指标是相互矛盾的。
如果太“快”,可能导致不“稳”;
如果太“稳”,可能导致不“快”;
只要系统稳定且存在积分Ki,该系统在静态是没有误差的(会存在动态误差);
所谓动态误差,指当“命令值”不为恒值时,“输出值”跟不上“命令值”而存在的误差。不管是谁设计的、再好的系统都存在动态误差,动态误差体现的是系统的跟踪特性,比如说,有的音响功放对高频声音不敏感,就说困厅明功放跟踪性能不好。
调整PID参数有两种方法:1、仿真法;2、“试凑法”
仿真法我想你是不会的,介绍一下“试凑法”
“试凑法”设置PID参数的建议步骤:
1、把Ki与Kd设为0,不要积分与微分;
2、把Kp值从0开始慢慢增大,观察压力的反应速度是否在你的要求内;
3、当压力的反应速度达到扰卖你的要求,停止增大Kp值;
4、在该Kp值的基础上减少10%;
5、把Ki值从0开始慢慢增大;
6、当压力开始波动,停止增大Ki值;
7、在该Ki值的基础上减少10%;
8、把Kd值从0开始慢慢缓尺逗增大,观察压力的反应速度是否在你的要求内;
㈢ 数字PID算法研究及仿真
等着我来~
㈣ PID算法实现该系统控制
增量式PID控制程序:
%Increment PID Controller
clear all
close all
ts=0.005;
sys=tf([0.1,10],[0.0004,0.0454,0.555,1.51,11],'inputdelay',0.2);
dsys=c2d(sys,ts,'z');
[num den]=tfdata(dsys,'v');
for k=1:44
yout(k)=0;
end
u_1=0;u_2=0;u_3=0;u_4=0;
y_1=0.0;y_2=0.0;y_3=0.0;y_4=0.0;
x=[0,0,0];error_1=0,error_2=0;
kp=0.016;ki=0.056;kd=1
for k=45:1000
time(k)=k*ts;
kp=0.55,ki=0,kd=0;
rin(k)=1.0;
(k)=kp*x(1)+kd*x(2)+ki*x(3);
u(k)=u_1+(k);
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3-den(5)*y_4+num(1)*u_1+num(2)*u_2+num(3)*u_3+num(4)*u_4
error=rin(k)-yout(k);
u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_4=y_3;y_3=y_2;y_2=y_1;y_1=yout(k);
x(1)=error-error_1; %calculating p
x(2)=error-2*error_1+error_2; %calculating d
x(3)=error; %calculating i
error_2=error_1;error_1=error;
end
figure(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)'),ylabel('rin,yout');
title('单位阶跃响应曲线')
Z-N法整定:
clear all
close all
ts=0.005;
sys=tf([0.1,10],[0.0004,0.0454,0.555,1.51,11],'inputdelay',0.2);
dsys=c2d(sys,ts,'z');
rlocus(dsys)
㈤ 用单片机做PID算法控制问题
1.可以直接套用PID公式,无论增量还是绝对的。PID算法是根据误差来控制的算法,不依赖系统的模型,故不用算系统的传递函数。有的书提到传递函数,一般是用于理论建模仿真,从而直接用Matlab一类的仿真软件进行PID参数调试。得到的参数可以为实际应用提供一定参考价值。
2.PID参数整定有一套原则。首先要了解各个参数的作用。具体的整定方法,随便找本自控原理的书都会提到,我不太记得了,大致是有一个倍数关系。但实际操作,一般不会是用这个数,是需要根据系统的反应,改变各个参数来试的。尽信书不如无书啊~
另外,不同系统的参数肯定不一样。就算同一个系统,稍微有一些改变,可能最好的那组参数就会变化。因此衍生了很多先进PID算法,如神经PID、专家PID、模糊PID等等。
㈥ 基于matlab的pid控制系统仿真的建模具体步骤
1. PID 控制系统原理及算法
当我们不能将被控对象的结构和参数完全地掌握,或者是不能得到精确的数学模型时,在这种情况下最便捷的方法便是采用PID 控制技术。为了使控制系统满足性能指标要求,PID 控制器一般地是依据设定值与实际值的误差,利用比例(P)、积分(I)、微分(D)等基本控制规律,或者是三者进行适当地配合形成相关的复合控制规律,例如,PD、PI、PID 等。
图1 是典型PID 控制系统结构图。在PID 调节器作用下,对误差信号分别进行比例、积分、微分组合控制。调节器的输出量作为被控对象的输入控制量。
图1 典型PID控制系统结构图
PID 控制器主要是依据给定值r(t)与实际输出值y(t)构成控制偏差,用公式表示即e(t)=r(t)-y(t),它本身属于一种线性控制器。通过线性组合偏差的比例(P)、积分(I)、微分(D),将三者构成控制量,进而控制受控对象。控制规律如下:
其传递函数为:
式中:Kp--比例系数; Ti--积分时间常数; Td--微分时间常数。
2. PID 控制器的MATLAB 仿真
美国MathWorks 公司推出的MATLAB 是一套具备高性能的数值计算和可视化软件。由于MATLAB 可以将矩阵运算、图形显示、信号处理以及数值分析集于一体,构造出的用户环境使用方便、界面友好,因此MATLAB 受到众多科研工作者的欢迎。本文利用MATLAB 仿真工具箱Simulink 的功能,在基于仿真环境Matlab/Simulink 工具上用图形化方法直接建立仿真系统模型,启动仿真过程,将结果在示波器上显示出来。
3. 仿真实例分析
3.1 建立数学建模
设被控对象等效传递函数为
3.2 仿真建模
仿真建模的目的就是将数学模型转换成计算机能够执行的模型,运用Simulink 可以达到此目的。图2 是综合图1 和给定计算公式运用Simulink 建立的PID 控制的连续系统的仿真模型(建模步骤略)。
图2 Simulink仿真建模
3.3 仿真实验
在传统的PID 调节器中,参数的整定问题是控制面临的最主要的问题,控制系统的关键之处便是将Kp、Ti、Td三个参数的值最终确定下来。而在工业过程控制中首先需要对PID 控制中三参量对系统动态性的影响进行实际深入地了解,才能确定怎样将三参数调节到最佳状态。在本实验中,对各参量单独变化对系统控制作用的影响进行讨论,其中在对一个参量变化引发的影响进行讨论时,需要将其余两个参数设定为常数。
3.3.1 P 控制作用分析
分析比例控制作用。设Td= 0、Ti=∞、Kp= 3 ~ 10.输人信号阶跃函数,分别进行仿真,如图3 所展示的系统的阶跃响应曲线。
图3 显示的仿真结果表明:系统的超调量会随着Kp值的增大而加大,系统响应速度也会会随Kp值的增大而加快。但是系统的稳定性能会随着Kp的增大而变差。
图3 单闭环调速系统P控制阶跃响应曲线
3.3.2 比例积分控制作用的分析
设比例积分调节器中Kp= 1,讨论Ti= 0.01 ~ 0.05 时。输人信号阶跃函数,分别进行仿真,如图4 所展示的系统的系统的阶跃响应曲线。
图4 单闭环调速系统PI控制阶跃给定响应曲线
系统的超调量会随着Ti值的加大而减小,系统响应速度随着Ti值的加大会略微变慢。
3.3.3 微分调节作用的分析
设Kp= 1、Ti= 0.01,讨论Td= 10 ~ 100 时对系统阶跃响应曲线的影响。输人信号阶跃函数,分别进行仿真,如图5 所展示的系统的阶跃响应曲线。
图5 单闭环调速系统PID控制阶跃给定响应曲线
图5 所显示的仿真结果表明:根据单闭环调速系统的参数配合情况,起始上升段呈现较尖锐的波峰,Kp= 1、Ti= 0.01不变时,随着Td值的加大,闭环系统的超调量增大,响应速度变慢。
4 .结论
(1)对于PID 参数采用MATLAB 进行整定和仿真,使用起来不仅快捷、方便,而且更为直观,同时也避免了传统方法反复修改参数调试。
(2)系统的响应速度会随Kp值的增大而加快,同时也有助于静差的减小,而Kp值过大则会使系统有较大超调,稳定性变坏;此外,系统的动作会因为过小的Kp值减慢。
(3)超调的减小、振荡变小以及系统稳定性的增加都取决于积分时间Ti的增大,但是系统静差消除时间会因为Ti的增大而变长。
(4)增大微分时间Td对于系统的稳定性、系统响应速度的加快以及系统超调量的减小都会有所帮助。但是如果Td过大,则会使得调节时间较长,超调量也会增大;如果Td过小,同样地也会发生以上状况。
(5)总之PID 参数的整定必须考虑在不同时刻三个参数的作用以及彼此之间的作用关系。
5.结语
PID 控制应用领域极为广泛,可将其应用于电力、化工、轻工、冶金以及机械等工业过程控制中。通常情况下,最适合采用PID 控制技术的条件是:当我们对目标系统或被控对象的内部特征不完全清楚时,或者是系统的全部参数不能经过有效的测量手段来获取,同时必须依赖于经验和现场调试来确定系统控制器的结构参数情况下采用该技术。
㈦ MATLAB用增量式PID控制算法编写仿真程序
你把18-20行的%去掉,就能运行出来了~