计算机控制(共8页).docx
精选优质文档-倾情为你奉上电子1303 陈志强 实验二 数字PID控制器的设计与调试一、实验目的1.熟悉数字PID控制器的实现算法2.深入了解PID参数对系统控制效果的影响二、实验设备计算机控制实验箱、研华数据采集卡、Matlab软件、计算机三、实验内容:1. 在实验一基础上编制PID数字控制器, 实现闭环控制。2. 进行PID参数的整定分析:a) 取消积分和微分作用,分析比例系数数对系统控制性能的影响b) 保持比例系数不变,分析积分作用对系统控制性能的影响c) 保持比例系数和积分时间不变,分析微分作用对控制系统性能的影响d) 运用所学的PID参数整定方法,确定一组控制性能良好的PID参数四、 实验代码与运行结果主函数:a=instrfind;delete(a);clear allclcglobal s1 t Ts k tt y u e1 e2 Ts=0.5;% 定义一个串口s1 = serial('COM1', 'BaudRate', 9600,'Terminator','CR','Timeout',5); % 设置串口参数s1.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)内部函数:function myread(obj,event)global s1 t Ts k tt y u e1 e2k=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); if k>50/Ts all_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=5 td=0kp=0.3 td=0 后边的上升阶段 ti=5上 ti=10下kp=0.3 ti=5 td=0.1 td=0.15(起伏大的)结果分析:由matlab对PID控制器的模拟分析可得到以下结论:1、比例部分:Kp越大,比例作用越强,比例动作越快,上升时间和延迟时间越短,调节时间峰值时间也相应减少,且稳态误差减小,但超调量增大,系统易发生振荡,甚至发散。 2、积分环节:在Kp相同,Ti不同的情况下, Ti越大,积分作用越强,系统的上升时间,延迟时间,调节时间和峰值时间均越大,系统的响应越慢,动态性能越差,但是系统的超调量却越小,甚至小到不存在,系统地稳定性能提高。3、微分环节:由于微分作用的存在,响应曲线的起始阶段呈现尖锐的波峰,之后曲线也呈衰减振荡。保持Kp、Ti不变,增大Td,系统的上升时间会上升。五、 实验总结通过这次实验,我们对PID控制器、PID算法有了更加清晰地认识,在实验过程中深入了解了PID参数对系统控制效果的影响,通过用MATLAB软件得出的各种图形进行分析就可得出各个参数的作用,方便以后在实际应用中选择合适的参数,虽然过程中遇到了一些问题,但是主要是对于参数的选择不对,发现问题后及时改正,最终成功做出来了。专心-专注-专业