电机起动过程动态检测系统(4)

2019-03-16 19:29

图4-21 写入电子表格文件程序 图4-22 总体程序框图

上位机的完整程序如图4-22所示。程序由串口接收程序和波形显示两个部分组成,上位机通过串口接收程序从串口读取数据

后,将字符串变化成相应的十进制数,在LabVIEW的前面板上显示出来,单片机发送上来的数据由上位机的串口程序进行处 理。

4.7 本章小结

本章主要介绍了AD转换的子程序、霍尔元件测转速的子程序、显示子程序、LabVIEW的程序设计和单片机通信口的设计

,进行了把单片机电平变成RS232电平的转换电路的设计,通过MAX232转换即可。对LabVIEW上位机程序进行设计,先设计

Labview的串口读取程序,波特率、停止位、校验位等需要与单片机一致,将单片机发送的字符串转化为十进制数,将十进制

数用波形显示出来,最后将数据保存在文本中。 5 调试与仿真

5.1 整流电路的仿真

假设电流互感器二次侧的电流最大值为20mA,则经过I/V变换电路的电压在-5~5V之间变化,在仿真中假设把一个-5~5V之

间变化的正弦信号电压给精密整流电路,精密整流电路图如下图5-1所示。 图5-1 精密整流电路图

当输入电压大于0时根据虚短虚断D16导通,在图中取R1=R2,当输入信号大于0时,D2导通,由R1和R2构成的反向比例放大

器的系数为-1,同理R3和R5构成的反向比例放大器系数为-2,R4和R5构成的比例为-1,所以当输入电压大于0时,最终的放大

倍数为1.而当输入电压小于0时,D1截止,D2导通,根据虚短虚断,R4处的电压为0,R6处的电压也为0,所以R3和R7构成反

向比例放大器,系数为-1。所以交流信号经过精密整流后的波形就是全波整流波形,波形图如下图5-2所示。

图5-2 不放大精密整流仿真波形

当改变R1、R2、R3、R4和R5的值,使R2=2R1,取R1=R3=5K,R2=R4=R5=10。假设输入-3~+3V变化的正弦电压,仿真图如 下图5-3所示。

图5-3 半波被放大的精密整流仿真波形

当输入电压大于0时,R1和R2构成反比例系数为-2,R3和R5构成的反比例系数为-2,R4和R5构成的反比例系数为-1,最终的

放大倍数为3,所以当输入正向电压时,整流后的电压值峰值即为9,当输入电压值小于0时,只构成反比例系数为-1,所以整

流后的电压值峰值即为3。当改变R4的值,输入电压值小于0时,整流后的比例也跟着改变。如图5-4所示。

图5-4 半波整流仿真波形

取R1=10k,R4=5k,则电压大于0时,放大倍数为0,电压小于0时,改变了R4的组值,比例放大系数也跟着改变,被放大了 2倍。

在本次设计中,为了设计要求,最后需要全波整流,而且电流互感器二次侧经过I/V变换电路的输出电压是0~5V,所以经过

精密整流电路整流后的电压值不需要放大,采用图5-1的电路接线方法。 5.2 单片机仿真

假设电流互感器是2500:1的电流互感器,那么ADC0804采样到的电压为4.91V时,电流值应为该电压值除以I/V变换电路的系

数,最后乘上电流互感器的变比,那么电流互感器一次测的电流值应为49.1A。仿真电路图如图5-5所示,用电压表测整流后的

电压,液晶显示屏上显示的是电流互感器一次测的电流值,与计算值差0.1A。 图5-5 电流仿真

针对电流互感器不同的变比,在程序里改变电流互感器的系数值即可。

当电机转轴上的磁铁经过霍尔元件时,霍尔元件产生脉冲,通过中断单片机的T0达到测速的功能,频率设置图如图5-6所示

,仿真图如图5-7所示,在这次仿真中由于无法对霍尔元件进行仿真,所以仿真中送入一个固定的脉冲频率。 图5-6 频率设置 图5-7 转速仿真

如图5-8所示为整个单片机原理图的仿真,输入INTO口的频率是30HZ,即1秒内霍尔元件产生30个脉冲,电机的转轴每转过 一圈,转轴上的磁铁经过霍尔元件时便会产生一个脉冲。整流电路的输出端在接入AD模块,电流值在液晶显示屏上显示出来 。

图5-8 单片机仿真电路图

如图5-9所示为全波整流后的起动电流的波形,从图中可以看出起动电流近近似为额定电流的7倍,到达一定时间后,异步电 机的起动电流趋于稳定。

