直流电机速度控制_ - 范文中心

直流电机速度控制_

05/08

组员:

班级:研1308

授课教师:徐洪泽

计算机控制系统实践——直流电机速度控制

电子信息工程学院 2013-11-24 日期:

目录

1、

2、 整体设计 . .............................................................................................................................. 1 硬件搭建过程 . ...................................................................................................................... 3

一、单片机最小系统 . .............................................................................................................. 3

二、RS232串口模块 . .............................................................................................................. 3

一、电机驱动模块 . .................................................................................................................. 4

四、测速模块 . .......................................................................................................................... 5

五、上位机显示与控制 . .......................................................................................................... 7

3、 闭环系统的PID 控制实现 ................................................................................................... 8

一、控制算法 . .......................................................................................................................... 8

二、PID 参数的整合 ................................................................................................................ 8

4、 问题探讨与实验总结 . .......................................................................................................... 9

一、问题探讨 . .......................................................................................................................... 9

二、实验总结 . .......................................................................................................................... 9

5、 附录:总体程序 . ................................................................................................................ 10

一、程序流程说明 . ................................................................................................................ 10

二、源代码 . ............................................................................................................................ 10

三、实物图 . ............................................................................................................................ 20

1、 整体设计

本系统旨在实现直流电机的速度闭环控制。微控制器接受上位机和测速机构的速度信号,以其偏差作为PID 控制算法的输入,同时用微控制器产生H 桥所需的PWM 控制信号,PWM 的占空比为微控制器PID 控制算法的输出。通过控制PWM 的占空比来控制电机电枢电压,从而达到控制电机转速的目的。

图1. 直流电机速度控制系统框图

图中:r —期望转速;

b —转速测量值;

e —期望转速与实际转速偏差;

n —转速输出值。

直流电机转速为:

n =

其中:U -IR K Φ

U -电枢端电压;

I-电枢电流;

R-电枢电路总电阻;

K-电机结构参数;

Φ-每极磁通量。

本系统采用对电枢电压进行控制的电枢控制法,而电枢电压的控制采用开关驱动方式,即使驱动电机的半导体功率器件工作在开关状态,通过脉宽调制PWM 来控制电动机电枢电压,实现调速。

计算机控制系统实践——直流电机速度控制 在Altium Designer summer 09中画出直流电机速度控制系统的详细设计原理如下图所示。 微控制器采用STC89C52RC 单片机,单片机和上位PC 机通过RS232进行通信,通过单片机的外部中断对编码器输出脉冲进行计数、单片机的P0.0和P0.1口输出PWM 波形信号。外部中断INT1对光电编码器脉冲计数,单片机在一定时间间隔内即可计算出电机的转速。 当电机的实际速度小于目标速度时,LED0指示电机加速;当大于目标速度时,LED1指示电机减速。 图2. 直流电机速度控制系统详细设计图

2、 硬件搭建过程

一、单片机最小系统

功能介绍:

1.支持STC51系列与A T51系列单片机(DIP40),或通过其它转接座支持其它型号单片机;

2.8路水晶蓝LED 可作流水灯实验;

3.2个中断按键(INT0与INT1) 和1个复位按键;

4.1个电位分压器可供调节输出参考电压

5.1个标准ISP 下载接口,用于下载AT 单片机程序,及供电;

6.1个USB-TTL 接口,用于下载STC 单片机,及供电;

7.32个IO 口以排针形式引出,方便外部使用;

8.留有3组电源排针输出,方便外部配件取电,或向板子供电;

9.板载12MHz 优质晶振及P0口全部上拉4.7K 电阻,板上标准复位电路;

10.使用DIP40锁紧座方便取放芯片;

二、RS232串口模块

本文设计的控制系统与上位机串口通信部分采用了PL2303HX 模块实现。主要功能是将实时的速度数据传送到上位机显示;接受上位机发送到单片机的控制信息,包括PID 的三个参数Kp ,Ki ,Kp 和电机转向。

