中国石油大学计算机控制实验报告实验日期:2011.11.30成绩:班级:自动化08-4 姓名:陈方光学号:08071402实验一基于NI6008的数据采集1.实验目的:理解基本计算机控制系统的组成,学会使用MATLAB和NI6008进行数据采集。
2.实验设备:计算机控制实验箱、NI6008数据通讯卡、Matlab软件、计算机3.实验内容:(1)使用计算机控制实验箱搭建二阶被控对象,并测试对象特性(2)在Matlab中设计数字PID控制器,对上述对象进行控制4. 实验步骤:(1)选择合适的电阻电容,参考如下电路结构图,在计算机控制实验箱上搭建二阶被控对象,使得其被控对象传递函数为建议数值:R1=200kΩ,R2=200kΩ,C1=1μF,R4=300kΩ, R5=500kΩ,C2=1μF.(2)测试NI6008数据通讯卡,确保数据输入输出通道正常。
(3)使用MATLAB和OPC通讯技术进行数据采集:(4)编写程序,实现数据的定时采集和显示。
5.实验结果1)测试NI6008数据通讯卡首先将NI6008数据采集卡的AI负端与GND端短接,然后通过usb数据线连接计算机,打开opc端口调试工具,添加NI数据采集卡,添加自己所需的输入、输出端口,通过向输入端强制写入1,观察AO端口显示数据,能较精确的跟踪输入数据,该数据采集完好。
2)使用matlab和opc进行数据采集及其显示在Matlab中读写数据:da = opcda(‘localhost’, ‘NI USB-6008.Server’); % 定义服务器connect(da); %连接服务器grp = addgroup(da); %添加OPC 组itmRead = additem(grp,‘Dev1/AI0’); %在组中添加数据项itmWrite = additem(grp,'Dev1/AO0'); %在组中添加数据项r=read(itmRead);y(1)=r.Value; %读取数据项的值Write(itmWrite,1); %向数据项中写值disconnect(da); %断开服务器关于定时器的问题t = timer(‘TimerFcn’,@myread, ‘Period’,0.2,‘ExecutionMode’,‘fixedRate’);%定义定时器start(t) %打开定时器out = timerfind; %寻找定时器stop(out); %停止定时器delete(out);%删除定时器将读取的数据存储并动态显示于图中:function myread(obj,event)global tt k y da grp itmRead Ts itmWriter=read(itmRead);k=k+1;tt(k)=(k-1)*Ts;y(k)=r.Value;hold onplot(tt,y)if k>70/TsWrite(itmWrite,0);num=[1.484];den=[46.4067,15.994,1];[y,t]=step(tf(num,den),1:0.2:70);plot(t,y)out = timerfind;stop(out);delete(out);disconnect(da);end表1:数据采集表时间采集数据时间采集数据时间采集数据时间采集数据时间采集数据0.00 0.00 4.00 1.67 8.00 1.67 12.00 1.68 16.00 1.67 0.20 0.02 4.20 1.67 8.20 1.66 12.20 1.66 16.20 1.66 0.40 0.74 4.40 1.67 8.40 1.68 12.40 1.66 16.40 1.67 0.60 1.30 4.60 1.67 8.60 1.67 12.60 1.68 16.60 1.670.80 1.52 4.80 1.67 8.80 1.67 12.80 1.66 16.80 1.661.00 1.62 5.00 1.66 9.00 1.67 13.00 1.67 17.00 1.67 1.20 1.64 5.20 1.67 9.20 1.68 13.20 1.67 17.20 1.66 1.40 1.66 5.40 1.66 9.40 1.67 13.40 1.66 17.40 1.66 1.60 1.67 5.60 1.67 9.60 1.66 13.60 1.66 17.60 1.671.80 1.66 5.80 1.65 9.80 1.67 13.80 1.66 17.80 1.672.00 1.67 6.00 1.64 10.00 1.67 14.00 1.66 18.00 1.67 2.20 1.66 6.20 1.66 10.20 1.68 14.20 1.66 18.20 1.64 2.40 1.68 6.40 1.66 10.40 1.68 14.40 1.67 18.40 1.67 2.60 1.67 6.60 1.66 10.60 1.66 14.60 1.67 18.60 1.672.80 1.67 6.80 1.66 10.80 1.67 14.80 1.67 18.80 1.673.00 1.66 7.00 1.67 11.00 1.67 15.00 1.67 19.00 1.67 3.20 1.67 7.20 1.67 11.20 1.67 15.20 1.68 19.20 1.653.40 1.67 7.40 1.67 11.40 1.68 15.40 1.65 19.40 1.67 3.60 1.67 7.60 1.66 11.60 1.66 15.60 1.66 19.60 1.673.80 1.67 7.80 1.67 11.80 1.68 15.80 1.66 19.80 1.674.00 1.67 8.00 1.67 12.00 1.68 16.00 1.67 20.00 1.67 Matlab绘图如下:图表 1 开环数据读取显示曲线6.实验总结:通过本次实验我理解基本计算机控制系统的组成,学会使用MA TLAB和NI6008进行数据采集,以及实验电路的搭建,如何设计PID算式使二阶对象完成相应的功能,并且测试了对象的特性。
复习了以前学习的东西,能做到活学活用,搭建实际模型来完成模拟实验。
中国石油大学计算机控制实验报告 实验日期:2011.11.30成 绩:班级:自动化08-4 姓名:陈方光 学号:08071402实验二 数字PID 算法的实现1. 实验目的:熟悉PID 控制器,实现PID 算法,深入了解PID 参数对系统控制效果的影响 2. 实验设备:计算机控制实验箱、NI6008数据通讯卡、Matlab 软件、计算机 3. 实验内容:(1) 在实验一基础上编制PID 数字控制器, 实现闭环控制。
(2) 进行PID 参数的整定分析:a) 取消积分和微分作用,分析比例系数数对系统控制性能的影响 b) 保持比例系数不变,分析积分作用对系统控制性能的影响c) 保持比例系数和积分时间不变,分析微分作用对控制系统性能的影响 d) 运用所学的PID 参数整定方法,确定一组控制性能良好的PID 参数 4. 实验要求(1) 实验过程中要记录实验曲线,标注控制系统输出的性能指标 (2) 总结PID 参数对控制系统性能的影响(3) 分析理论结果与实验结果的差异,如有误差分析原因。
5. 实验结果 a) 纯比例控制⎪⎪⎭⎫ ⎝⎛-+--++--=--=∆))2()1(2)(()()1()()1()(T k e k e k e T k e T T k e k e k k u k u u d i p分析:对比分析上图可知:Kp越大,比例作用越强,比例动作越快,上升时间和延迟时间越短,调节时间峰值时间也相应减少,且稳态误差减小,但超调量增大,系统易发生振荡,甚至发散。
由于是纯比例作用,故系统稳定后存在余差,被控变量不可能回到原来的值上(在本系统中不可能稳定到1),且由于仿真电路干扰的存在,响应曲线存在较大的毛刺。
b)比例不变,变积分控制分析:从表中可知,在Kp相同,Ti不同的情况下, Ti越大,积分作用越强,系统的上升时间,延迟时间,调节时间和峰值时间均越大,系统的响应越慢,动态性能越差,但是系统的超调量却越小,甚至小到不存在,系统地稳定性能提高。
加入积分环节后,对比表中数据可知,积分环节可以使系统的上升时间,调节时间,延迟时间,峰值时间变长,系统的动态性能变差,而超调量减小,稳态性能得到提高。
c)比例、积分不变,变微分控制分析:从表中数据可知,第一,由于微分作用的存在,响应曲线的起始阶段呈现尖锐的波峰,之后曲线也呈衰减振荡;第二,保持Kp、Ti不变,增大Td,系统的上升时间上升,微分控制不直接影响稳态误差,但它增加了系统的阻尼,因为容许采用比较大的增益K值,这将有助于系统稳态精度的改善。
PID具有PD和PI双重作用,能够较全面地提高系统的控制性能,是一种应用比较广泛的控制器。
PID控制器除了提高系统型别之外,还提供了两个负实零点,从而较PI控制器在提高系统的动态性能方面有更大的优越性。
因此,在工业控制设计中,PID控制器得到了非常广泛的应用。
一般来说,PID控制器参数中,I部分应发生在系统频率特性的低频段,以提高系统的稳态性能;D部分发生在系统频率特性的中频段,以改善系统的动态性能。
6.实验总结通过这次实验,我熟悉了PID控制器,实现了PID算法,深入了解了PID参数对系统控制效果的影响,宏观的了解了参数影响的效果,可以对于实际出现的各种图形进行分析,确定是那一个或者哪几个参数问题,便于实际应用,进一步熟悉了MA TLAB软件的使用。