计算机控制实验pd控制,计算机控制实验报告计算机控制实验报告.doc

计算机控制实验报告计算机控制实验报告

中国石油大学计算机控制实验报告 实验日期:2011.11.30

成 绩:

班级:自动化08-4 姓名:陈方光 学号

实验一 基于NI6008的数据采集

实验目的:

理解基本计算机控制系统的组成,学会使用MATLAB和NI6008进行数据采集。

实验设备:

计算机控制实验箱、NI6008数据通讯卡、Matlab软件、计算机

3.实验内容:

(1)使用计算机控制实验箱搭建二阶被控对象,并测试对象特性

(2)在Matlab中设计数字PID控制器,对上述对象进行控制

4. 实验步骤:

选择合适的电阻电容,参考如下电路结构图,在计算机控制实验箱上搭建二阶被控对象,使得其被控对象传递函数为

建议数值:R1=200kΩ,R2=200kΩ,C1=1μF,R4=300kΩ, R5=500kΩ,C2=1μF.

测试NI6008数据通讯卡,确保数据输入输出通道正常。

使用MATLAB和OPC通讯技术进行数据采集:

编写程序,实现数据的定时采集和显示。

5.实验结果

测试NI6008数据通讯卡

首先将NI6008数据采集卡的AI负端与GND端短接,然后通过usb数据线连接计算机,打开opc端口调试工具,添加NI数据采集卡,添加自己所需的输入、输出端口,通过向输入端强制写入1,观察AO端口显示数据,能较精确的跟踪输入数据,该数据采集完好。

使用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 itmWrite

r=read(itmRead);

k=k+1;

tt(k)=(k-1)*Ts;

y(k)=r.Value;

hold on

plot(tt,y)

if k>70/Ts

Write(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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值