PL2303HX 采用28脚贴片SOIC 封装,工作频率为12MHZ ,符合USB 1.1通信协议,可以直接将USB 信号转换成串口信号,波特率从75~1228800,有22种波特率可以选择,并支持5、6、7、8、16共5种数据比特位,是一款相当不错的USB 转串口芯片。

PL2303模块可以方便地利用杜邦免焊接连接线接入电路,只要插接3根线,一根串口入、一根串口出、一根地线。需要注意的是STC89C52 单片机下载模式接线如下:(只需要连接3根线)

USB 转TTL 小板 TX 连接 单片机P3.0 (RX )

USB 转TTL 小板 RX 连接 单片机P3.1 (TX )

USB 转TTL 小板 GND 连接 单片机GND

一、电机驱动模块

本系统采用的电机驱动模块为L9110S 双路直流电机驱动板,实物如下图所示。

L9110是为控制和驱动电机设计的两通道推挽式功率放大专用集成电路器件,将分立 电 路集成在单片IC 之中,使外围器件成本降低,整机可靠性提高。该芯片有两个TTL/CMOS 兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动及刹车,它具有较大的电流驱动能力,每通道能通过750~800mA 的持续电流,峰值电流能力可达

1.5~2.0A ;同时它具有较低的输出饱和压降;内置的钳位二极管能释放感性负载的反向冲击电流,使它在驱动继电器、直流电机、步进电机或开关功率管的使用上安全可靠。L9110被广泛应用于保险柜、玩具汽车的电机驱动、步进电机驱动和开关功率管等电路上。

电路内部功能框图:

图3. L9110电路内部功能框图

具有如下特点:

⏹ 低静态工作电流;

⏹ 宽电源电压范围:2.5V-12V ;

⏹ 每通道具有800mA 连续电流输出能力;

⏹ 较低的饱和压降;

⏹ 输出具有正转、反转、高阻和刹车四种状态;

⏹ TTL/CMOS 输出电平兼容,可直接连CPU ;

⏹ 输出内置钳位二极管,适用于感性负载;

⏹ 控制和驱动集成于单片IC 之中;

⏹ 具备管脚高压保护功能;

⏹ 工作温度:-20℃-80℃。

应用电路图:

图4. L9110驱动电机应用电路图

四、测速模块

本系统采用精度达到888线的AB 相编码器。通过旋转的光栅盘和光耦产生可识别方向的计数脉冲信号。以下是该编码器的相关介绍:

编码器型号为Agilent Q9843,888线码盘保证了测速精度,也就是电机转一圈输出888个脉冲,芯片上已集成了脉冲整形触发电路,输出的是矩形波,用示波器检测相当稳定,直接单片机IO 口,由于分辨率很高,对单片机的处理能力和程序编写水平提出较高要求。 以下是直流电机实测参数以供参考:

电机线圈电阻6.6欧,阻转电流=电压/电阻。测试得到参数表如下:

编码器3.5V 时耗电实测20ma(实测3.3V-5V 都正常工作,方波规范,但随着电压的提高工作电流会增加,5V 时工作电流40ma) ,加电后编码器发出暗红色的光(亮度很低) ,AB 相输出就可以知道电机的转动方向。

五、上位机显示与控制

上位机实现通过串口向单片机发送控制数据、处理单片机回送数据、显示转数值和速度--时间曲线,便于观察控制系统的性能指标。其界面如下。

主界面:速度显示

PID 参数设置菜单: 绘图设置菜单:

使用说明:

(1)主界面:

首先,保证本直流电机控制系统的串口模块已连接上位PC 机。打开本软件,从设备管理器中,查看串口模块连接的com 口号,选择对应的com 口进行连接。成功连接后,点击开始采集,即可采集单片机发送的速度数据并实时显示收到的数据。同时,可以s 使用滑动条来调节目标速度。

(2)PID 参数设置菜单:

点击PID 参数设置菜单,即可PID 对三个控制参数Kp ,Ki ,Kd 设置,点击确定,设置完毕。这时,需要点击发送控制信息,单片机接收到修改后的控制信息进行调整。控制信息采用8个byte 的格式,其报文协议为:Kp 两个字节,Ki 两个字节,Kd 两个字节,速度两个字节。

