计算机控制系统实验xinWord格式文档下载.docx

上传人:b****4 文档编号:16453610 上传时间:2022-11-23 格式:DOCX 页数:43 大小:526.86KB
下载 相关 举报
计算机控制系统实验xinWord格式文档下载.docx_第1页
第1页 / 共43页
计算机控制系统实验xinWord格式文档下载.docx_第2页
第2页 / 共43页
计算机控制系统实验xinWord格式文档下载.docx_第3页
第3页 / 共43页
计算机控制系统实验xinWord格式文档下载.docx_第4页
第4页 / 共43页
计算机控制系统实验xinWord格式文档下载.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

计算机控制系统实验xinWord格式文档下载.docx

《计算机控制系统实验xinWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机控制系统实验xinWord格式文档下载.docx(43页珍藏版)》请在冰豆网上搜索。

计算机控制系统实验xinWord格式文档下载.docx

5、记录和打印实验结果。

(参考附录4)

五、实验报告格式及内容

1、实验目的;

2、实验原理(系统组成、PID算法、程序框图等);

3、实验内容及主要步骤;

4、实验运行结果分析(附实验记录曲线图)

附录1:

WK.ASM程序流程图及程序清单

csegat0000h

ljmpstart

csegat4100h

start:

movr5,#0

star:

movr6,#0ffh;

设总脉宽定时器=FFH

star1:

movdptr,#0cfa0h;

A/D0809地址

mova,#0h

movx@dptr,a;

启动A/D0809

movr2,#30h

lay1:

djnzr2,lay1;

延时等待采样

movdptr,#0cfa0h

movxa,@dptr;

reada/d

callsend;

发送温度采样值给PC机(串口传送通行)

movdptr,#0cfe5h

movxa,@dptr

jbcacc.0,recv2;

“接收数据就绪”=1?

sjmpstar2

recv2:

movdptr,#0cfe0h;

8250地址

movxa,@dptr;

接收PC机PID调节器的UK

movr5,a;

UK送R5

star2:

decr6

mova,r6

cjnea,05,bay3;

05=r5(R6-1)=(R5)?

bay3:

jnclay2

movdptr,#0cfa8h;

(R5)>

(R6-1);

0cfa8h为74LS273地址

mova,#0;

开启可控硅门即总脉宽定时器<

UK

movx@dptr,a

sjmplay3

lay2:

movdptr,#0cfa8h;

(R5)<

=(R6-1)

mova,#0ffh;

关闭可控硅门极,即总脉宽定时器>

UK

lay3:

cjnea,#0,star1;

总脉宽定时器=0?

NO:

转star1

sjmpstar;

YES:

转star

RECV:

MOVDPTR,#0CFE5H

MOVR1,#80H

RECV1:

MOVXA,@DPTR

JBCACC.0,REC1B

DJNZR1,RECV1

MOVA,#0

RET

REC1B:

MOVDPTR,#0CFE0H

MOVXA,@DPTR

;

=========================串口传送通行子程序

SEND:

PUSHACC;

ACC:

温度采样值

TRA1C:

MOVDPTR,#0CFE5H;

0CFE0H~0CFE5H芯片8250片选信号

JBCACC.5,TRA1A;

“发送寄存器空”=1?

SJMPTRA1C

TRA1A:

MOVDPTR,#0CFE0H

POPACC

MOVX@DPTR,A;

向PC机发送温度采样值

END

附录2:

温度控制PC软件CAT.EXE程序流程图

附录3实验曲线

实验二输入输出通道实验

1、学习A/D转换器原理及接口方法,并掌握ADC0809芯片的使用;

2、学习D/A转换器原理及接口方法,并掌握TLC7528芯片的使用;

二、实验设备

本实验采用TD-ACC+实验系统和SST51系统板。

基本配置含有一个开放式的模拟实验平台和一组先进的虚拟仪器,提供一个KeilC51集成开发环境。

三、实验内容

1、运行实验程序,将-5V~+5V电压作为ADC0809的模拟输入,将转换所得的8位数字量数据保存到变量“ad”中。

2、运行实验程序,实现D/A转换产生周期三角波,用虚拟示波器观察波形。

四、实验原理

1、A/D转换实验

本实验系统中采用ADC0809芯片,其输出8位数据线以及CLOCK线已连到控制计算机系统的数据线及系统应用时钟1MCLK(1MHz)上,其它控制线(图中带O的线)根据实验要求另外连接(A、B、C、STR、/OE、IN7)。

下图为实验线路图。

上图中,ADC0809的启动信号“STR”是由控制计算机定时输出方波来实现的。

这里用P1.7来模拟1#定时器的输出,通过“OUT1”排针

引出,方波周期=定时器常数*2。

图中ADC0809芯片输入通道地址码A、B、C为“1”状态,选通输入通道IN7;

