自动控制系统实验报告.docx

上传人:b****1 文档编号:326849 上传时间:2023-04-28 格式:DOCX 页数:51 大小:306.78KB
下载 相关 举报
自动控制系统实验报告.docx_第1页
第1页 / 共51页
自动控制系统实验报告.docx_第2页
第2页 / 共51页
自动控制系统实验报告.docx_第3页
第3页 / 共51页
自动控制系统实验报告.docx_第4页
第4页 / 共51页
自动控制系统实验报告.docx_第5页
第5页 / 共51页
自动控制系统实验报告.docx_第6页
第6页 / 共51页
自动控制系统实验报告.docx_第7页
第7页 / 共51页
自动控制系统实验报告.docx_第8页
第8页 / 共51页
自动控制系统实验报告.docx_第9页
第9页 / 共51页
自动控制系统实验报告.docx_第10页
第10页 / 共51页
自动控制系统实验报告.docx_第11页
第11页 / 共51页
自动控制系统实验报告.docx_第12页
第12页 / 共51页
自动控制系统实验报告.docx_第13页
第13页 / 共51页
自动控制系统实验报告.docx_第14页
第14页 / 共51页
自动控制系统实验报告.docx_第15页
第15页 / 共51页
自动控制系统实验报告.docx_第16页
第16页 / 共51页
自动控制系统实验报告.docx_第17页
第17页 / 共51页
自动控制系统实验报告.docx_第18页
第18页 / 共51页
自动控制系统实验报告.docx_第19页
第19页 / 共51页
自动控制系统实验报告.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

自动控制系统实验报告.docx

《自动控制系统实验报告.docx》由会员分享,可在线阅读,更多相关《自动控制系统实验报告.docx(51页珍藏版)》请在冰点文库上搜索。

自动控制系统实验报告.docx

自动控制系统实验报告

自动控制系统实验报告

学号:

班级:

姓名:

老师:

1.运动控制系统实验

实验一.硬件电路的熟悉和控制原理复习巩固

实验目的:

综合了解运动控制实验仪器机械结构、各部分硬件电路以及控制原理,复习巩固以前课堂知识,为下阶段实习打好基础。

实验内容:

了解运动控制实验仪的几个基本电路:

单片机控制电路(键盘显示电路最小应用系统、步进电机控制电路、光槽位置检测电路)

ISA运动接口卡原理(搞清楚译码电路原理和ISA总线原理)

步进电机驱动检测电路原理(高低压恒流斩波驱动电路原理、光槽位置检测电路)

两轴运动十字工作台结构

步进电机驱动技术(掌握步进电机三相六拍、三相三拍驱动方法。

微机接口技术、单片机原理及接口技术,数控轮廓插补原理,计算机高级语言硬件编程等知识。

实验结果:

步进电机驱动技术:

控制信号接口:

(1)PUL:

单脉冲控制方式时为脉冲控制信号,每当脉冲由低变高是电机走一步;双

脉冲控制方式时为正转脉冲信号。

(2)DIR:

单脉冲控制方式时为方向控制信号,用于改变电机转向;双脉冲控制方式

时为反转脉冲信号。

(3)OPTO:

为PUL、DIR、ENA的共阳极端口。

(4)ENA:

使能/禁止信号,高电平使能,低电平时驱动器不能工作,电机处于自由状

态。

电流设定:

(1)工作电流设定:

(2)静止电流设定:

静态电流可用SW4拨码开关设定,off表示静态电流设为动态电流的一半,on表示静态电流与动态电流相同。

一般用途中应将SW4设成off,使得电机和驱动器的发热减少,可靠性提高。

脉冲串停止后约0.4秒左右电流自动减至一半左右(实际值的60%),发热量理论上减至36%。

(3)细分设定:

(4)步进电机的转速与脉冲频率的关系

电机转速v=脉冲频率P*电机固有步进角e/(360*细分数m)

逐点比较法的直线插补和圆弧插补:

1.直线插补原理:

如图所示的平面斜线AB,以斜线起点A的坐标为x0,y0,斜线AB的终点坐标为(xe,ye),则此直线方程为:

取判别函数F=(Y—Y0)(Xe—Xo)—(X-X0)(Ye—Y0)

用逐点比较法加工时,每一次只在一个坐标方向给出一个脉冲,使运动件在该坐标方向上进给一步,因此刀具的运动轨迹是折线,而不是斜线AB。

折线拐点M与斜线AB之间的位置关系有如下三种情况:

1)M点在AB线的上方.判别函数F>0;

2)M点在AB线上,F=0

3)M点在AB线的下方,F<0

 

象限判别和电机方向

方向

第一象限

