《数字pid控制器仿真》由会员分享,可在线阅读,更多相关《数字pid控制器仿真(4页珍藏版)》请在金锄头文库上搜索。
1、 数字PID控制器仿真1、 实验目的1、 学习数字PID算法的基本原理;2、 掌握利用Matlab软件进行PID算法仿真的基本方法。二、实验原理及内容1、实验原理计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此连续PID控制算法不能直接使用,需要采用离散化方法。在计算机PID控制中,使用的是数字PID控制器。 按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,可得离散PID位置式表达式:式中,e为误差信号(即PID控制器的输入),u为控制信号(即控制器的输出)。对应控制器的脉冲传递函数:同样,可采用离散P
2、ID增量式,对应表达式如下:2、 实验内容已知某计算机控制系统如图1所示。采样周期为T0.1s,分别采用不同的调节器进行MATLAB控制仿真。D(z)R(s)Y(s)E(z)U(z)TTTT0.1s图1 带数字PID调节器的计算机控制系统(1) 若只采用比例控制,即D(z)=Kp,分别令Kp1;Kp2;Kp5计算稳态误差、超调量及调节时间,并记录阶跃响应曲线。(2) 采用PI控制,即,令Kp1,调整Ki数值观察稳态误差、超调量及调节时间变化过程,记录阶跃响应曲线。(3) 采用PID控制,即,令Kp1,Ki=1;调整Kd 的数值,观察稳态误差、超调量及调节时间,记录阶跃响应曲线。三、实验要求 1
3、、根据附录例子完成实验内容。 2、思考如何采用m函数实现增量式位置PID控制算法。附录:1、 Simulink仿真数字PID的MATLAB仿真被控过程的原理方框图,见图2所示。图1系统对应系统广义z变换传递函数为:图2 数字PID的MATLAB仿真原理方框图2、 m函数仿真参考: 假设有一直流电机模型对象,传递函数为: 利用Matlab建立传递函数方法为:sys=tf(2652,1,25,490)当采样间隔为ts=0.01s时,则其z变换(离散)传递函数为:dsys=c2d(sys,ts,z)Matlab输出为(Transfer function): 0.1217 z + 0.112-z2 -
4、 1.736 z + 0.7788获得分子和分母的函数为:num,den=tfdata(dsys,v)如果电机输入电压状态为uk,输出转速状态为yk。则可得完整参考程序如下:clear all;close all;ts=0.01;%采样时间=0.001ssys=tf(2652,1,25,490);%建立被控对象传递函数dsys=c2d(sys,ts,z);%把传递函数离散化 num,den=tfdata(dsys,v);%离散化后提取分子、分母e_1=0%上一偏差 Ee=0;%偏差累计u_1=0.0;%上一控制器输出u_2=0.0;y_1=0;%上一状态输出y_2=0;kp=;% PID参数自
5、己确定ki=;%;kd=;%;for k=1:100 time(k)=k*ts;%时间参数 r(k)=500;%给定值 y(k)=-1*den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; e(k)=r(k)-y(k);%偏差 u(k)=kp*e(k)+ki*Ee+kd*(e(k)-e_1); if u(k)220 u(k)=220; end if u(k)=0 u(k)=0; end Ee=Ee+e(k); u_2=u_1; u_1=u(k); y_2=y_1; y_1=y(k); e_2=e_1; e_1=e(k);endhold on;plot(time,r,r,time,y,b);