系统定时器定时1ms输出方波信号启动A/D转换器,并将A/D转换完后的数据量读入到控制计算机中,最后保存到变量“ad”中。

实验程序Acc1-1-1.C参考流程:

主程序

初始化系统定时器(1ms)

延时

取A/D值,送至变量中

2、D/A转换实验

D/A实验采用TLC7528芯片,它是8位、并行、两路、电压型输出数模转换器。

其主要参数:

转换时间100ns,满量程误差1/2LSB,参考电压-10V~+10V,供电电压+5V~+15V,输入逻辑电平与TTL兼容。

实验平台中的TLC7528的8位数据线、写线和通道选择线已接到控制计算机的总线上,片选线/CS预留出待实验中连接到相应的I/O片选上(/IOY1预留端),具体如下图中带O的线:

以上电路是TLC7528双极性输出电路,输出范围-5V~+5V,“W101”和“W102”分别为A路和B路的调零电位器,往TLC7528的A口和B口中送入数字量80H,分别调节“W101”和“W102”电位器,用万用表分别测“OUT1”和“OUT2”的输出电压,应在0mV左右。

实验程序Acc1-1-2.C参考流程:

主程序

变量初始化

变量递加,送D/A输出

五、实验步骤及结果

1、建立一个工程文件

⑴选择CPU的类型

打开KeiluVision2联机操作软件,首先选择“Project”主菜单中的”NewProject”选项,建立一个新的工程文件(如D:

\Keil\Example\Hellow\*.Uv2),接着选择CPU的类型,这里选择“SST”公司的“SST89E554RC”芯片,如下图为51系列CPU类型库对话框:

按下“确定”按钮后,出现下图:

注意:

上图中的对话窗口应选择按钮“否”。

⑵设置开发工具选项

在上图左方“projectworkspace”的“files”区中,将鼠标指向“Target1”点击鼠标右键,出现下图:

选择“OptionsforTarget1’Target1’”后,弹出下图:

上图中,①先选择“Target”选项卡:

将上图中的“Xtal”晶振值40修改成12;

②再选择“Debug”选项卡:

设置调试模式是“UseSimulator”还是“UseKeilMonitor-51Driver”,本实验选择“UseKeilMonitor-51Driver”,则用鼠标点击“setting”来选择串口号“Port”为COM1,选择通讯波特率“Baudrate”为38400。

③最后选择“output”选项卡:

用“√”选择“CreatHEXFi”。

2、添加C文件

在该工程文件的基础上添加C文件,将鼠标指向下图中“SourceGroup1”,点击鼠标右键出现下列窗口:

选择“AddFilesto‘SourceGroup1”,出现以下窗口,即可添加已有的C文件。

本实验采用已有的C文件,在下列窗口,建立C文件路径:

D:

\Tangdu\exampl51\Acc1-1-1\Acc1-1-1.C,选中Acc1-1-1.C文件,按下“Add”键后,再按下“Close”键,即完成C文件添加到工程中。

用鼠标点击“SourceGroup1”前1“+”,将会出现添加的C文件。

(见下图)

如果没有C文件,可先选择“File”主菜单中的“New”选项,先建立C文件,然后添加到工程中去。

3、编译和链接

用鼠标双击添加的C文件,在界面的右边的编辑区显示该C文件,可在此编写或修改实验程序,检查程序无误后,选择“Project”主菜单中的”Buildtarget”选项,进行编译和链接。

编译结果见下图下方“OutputWindows”中“”Build”窗口:

4、接线

按实验原理图接线,检查无误后方可开启实验设备电源。

5、调试及结果

选择“Debug”主菜单中的”Start/StopDebugSession”选项,即可转入到

Debug调试状态。

以下分别介绍调试方法及实验结果:

(一)A/D通道实验

1加入变量监视,具体步骤:

先选择“View”主菜单中的”Watch&

CallStackWindow”选项,然后再用鼠标右键点击程序中所要监视的变量“ab”,将会出现以下所示窗口,选择“Add“ad”toWatchWindow”项后,再选择将变量放在“Watch1#”还是“Watch2#”窗口进行监视。

2设置程序断点(*.C程序结束处)

3运行“虚拟仪器”实验软件,选择“虚拟仪器”中的“万用表”选项,再选择“电压”档,并用实验箱中示波器单元中的“CH1”表笔来测量A/D0809芯片IN7的模拟输入电压“Y”端,点击“虚拟仪器”的“运行”按钮,调节“单次阶跃”中的电位器,确定好输入电压值。

4做好以上准备工作后,点击“Debug”主菜单中的”Go”选项,即可运行程序,程序将在断点处停下,查看“WatchWindow”中数组“ab[0]~ab[9]”的值,取平均值记录,并填入下列表中,表中“()”为数字量的参考值。

模拟输入电压(V)

对应的数字量(H)