第二象限

第三象限

第四象限

Xe-X0

>0

<0

<0

>0

Ye-Y0

>0

>0

<0

<0

X向电机

Y向电机

2.圆弧插补原理:

图中AB是被加工圆弧。

加工程序中给出的已知条件通常是A点B点的坐标值,圆心O’点相对圆弧起点A的增量坐标值。

由图可知:

圆心O’点相对A点的增量坐标值为(—Io,—Jo)。

改变符号后就成为A点相对O’点的增量值Io,Jo。

由此可求出圆弧的半径值R:

R2=Io2+Jo2在以圆心O’点为原点的I、J坐标系中,圆的方程

可表示为:

I2+J2=R2设刀具已位于M1点,则Mi点对圆弧AB的位置有三种情况:

1)Mi在圆弧外侧,则0’Mi>R,Ii2+Ji2>R2

2)Mi在圆弧上,则0’Mi=R,Ii2+Ji2=R2

3)Mi在圆弧内侧,0’Mi

在第一象陨顺时针加工圆弧(顺圆弧)和第二、三、四象限加工顺圆弧和逆圆弧时,判别式都不相同。

带符号运算时,无论在哪个象限工作,顺圆弧或逆圆弧,归纳起来有如下四种情

1.+X方向走一步

Ii+1=Ii+1

Fi+1=Fi+2Ii+1

2.-X方向走一步

Ii+1=Ii-1

Fi+1=Fi-2Ii+1

3.+Y方向走一步

Ji+1=Ji+1

Fi+1=Fi+2Ji+1

4.-Y方向走一步

Ji+1=Ji+1

Fi+1=Fi+2Ji+1

四个象限进给方向

象限判断和电机转向

第一象限

第二象限

第三象限

第四象限

Ii的符号

+

-

-

+

Ji的符号

+

+

-

-

X向电机

顺圆

+

+

-

-

逆圆

-

-

+

+

X向电机

顺圆

-

+

+

-

逆圆

+

-

-

+

实验二.键盘显示综合实验

实验目的:

1、复习单片机键盘显示编制方法

2、为下步工作奠定基础

实验内容:

1、编制键盘扫描程序和数码管的静态显示程序

2、编制键盘数据输入程序

3、编制十进制到二进制转换程序

4、编制二进制到十进制转换程序

5、编写显示程序

6、编制功能键跳转程序

7、联机作总体调试

实验结果:

#include//库文件

#include

#include

#include

sbitP32=P3^2;

#defineLEDLen8//六个八段管

#definemode0x81//8255工作模式//方式0,A口、B口及上C口作为输出,下C口作为输入

#defineLEDSELP2

#defineLEDSEL_00x60//八段管地址

#defineLEDSEL_10x64

#defineLEDSEL_20x68

#defineLEDSEL_30x6C

#defineLEDSEL_40x70

#defineLEDSEL_50x74

#defineLEDSEL_60x78

#defineLEDSEL_70x7C

#defineucharunsignedchar

#defineuintunsignedint

//codeucharhang[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};

codeucharlie[][8]={0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,

0xFF,0xFF,0xDB,0x81,0x81,0xC3,0xE7,0xFF};

#defineTick200

#defineT100us(256-200)

unsignedintC100us=Tick;//200us记数单元

unsignedcharBit=0;

unsignedcharSelectLed[LEDLen]=

{

LEDSEL_0,LEDSEL_1,LEDSEL_2,LEDSEL_3,LEDSEL_4,LEDSEL_5,LEDSEL_6,LEDSEL_7

};

xdataunsignedcharCS8255_at_0x60;//8255

xdataunsignedcharPA_at_0x6000;//8255的PA口

xdataunsignedcharPB_at_0x6001;//8255的PB口

xdataunsignedcharPC_at_0x6002;//8255的PC口

xdataunsignedcharCTL_at_0x6003;//8255控制字地址

unsignedcharLEDBUFF[8];

codeunsignedcharKeyTable[]=//键值表

{

0x7E,0xBE,0xDE,0xEE,

0x7D,0xBD,0xDD,0xED,

0x7B,0xBB,0xDB,0xEB,

0x77,0xB7,0xD7,0xE7

};

codeunsignedcharSWEEP[]=//扫描信号

{

0x7f,0xBf,0xDF,0xEF

};

codeunsignedcharLEDMAP[]=//八段显示管键码

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

};

//延时

voiddelay(unsignedintCNT)

{

unsignedchari;

while(CNT--!

=0)

for(i=100;i!

=0;--i);

}

unsignedcharTestKey()

{

unsignedchari,Temp;

Temp=PC;//PC是变化的

i=~Temp&0x0f;

returni;

unsignedcharGetKey()

{

unsignedchari,Num=16;

if(TestKey())

{

for(i=0;i<16;i++)

{

if(KeyTable[i]==PC)//有键按下时

{

Num=i;//确定键值

do

{

delay(200);//消除键抖动

}

while(TestKey());//等待按键松开

returnNum;//返回键值

}

}

}

returnNum;

}

voidDisplayResult(unsignedcharNum)

{

LEDBUFF[7]=LEDMAP[Num];

}

voidDisplayLED()

{

unsignedchari;

for(i=0;i<8;++i)

{

LEDSEL=SelectLed[i];

PB=LEDBUFF[i];

delay

(1);

}

}

实验三.步进电机单片机控制实验

(1)

实验目的:

1、掌握步进电机控制基本方法

2、测试出步进电机工作频率范围,确定其正常工作中脉冲频率

3、掌握步进电机加减速控制方法

实验内容:

1、编制步进电动机正反转实验:

采用三相六拍和三相三拍控制方式分别编写步进电动机正反转程序。

2、步进电动机的频率特性测定实验:

改变延时大小,测试步进电动机频率特性,找出不失步的最大频率。

3、编制步进电动机加减速程序,要求实现梯形加减速曲线。

4、结合键盘显示程序编制X、Y轴点动实验:

实现+X、+Y、-X、-Y四个方向的点动功能,按下某个功能键+X,工作台即向该正方向运动,松开该键工作台停止运动。

实验结果:

控制电机直线插补子程序:

voidline(intx1,inty1,intx2,inty2)

{

intdx,dy,n,k,i,f;

intx,y;

dx=abs(x2-x1);

dy=abs(y2-y1);

n=dx+dy;

if(x2>=x1){

k=y2>=y1?

1:

4;

x=x1;

y=y1;

}else{

k=y2>=y1?

2:

3;

x=x2;

y=y2;

}

for(i=0,f=0;i

if(f>=0)

switch(k){

case1:

f-=dy;

PA=0xff;delay

(2);//X轴正转

PA=0xfe;delay

(2);

break;

case2:

f-=dx;

PA=0xff;delay

(2);

PA=0xef;delay

(2);//Y轴正转

break;

case3:

f-=dy;

PA=0xfd;delay

(2);

PA=0xfc;delay

(2);//X轴反转

break;

case4:

f-=dx;

PA=0xdf;delay

(2);

PA=0xcf;delay

(2);//Y轴反转

break;

}

else

switch(k){

case1:

f+=dx;

PA=0xff;delay

(2);

PA=0xef;delay

(2);//Y轴正转

break;

case2:

f+=dy;

PA=0xfd;delay

(2);

PA=0xfc;delay

(2);//X轴反转

break;

case3:

f+=dx;

PA=0xdf;delay

(2);

PA=0xcf;delay

(2);//Y轴反转

break;

case4:

f+=dy;

PA=0xff;delay

(2);//X轴正转

PA=0xfe;delay

(2);

break;

}

}

实验四.步进电机单片机控制实验

(2)

实验目的:

1、掌握运动控制系统常用控制方法

2、掌握直线的逐点比较插补方法

实验内容:

1、编制第一象限直线插补程序。

2、结合键盘显示程序,输入直线的终点坐标值Xe、Ye,按下直线键后进行插补运动,检验图纸上所走轨迹是否与设定直线相符合。

3、加入插补过程数据动态显示功能,插补过程中动态显示X、Y任意某轴坐标,或者总步数值。

4、编制四象限直线插补程序。

5、编制一象限圆弧插补程序。

实验结果:

圆弧插补子程序:

voidcircle(intx0,inty0,intxe,intye)

{

intxm,ym,rns;

intnxy;

intfm=0;

xm=x0;

ym=y0;

nxy=abs(xe-xm)+abs(ye-ym);

if(xe>xm)

{

if(ye>ym)

{

if(xm>=0)

{

rns=8;

}

else

{

rns=2;

}

}

else

{

if(xm>=0)

{

rns=1;

}

else

{

rns=7;

}

}

}

else

{

if(ye>ym)

{

if(xe>=0)

{

rns=5;

}

else

{

rns=3;

}

}

else

{

if(xe>=0)

{

rns=4;

}

else

{

rns=6;

}

}

}

while(nxy--)

{

if(fm>=0)

{

if(rns==1||rns==3||rns==6||rns==8)

{

if(rns==1||rns==6)

{

PA=0xdf;delay(5);

PA=0xcf;delay(5);//-y

}

elseif(rns==3||rns==8)

{

PA=0xff;delay(5);

PA=0xef;delay(5);//+y

}

fm=fm-2*abs(ym)+1;

ym=abs(ym)-1;

}

elseif(rns==2||rns==4||rns==5||rns==7)

{

if(rns==2||rns==7)

{

PA=0xff;delay(5);//+x

PA=0xfe;delay(5);

}

elseif(rns==4||rns==5)

{

PA=0xfd;delay(5);//-x

PA=0xfc;delay(5);

}

fm=fm-2*abs(xm)+1;

xm=abs(xm)-1;

}

}

else

{

if(rns==1||rns==3||rns==6||rns==8)

{

if(rns==1||rns==8)

{

PA=0xff;delay(5);//+x

PA=0xfe;delay(5);

}

elseif(rns==3||rns==6)

{

PA=0xfd;delay(5);//-x

PA=0xfc;delay(5);

}

fm=fm+2*abs(xm)+1;

xm=abs(xm)+1;

}

elseif(rns==2||rns==4||rns==5||rns==7)

{

if(rns==2||rns==5)

{

PA=0xff;delay(5);//+y

PA=0xef;delay(5);

}

elseif(rns==4||rns==7)

{

PA=0xdf;delay(5);//-y

PA=0xcf;delay(5);

}

fm=fm+2*abs(ym)+1;

ym=abs(ym)+1;

}

}

}

}

实验五.单片机控制位置检测实验

实验目的:

1、熟悉光电开关的用法

2、掌握一般运动控制系统中位置检测方法

3、掌握相应检测电路原理。

实验内容:

1、测试各个光电开关对应位

2、编制运动中的检测程序

实验六、单片机运动控制系统总体实验

实验目的:

1、培养学生系统设计能力。

2、掌握一般系统功能模块集成方法和调试方法。

3、了解单片机应用系统从设计到应用实际操作流程。

实验内容:

1、由键盘显示程序将各个功能模块综合到一起。

2、调试好程序后,烧入EPROM,脱机运行。

实验总结:

通过这次实验,复习了去年单片机实习的内容,巩固了对单片机各模块的编程操作,掌握了电机驱动器的工作原理和步进电机的工作方式等知识,在实习过程中,理论与实践相结合,加强了对理论知识的理解和掌握,和同学进行团队合作完成实验,也锻炼了我们的团队意识,为在以后的学习和工作能够更好地利用书本知识打下基础。

在实验中,单片机控制位置检测实验这个部分完成地不是很好,需要在以后的学习中,加强这方面知识的学习,使自己的实验结果更加完美。

程序附录:

#include//库文件

#include

#include

#include

#include

#include

sbitP32=P3^2;

#defineLEDLen8//六个八段管

#definemode0x81//8255工作模式//方式0,A口、B口及上C口作为输出,下C口作为输入

#defineLEDSELP2

#defineLEDSEL_00x60//八段管地址

#defineLEDSEL_10x64

#defineLEDSEL_20x68

#defineLEDSEL_30x6C

#defineLEDSEL_40x70

#defineLEDSEL_50x74

#defineLEDSEL_60x78

#defineLEDSEL_70x7C

#defineucharunsignedchar

#defineuintunsignedint

//codeucharhang[]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};

codeucharlie[][8]={0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,

0xFF,0xFF,0xDB,0x81,0x81,0xC3,0xE7,0xFF};

#defineTick200

#defineT100us(256-200)

unsignedintC100us=Tick;//200us记数单元

unsignedcharBit=0;

unsignedcharSelectLed[LEDLen]=

{

LEDSEL_0,LEDSEL_1,LEDSEL_2,LEDSEL_3,LEDSEL_4,LEDSEL_5,LEDSEL_6,LEDSEL_7

};

xdataunsignedcharCS8255_at_0x60;//8255

xdataunsignedcharPA_at_0x6000;//8255的PA口

xdataunsignedcharPB_at_0x6001;//8255的PB口

xdataunsignedcharPC_at_0x6002;//8255的PC口

xdataunsignedcharCTL_at_0x6003;//8255控制字地址

unsignedcharLEDBUFF[8];

codeunsignedcharKeyTable[]=//键值表

{

0x7E,0xBE,0xDE,0xEE,

0x7D,0xBD,0xDD,0xED,

0x7B,0xBB,0xDB,0xEB,

0x77,0xB7,0xD7,0xE7

};

codeunsignedcharSWEEP[]=//扫描信号

{

0x7f,0xBf,0xDF,0xEF

};

codeunsignedcharLEDMAP[]=//八段显示管键码

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71

};

voiddelay(unsignedintCNT)

{

unsignedchari;

while(CNT--!

=0)

for(i=10

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2