(3)绘图设置菜单:

为了让使用界面更加友好,加入了绘图设置的功能。

3、 闭环系统的PID 控制实现

一、控制算法

单片机软件实现接收上位机指令,以期望速度和测量机构采集的测量速度的偏差信号作为PID 算法的输入信号,经过PID 控制后改变其输出的PWM 信号的占空比,输出PWM 信号,从而实现使电机的实际转速趋近于期望转速。

实验采用位置式PID 控制算法,算法流程为:

∆e =V exp ect -V b

k

u k =K p e k +K I ∑e j +K D (e k -e k -1)

j =0

out =u +u k

式中:

V exp ect -期望转速值

V b

∆e

e k

u k -测量转速值-转速偏差值-第k 次转速偏差值-PID 计算输出值K p K I K D -比例、积分、微分系数

u -期望占空比

out -实际占空比输出值

二、PID 参数的整合

这里最重要的是PID 参数的整合过程和办法,PID 控制器参数选择的方法很多,例如:试凑法、临界比例度法、扩充临界比例度法等。但是,对于PID 控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。依据调研和经验,一般PID 参数确定的步骤如下:

(1) 确定比例系数Kp

确定比例系数Kp 时,首先去掉PID 的积分项和微分项,可以令Ti=0、Td=0,使之成为纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp 由0 开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp 逐渐减小,直至系统振荡消失。记录此时的比例系数Kp ,设定PID 的比例系数Kp 为当前值的60%~70%。

(2) 确定积分时间常数Ti

比例系数Kp 确定之后,设定一个较大的积分时间常数Ti ,然后逐渐减小Ti ,直至系统出现振荡,然后再反过来,逐渐增大Ti ,直至系统振荡消失。记录此时的Ti ,设定PID 的

积分时间常数Ti 为当前值的150%~180%。

(3) 确定微分时间常数Td

微分时间常数Td 一般不用设定,为0即可,此时PID 调节转换为PI 调节。如果需要设定,则与确定Kp 的方法相同,取不振荡时其值的30%。

最后,对PID 参数进行微调,直到满足性能要求。

4、 问题探讨与实验总结

一、问题探讨

(1) 调速电机PWM 的频率选择

此问题在我们小组涉及直流电机驱动时就遇到了,可翻阅了很多资料,都没有给一个完美的答复,我觉得应该根据电机的特性来选择PWM 的频率。

这与机械的固有震动频率有关,另外与电机特性有关,不过一般情况是频率如果太低会导致电机抖动或者有啸叫声,或者致使交流成分太多,导致驱动桥中的功率管发热。

PWM 的频率的选择和所用电机感抗和所需的速度响应时间有很大的关系,如果电机转速比较高,感抗比较小,可以使用比较高的频率。一般最好不要超过20K ,因为一般IGBT 最高20K 的开关频率。而MOS 的开关频率比较高,但是过高的频率就需要专用的驱动电路,不然MOS 工作在放大区的时间比较长。如果电机转速比较低,感抗比较大,而且又是在做伺服,那开关频率就需要低一点。

(2) PID 控制输出量如何控制执行器?

本系统的直流电机是采用合适频率的PWM 来驱动的,脉冲的周期时间是一定的。对于速度的控制是采用脉宽调制的原理,即电机的速度取决于PWM 的占空比,也就是说PID 算法是研究一种控制脉宽的方法,使得电机速度能即快又稳地稳定在目标速度上。我们采用的方法是利用PID 输出控制量u 与PWM 占空比线性对应的关系进行控制,并在u 达到或小到一定程度后,进行占空比饱和处理。最终,达到了对直流电机速度较好的控制。

二、实验总结

5、 附录:总体程序

一、程序流程说明

单片机资源分配与作用:

定时器T0:

根据frequency 设置,产生该频率的PWM 来驱动电机。脉冲周期时间不变,通过改变高电平与周期时间之比来调整占空比。

定时器T1:

作为串口通信中波特率发生器,工作在方式1。以全双工方式工作,为串口发送速度数据和接收控制信息提供时钟。

定时器T2:

每经过一定时间间隔,计算一次电机当前速度。将数据写入串口缓冲区等待发送。查询接收数据缓冲区是否有控制信息,如果有,则接收数据。

外部中断INT0,INT1:

计数光电传感器产生的脉冲。

二、源代码

整体程序有两个部分组成:文件project_motor_control.c和文件sio.c ,并附上了详细的文档说明,方便理解程序的思路,简单易懂。project_motor_control.c中程序的功能主要是电机的速度测量,产生PWM 驱动电机,和闭环PID 的控制。而sio.c 中程序的功能则是发送和接收数据,将速度信息发送到上位机处理显示,以反映电机速度控制系统的控制性能;同时可以接收PC 人机接口设置的控制信息。

project_motor_control.c具体程序如下:

#include

#include

#include

#include

#include //Keil外部函数库包含文件,_nop_函数在此库中

#include //串口通信函数包含文件

#include

#define uchar unsigned char

#define uint unsigned int

/*电机接口*/

sbit PHASE_A = P3^2; //外部中断INT0 粉红

sbit PHASE_B = P3^3; //外部中断INT1 绿色

sbit pwm1 = P0^0; //电机驱动接口,当Motordirection=1时,pwm1=1,pwm2=0,电机正转; 反之,电机反转

sbit pwm2 = P0^1;

sbit ledup= P2^0; //加速灯指示

sbit leddown = P2^7; //减速灯指示

/***电机调速参数**/

uint frequency = 500; //电机驱动PWM 频率,单位Hz

uint speed = 0; //电机实时速度,单位rmp

uint Motordirection = 1; //电机转向

uint Dutycycle = 50; //电机驱动PWM 的占空比,范围10-90

long int countA = 0; //A相脉冲计数

long int countB = 0; //B相脉冲计数

/***调速PID 参数***/

uint Kp = 1,Ki = 1,Kd = 0;

uint n = 0,count = 0;

uint f,Tspeed = 238; //期望速度,单位rmp

uint count0=0,count1=0,count2=0; //编码器脉冲计数简易滤波

char parameter_set = 0;

uchar a[8];

float boundarydown = 120.0;

float boundaryup = 125.0;

/********************X毫秒延时函数**********************/

void delay1ms(void)