图5-9 整流后的起动电流波形 5.3 本章小结

本章介绍了单片机和上位机的仿真,展示了总的硬件原理图和LabVIEW上位机界面。 6 电机起动过程动态检测系统设计总结与展望

电机起动过程的动态监测室将LabVIEW作为上位机,将单片机作为下位机用来测量电机的起动电流和转速,将电机起动电

流波形在上位机上显示出来,并将采集到的数据保存起来。

对电机起动电流进行检测时首先要通过电流互感器对电流进行转换,然后通过电流/电压变化电路把电流值变化成电压值

,再用运放组成的精密整流电路进行整流。用ADC0804把整流过后的电压模拟量转化为数字量,再用单片机进行处理。转速

测量则是根据霍尔效应,用单片机对霍尔元件产生的脉冲进行处理,最后通过上位机显示。 在设计中需要对元件进行选择,如运放组成的精密整流电路中由于考虑到ADC0804的输入电压范围,对运放的工作电压选

择只能比ADC0804的输入电压略高一点,所以对运放的工作电压选择-6V~+6V。在设计MAX232电路时需要对电容进行选择

,需要选用极性电容,因为极性电容具有更大的存储能力。 这次设计只进行仿真,如果要通过实物进行实验的话会出现很多问题,上位机接受数据的时

候可能会出现乱码,单片机对电 流的检测不精确,电流过大可能烧坏元器件,磁铁经过霍尔元件时可能会产生不规则的脉冲波形,使实际的转速与测到的转速

产生误差。在设计中没有对干扰进行考虑,如MAX232就会被干扰影响,如果做成实物需要对电源干扰进行处理。 附录 总原理图

-12380021587928

程序

#include #include #include

#define uchar unsigned char #define uint unsigned int #define ulong unsigned long

sbit lcd_rs=P2^2;// LCD数据/命令选择端 sbit lcd_en=P2^0; //LCD使能信号 sbit cs=P2^6; //AD片选 sbit rd=P2^5; //读信号输入 sbit wr=P2^4; //写信号输入 uchar m=0; //中断溢出次数 uchar u; uint i; uint x; uint c; uint k;

float idata t0,f,AD_VO;

uint a[]={78,61,48,48,48,48,48,46,48,48,114,47,83};//频率数据保存 uint temp,D0,D1,D2,D3,D4,D5,D6,D7; ulong shu; uint AD_read(); void init();

void delay(uint s);

void write_com(uchar com); void write_shu(ulong shu); void lcd_init(); void CT_init();

void display2(uchar qw,uchar bw,uchar sw,uchar gw,uchar sfw,uchar bfw); void AD_init(); void AD_start(); void main() { init();

write_com(0x01);

lcd_init(); CT_init(); AD_init (); EA=1; EX0=1; IT0=1; while(1) {

AD_start(); shu=AD_read();

AD_VO=(float)shu*5.0/256.0; TI=1;

printf(\while(!TI); TI=0;

shu=shu*196*4.9; D7=shu/10000000; shu=shu000000; D6=shu/1000000; shu=shu00000; D0=shu/100000; shu=shu0000; D1=shu/10000; shu=shu000; D2=shu/1000; shu=shu00; D3=shu/100;

display2(D7,D6,D0,D1,D2,D3); t0=u*65536+x; f=1000000/(2*t0); c=f*100;

a[9]=c+48; a[8]=(c/10)+48; c=f;

a[6]=c+48; a[5]=(c/10)+48; a[4]=(c/100)+48; a[3]=(c/1000)+48; a[2]=(c/10000)+48; write_com(0x80); for(i=0;i<=12;i++) {

write_shu(a[i]); delay(10);

} } }

void delay(uint s)//延时1MS {

uint r,g;

for(r=s;r>0;r--) for(g=110;g>0;g--); }

void write_com(uchar com) //lcd1602写操作子程序 {

P0=com; lcd_rs=0; lcd_en=1; lcd_en=0; delay(2); }

void write_shu(ulong shu) //lcd1602写数据子程序 P0=shu; lcd_rs=1; lcd_en=1; lcd_en=0; delay(5); }

void init()//MAX232初始化程序 {

TMOD=0x29; TH1=0xfd; TH0=0xfd; TR1=1; SM0=0; SM1=1; REN=1; EA=1; }

void lcd_init()//lcd1602初始化程序 {

lcd_en=0;

write_com(0x01); write_com(0x06); write_com(0x0c); write_com(0x38);

void CT_init() //定时计数器初始化 {


电机起动过程动态检测系统(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:煤矿人力资源部安全生产责任制

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: