电子1303陈志强1305020313实验二数字PID控制器的设计与调试一、实验目的1.熟悉数字PID控制器的实现算法2.深入了解PID参数对系统控制效果的影响二、实验设备计算机控制实验箱、研华数据采集卡、Matlab软件、计算机三、实验内容:1.在实验一基础上编制PID数字控制器,实现闭环控制。2.进行PID参数的整定分析:a)取消积分和微分作用,分析比例系数数对系统控制性能的影响b)保持比例系数不变,分析积分作用对系统控制性能的影响c)保持比例系数和积分时间不变,分析微分作用对控制系统性能的影响d)运用所学的PID参数整定方法,确定一组控制性能良好的PID参数四、实验代码与运行结果主函数:a=instrfind;delete(a);clearallclcglobals1tTskttyue1e2Ts=0.5;%定义一个串口s1=serial('COM1','BaudRate',9600,'Terminator','CR','Timeout',5);%设置串口参数))2()1(2)(()()1()()1()(TkekekeTkeTTkekekkukuudips1.InputBufferSize=1024;s1.OutputBufferSize=1024;%打开串口fopen(s1);%按照通讯协议输出串口命令input_command=['#010'];fprintf(s1,input_command);%接收串口响应out=fscanf(s1);k=0;u=0;e1=0;e2=0;%定时器函数:t=timer('TimerFcn',@myread,'Period',Ts,'ExecutionMode','fixedRate');%其中:Myread为定时器运行的子程序,Ts为采样周期变量。%启动定时器:start(t)内部函数:functionmyread(obj,event)globals1tTskttyue1e2k=k+1;tt(k)=k*Ts;%*******************************%读入PID值(A/D)input_command=['#010'];fprintf(s1,input_command);out=fscanf(s1);out1=str2num(out(2:8));y(k)=out1;%*******************************%PID控制器r=8;%设定值e=r-y(k);Kp=0.2;Ti=100;Td=0.7;du=Kp*(e-e1)+Kp*Ts/Ti*e+Kp*Td/Ts*(e+e2-2*e1);u=u+du;e2=e1;u_str=num2str(u,'%+07.3f');%*******************************%把控制量写出D/Ainput_command=['#02C1',u_str];fprintf(s1,input_command);out=fscanf(s1);%*******************************plot(tt,y);ifk50/Tsall_timer=timerfind;stop(all_timer);delete(all_timer);input_command=['#02C1+00.000'];fprintf(s1,input_command);out=fscanf(s1);%关闭串口:fclose(s1);%删除串口定义:delete(s1);end实验结果:kp=0.5上kp=0.1下ti=5td=0kp=0.3td=0后边的上升阶段ti=5上ti=10下kp=0.3ti=5td=0.1td=0.15(起伏大的)结果分析:由matlab对PID控制器的模拟分析可得到以下结论:1、比例部分:Kp越大,比例作用越强,比例动作越快,上升时间和延迟时间越短,调节时间峰值时间也相应减少,且稳态误差减小,但超调量增大,系统易发生振荡,甚至发散。2、积分环节:在Kp相同,Ti不同的情况下,Ti越大,积分作用越强,系统的上升时间,延迟时间,调节时间和峰值时间均越大,系统的响应越慢,动态性能越差,但是系统的超调量却越小,甚至小到不存在,系统地稳定性能提高。3、微分环节:由于微分作用的存在,响应曲线的起始阶段呈现尖锐的波峰,之后曲线也呈衰减振荡。保持Kp、Ti不变,增大Td,系统的上升时间会上升。五、实验总结通过这次实验,我们对PID控制器、PID算法有了更加清晰地认识,在实验过程中深入了解了PID参数对系统控制效果的影响,通过用MATLAB软件得出的各种图形进行分析就可得出各个参数的作用,方便以后在实际应用中选择合适的参数,虽然过程中遇到了一些问题,但是主要是对于参数的选择不对,发现问题后及时改正,最终成功做出来了。