{

uint j;

for(j = 0;j

{_nop_();}

}

void delayXms(uint ms)

{

uint k;

for(k = 0;k

{delay1ms();}

}

/******************定时器中断初始化函数*************************/

void T0_Init()

{

EA = 0;

TMOD &= 0xf0; //定时器0, 工作方式1

TMOD |= 0x01;

TH0 = (65536 - (XTAL/(12*100) * Dutycycle/frequency))/256;//初使加载50毫秒 TL0 = (65536 - (XTAL/(12*100) * Dutycycle/frequency))%256;

PT0 = 0; //定时器中断优先级

ET0 = 1; //开定时器中断

TR0 = 1; //启动T0

if(Motordirection == 1)

{

pwm1 = 1;

pwm2 = 0;

}

else

{

pwm1 = 0;

pwm2 = 1;

}

}

void T2_Init() //50ms定时

{

RCAP2H = (65536-46080)/256; //重装模式

RCAP2L = (65536-46080)%256;

ET2 = 1;

TR2 = 1; //启动T2

}

/*******************外部中断初使化函数***********************/

void INT_Init()

{

IT1 = 1; //设置外部中断1为下降沿触发

EX1 = 1; //开外部中断1

PX1 = 0;

EX0 = 0;

PX0 = 0;

EA = 1; //开总中断

}

/********************外部中断函数**************************/

void my_INT1(void) interrupt 2

{

countB = countB++; //每中断一次变量加1

}

/******************定时器中断函数*************************/

void Timer0(void) interrupt 1 //定时器0中断 计算电机转速

{

uint t,nt;

TR0 = 0;

t =(65536 - (XTAL/(12*100) * Dutycycle/frequency));

nt =(65536 - (XTAL/(12*100) * (100-Dutycycle)/frequency));

if (Motordirection == 1) //电机正转

{

pwm2 = 0;

if(pwm1 == 1)

{

TH0 = nt/256 ; //重装

TL0 = nt%256;

pwm1 = 0;

}

else

{

TH0 = t/256 ; //重装

TL0 = t%256;

pwm1 = 1;

}

}

else //电机反转

{

pwm1 = 0;

if(pwm2 == 1)

{

TH0 = nt/256 ; //重装

TL0 = nt%256;

pwm2 = 0;

}

else

{

TH0 = t/256 ; //重装

TL0 = t%256;

pwm2 = 1;

}

}

TR0 = 1;

}

/************************PID函数部分******************************/ typedef struct PID {

int SetPoint; // 设定目标 Desired Value

int Proportion; // 比例常数 Proportional Const

int Integral; // 积分常数 Integral Const

int Derivative; // 微分常数 Derivative Const

int LastError; // Error[-1](上一次误差)

int PrevError; // Error[-2](上上次误差)

int SumError; // Sums of Errors

} PID;

PID sPID;

int PIDCalc( PID *pp, double NextPoint )

{

int dError,Error;

Error = pp->SetPoint - NextPoint; // 偏差

pp->SumError += Error; // 积分

dError = pp->LastError - pp->PrevError; // 当前微分

pp->PrevError = pp->LastError; //把上一次误差赋给上上次误差 pp->LastError = Error; //当前误差赋给上一次误差 return (pp->Proportion * Error // 比例项

+ pp->Integral * pp->SumError // 积分项

+ pp->Derivative * dError // 微分项

);

}

void PIDInit (PID *pp)

{

memset ( pp,0,sizeof(PID));

}

uint sensor (void) // Dummy Sensor Function

{

return speed;

}

void actuator (int rDelta) // Dummy Actuator Function

{

if(rDelta

{

Dutycycle=10;

}

else if(rDelta >= boundaryup)

{

Dutycycle=90;

}

else

{

Dutycycle = (uint)(80*(rDelta+boundarydown)/(boundarydown+boundaryup)+10); }

delayXms(40);

}

void Timer2(void) interrupt 5

{

TF2 = 0; //定时器2的中断标志要软件清0

n = n+1; //n++

if (n == 4) //定时1秒(x 个50ms 为0.05*x秒)20*50ms=1 {

count2 = count1;

count1 = count0;

count0 = countB;

countB = (count0 + count1 + count2)/3;

speed = countB * 60 * 5 / 888; //电机rpm, 每分钟转速

countB = 0; //外部中断1中断次数归零 n = 0;

if(parameter_set == 1)

{

a[0] = com_getchar();

a[1] = com_getchar();

a[2] = com_getchar();

a[3] = com_getchar();

a[4] = com_getchar();

a[5] = com_getchar();

a[6] = com_getchar();

a[7] = com_getchar();

Kp = ((a[0]

Ki = ((a[2]

Kd = ((a[4]

Tspeed = (a[6]

sPID.Proportion = Kp; // Set PID Coefficients(KP,KI,KD 系数设定) sPID.Integral = Ki;

sPID.Derivative = Kd;

sPID.SetPoint = Tspeed;

parameter_set = 0;

}

com_putchar(speed/256); //每X 秒向上位机发送速度数据

com_putchar(speed%256);

}

}

/************************主函数******************************/

void main()

{

int rOut; // PID Response (Output)

uint rIn; // PID Feedback (Input)

PIDInit ( &sPID ); // Initialize Structure

sPID.Proportion = Kp; // Set PID Coefficients(KP,KI,KD 系数设定) sPID.Integral = Ki;

sPID.Derivative = Kd;

sPID.SetPoint = Tspeed; // Set PID Setpoint

T0_Init(); //定时器T0初使化 question :定时器初始化 com_initialize(); //初始化串口通信

T2_Init(); //定时器T2初使化

INT_Init(); //外部中断初使化

while(1)

{

rIn = sensor (); // Read Input

rOut = PIDCalc ( &sPID,rIn ); // Perform PID Integration

actuator ( rOut ); // Effect Needed Changes }

}

sio.c 具体程序如下:

/*------------------------------------------------------------------------------

SIO.C: Serial Communication Routines.

Copyright 1995-2002 KEIL Software, Inc.

------------------------------------------------------------------------------*/

#include

#include

#include "sio.h"

#include "config.h"

/*------------------------------------------------------------------------------

Notes:

The length of the receive and transmit buffers must be a power of 2.

Each buffer has a next_in and a next_out index.

If next_in = next_out, the buffer is empty.

(next_in - next_out) % buffer_size = the number of characters in the buffer. ------------------------------------------------------------------------------*/

/*------------------------------------------------------------------------------

------------------------------------------------------------------------------*/

static void com_isr (void) interrupt 4

{

/*------------------------------------------------

Received data interrupt.

------------------------------------------------*/

if (RI != 0)

{

RI = 0;

if (((r_in - r_out) & ~(RBUF_SIZE-1)) == 0)

{

rbuf [r_in & (RBUF_SIZE-1)] = SBUF; // r_in++;

if((r_in - r_out)==(RBUF_SIZE-1))

{

parameter_set=1; //可以进行电机目标参数设置 }

}

}

/*------------------------------------------------

Transmitted data interrupt.

------------------------------------------------*/

if (TI != 0)

{

TI = 0;

if (t_in != t_out) //tbuf没有发送完

{

SBUF = tbuf [t_out & (TBUF_SIZE-1)];

t_out++;

ti_restart = 0;

}

else

{

ti_restart = 1; // tbuf 发送完了,再次发送tbuf }

}

}

/*------------------------------------------------------------------------------ ------------------------------------------------------------------------------*/ #pragma disable

void com_initialize (void)

{

/*------------------------------------------------

Setup TIMER1 to generate the proper baud rate.

------------------------------------------------*/

com_baudrate (9600);

/*------------------------------------------------

Clear com buffer indexes.

------------------------------------------------*/

t_in = 0;

t_out = 0;

r_in = 0;

r_out = 0;

/*------------------------------------------------

Setup serial port registers.

------------------------------------------------*/

SM0 = 0; SM1 = 1; /* serial port MODE 1 */

SM2 = 0;

REN = 1; /* enable serial receiver */

RI = 0; /* clear receiver interrupt */

TI = 0; /* clear transmit interrupt */

ti_restart = 1;

ES = 1; /* enable serial interrupts */

PS = 1; /* set serial interrupts to low priority */ }

/*------------------------------------------------------------------------------ ------------------------------------------------------------------------------*/ #pragma disable

void com_baudrate (

unsigned baudrate)

{

/*------------------------------------------------

Clear transmit interrupt and buffer.

------------------------------------------------*/

TI = 0; /* clear transmit interrupt */

t_in = 0; /* empty transmit buffer */

t_out = 0;

/*------------------------------------------------

Set timer 1 up as a baud rate generator.

------------------------------------------------*/

TR1 = 0; /* stop timer 1 */

ET1 = 0; /* disable timer 1 interrupt */

PT1 = 1;

PCON |= 0x80; /* 0x80=SMOD: set serial baudrate doubler */

TMOD &= ~0xF0; /* clear timer 1 mode bits */

TMOD |= 0x20; /* put timer 1 into MODE 2 */

TH1 = (unsigned char) (256 - (XTAL / (16L * 12L * baudrate)));

TR1 = 1; /* start timer 1 */

}

/*------------------------------------------------------------------------------

------------------------------------------------------------------------------*/

#pragma disable

char com_putchar ( //char

unsigned char c)

{

/*------------------------------------------------

If the buffer is full, return an error value. if(com_putchar((speed&0x0f>>4))==-1) ti_restart=1,TI=1;

------------------------------------------------*/

if (com_tbuflen () >= TBUF_SIZE)

return (-1);

/*------------------------------------------------

Add the data to the transmit buffer. If the

transmit interrupt is disabled, then enable it.

------------------------------------------------*/

tbuf [t_in & (TBUF_SIZE - 1)] = c;

t_in++;

if (ti_restart)

{

ti_restart = 0;

TI = 1; /* generate transmit interrupt */

}

return (0);

}

/*------------------------------------------------------------------------------

------------------------------------------------------------------------------*/

#pragma disable

int com_getchar (void)

if (com_rbuflen () == 0) //如果接受缓冲区长度为0 return (-1);

return (rbuf [(r_out++) & (RBUF_SIZE - 1)]);

}

/*------------------------------------------------------------------------------ ------------------------------------------------------------------------------*/ #pragma disable

unsigned char com_rbuflen (void)

{

return (r_in - r_out);

}

/*------------------------------------------------------------------------------ ------------------------------------------------------------------------------*/ #pragma disable

unsigned char com_tbuflen (void)

{

return (t_in - t_out);

}

/*------------------------------------------------------------------------------ ------------------------------------------------------------------------------*/

三、实物图

直流电机速度控制系统的整体实物图如下图所示:

计算机控制系统实践——直流电机速度控制

1


相关内容

  • 长安福特招聘试题
    关键词: 变频器.控制方式.工作原理 近年来,随着电力电子技术.微电子技术及大规模集成电路的发展,生产工艺的改进及功率半导体器件价格的降低,变频调速越来越被工业上所采用.如何选择性能好的变频其应用到工业控制中,是我们专业技术人员共同追求的目 ...
  • 电子设计大赛设计报告
    2012年福建省大学生电子设计竞赛 指导教师:林惠君 吴建宁 连桂仁 自平衡小车系统 摘要 我们采用模块化设计的方法,设计了一款基于STC12C5A60S2单片机的自平衡小车系统,实现了题目中的基本要求和发挥部分的全部内容. 本系统基于ST ...
  • 数控伺服系统简介
    目录 目录................................................................................................................... ...
  • 变频器的工作原理
    变频器工作原理:该高压变频器主电路采用模块串联方式,每个功率模块为三相输入, 单相逆变输出,即通过6个独立的 低压变频功率模块串联接在移相变压器副边构成逆变主回路,高压直接输入隔离变压器,输出侧通过逆变器的 PWM调制技术,输出为多电平.直 ...
  • 关于单片机的毕业论文
    分 类 号: 单位代码: 临沂大学 业论文(设计) 基于单片机的步进电机控制系统设计 姓 名 ******* 学 号 ************** 年 级 ***** 专 业 ************* 系 (院) ******* 指导教师 ...
  • 依尔通变频器操作说明
    依尔通变频器操作说明 一.控制面板功能简介 1, 显示屏幕 2, LED指示灯 通过以上各个指示灯,我们可以了解变频器工作的不同运行 状态,见下表. 3, 控制键 控制键用于直接给出运行.停止和复位命令.默认情况下,远程控制设置这些键是无效 ...
  • 电动车用无刷直流电机控制器的设计
    摘 要 近年来,社会发展快速,而我们生活的环境也在遭受破坏,民众的环境保护意识和资源节约意识不断提高,电动车在这样的机遇下获得很大关注并蓬勃发展.之前有刷直流电机在电动车驱动装置中占据着主导地位,但有刷电机凭借机械换向器和电刷配合进行换向, ...
  • 伺服电机的工作原理
    伺服电机内部的转子是永磁铁,驱动器控制的U /W三相电形成电磁场,转子在此磁场的作用下转动,同时电机自带的编码器反馈信号给驱动器,驱动器根据反馈值与目标值进行比较,调整转子转动的角度.伺服电机的精度决定于编码器的精度(线数). 什么是伺服电 ...
  • 交流伺服电机
    交流伺服电机 交流伺服电机 伺服电机内部的转子是永磁铁,驱动器控制的U/V/W三相电形成电磁场, 转子在此磁场的作用下转动,同时电机自带的编码器反馈信号给驱动器,驱动器根据反馈值与目标值进行比较,调整转子转动的角度.伺服电机的精度决定于编码 ...