-5

(00)

-4

(1A)

-3

(33)

-2

(4C)

-1

(66)

0

(80)

+1

(99)

+2

(B3)

+3

(CD)

+4

(E6)

+5

(FF)

(二)D/A通道实验

1点击“Debug”主菜单中的”Go”选项,即可运行程序。

2选择“虚拟仪器”中的“示波器”选项,并用实验箱中示波器单元中的“CH1”和“CH2”表笔来分别测量TLC7528D/A芯片的“OUT1”和“OUT2”端,点击“虚拟仪器”的“运行”按钮,观测输出波形。

实验结果如下图所示。

实验三基于MATLAB的离散系统分析设计实验

一、实验目的:

1、学会MATLAB在离散系统仿真和设计中应用的基本方法。

2、进一步掌握离散系统的根轨迹设计、零极点配置设计等设计方法,观察不同系统的性能指标。

3、了解PID控制器的作用,参数的整定方法及对系统性能的影响。

二、试验设备:

1、80586PC机。

2、装有MATLABV.5软件。

三、实验基本原理:

MATLAB是一个高级的数学分析和运算软件,可以用作动态系统的建模与仿真,它是一个开放的环境,提供了各个领域研究和应用的有特殊用途的工具箱。

在进行控制系统仿真、分析中,一般可采用两种方法:

一是采用SIMULINK这个动态系统建模、仿真的一个集成环境,在此环境下建立起直观的系统模型,进行系统分析与设计;

二是采用MATLAB提供的程序设计命令和控制工具箱中的函数(或称为命令)设计程序并运行程序,进行分析和设计。

下面简单介绍这两种方法。

1、SIMULINK环境下仿真

SIMULINK扩展了MATLAB的功能,实现了可视化建模,在WINDOWS视窗里,通过简单的鼠标操作就可建立起直观的系统模型,并可进行仿真。

操作步骤大致如下:

1)在MATLAB窗口中输入命令SIMULINK,便可打开如下图所示SIMULINK模块库窗口和一个名为“UNTITLED”的工作窗口。

2)双击SIMULINK窗口模块库中“SOURCES”库图标,打开信号源库,将所需要的信号源图形用鼠标拖到工作窗口;

用同样方法双击模块库中“DISCRETE”或“SINKS”等库图标,打开相应库,将要选择的图形逐一用鼠标拖到工作窗口,完成了各个环节功能模块的复制。

3)确定有关功能模块的参数。

方法是双击某功能模块,打开该功能模块,显示那模块的参数设定窗口,在参数方框中一一填入所要的数据,完成参数选择后关闭该窗口。

4)将鼠标从一个功能块输出点拖到另一个功能块的输入点连接两个功能块,依次将工作窗口所有功能块进行连接,完成系统方框图的绘制。

5)打开示波器(SCOPE)调整好X和Y的量程。

6)选择工作窗口菜单“SIMULATION”,需要时可以通过菜单中“PARAMETERS”项进行参数选择。

最后执行菜单中“START”项启动仿真过程,以示示波器观察结果的输出。

2、MATLAB窗口下执行命令进行仿真

这里有两种常用方法可采用:

一是直接交互的指令行操作方式;

另一种是M文件的编程执行方式。

1)直接交互方式的操作较简单,只要在MATLAB窗口中直接逐条输入由控制工具箱中提供的实现所需功能的命令,MATLAB就会解释执行这条命令,并在窗口中显示出相应结果。

2)M文件执行方式仿真时,首先建立一个M文件,建立文件的方法是选择菜单“FILE”下“NEW”中的“M-FILE”项,打开文件编辑窗口,在窗口中输入程序指令,当程序输入完毕,以一文件名存入\MATLAB\BIN子目录下。

然后在MATLAB窗口中输入该文件名,就可执行这段程序,获得相应结果。

四、实验内容与步骤:

1、被控对象为G(S)=40/S(S+20)时,采用离散系统设计法设计输入时单位阶跃和斜坡的最少拍系统的控制器D(Z)。

取采样周期T=0.125S、0.25S,观察系统的输出响应。

实验步骤为:

(1)计算离散环节HG(Z),并按要求设计D(Z)。

(2)在MATLAB窗口中输入命令:

SIMULINK,打开模块库和工作窗口。

(3)分别在“SOURCES”库、“DISCRETE”库、“SINKS”库中将所需环节的功能块复制到工作窗口中,并将各模块连接成一系统方框图。

(4)打开示波器,启动仿真开始,观察输出,并记录有关性能指标。

2、被控对象为G(S)=10/(S+1)(S+2),采用数字PID控制,控制器为

D(Z)=Kp+Ki/(1-Z-1)+Kd(1-Z-1),系统框图如下所示:

采用C2dm、Series、Cloop、Filter(或Dstep)、Plot等命令,用直接交互操作方式进行仿真。

