pid的matlab仿真,MATLAB Pid仿真实验

本文介绍了使用MATLAB进行PID控制器仿真的实验,探讨了改变PID参数(kp、kd、ki)对系统动态性能和稳态性能的影响。通过示例实验,展示了增大或减小这些参数如何导致系统响应的变化,包括超调、振荡、调节速度和稳定性。总结了PID参数调整的一般策略,强调在调试过程中应逐个调整参数以达到最佳性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一实验要求:

学习PID控制器的基本原理,掌握PID参数的物理调节规律,通过仿真验证PID调节过程。选择例题中的任意两个实验进行仿真研究,改变参数后观察系统的动态性能和稳态性能的变化,确认是否和理论分析一致。二实验内容

实验一:选择chap-9.m作为pid调节。

1代码:%PID Controller with changing integration rate

clearall;

closeall;

%Big time delay Plant

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;

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

error_1=0;error_2=0;

ei=0;

fork=1:1:200

time(k)=k*ts;

rin(k)=1.0;%Step Signal

%Linear model

yout(k)=-den(2)*y_1+num(2)*u_5;

error(k)=rin(k)-yout(k);

kp=0.45;kd=12;ki=0.0048;

A=0.4;B=0.6;

%T type integration

ei=ei+(error(k)+error_1)/2*ts;

M=1;

ifM==1%Changing integration rate

ifabs(error(k))<=B

f(k)=1;

elseifabs(error(k))>B&abs(error(k))<=A+B

f(k)=(A-abs(error(k))+B)/A;

else

f(k)=0;

end

elseifM==2%Not changing integration rate

f(k)=1;

end

u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*f(k)*ei;

ifu(k)>=10

u(k)=10;

end

ifu(k)<=-10

u(k)=-10;

end

%Return of PID parameters

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=yout(k);

error_2=error_1;

error_1=error(k);

end

figure(1);

plot(time,rin,'b',time,yout,'r');

xlabel('time(s)');ylabel('rin,yout');

figure(2);

plot(time,f,'r');</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值