logo资料库

数字PID控制算法及Matlab仿真.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
数字 PID 控制算法及 Matlab 仿真 一.实验目的: 1.学习数字 PID 算法的基本原理。 2.学习数字 PID 调节器参数调节方法。 二.实验属性及设备: 验证性实验,使用电脑及相关专业软件。 三.实验原理: 1.概述 首先建立数字 PID 直流电机控制模型,然后用 Matlab 的 LTI 状态分析工具箱进行仿真, 并绘制转速及控制电压变化图形。 图: e k  r k  y k k u   K 2.位置式数字 PID 算法公式 k e  0j  3.增量式数字 PID 算法公式  K    e P k I e k 1  ) u  u u K k P  1 k k  e ( k u  k  K D  ( e k  e k 1  )  u 0 k eK  k I  K D  ( e k  e 2 k 1   e k  2 ) 4.Matlab LTI 工具箱函数(作为了解内容) 例:一台 150kW 直流电动机,额定电压 220V,额定转速 1000r/min,额定电流 700A, Ra=0.05Ω,Ld=2mH,假设负载及电动机转动总惯量 GD2=125kg·m2,则: 05.0*  V 185.0  min/ r ) RI N a  U N  n N C 55.9 C e  C T  220 700  1000 AmN /   767.1 e  2  10 05.0 3  04.0 s T a  T m  C M  L a R a 2 RGD a CC 375 T C e 03.1  e  375 125 .0   185 05.0 .1  767  .0 s 051 18.0 kg  mA 传递函数为 sy )( su )(  /1 2 sTT ma C e sT  m   1 41.5 2 s .0  s 051  1  2 s  2652 s 25  490 .0 00204
利用 Matlab 建立传递函数方法为: sys=tf(270.5,[1,40,50]) 当采样间隔为 ts=0.01s 时,则其 z 变换(离散)传递函数为: Matlab 输出为(Transfer function): dsys=c2d(sys,ts,'z') 0.1217 z + 0.112 ----------------------------- z^2 - 1.736 z + 0.7788 Sampling time: 0.01 获得分子和分母的函数为: [num,den]=tfdata(dsys,'v') 如果电机输入电压状态为 uk,输出转速状态为 yk。则 )2(  num    y y k  2 k y  den )2( 5.Matlab 绘图: plot(时间数组,y 数组,'颜色及标记') den )3(  1  k u k 1   num )3(  u k  2 表:plot 函数标示符 标记说明 .为点。默认为连续线 红色 色彩 说明 r g b k 绿色 蓝色 黑色 四.实验内容: 1.位置数字 PID 算法程序 clear all; close all; ts=0.01;%采样时间=0.001s sys=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 参数 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); end hold on; plot(time,r,'r',time,y,'b',time,u,'r');% [kp,ki,kd] 2.增量数字 PID 算法程序 依据上述方法自己编写增量式 PID 算法程序。 3.程序调试好后,分别改变 KP、KI 和 KD 参数值,看输出图形有何变化,理解 PID 控 制中比例、积分和微分对控制系统的作用。 图: 4.程序中可加入如下语句 if k<50 r(k)=400; else
r(k)=800; end 然后观察连续调速时图形变化的情况。 五.实验要求: 图: 复习理解数字 PID 控制算法,及 matlab 使用方法,编制位置式和增量式算法控制程序。
分享到:
收藏