(1)取Ts=0.1s,Kp=1,Ki=0.069,Kd=3.062,观察系统输出。

(2)另取Kp,Ki,Kd几组不同的值,比较系统的输出。

3、被控对象为G(S)=10/S(S+2),采用数字PID控制,采样周期T=0.25s,控制器为D(Z)=Kp+KdT/Ti(1-Z-1)+KpTd(1-Z-1)/T系统框图如上图所示。

1)要求输入和运行下列一段用扩充临界比例度法整定PID参数的程序,观察系统的输出,不断增大Kp值,直至输出出现等幅振荡,记下这时的Kp值Ks和振幅周期Ts,然后确定PID参数Kp、Ti、Td。

参考程序如下:

%MatlabPROGRAM

num=[10];

den=[120];

Kp=1;

T=0.25;

[numd,dend]=c2dm(num,den,T,'

zoh'

);

[numdc,dendc]=cloop(Kp*numd,dend,-1);

u=ones(1,51);

y=filter(numdc,dendc,u);

plot(y,'

b'

xlabel('

x'

ylabel('

y'

axis([05005]);

grid;

2)根据以上已选择的PID参数确定控制器D(Z),编写分析闭环系统输出性能的程序,运行程序,并记录有关数据。

计算机控制系统如题2图所示,其中被控对象G(S)=K/S(S+0.5)(S+0.2),采样周期T=0.5S,要用根轨迹方法设计数字控制器D(Z),是系统阻尼比ζ=0.7,Kv≥1。

1)用MATLAB中Rlocus、Rlocfind、Zgrid等主要命令做出无校正时的开环系统的根轨迹图,判断是否满足系统ζ=0.7,Kv≥1的性能指标,不满足则进行下一步。

2)根据性能的要求和零、极点分布对性能的影响,添加合适的零极点,设计一个校正网络,在作出校正后的系统的根轨迹图,验证是否满足性能指标,如不满足,则重新设计校正网络。

4、用极点配置方法设计动态反馈系统中的反馈增益矩阵K。

系统如图所示:

对象的状态表达式为

x1(t)=-x1(t)

x2(t)=x2(t)+u(t)

y(t)=x2(t)

要求系统的闭环极点是P1=0.5+j0.5、P2=0.5-j0.5。

求取反馈增益矩阵K所采用的方法可以是:

当离散系统的状态方程为X(K+1)=GX(K)+HU(K),而状态反馈系统的特征方程是

|ZI-G+HK|=Φ(Z)=(Z-P1)(Z-P2)=Z2+α1Z+α2,于是K=[01][HGH]-1Φ(G),其中Φ(G)=G2+α1G+α2

试采用MATLAB中Ploy、Polyvalm、Inv等命令确定反馈矩阵K。

并观察系统的单位阶跃响应。

附录

有关MATLAB命令简介

1、parallel

功能:

系统的并联连接。

格式:

[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)

[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2,inp1,inp2,out1,out2)

[num,den]=prallel(num1,den1,num2,den2)

说明:

parallel函数按并联方式连接两个状态空间系统,它既适合于连续时间系统,也适合于离散时间系统。

[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2),可得到由系统1和系统2并行连接的状态空间表示的系统,其输出为y=y1+y2,其输入连接在一起,并作为系统输入,如图1所示。

由此可得到的系统为

[num,den]=prallel(num1,den1,num2,den2),可得到并联连接的传递函数表示系统,其结果为

[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2,inp1,inp2,out1,out2),可将系统1与系统2按图2所示的方程连接,在inp1和inp2中分别指定两系统要连接在一起的输入端标号,out1和out2中分别指定要做相加的输出端编号。

图1系统的并联连接图2部分并联连接的系统

例两子系统为

将两者做并联连接,可输入

num1=3;

den1=[1,4];

num2=[2,4]

den2=[1,2,3]

[num,den]=parallel(num1,den1,num2,den2)

则得

num=

051825

den=

161112

因此

参见:

append,cloop,feedback,series

2、series

系统的串联连接。

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2,outputs1,inputs2)

[num,den]=series(num1,den1,num2,den2)

series函数可将两个系统按串联方式进行连接,它既适用于连续时间系统,也适用于离散时间系统。

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2),可将系统1的所有输出链接到系统2的输入上,即u2=y1,这样得到了如图3所示的系统

[num,den]=series(num1,den1,num2,den2)可得到串联连接的传递函数形式

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2,outputs1,inputs2),可将系统1和系统2按图4所示的方式进行连接,outputs1和inputs2用于指定系统1的部分输出和系统2的部分输入进行连接。

append,cloop,feedback,parallel,connect

图3系统的串联连接图4部分串联连接的系统

3、feedback

两个系统的反馈连接。

[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2)

[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)

[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,inp1,out1)

[num,den]=feedback(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1