1、课程设计报告课程设计报告名称:过程计算机控制题目: DDC 串级回路 PID 闭环控制系统的设计及实时仿真院系:控计班级: 学号: 学生姓名: 同组人: 指导教师:李明扬设计周数:一周一、设计目的一、设计目的 1.学习并了解用高级语言(C 语言)实现数字 PID 控制算法模块程序的方法; 2.比较验证理想微分 PID 和实际微分 PID 控制算法阶跃响应,加深对上述两种算法各自特点的认 识; 3.学习了解用模拟计算机使用方法; 4.学习掌握 A/D、D/A 转换接口板的使用方法; 5.了解一种微机中断定时的方法; 6.学习掌握通过 A/D、D/A 转换用计算机获取被控对象动态特性的方法; 7 通过实时仿真实验掌握 DDC 单回路控制程序编制及调试方法。二、实验仪器二、实验仪器(1)微型计算机一台,系统软件 Windows 98 或 DOS (不能使用无直接 I/O 能力的 NT 或 XP 系统), 内装 Turbo C 2.0/3.0 集成开发环境软件; (2)模拟计算机一台(XMN-1 型); (3)通用数据采集控制板一块(PCL-812PG 型) 。三、三、PIDPID 的离散化的。
2、离散化理想微分 PID 算法的传递函数形式为: sTsTKsGd ip11)(采用向后差分法对上式进行离散,得出其差分方程形式为:uk=uk-1+q0*e2+q1*e1+q2*e0;其中各项系数为:q0=kp*(1+T/Ti+Td/T);q1=-kp*(1+2*Td/T);q2=kp*Td/T;实际微分 PID 算法的传递函数形式为: sTsTsTKsGd ifp111)(采用向后差分法对上式进行离散化,写成差分方程的形式为:uk=c0*(uk-1)+c1*ek+c2*ek-1+c3*ek-2+uk-1;其中各项系数为:c0=Tf/(T+Tf);c1=kp*T/(T+Tf)*(1+T/Ti+Td/T);c2=-kp*T/(T+Tf)*(1+2*Td/T);c3=kp*Td/(T+Tf);四、硬件二阶惯性环节搭建四、硬件二阶惯性环节搭建利用模拟计算机中的电容电阻及运算放大器,搭接二阶惯性环节,仿真一个被控对象。其传递函数为,硬件电路如下:2) 1()(TsKsG图中各元件参数如下:R3=R2=510K;R1=R4=R5=R6=R7=1M ;C1=C2=C=4.7uF;则可得:K=(R5/。
3、R1)*(R6/R4)=1T1=T2=R5*C1=R6*C2=1000000*0.0000047=4.7s所以 G(s)=1/(4.7s+1)*(4.7s+1)搭建好硬件电路后,将 PLCD-780 插入 IPC 机箱插槽,用导线将 PLCD-780 中的 A/D、D/A、电源的接线端子与所搭二阶惯性环节的输出、输入端口及机箱上的电源连接,组成一个完整的 PID 闭环控制系统,为通信做好准备。五、实验结果五、实验结果(1)理想和实际想和实际 PID 阶跃响应曲线阶跃响应曲线(2)被控对象(实物搭建二阶惯性环节)阶跃响应曲线)被控对象(实物搭建二阶惯性环节)阶跃响应曲线上图通过 D/A 输出一个 1 伏左右的信号输入模拟的被控对象(惯性环节) ,A/D 采集对象的输入信号及其响应,再使 D/A 输出一个幅度为 2 伏左右的阶跃信号,同时采集输入输出信号。然后,D/A 再反向在输出一个幅度为 2 伏左右负的阶跃信号,同时采集输入输出信号,得出仿真对象飞升特性曲线。程序中,通过按键实现模拟对象输入信号的加减。当按下 H 按键时,且按下 U 键时,D/A 输出一个 1 伏阶跃信号,再次按下按键。
4、时阶跃信号累加。每次按下 D 键时,D/A 输出的阶跃信号递减 1。(3)根据对象单位阶跃)根据对象单位阶跃响应曲线求增益和惯性时间:响应曲线求增益和惯性时间: 利用切线法求对象的增益和用一阶等效的惯性时间:如上图所示做拐点切线,得对象增益和一阶等效惯性时间分别为: 13(4)手自动切换:)手自动切换:(5)设定值)设定值 r、控制量、控制量 u 和被控对象输出的阶跃响应曲线:和被控对象输出的阶跃响应曲线:1)0()(ccK程序清单 /*-头文件定义-*/ #include #include #include #include /*-定义绘图坐标-*/ #define ox 8 /*-原点横坐标-*/ #define oy 440 /*-原点纵坐标-*/ #define xx 620 /*-x 轴顶点横坐标-*/ #define xy 440 /*-x 轴顶点纵坐标-*/ #define lenx 580 #define leny 400 #define yx 8 /*-y 轴顶点横坐标-*/ #define yy 15 /*-y 轴顶点纵坐标-*/*-定义绘图区域-*/ #defin。
5、e left 20 #define top 20 #define right 620 #define bottom 460 /*-坐标轴注释-*/ #define xtext1x 450 #define xtext1y 450 #define ytext1x 10 #define ytext1y 60 #define xtext2x 610 #define xtext2y 450 #define ytext2x 10 #define ytext2y 20/*-理想 PID 运算式-*/float lxpid(float kp,float td,float ti,float e3,float u1) int t=1; float u; float q0=kp*(1+t/ti+td/t); float q1=-kp*(1+2*td/t); float q2=kp*td/t; u=q0*e0+q1*e1+q2*e2+u1; return u; /*-实际 PID 运算式-*/float sjpid(float kp,float tf,float td,float ti,float e3,fl。
6、oat du1,float u1) int t=1; float u2; float c1=tf/(t+tf); float c2=kp*t*(1+t/ti+td/t)/(t+tf); float c3=-kp*t*(1+2*td/t)/(t+tf); float c4=kp*td/(t+tf); u2=c1*du1+c2*e0+c3*e1+c4*e2+u1; return u2; /*-绘图初始化-*/ void Initial_Sys(void) int GraphDriver; int GraphMode; detectgraph( initgraph( cleardevice(); /*-绘制坐标系-*/void DrawAxis(void) int i; setbkcolor(15); setcolor(5); line(ox,oy,xx,xy); /*x_axis*/ line(xx-5,xy-5,xx,xy); line(xx,xy,xx-5,xy+5); line(ox,oy,yx,yy); /*y_axis*/ line(yx-5,yy+10,yx,yy);line(。
7、yx+5,yy+10,yx,yy); for(i=0;i0) printf(“Parallal,Mode:%c,sp=%.1f,pv=%2.1f,u=%.1f,error=%.1f,Kp=%.1f,Ti=%.1f,Td=%.1ftr“,A_H,sp,pv,u,e,Kp,Ti,Td); else printf(“ttTf got a wrong value! Please exit and restart this program.r“);cj_counter+; while(cj_counter5) /* make the output real */ pv1=5; else if (pv10) pv1=0; temp=(int)(4095*pv1/5.0); hb=temp8; lb=temp-(hb8);outportb(BASE,1); /*启动 DA 转换*/for(i=0;i10000;i+);outportb(BASE+4,lb); /* low 8 */ for(i=0;i10000;i+);outportb(BASE+5,hb); /* high 4 */*00-中断子。
8、程序-*/void interrupt INT_1C(void) time_counter+; outportb(0x20,0x20); /*键盘控制*/int scankey(void) int key0; /*扫描键盘,判断是否有建按下*/key0=bioskey(1); /*1:无键按下则返回 0 */if(key0!=0) key0=bioskey(0); /*0:返回按下的键*/ return key0; /*DelayAction*/ /*tao=(int)(18.2*2) Delay action=2 seconds*/ float DelayAction(float y0) /*软件延迟*/ float y_out;static float y_old36=0; /*将 ad 延迟 2s 作为 PV,T=0.2s,于是延迟 36 步*/int cyc; y_out=y_old36-1; for(cyc=1;cyc36;cyc+) y_old36-cyc=y_old36-cyc-1; y_old0=y0; return y_out; /*PID 主程序*/void PIDset(void) /*PI。
《华北电力大学过程计算机控制课设ddc串级回路pid闭环》由会员第***分享,可在线阅读,更多相关《华北电力大学过程计算机控制课设ddc串级回路pid闭环》请在金锄头文库上搜索。