当前位置:文档之家› 直流电机PID转速闭环调速控制系统

直流电机PID转速闭环调速控制系统

直流电机PID转速闭环调速控制系统
直流电机PID转速闭环调速控制系统

基于uC/COS的直流电机PID转速闭环调速控制系统Proteus仿真实现

在工业自动控制系统和各种智能产品中常常会用用电动机进行驱动、传动和控制,而现代智能控制系统中,对电机的控制要求越来越精确和迅速,对环境的适应要求越来越高。随着科技的发展,通过对电机的改造,出现了一些针对各种应用要求的电机,如伺服电机、步进电机、开关磁阻电机等非传统电机。但是在一些对位置控制要求不高的电机控制系统如传动控制系统中,传统电机如直流电机乃有很大的优势,而要对其进行精确而又迅速的控制,就需要复杂的控制系统。随着微电子和计算机的发展,数字控制系统应用越来越广泛,数字控制系统有控制精确,硬件实现简单,受环境影响小,功能复杂,系统修改简单,有很好的人机交换界面等特点。

在电机控制系统开发中,常常需要消耗各种硬件资源,系统构建时间长,而在调试时很难对硬件系统进行修改,从而延长开发周期。随着计算机仿真技术的出现和发展,可用计算机对电机控制系统进行仿真,从而减小系统开发开支和周期。计算机仿真可分为整体仿真和实时仿真。整体仿真是对系统各个时间段对各个对象进行计算和分析,从而对各个对象的变化情况有直观的整体的了解,即能对系统进行精确的预测,如Matlab就是一个典型的实时仿真软件。实时仿真是对时间点的动态仿真,即随着时间的推移它能动态仿真出当时系统的状态。Proteus是一个实时仿真软件,用来仿真各种嵌入式系统。它能对各种微控制器进行仿真,本系统即用Proteus对直流电机控制系统进行仿真。

在系统软件开发中开发中可用操作系统,也可不用操作系统。如用操作系统,程序可实现模块化,并能对系统资源进行统筹管理,最主要的是可实现多任务运行。如果需要多任务并行运行,并且需要一定的时间间隔,某些任务对时间的要求不高时,如不用操作系统则要占用定时器资源,并且对栈空间和硬件资源很难进行管理,所以在这种情况下需要操作系统。本系统用操作系统uC/COS.

uC/COS是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核.uC/COS 已经有很多产品成功使用的案例且得到美国军方的认证,说明了该系统的可靠性。uC/COS 源代码公开,代码短,源代码大部分是使用ANSI C编写的,移植性和裁减性好,功能强大,能可靠应用于各种控制系统中。

系统构成

硬件全图

各子系统

1. 转速控制输入

如用按键输入则需要复杂的软件实现,并且需要足够的引脚资源,本系统用ADC0832采样电位器上的电压信号来实现转速信号输入。

2.LPC2106微控制器

LPC2106是Phlip公司推出的核心为ARM的控制器。LPC2106 包含一个支持仿真的ARM7TDMI-S CPU、与片内存储器控制器接口的ARM7 局部总线、与中断控制器接口的AMBA 高性能总线(AHB)和连接片内外设功能的VLSI 外设总线(VPB,ARMAMBA 总线的兼容超集)。片内有64K 字节静态RAM和128K的FLASH存储器。可寻址4GB。

在本仿真中LPC2106没加晶振电路,频率在芯片属性中设置。

3.液晶显示

本系统采用Proteus仿真库有的液晶显示模块AMPIRE128X64,为8192像素的单色LCD 屏幕分为两半控制,控制引脚为CS1和CS2。数据通过移位寄存器输入。

4.电机驱动电路

本系统仿真的是最大输入电压为12伏的微型电机,故用通用电机驱动电路实现假设该电路输入电阻为无穷大,输出电阻为0。

5.仿真电机的51单片机

虽然Proteus有电机模块,但其电机模块没有输出转速接口故用一单片机代替它,单片机用ADC0832采样输入的电压,经过处理即输出和真实电机同步的转速(需要大量的浮点运算,可考虑用DSP)。通过两个按键改变转矩没按一次增大或减小0.001,上面的是增大。

6.仿真结果

仿真1.8秒钟后得下图,可看到转速逐渐增大然后稳定下来。

增大转矩后,可看到转速下降后又恢复

7.程序;

1.系统主程序:main.c

/****************************************************************************** ** 实时微型直流电机PID转速闭环调速控制系统程序(基于移植于LPC2106上的uc/cos实时操作系统)

** 程序编写者: 吴斌

** 编写日期: 2007年11月14日

******************************************************************************/ #include "config.h"

#include "LCD.h"

#define TASK_STK_SIZE 512 //各任务栈大小

#define IO_Init() \

PINSEL0= 2; \

IODIR|= 0x00007FB0; //P0.4\P0.5\P0.7-P1.4为输出其他的为输入#define Umax 1000 //最大调节转速

#define Kp 0.7 //比例放大系数

#define Ts 0.03 //采样周期

#define t0 4 //积分时间常数

#define td 0.0005 //微分时间常数

#define q0 Kp*(1+Ts*t0+td/Ts)

#define q1 -Kp*(1+2*td/Ts)

#define q2 Kp*td/Ts

#define ADC_DO 0x00000040 //P0.6

#define ADC_CS 0x00000080 //P0.7

#define ADC_CLK 0x00000100 //P0.8

#define ADC_DI 0x00000200 //P0.9

OS_STK Main_TaskStk[TASK_STK_SIZE];

OS_STK Task1_TaskStk[TASK_STK_SIZE];

OS_STK Task2_TaskStk[TASK_STK_SIZE];

OS_STK Task3_TaskStk[TASK_STK_SIZE];

OS_STK Task4_TaskStk[TASK_STK_SIZE]; //各任务栈

OS_EVENT *Conbox; //控制信号邮箱

float n=0; // 输入转速

float nb=0; // 反馈转速

void Main_Task(void *data);

void Task1(void *p_arg);

void Task2(void *p_arg);

void Task3(void *p_arg);

void Task4(void *p_arg); //函数声明

void PWMInit(void)

{

PWMPR = 0x00; // 不分频,计数频率为Fpclk

PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC

PWMMR0 = 2765; // 设置PWM周期

PWMMR1 = 0; // 设置PWM占空比

PWMLER = 0x03; // PWMMR0、PWMMR1锁存

PWMPCR = 0x0200; // 允许PWM1输出,单边PWM

PWMTCR = 0x09; // 启动定时器,PWM使能

PWMMR0 = 2765; // 设置PWM周期

PWMMR1 = 0; // 设置PWM占空比

PWMLER = 0x03; // PWMMR0、PWMMR1锁存

}

/****************************************************************************** ***************************

** 函数名称: main

** 功能描述: c语言的主函数,由它启动多任务环境

******************************************************************************* *************************/

int main (void)

{

OSInit();

OSTaskCreate(Main_Task, (void*)0, &Main_TaskStk[TASK_STK_SIZE - 1], 0);

OSStart();

return 0;

}

/****************************************************************************** ** 函数名称: Main_Task

** 功能描述: 初始化系统及建立任务

******************************************************************************/ void Main_Task(void *p_arg)

{

p_arg = p_arg; // 避免编译警告

TargetInit();

IO_Init();

Conbox = OSMboxCreate((void*)0);

LCD_Main();

OSTaskCreate(Task1, (void *)0, &Task1_TaskStk[TASK_STK_SIZE - 1], 2);

OSTaskCreate(Task2, (void *)0, &Task2_TaskStk[TASK_STK_SIZE - 1], 3);

OSTaskCreate(Task3, (void *)0, &Task3_TaskStk[TASK_STK_SIZE - 1], 1);

OSTaskCreate(Task4, (void *)0, &Task4_TaskStk[TASK_STK_SIZE - 1], 5);

OSTaskSuspend(0);

}

/****************************************************************************** ** 函数名称: Task1_Task

** 功能描述: 实时任务,负责采样和处理数据

******************************************************************************/ void Task1(void *p_arg)

{ float us; //上次输出控制信号

float es; //上次采样误差信号

float es2 = 0; //上次的上次的采样误差信号

uint32 nj; //采样转速信号

float u; //此次输出控制信号

float e; //此次采样误差信号

p_arg = p_arg;

PWMInit(); //PWM初始化

while(1)

{ nj=IOPIN>>16;

nb=(float)nj/10; //采样反馈转速

e=n-nb;

u=us+q0*e+q1*es+q2*es2; //PID处理

if(u>=Umax)

u=Umax;

es2=es;

es=e;

us=u;

OSMboxPost(Conbox,(void*)&u); //发送处理后的信号

OSTimeDlyHMSM(0,0,0,30);

}

}

/****************************************************************************** ** 函数名称: Task2_Task

** 功能描述: 根据控制信号输出PWM波

******************************************************************************/ void Task2(void *p_arg)

{ uint8 err;

float *nh;

p_arg = p_arg;

while(1)

{nh=(float*)OSMboxPend(Conbox,0,&err);

if(*nh>=Umax-0.5)

{PWMMR0 = 2765;

PWMMR1= 2764;

PWMLER = 0x03;

}

else

{PWMMR0 = 2765;

PWMMR1=(uint32)(*nh/Umax*2765);

PWMLER = 0x03;

}

}

}

void Delay(uint8 n) //延时函数

{uint8 i;

for(i=1;i<=n;i++);

}

/****************************************************************************** ** 函数名称: Task3_Task

** 功能描述: 定时采样输入的转速要求(0832采样)

******************************************************************************/ void Task3(void *p_arg)

{ uint8 ch,i,flag=0;

p_arg=p_arg;

ch=0;

IOCLR=ADC_CS;

IOCLR=ADC_DI;//片选,DO为高阻态

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

{;}

IOCLR=ADC_CLK;

Delay(4);

IOSET=ADC_DI;

IOSET=ADC_CLK;

Delay(4); //第一个脉冲,起始位

IOCLR=ADC_CLK;

Delay(4);

IOSET=ADC_DI;

IOSET=ADC_CLK;

Delay(4); //第二个脉冲,DI=1表示双通道单极性输入

IOCLR=ADC_CLK;

Delay(4);

IOSET=ADC_DI;

IOSET=ADC_CLK;

Delay(4); //第三个脉冲,DI=1表示选择通道1(CH2)

IOCLR=ADC_DI; //DI转为高阻态,DO脱离高阻态为输出数据作准备

IOSET=ADC_CLK;

Delay(4);

IOCLR=ADC_CLK;

Delay(4); //经实验,这里加一个脉冲AD便能正确读出数据

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

{ IOSET=ADC_CLK;

Delay(4);

IOCLR=ADC_CLK;

Delay(4);

if((IOPIN & ADC_DO)!=0)

ch=(ch<<1)|1;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数

else

ch=(ch<<1)|0;

}

IOSET=ADC_CS;

n=(float)ch*1000/256;

if(flag==0)

{flag=1;

OSTaskChangePrio(1,4);

}

OSTimeDlyHMSM(0,0,0,300);

}

/****************************************************************************** ** 函数名称: Task4_Task

** 功能描述: 液晶显示任务

******************************************************************************/ void Task4(void *p_arg)

{

#if OSCRITICAL_METHOD ==3

OS_CPU_SR cpu_sr;

#endif

uint16 w,q,k;

uint8 i;

uint8 shu1[6],shu2[6];

p_arg=p_arg;

for(;;)

{shu1[4]=10;

w=(uint16)(n*10);

k=10000;

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

{shu1[i]=(uint8)(w/k);

w=w%k;

k=k/10;

}

shu1[5]=(uint8)w;

OS_ENTER_CRITICAL();

LCD_num(80,2,shu1,6);

shu2[4]=10;

q=(uint16)(nb*10);

k=10000;

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

{shu2[i]=(uint8)(q/k);

q=q%k;

k=k/10;

}

shu2[5]=(uint8)q;

LCD_num(80,4,shu2,6);

OS_EXIT_CRITICAL();

OSTimeDlyHMSM(0,0,0,100);

}

}

/****************************************************************************** ** End Of File

******************************************************************************/ 2.自编的LCD驱动程序

(1)头文件LCD.h

/****************************************************************************** ** LCD驱动头文件LCD.h(基于LPC21**)

** 程序编写者: 吴斌

** 编写日期: 2007年11月12日

******************************************************************************/ #ifndef _LCD_H_

#define _LCD_H_

#include "config.h"

#define SPI_CLK 0x00000010 //P0.4

#define SPI_DATA 0x00000020 //P0.5

#define RW 0x00000800 //RW

#define RS 0x00000400 //RS

#define CS1 0x00001000 //CS1

#define CS2 0x00002000 //CS2

#define E 0x00004000 //E

#define Kai 0x3F

#define Guang 0x3E

#define Hang 0xC0

#define Ye 0xB8

#define Lie 0x40

#define Setlie(a) \

IOCLR = RW; \

IOCLR = RS; \

send(Lie+a);

#define Setye(a) \

IOCLR = RW; \

IOCLR = RS; \

send(Ye+a);

#define Setweizi(a,b) \

IOCLR = RW; \

IOCLR = RS; \

send(Lie+a); \

send(Ye+b);

#define Write(a) \

IOCLR = RW; \

IOSET = RS; \

send(a);

void send(uint8 dat);

void LCD_disp(uint8 a,uint8 b,uint8 c,uint8 d,uint8 m,uint8 *shuju) ;

void SetCS(uint8 a);

void LCD(uint8 a,uint8 b,uint8 c,uint8 d, uint8 *shuju);

void LCD_num(uint8 a,uint8 b,uint8 *shuju,uint8 n);

void LCD_str(uint8 a,uint8 b,uint8 *strtab,uint8 n);

void LCD_hanzi(uint8 a,uint8 b,uint8 *hanzitab,uint8 n);

void LCD_xian(uint8 a,uint8 b,uint8 *strtab,uint8 n);

void LCD_Main(void);

#endif

/****************************************************************************** ** End Of File

******************************************************************************/ (2)LCD驱动程序LCD.c

/****************************************************************************** ** LCD驱动程序(基于LPC21**)

** 程序编写者: 吴斌

** 编写日期: 2007年11月12日

******************************************************************************/ #include"LCD.h"

void send(uint8 dat) //用移位寄存器输出一字节数据

{ uint8 i;

IOSET = E; // E = 1

for(i=0; i<8; i++) // 发送8位数据

{ IOCLR = SPI_CLK; // SPI_CLK = 0

if( (dat&0x80)!=0 ) IOSET = SPI_DATA;

else IOCLR = SPI_DATA;

dat <<= 1;

IOSET = SPI_CLK; // SPI_CLK = 1

}

IOCLR = E; // E = 0

}

void LCD_disp(uint8 a,uint8 b,uint8 c,uint8 d,uint8 m,uint8 *shuju) /*LCD显示函数,在第a列b页输出大小为c*d的图像(只能选择在左或右屏幕显示) */

{uint8 i,j,f;

SetCS(m);

for(j=0;j

{Setweizi(a,j+b);

for(i=0;i

{Write(*(shuju+i));

for(f=0;f<0xFF;f++);

}

}

}

void SetCS(uint8 a)

{if(a==0)

{IOSET =CS2;

IOCLR =CS1;

}

else

{IOSET =CS1;

IOCLR =CS2;

}

}

void LCD(uint8 a,uint8 b,uint8 c,uint8 d, uint8 *shuju) /*LCD主显示函数,在第a列b 页输出大小为c*d的图像*/

{uint8 i,j,m,f,n;

uint8 *p=shuju;

if(a+c<=64)

{SetCS(0);

for(j=0;j

{Setweizi(a,j+b);

for(i=0;i

{Write(*p);

p++;

for(f=0;f<0xFF;f++);

}

}

}

else if(a<64&&(a+c)>64)

{m=64-a;

n=c-m;

for(j=0;j

{SetCS(0);

Setweizi(a,j+b);

for(i=0;i

{Write(*p);

p++;

for(f=0;f<0xFF;f++);

}

SetCS(1);

Setweizi(0,j+b);

for(i=0;i

{Write(*p);

p++;

for(f=0;f<0xFF;f++);

}

}

}

else

{SetCS(1);

for(j=0;j

{Setweizi(a-64,j+b);

for(i=0;i

{Write(*p);

p++;

for(f=0;f<0xFF;f++);

}

}

}

}

void LCD_num(uint8 a,uint8 b,uint8 *shuju,uint8 n) /*在第a列b页显示shuju数组的数字或小数点和空格*/

{uint8

numzimo[192]={0xFF,0x1F,0xEF,0xF7,0xF7,0xEF,0x1F,0xFF,0xFF,0xF0,0xEF,0xDF,0xDF,

0xEF,0xF0,0xFF, /*"0",0*/

0xFF,0xEF,0xEF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xDF,0xC0,0xDF,0xDF,0xFF,0xFF, /*"1",1*/

0xFF,0x8F,0xF7,0xF7,0xF7,0x77,0x8F,0xFF,0xFF,0xCF,0xD7,0xDB,0xDD,0xDE,0xCF,0xFF, /*"2",2*/

0xFF,0xCF,0xF7,0x77,0x77,0xB7,0xCF,0xFF,0xFF,0xE7,0xDF,0xDF,0xDF,0xEE,0xF1,0xFF, /*"3",3*/

0xFF,0xFF,0x3F,0xDF,0xEF,0x07,0xFF,0xFF,0xFF,0xF8,0xFB,0xDB,0xDB,0xC0,0xDB,0xFF, /*"4",4*/

0xFF,0x07,0xF7,0x77,0x77,0xF7,0xF7,0xFF,0xFF,0xE6,0xDE,0xDF,0xDF,0xEE,0xF1,0xFF, /*"5",5*/

0xFF,0x1F,0xEF,0x77,0x77,0xE7,0xFF,0xFF,0xFF,0xF0,0xEE,0xDF,0xDF,0xEE,0xF1,0xFF, /*"6",6*/

0xFF,0xC7,0xF7,0xF7,0x37,0xC7,0xF7,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF, /*"7",7*/

0xFF,0x8F,0x77,0xF7,0xF7,0x77,0x8F,0xFF,0xFF,0xE3,0xDD,0xDE,0xDE,0xDD,0xE3,0xFF, /*"8",8*/

0xFF,0x1F,0xEF,0xF7,0xF7,0xEF,0x1F,0xFF,0xFF,0xFF,0xCE,0xDD,0xDD,0xEE,0xF0,0xFF, /*"9",9*/

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF, /*".",10*/

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; /*" ",11*/

uint8 i,f;

uint8 *p;

for(i=0;i

{f=*(shuju++);

p=numzimo+f*16;

LCD(a,b,8,2,p);

a=a+8;

}

}

void LCD_str(uint8 a,uint8 b,uint8 *strtab,uint8 n) /*在第a列b页显示ASCII字符串(要点阵数据)*/

{uint8 i;

for(i=0;i

{LCD(a,b,8,2,strtab);

a=a+8;

strtab=strtab+16;

}

}

void LCD_hanzi(uint8 a,uint8 b,uint8 *hanzitab,uint8 n) /*在第a列b页显示汉字串(要点阵数据)*/

{uint8 i;

for(i=0;i

{LCD(a,b,16,2,hanzitab);

a=a+16;

hanzitab=hanzitab+32;

}

}

void LCD_xian(uint8 a,uint8 b,uint8 *strtab,uint8 n) //显示ASCII字符串到顶时换行{uint8 m;

if(a+(n-1)*8<=120)

LCD_str(a,b,strtab,n);

else

{if(a%8>0)

m=a/8+1+n-16;

else

m=a/8+n-16;

LCD_str(a,b,strtab,n-m);

LCD_str(0,b+2,strtab+16*(n-m),m);

}

}

void LCD_Main(void) //本系统显示主界面

{uint8 i;

uint8

zifu[80]={0xF7,0x07,0xF7,0xFF,0xFF,0xF7,0x07,0xF7,0xFF,0xE0,0xDF,0xDF,0xDF,0xDF,

0xE0,0xFF,/*"U",0*/

0xFF,0xFF,0xFF,0xFF,0x7F,0x9F,0xE7,0xFB,0xFF,0x9F,0xE7,0xF9,0xFE,0xFF,0xFF,0xFF, /*"/",1*/

0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xF1,0xEE,0xDF,0xDF,0xDF,0xEE,0xFF, /*"c",2*/

0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xE0,0xDF,0xDF,0xDF,0xDF,0xE0,0xFF, /*"o",3*/

0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xCC,0xDB,0xDB,0xDB,0xDB,0xE6,0xFF}; /*"s",4*/

uint8 inputn[160]=

{0xBB,0x0B,0xB0,0x1B,0xBB,0x9B,0x6F,0x67,0x6B,0x6C,0xEB,0x67,0xF7,0x2F,0xEF,0xFF, 0xFB,0xFB,0xFB,0x00,0xFD,0xFD,0x00,0xB5,0x75,0x80,0xFF,0xC0,0x7F,0x00,0xFF,0xFF, /*"输",0*/

0xFF,0xFF,0xFF,0xFF,0xFE,0x7C,0x89,0xE7,0x9F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xBF,0xDF,0xEF,0xF7,0xF9,0xFE,0xFF,0xFF,0xFF,0xFF,0xFC,0xFB,0xE7,0xCF,0xEF,0xFF, /*"入",1*/

0x37,0x57,0x63,0x14,0x77,0x77,0x77,0xBF,0xB7,0x07,0xB0,0xB7,0xB7,0xB7,0xBF,0xFF,

0xF7,0xF7,0xFB,0x00,0xFB,0xFB,0xFF,0xFD,0xF4,0xED,0xDD,0x2D,0xF1,0xFD,0xFF,0xFF, /*"转",2*/

0xBF,0xBD,0x33,0xFF,0xFB,0x1B,0xDB,0xDB,0x0,0xDB,0xDB,0xDB,0x1B,0xFB,0xFF,0xFF, 0xBF,0xDF,0xE0,0xDF,0xB7,0xB6,0xBA,0xBC,0x80,0xBE,0xBC,0xBA,0xB2,0xBF,0xBF,

0xFF,/*"速",3*/

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; /*":",4*/

uint8

outputn[160]={0xBB,0x0B,0xB0,0x1B,0xBB,0x9B,0x6F,0x67,0x6B,0x6C,0xEB,0x67,0xF7,

0x2F,0xEF,0xFF,

0xFB,0xFB,0xFB,0x00,0xFD,0xFD,0x00,0xB5,0x75,0x80,0xFF,0xC0,0x7F,0x00,0xFF,0xFF, /*"输",0*/

0xFF,0xFF,0x03,0xBF,0xBF,0xBF,0xBF,0x00,0xBF,0xBF,0xBF,0xBF,0xBF,0x03,0xFF,0xFF,

0xFF,0xFF,0x81,0xDF,0xDF,0xDF,0xDF,0xC0,0xDF,0xDF,0xDF,0xDF,0xDF,0x81,0xFF,0xFF,

0x37,0x57,0x63,0x14,0x77,0x77,0x77,0xBF,0xB7,0x07,0xB0,0xB7,0xB7,0xB7,0xBF,0xFF,

0xF7,0xF7,0xFB,0x00,0xFB,0xFB,0xFF,0xFD,0xF4,0xED,0xDD,0x2D,0xF1,0xFD,0xFF,0xFF, /*"转",2*/

0xBF,0xBD,0x33,0xFF,0xFB,0x1B,0xDB,0xDB,0x0,0xDB,0xDB,0xDB,0x1B,0xFB,0xFF,0xFF, 0xBF,0xDF,0xE0,0xDF,0xB7,0xB6,0xBA,0xBC,0x80,0xBE,0xBC,0xBA,0xB2,0xBF,0xBF,

0xFF,/*"速",3*/

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; /*":",4*/

uint8

xinhao[16]={0xBF,0xBF,0x7F,0x0F,0x7F,0xBF,0xBF,0xFF,0xFD,0xFD,0xFE,0xF0,0xFE,

0xFD,0xFD,0xFF};/*"*",0*/

LCD_str(44,0,zifu,5);

LCD_hanzi(0,2,inputn,5);

LCD_hanzi(0,4,outputn,5);

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

{ LCD_str(i*8,6,xinhao,1);

}

}

/****************************************************************************** ** End Of File

******************************************************************************/ 3. 用AT89S52单片机仿真直流电动机程序

/****************************************************************************** ** 用AT89S52单片机仿真直流电动机程序

** 程序编写者: 吴斌

** 编写日期: 2007年11月11日

******************************************************************************/ #include

#include

#include

#define La 0.1 //电枢电感

#define CeQ 0.005

#define CmQ 0.2 //

#define Ja 0.0000018 //转动惯量

#define Ra 10

#define Ra-La 11.9

sbit ADC_CS =P3^4;

sbit ADC_CLK=P3^5;

sbit ADC_DI =P3^6;

unsigned int nc;

float TL=0.1;

float Tz=0;

float Ts=0;

float U=0.68;

float Uz=0;

float ia=0;

float iaz=0;

float ias=0;

float ea=0;

float eaz=0;

float eas=0;

float n=0;

bit f=0;

bit e=0;

void Delay(unsigned char x)

{

unsigned char i;

for(i=0;i

}

void INTf0(void)interrupt 0

{TL=TL+0.001;

}

void INTf1(void)interrupt 2

{TL=TL-0.001;

}

void timer0(void)interrupt 1

{unsigned int i,ch;

ch=0;

ADC_CS=0;

ADC_DI=0;

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

{;}

ADC_CLK=0;

Delay(2);

ADC_DI=1;

ADC_CLK=1;

Delay(2);

ADC_CLK=0;

Delay(2);

ADC_DI=0;

ADC_CLK=1;

Delay(2);

ADC_CLK=0;

Delay(2);

ADC_DI=0;

ADC_CLK=1;

Delay(2);

ADC_DI=0;

ADC_DI=1;

ADC_CLK=1;

Delay(2);

ADC_CLK=0;

Delay(2);

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

{ ADC_CLK=1;

Delay(2);

ADC_CLK=0;

Delay(2);

ch=(ch<<1)|ADC_DI;

}

ADC_CS=1;

U=0.1*(float)ch/256;

Uz=Uz+U;

ia=(Uz-iaz*Ra-eaz)/(Ra*0.01+La);

Te=CmQ *ia;

if(f==0);

{f=1;

ias=ia;

Ts=Te-TL;

}

if(n<=0&&Te

n=0;

else

{e=1;

Tz=Tz+(1.5*(Te-TL)-0.5*Ts)*0.01;

Ts=Te-TL;

n=Tz/Ja;

}

ea=CeQ *n;

eaz=eaz+(1.5*ea-0.5*eas)*0.01-U*0.9727; eas=ea;

Uz=Uz-U;

iaz=iaz+(1.5*ia-0.5*ias)*0.01-U*0.0273/Ra; ias=ia;

nc= (unsigned int)(n*10);

P2=nc/256;

P0=nc%256;

printf("n=%f,i=%f\n",n,ia);

TH0 =-(9216/256);

TL0 =-(9216%256);

}

main()

{int i;

TCON = 0x0F;

SCON = 0xDA;

TMOD |= 0x20;

TH1 = 0xFD;

TR1 = 1;

TI = 1;

TH0 = -(9216/256);

TL0 = -(9216%256);

EX0=1;

EX1=1;

PX1=1;

EA =1;

ET0 =1;

TR0= 1;

while(1)

{;}

}

/****************************************************************************** ** End Of File

******************************************************************************/

原版单闭环直流调速系统

单闭环直流调速系统的设计与仿真 单回路的直流调速系统的设计和仿真 内容摘要:在对调速性能有较高要求的领域,如果直流电动机开环系统稳态性 能不满足要求,可利用速度负反馈提高稳态精度,而采用比例调节器的负反馈调速系统仍是有静差的,为了消除系统的静差,可利用积分调节器代替比例调节器。 通过对单闭环调速系统的组成部分可控电源、由运算放大器组成的调节器、晶闸管触发整流装置、电机模型和测速电机等模块的理论分析,比较原始系统和校正后系统的差别,得出直流电机调速系统的最优模型。然后用此理论去设计一个实际的调速系统,并用MATLAB仿真进行正确性的验证。 关键词:稳态性能稳定性开环闭环负反馈静差 The design and simulation of Single loop dc speed control system Abstract :In the higher demand for performance of speed, if the open loop dc system's steady performance does not meet the requirements, can use speed inverse feedback to improve steadystate precision, but although the speed inverse feedback system adopts proportion regulator,it still have off, in order to eliminate static, can use integral regulator to replace proportion regulator. Based on the theoretical analysis of the single closed loop system which is made up of controllable power, the regulator which is made up of operational amplifier, a rectifier triggered by thyristor , motor model and tachogenerators module, compare the difference of the open loop system and the closed loop system,the original system and the this paper compares the theory of open loop system and the closed-loop system, the difference of primitive system and calibrated system, conclude the optimal model of the dc motor speed control system. Then use this theory to design a practical control system, and verify the validity with MATLAB simulation. Key words: steady-statebehaviour stability open loop Close-loop feedback offset

转速单闭环直流调速系统设计

郑州航空工业管理学院 电力拖动自动控制系统课程设计 07 级电气工程及其自动化专业 0706073 班级 题目转速单闭环的直流拖动系统 姓名 学号 指导教师孙标 二ОО十年月日

电力拖动自动控制系统课程设计 一、设计目的 加深对电力拖动自动控制系统理论知识的理解和对这些理论的实际应用能力,提高对实际问题的分析和解决能力,以达到理论学习的目的,并培养学生应用计算机辅助设计的能力。 二、设计任务 设计一个转速单闭环的直流拖动系统

题目:单闭环不可逆直流调速系统设计 1 技术指标 电动机参数:PN=3KW, n N=1500rpm, UN=220V,IN=17.5A,Ra=1.25 。主回路总电阻R=2.5,电磁时间常数Tl=0.017s,机电时间常数Tm=0.075s。三相桥式整流电路,Ks=40。测速反馈系数=0.07。调速指标:D=30,S=10%。 2 设计要求 (1)闭环系统稳定 (2)在给定和扰动信号作用下,稳态误差为零。 3 设计任务(1)绘制原系统的动态结构图; (2)调节器设计; (3)绘制校正后系统的动态结构图; (4)撰写、打印设计说明书。 4 设计说明书 设计说明书严格按**大学毕业设计格式书写,全部打印.另外,设计说明书应包括以下内容: (1)中文摘要 (2)英文摘要

目录 第一章中文摘要 ································································································ - 1 -第二章英文摘要 ············································································错误!未定义书签。第三章课程设计的目的和意义·············································································· - 1 -1.电力拖动简介 ··························································································· - 1 - 2.课程设计的目的和意义·················································································· - 2 -第四章课程设计内容·························································································· - 2 -第五章方案确定 ································································································ - 3 - 5.1方案比较的论证 ······················································································ - 3 - 5.1.1总体方案的论证比较········································································ - 3 - 5.1.2主电路方案的论证比较····································································· - 4 - 5.1.3控制电路方案的论证比较·································································· - 6 -第六章主电路设计····························································································· - 7 - 6.1主电路工作设备选择 ················································································ - 7 -第七章控制电路设计·························································································· - 8 -第八章结论 ·····································································································- 11 -第九章参考文献 ·······························································································- 11 -

单闭环直流调速系统

第十七单元 晶闸管直流调速系统 第二节 单闭环直流调速系统 一、转速负反馈直流调速系统 转速负反馈直流调速系统的原理如图l7-40所示。 转速负反馈直流调速系统由转速给定、转速调节器ASR 、触发器CF 、晶闸管变流器U 、测速发电机TG 等组成。 直流测速发电机输出电压与电动机转速成正比。经分压器分压取出与转速n 成正比的转速反馈电压Ufn 。 转速给定电压Ugn 与Ufn 比较,其偏差电压ΔU=Ugn-Ufn 送转速调节器ASR 输入端。 ASR 输出电压作为触发器移相控制电压Uc ,从而控制晶闸管变流器输出电压Ud 。 本闭环调速系统只有一个转速反馈环,故称为单闭环调速系统。 1.转速负反馈调速系统工作原理及其静特性 设系统在负载T L 时,电动机以给定转速n1稳定运行,此时电枢电流为Id1,对应转速反馈电压为Ufn1,晶闸管变流器输出电压为Udl 。 n n I C R R C U C R R I U n d e d e d e d d d ?+=+-=+-=0)(φ φφ 当电动机负载T L 增加时,电枢电流Id 也增加,电枢回路压降增加,电动机转速下降,则Ufn 也相应下降, 而转速给定电压Ugn 不变,ΔU=Ugn-Ufn 增加。 转速调节器ASR 输出电压Uc 增加,使控制角α减小,晶闸管整流装置输出电压Ud 增加,于是电动机转速便相应自动回升,其调节过程可简述为: T L ↑→Id ↑→Id(R ∑+Rd)↑→n ↓→Ufn ↓→△U ↑→Uc ↑→α↓→Ud ↑→n ↑。 图17-41所示为闭环系统静特性和开环机械特性的关系。

图中①②③④曲线是不同Ud之下的开环机械特性。 假设当负载电流为Id1时,电动机运行在曲线①机械特性的A点上。 当负载电流增加为Id2时,在开环系统中由于Ugn不变,晶闸管变流器输出电压Ud 也不会变,但由于电枢电流Id增加,电枢回路压降增加,电动机转速将由A点沿着曲线①机械特性下降至B’点,转速只能相应下降。 但在闭环系统中有转速反馈装置,转速稍有降落,转速反馈电压Ufn就相应减小,使偏差电压△U增加,通过转速调节器ASR自动调节,提高晶闸管变流器的输出电压Ud0由Ud01变为Ud02,使系统工作在随线②机械特性上,使电动机转速有所回升,最后稳定在曲线②机械特性的B点上。 同理随着负载电流增加为Id3,Id4,经过转速负反馈闭环系统自动调节作用,相应工作在曲线③④机械特性上,稳定在曲线③④机械特性的C,D点上。 将A,B,C,D点连接起来的ABCD直线就是闭环系统的静特性。 由图可见,静特性的硬度比开环机械特性硬,转速降Δn要小。闭环系统静特性和开环机械特性虽然都表示电动机的转速-电流(或转矩)关系,但两者是不同的,闭环静特性是表示闭环系统电动机转速与电流(或转矩)的静态关系,它只是闭环系统调节作用的结果,是在每条机械特性上取一个相应的工作点,只能表示静态关系,不能反映动态过程。 当负载突然增加时,如图所示由Idl突增到Id2时,转速n先从A点沿着①曲线开环机械特性下降,然后随着Ud01升高为Ud02,转速n再回升到B点稳定运行,整个动态过程不是沿着静特性AB直线变化的。 2.转速负反馈有静差调速系统及其静特性分析 对调速系统来说,转速给定电压不变时,除了上面分析负载变化所引起的电动机转速变化外,还有其他许多扰动会引起电动机转速的变化,例如交流电源电压的变化、电动机励磁电流的变化等,所有这些扰动和负载变化一样都会影响到转速变化。对于转速负反馈调速系统来说,可以被转速检测装置检测出来,再通过闭环反馈控制减小它们对转速的影响。也就是说在闭环系统中,对包围在系统前向通道中的各种扰动(如负载变化、交流电压波动、电动机励磁电流的变化等)对被调量(如转速)的影响都有强烈的抑制作用。但是对于转速负反馈调速系统来说,转速给定电压Ugn的波动和测速发电机的励磁变化引起的转速反馈电压Ufn变化,闭环系统对这种给定量和检测装置的扰动将无能为力。为了使系统有较高的调速精度,必须提高转速给定电源和转速检测装置的精度。

带电流截至负反馈的转速单闭环直流调速系统

班级:10电气工程及其自动化三班 姓名: 学号: 题目: 带电流截至负反馈的转速单闭环直流调速系统 要求: 1.利用所学知识设计带电流截至负反馈的转速单闭环直流 调速系统;(10%) 2.设计过程中详细说明系统组成,单闭环直流调速系统的调 试方法和电流截至负反馈的整定;(10%) 3.使用MATLAB软件编写调试程序,分析调速系统的机械特性和转速单闭环调速系统的静特性;(30%) 4.要有详细原理说明和设计过程,方案以WORD文档的形式给出(30%) 5.课程总结,总结该课程的主要内容与相关实际应用。(20%) 作业成绩:

摘要 带电流截止负反馈的闭环直流调速系统的在对调速精度要求不高的,大功率容量的电机中的应用是非常广泛的,它具有控制简单方便,调速性能较好,设备成本低等的优点。本次设计主要介绍了单闭环不可逆直流调速系统的方案比较及其确定,主电路设计;控制电路设计;绘制原系统的动态结构图;绘制校正后系统的动态结构图;应用MATLAB软件对带电流截至负反馈的转速单闭环直流调速系统进行仿真,完善系统。 关键词:直流电机电流截止负反馈主电路控制电路

摘要 (1) 一、设计方案目的和意义 (3) 1.1设计的确定 (3) 1.2课程设计的目的和意义 (3) 二、课程设计内容 (4) 2.1设计要求 (4) 2.2设计主要内容 (4) 三、主电路设计 (4) 四、控制电路的设计 (6) 五、Matlab仿真及分析 (9) 5.1、matlab仿真图 (9) 5.2、仿真图分析 (14) 六、总结 (15)

题目: 带电流截至负反馈的转速单闭环直流调速系统 一、设计方案目的和意义 1.1设计的确定 控制电路采用转速单闭环调速系统控制,采用闭环系统可以比开环系统获得更硬的机械特性,而且静差率比开环是小得多,并且在静差率一定时,则闭环系统可以大大提高调速范围。但在闭环式必选设置放大器。如果只采用比例放大器的反馈控制系统,其被调量仍然是有静差的,这样的系统叫做有静差调速系统,它依赖于被调量的偏差进行控制,而反馈控制系统的作用是:抵抗扰动,服从给定,但反馈控制系统所能抑制的知识被反馈环包围的前向通道上的扰动。普通闭环直流调速系统及其存在的起动的冲击电流---直流电动机全电压起动时,如果没有限流措施,会产生很大的冲击电流,这不仅对电机换向不利的问题。电流截止负反馈的作用是在电动机发生超载或堵转的时候电流截止负反馈和给定信号相比较抵消。使电动机处于停止运行状态,以保护电机 1.2课程设计的目的和意义 通过本次课程设计了解单闭环不可逆直流调速系统的原理,组成及其各主要单元部件的原理。掌握晶闸管直流调速系统的一般调速过程。认识闭环反馈控制系统的基本特性。掌握交、直流电机的基本结构、原理、运行特性。掌握交、直流电动机的机械特性及起动、调速、制

直流电机双闭环调速系统设计.

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ 目录 1 绪论 (1) 1.1课题研究背景 (1) 1.2研究双闭环直流调速系统的目的和意义 (1) 2 直流电机双闭环调速系统 (3) 2.1直流电动机的起动与调速 (3) 2.2直流调速系统的性能指标 (3) 2.2.1静态性能指标 (3) 2.2.2动态的性能指标 (4) 2.3双闭环直流调速系统的组成 (6) 3 双闭环直流调速系统的设计 (8) 3.1电流调节器的设计 (8) 3.2转速调节器的设计 (10) 3.3闭环动态结构框图设计 (12) 3.4设计实例 (12) 3.4.1设计电流调节器 (13) 3.4.2设计转速调节器 (15) 4.Matlab仿真 (17) 4.1仿真结果分析 (19) 5 结论 (20) 参考文献 (21)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊1 绪论 1.1课题研究背景 直流调速是现代电力拖动自动控制系统中发展较早的技术。就目前而言,直流调速系统仍然是自动调速系统的主要形式,电机自动控制系统广泛应用于机械,钢铁,矿山,冶金,化工,石油,纺织,军工等行业。这些行业中绝大部分生产机械都采用电动机作原动机。有效地控制电机,提高其运行性能,对国民经济具有十分重要的现实意义。 以上等等需要高性能调速的场合得到广泛的应用。然而传统双闭环直流电动机调速系统多数采用结构比较简单、性能相对稳定的常规PID控制技术,在实际的拖动控制系统中,由于电机本身及拖动负载的参数(如转动惯量)并不像模型那样保持不变,而是在某些具体场合会随工况发生改变;与此同时,电机作为被控对象是非线性的,很多拖动负载含有间隙或弹性等非线性的因素。因此被控制对象的参数发生改变或非线性特性,使得线性的常参数的PID控制器往往顾此失彼,不能使得系统在各种工况下都保持与设计时一致的性能指标,常常使控制系统的鲁棒性较差,尤其对模型参数变化范围大且具的非线性环节较强的系统,常规PID调节器就很难满足精度高、响应快的控制指标,往往不能有效克服模型参数变化范围大及非线性因素的影响。 1.2研究双闭环直流调速系统的目的和意义 双闭环直流调速系统是性能很好,应用最广的直流调速系统。采用该系统可获得优良的静、动态调速特性。此系统的控制规律,性能特点和设计方法是各种交、直流电力拖动自动控制系统的重要基础。 20世纪90年代前的大约50年的时间里,直流电动机几乎是唯一的一种能实现高性能拖动控制的电动机,直流电动机的定子磁场和转子磁场相互独立并且正交,为控制提供了便捷的方式,使得电动机具有优良的起动,制动和调速性能。尽管近年来直流电动机不断受到交流电动机及其它电动机的挑战,但至今直流电动机仍然是大多数变速运动控制和闭环位置伺服控制首选。因为它具有良好的线性特性,优异的控制性能,高效率等优点。直流调速仍然是目前最可靠,精度最高的调速方法。 通过对转速、电流双闭环直流调速系统的了解,使我们能够更好的掌握调速系统的基本理论及相关内容,在对其各种性能加深了解的同时,能够发现其缺陷之处,通过对该系统不足之处的完善,可提高该系统的性能,使其能够适用于各种工作场合,提高其使用效率。并以此为基础,再对交流调速系统进行研究,最终掌握各种交、直流调速系统的原理,使之能够应用于国民经济各个

实验五 直流电机闭环调速控制

实验五直流电机闭环调速控制 2011级测控一班王婷婷 2011134128 一、实验目的 1.掌握用PID控制规律的直流调速系统的调试方法; 2.了解PWM调制、直流电机驱动电路的工作原理。 二、实验设备 计算机控制技术(二)、PCI数据采集卡(含上位机软件) 三、实验原理 直流电机在应用中有多种控制方式,在直流电机的调速控制系统中,主要采用电枢电压控制电机的转速与方向。 功率放大器是电机调速系统中的重要部件,它的性能及价格对系统都有重要的影响。过去的功率放大器是采用磁放大器、交磁放大机或可控硅(晶闸管)。现在基本上采用晶体管功率放大器。PWM功率放大器与线性功率放大器相比,有功耗低、效率高,有利于克服直流电机的静摩擦等优点。 PWM调制与晶体管功率放大器的工作原理: 1.PWM的工作原理 图5-1 PWM的控制电路 图5-1所示为SG3525为核心的控制电路,SG3525是美国Silicon General公司生产的专用PWM控制集成芯片,其内部电路结构及各引脚如图5-2所示,它采用恒频脉宽调制控制方案,其内部包含有精密基准源、锯齿波振荡器、误差放大器、比较器、分频器和保护电路等。调节Ur的大小,在A、B两端可输出两个幅度相等、频率相等、相位相互错开180度、占空比可调的矩形波(即PWM信号)。它适用于各开关电源、斩波器的控制。 2.功放电路 直流电机PWM输出的信号一般比较小,不能直接去驱动直流电机,它必须经过功放后再接到直流电机的两端。该实验装置中采用直流15V的直流电压功放电路驱动。 3.反馈接口 在直流电机控制系统中,在直流电机的轴上贴有一块小磁钢,电机转动带动磁钢转动。 磁钢的下面中有一个霍尔元件,当磁钢转到时霍尔元件感应输出。 4.直流电机控制系统如图13-3所示,由霍耳传感器将电机的速度转换成电信号,经数据采集卡变换成数字量后送到计算机与给定值比较,所得的差值按照一定的规律(通常为PID)运算,然后经数据采集卡输出控制量,供执行器来控制电机的转速和方向。

转速闭环控制调速系统.

长春建筑学院电气信息学院 课程设计 课程名称:电子系统仿真实习 设计题目:转速闭环控制直流调速系统仿真 姓名: 学号: 专业班级: 指导教师: 起止日期:

设计鉴定 学生姓名班级学号设 计 期 间 表 现 总评 指导 教师 综合 评语 成绩指导教师

目录 目录 (2) 第一章设计内容 (3) 1.1设计背景: (3) 1.2主要内容 (4) 1.3双闭环调速系统 (4) 第二章方案实施 (6) 2.1转速给定电路设计 (6) 2.2转速检测电路设计 (6) 2.3电流检测电路设计 (7) 第三章主电路保护电路设计 (8) 3.1过电压保护设计 (8) 3.2过电流保护设计 (9) 3.3 驱动电路的设计 (11) 3.4 控制电路设计 (12) 3.5电流环与转速环的设计 (13) 3.6 电流调节器的设计 (14) 3.7 转速调节器的设计 (14) 第四章结论体会 (15) 参考文献: (18)

第一章设计内容 1.1设计背景 直流调速是现代电力拖动自动控制系统中发展较早的技术。在20世纪60年代,随着晶闸管的出现,现代电力电子和控制理论、计算机的结合促进了电力传动控制技术研究和应用的繁荣。晶闸管-直流电动机调速系统为现代工业提供了高效、高性能的动力。尽管目前交流调速的迅速发展,交流调速技术越趋成熟,以及交流电动机的经济性和易维护性,使交流调速广泛受到用户的欢迎。但是直流电动机调速系统以其优良的调速性能仍有广阔的市场,并且建立在反馈控制理论基础上的直流调速原理也是交流调速控制的基础。现在的直流和交流调速装置都是数字化的,使用的芯片和软件各有特点,但基本控制原理有其共性。 对于那些在实际调试过程中存在很大风险或实验费用昂贵的系统,一般不允许对设计好的系统直接进行实验。然而没有经过实验研究是不能将设计好的系统直接放到生产实际中去的。因此就必须对其进行模拟实验研究。当然有些情况下可以构造一套物理装置进行实验,但这种方法十分费时而且费用又高,而且在有的情况下物理模拟几乎是不可能的。近年来随着计算机的迅速发展,采用计算机对控制系统进行数学仿真的方法已被人们采纳。 但是长期以来,仿真领域的研究重点是仿真模型的建立这一环节上,即在系统模型建立以后要设计一种算法。以使系统模型等为计算机所接受,然后再编制成计算机程序,并在计算机上运行。因此产生了各种仿真算法和仿真软件。

数字化直流电机双闭环调速系统

数字化直流电机双闭调速系统 摘要本文叙述了直流电动机的基本原理和调速原理,介绍了直流电动机开环和双闭环调速系统的组成及静、动态特性,并且根据直流电动机的基本方程建立了调速系统的数学模型,给出了动态结构框图,用工程设计方法设计了直流电动机双闭环调速系统。最后用MATLAB 软件搭建了仿真模型,对调速系统进行了仿真研究。通过对直流电动机双闭环调速系统动态特性的研究与仿真,可以清楚地看到,直流电动机双闭环调速系统具有较好的动态特性,可以在给定调速范围内,实现无静差平滑调速,这为直流电动机调速系统的硬件实验提供了理论依据。 关键词:直流调速;双闭环调速;转速环;电流环;MATLAB 仿真 目录 第1 章绪论 (1) 第2 章课程设计的方案 (2) 2.1 概述 (2) 2.2 方案选择 (2) 2.3 系统组成总体结构 (4) 第3 章硬件设计 (5) 3.1 单片机控制器 (5) 3.2 接口电路 (5)

3.3 D/A 转换电路 (6) 3.4 触发电路 (6) 3.5 三相整流电路 (7) 3.6 电流检测电路 (7) 3.7 A/D 转换电路 (8) 3.8 转速检测电路 (8) 3.9 键盘显示电路 (9) 第4 章软件设计 (11) 4.1 设计要求 (11) 4.2 电流环的设计 (11) 4.3 转速环的设计 (12) 4.4 闭环动态结构框图设计 (12) 4.5 程序设计 (13) 第5 章系统测试与分析/实验数据及分析 (15) 第6 章课程设计总结 (17) 参考文献 (18) 第1章绪论 三十多年来,直流电机调速控制经历了重大的变革。传统的控制系统采用模拟元件,虽在一定程度上满足生产要求,但是因为元件容易老化,在使用中易受外界干扰影响,并且线路复杂、通用性差,控制效果受器件性能、温度等因素的影响,故系统的运行可靠性及标准性得不到保证,甚至出现事故。而如今首先实现了整流器的更新换代,以晶闸管整流装置取代了习用已久的直流发电机电动机组及水银整流装置使直流电气传动完成了一次大的跃进。大功率直流调速系统通常采用三相全控桥式整流电路对电动机进行供电,从而控制电动机的转速。同时,控制电路已经实现高集成化、小型化、高可靠性及低成本。以上技术的应用,使直流调速系统的性能指标大幅提高,应用范围不断扩大。直流调速技术不断发展,走向成熟化、完善化、系列化、标准化,在可逆脉宽调速、高精度的电气传动领域中仍然难以替代。直流调速是指人为地或自动地改变直流电动机的转速,以满足工作机械的要求。从机械特性上看,就是通过改变电动机的参数或外加电压等方法来改变电动机的机械特性,从而改变电动机机械特性和工作特性机械特性的交点,使电动机的稳定运转速度发生变化。直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在轧钢机、矿井卷扬机、挖掘机、高层电梯等需要高性能可控电力拖动领域应用历史悠久。近年来,

直流电机闭环调速

第1章前言 1.1 课题的研究意义 现代化的工业生产过程中,几乎无处不使用电力传动装置,尤其是在石油、化工、电力、冶金、轻工、核能等工业生产中对电动机的控制更是起着举足轻重的作用。因此调速系统成为当今电力拖动自动控制系统中应用最广泛的一种系统。随着生产工艺、产品质量要求不断提高和产量的增长,使得越来越多的生产机械要求能实现自动调速,而且,当今控制系统已进入了计算机时代,在许多领域已实现了智能化控制。对传统的过程工业而言,利用先进的自动化硬件及软件组成工业过程自动化调速系统,大大提高了生产过程的安全性、可靠性、稳定性。提高了产品产量和质量、提高了劳动生产率,企业的综合经济效益,同时,也大大促进了综合国力的增强。对可调速的传动系统,可分为直流调速和交流调速。 直流调速系统凭借优良的调速特性,调速平滑、范围宽、精度高、过载能力大、动态性能好、易于控制以及良好的起、制动性能等优点,能满足生产过程自动化系统中各种不同的特殊运行要求,所以在电气传动中获得了广泛应用。为了提高直流调速系统的动静态性能指标,通常采用闭环控制系统(包括单闭环系统和多闭环系统)。对调速指标要求不高的场合,采用单闭环系统,而对调速指标较高的则采用多闭环系统。按反馈的方式不同可分为转速反馈,电流反馈,电压反馈等。在单闭环系统中,转速单闭环使用较多。 本次设计是基于51系列单片机对直流电动机单闭环调速系统进行设计,能实现对直流电动机转速控制的功能,实现控制目的同时还配有显示装置,能实时反映当下直流电机的转速值,以优化整个系统的完整性。 通过这次设计,可以使我对51系列单片机的应用和直流电机闭环调节系统进行进一步的学习,增强知识的整合度使相关知识融汇贯通,为以后的工作奠定一定的知识基础。 1.2 直流电机调速的发展 由于直流电动机具有极好的运动性能和控制特性,尽管它不如交流电动机那样结构简单、价格便宜、制造方便、维护容易,但是长期以来,直流调速系统一直占据垄断地位。当然,近年来,随着计算机技术、电力电子技术和控制技术的发展,交流调速系统发展快,在许多场合正逐渐取代直流调速系统。但是就目前

基于单片机的直流电机闭环调速控制系统xin

滨江学院 专业综合设计 题目直流电机闭环调速系统控制 院系自动控制 专业自动化 组别第二组 组长周未政 指导教师周旺平 二0 一0 年十二月二十八日基于单片机的直流电机闭环调速控制系统

摘要:设计以AT89C51单片机控制模块为核心,由单片机控制、红外线光电检测装置、直流电机转速为被测量组成的控制系统。原理是利用红外线光电传感器接收直流电机转速所产生的红外信号转换成电信号传输给单片机,并调节转速的闭环调速控制系统。 1.AT80C51单片机介绍 1.1主电源引脚 V ss—(20脚):电路地电平 V cc—(40脚):正常运行和编程校检(8051/8751)时为+5V电源。 1.2外接晶振或外部振荡器引脚 XTAL1—(19脚):接外部晶振的一个引脚. 在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器. 当采用外部振荡器时,此引脚应该接地. XTAL2—(18脚):接外部晶振的另一个引脚. 在片内接至振荡器的反相放大器的输出和内部时钟发生器的输入端. 当采用外部振荡器时,则此引脚接外部振荡信号的输入。 1.3控制、选通或电源复用引脚 RST/V pd—(9引脚): RST即Reset(复位)信号输入端。 ALE/PROG—(30引脚): ALE,允许地址索存信号输出。 PSEN—(29脚):访问外部程序存储器选通信号,低电平有效。. V pp/EA—(31引脚): EA为访问内部或外部程序存储器选择信号。 1.4多功能I/O口引脚 P0口—(32-39脚):8位漏极开路双向并行I/O接口. P1口—(1-8脚): 8位准双向并行I/O接口. P2口—(21-28脚):8位准双向并行I/O接口. P3口—(10-17脚):具有内部上拉电路的8位准双向并行I/O端口。它还提供第二特殊功能,具体含义为: P3.0—(10脚)RXD:串行数据接收端。 P3.1—(10脚)TXD:串行数据发送端。 P3.2—(10脚)INT0:外部中断0请求端,低电平有效。 P3.3—(10脚)INT1:外部中断1请求端,低电平有效。. P3.4—(10脚)T0:定时器/计数器0外部事件计数输入端。.

转速单闭环调速系统设计

目录 第1章概述 (1) 转速单闭环调速系统设计意义 (1) 转速单闭环调速系统的设计要求 (1) 第2章原系统的动态结构图及稳定性的分析 (2) 原系统的工作原理 (2) 原系统的动态结构图 (3) 闭环系统的开环放大系数的判断 (3) 相角稳定裕度γ的判断 (4) 第3章调节器的设计及仿真 (5) 调节器的选择 (5) PI调节器的设计 (5) 校正后系统的动态结构图 (8) 系统的仿真结构图及测试结果 (8) 第4章课程设计总结 (9) 参考文献 (1)

转速单闭环调速系统设计 1、概述 转速单闭环调速系统设计意义 为了提高直流调速系统的动静态性能指标,通常采用闭环控制系统(包括单闭环系统和多闭环系统)。对调速指标要求不高的场合,采用单闭环系统,而对调速指标较高的则采用多闭环系统。按反馈的方式不同可分为转速反馈,电流反馈,电压反馈等。在单闭环系统中,转速单闭环使用较多。在对调速性能有较高要求的领域常利用直流电动机作动力,但直流电动机开环系统稳态性能不能满足要求,可利用速度负反馈提高稳态精度,而采用比例调节器的负反馈调速系统仍是有静差的,为了消除系统的静差,可用积分调节器代替比例调节器. 反馈控制系统的规律是要想维持系统中的某个物理量基本不变,就引用该 量的负反馈信号去与恒值给定相比较,构成闭环系统。对调速系统来说,若想 提高静态指标,就得提高静特性硬度,也就是希望转速在负载电流变化时或受 到扰动时基本不变。要想维持转速这一物理量不变,最直接和有效的方发就是 采用转速负反馈构成转速闭环调节系统。 转速单闭环调速系统的设计要求 电动机参数:PN=3KW, n=1500rpm,UN=220V,IN=,Ra=Ω。主回路总电阻R=Ω, N 电磁时间常数Tl=,机电时间常数Tm=。三相桥式整流电路,Ks=40。测速反馈系数α=。调速指标:D=30,S=10%。 设计要求: (1)闭环系统稳定

直流电机闭环调速

第 1 章前言 1.1 课题的研究意义 现代化的工业生产过程中,几乎无处不使用电力传动装置,尤其是在石油、化工、电力、冶金、轻工、核能等工业生产中对电动机的控制更是起着举足轻重的作用。因此调速系统成为当今电力拖动自动控制系统中应用最广泛的一种系统。随着生产工艺、产品质量要求不断提高和产量的增长,使得越来越多的生产机械要求能实现自动调速,而且,当今控制系统已进入了计算机时代,在许多领域已实现了智能化控制。对传统的过程工业而言,利用先进的自动化硬件及软件组成工业过程自动化调速系统,大大提高了生产过程的安全性、可靠性、稳定性。提高了产品产量和质量、提高了劳动生产率,企业的综合经济效益,同时,也大大促进了综合国力的增强。对可调速的传动系统,可分为直流调速和交流调速。 直流调速系统凭借优良的调速特性,调速平滑、范围宽、精度高、过载能力大、动态性能好、易于控制以及良好的起、制动性能等优点,能满足生产过程自动化系统中各种不同的特殊运行要求,所以在电气传动中获得了广泛应用。为了提高直流调速系统的动静态性能指标,通常采用闭环控制系统(包括单闭环系统和多闭环系统)。对调速指标要求不高的场合,采用单闭环系统,而对调速指标较高的则采用多闭环系统。按反馈的方式不同可分为转速反馈,电流反馈,电压反馈等。在单闭环系统中,转速单闭环使用较多。 本次设计是基于51 系列单片机对直流电动机单闭环调速系统进行设计,能实现对直流电动机转速控制的功能,实现控制目的同时还配有显示装置,能实时反映当下直流电机的转速值,以优化整个系统的完整性。 通过这次设计,可以使我对51 系列单片机的应用和直流电机闭环调节系统进行进一步的学习,增强知识的整合度使相关知识融汇贯通,为以后的工作奠定一定的知识基础。 1.2 直流电机调速的发展 由于直流电动机具有极好的运动性能和控制特性,尽管它不如交流电动机那样结构简单、价格便宜、制造方便、维护容易,但是长期以来,直流调速系统一直占据垄断地位。 当然,近年来,随着计算机技术、电力电子技术和控制技术的发展,交流调速系统发展 快,在许多场合正逐渐取代直流调速系统。但是就目前来看,直流调速系统仍然是自动调 速系统的主要形式。在我国许多工业部门,如轧钢、矿山采掘、海洋钻探、金属加工、纺织、造纸以及高层建筑等需要高性能可控电力拖动场合,仍然广泛采用直流调速系统。而且,直流调速系统在理论和实践上都比较成熟,从控制技术角度来看,它又是交流调速系

直流电机转速闭环控制课程设计

计算机控制技术课程设计 报告 设计课题:直流电机转速闭环控制 (采用单片机教学实验系统) 班级: 报告人: 指导教师: 完成日期:2011年9月22日

重庆大学本科学生《计算机控制技术基础》课程设计任务书课程设计题目直流电机转速闭环控制(采用单片机教学实验系统) 学院自动化学院专业自动化专业年级 (1)已知参数和设计要求 1)用单片机产生PWM方波调制直流电机以一定速率旋转,人为给一个速度漂移,霍尔元件测出速度并根据PID算法跟踪校正速度漂移。 2)要求用LED或LCD时实显示电机速度。 3)要求在10秒内PID算法纠正速率漂移。 (2)实现方法 采用单片机教学实验系统实现(限≤4人选做) 学生应完成的工作: 1)硬件设计:要求完成控制系统框图;绘制完整的控制系统电原理图;说明各功能模块的具体功能和参数;结合实验室现有的单片机教学实验系统进行系统组成,对整个系统的工作原理进行全面分析,论述其结构特点、工作原理、优、缺点和使用场合。分析和论述系统采用的主要单元的工作原理和特性。 2)软件设计:要求合理分配系统资源,完成直流电机转速闭环控制的程序设计(如:系统初始化;主程序;A/D转换;D/A转换;标度变换;显示与键盘管理;控制算法处理;输出等)。 3)对设计控制系统进行系统联调。 4)编写课程设计报告:按统一论文格式、统一报告纸和报告的各要素【封面、任务书、目录、摘要、序言、主要内容(包括设计总体思路、设计步骤、原理分析和相关知识的引用等)、总结、各组员心得体会、参考书及附录(包括系统框图、程序流程图、电原理图和程序原代码)】进行编写,字数要求不少于4000字,要求设计报告论理正确,逻辑性强,文理通顺,层次分明,表达确切。 目前资料收集情况(含指定参考资料): 《计算机硬件技术基础实验教程》黄勤等编著重庆大学出版社 《单片微型计算机机与接口技术》李群芳等编著电子工业出版社 《计算机控制技术》王建华等编著高等教育出版社 课程设计的工作计划: (1)2011年9月19日熟悉设计任务和要求。 (2)2011年9月20日确定设计方案。 (3)2011年9月21日硬件调试。 (4)2011年9月22日软件及系统调试。 (5)2011年9月23日设计答辩。 任务下达日期 2011年 9月 19 日完成日期 2011年 9 月 24日 指导教师(签名) 学生(签名) 说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、2003。 2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。

单闭环直流调速系统

第十七单元晶闸管直流调速系统 第二节单闭环直流调速系统 一、转速负反馈直流调速系统 转速负反馈直流调速系统得原理如图l7-40所示。 转速负反馈直流调速系统由转速给定、转速调节器ASR、触发器CF、晶闸管变流器U、测速发电机TG等组成。 直流测速发电机输出电压与电动机转速成正比。经分压器分压取出与转速n成正比得转速反馈电压Ufn。 转速给定电压Ugn与Ufn比较,其偏差电压ΔU=Ugn—Ufn送转速调节器ASR输入端。 ASR输出电压作为触发器移相控制电压Uc,从而控制晶闸管变流器输出电压Ud。 本闭环调速系统只有一个转速反馈环,故称为单闭环调速系统、 1.转速负反馈调速系统工作原理及其静特性 设系统在负载TL时,电动机以给定转速n1稳定运行,此时电枢电流为Id1,对应转速反馈电压为Ufn1,晶闸管变流器输出电压为Udl。 当电动机负载TL增加时,电枢电流Id也增加,电枢回路压降增加,电动机转速下降,则Ufn也相应下降, 而转速给定电压Ugn不变,ΔU=Ugn—Ufn增加。 转速调节器ASR输出电压Uc增加,使控制角α减小,晶闸管整流装置输出电压Ud增加,于就是电动机转速便相应自动回升,其调节过程可简述为: T L↑→Id↑→Id(R∑+Rd)↑→n↓→Ufn↓→△U↑→Uc↑→α↓→Ud↑→n↑。 图17-41所示为闭环系统静特性与开环机械特性得关系。

图中①②③④曲线就是不同Ud之下得开环机械特性。 假设当负载电流为Id1时,电动机运行在曲线①机械特性得A点上、 当负载电流增加为Id2时,在开环系统中由于Ugn不变,晶闸管变流器输出电压Ud也不会变,但由于电枢电流Id增加,电枢回路压降增加,电动机转速将由A点沿着曲线①机械特性下降至B’点,转速只能相应下降、 但在闭环系统中有转速反馈装置,转速稍有降落,转速反馈电压Ufn就相应减小,使偏差电压△U增加,通过转速调节器ASR自动调节,提高晶闸管变流器得输出电压Ud0由Ud01变为Ud02,使系统工作在随线②机械特性上,使电动机转速有所回升,最后稳定在曲线②机械特性得B点上。 同理随着负载电流增加为Id3,Id4,经过转速负反馈闭环系统自动调节作用,相应工作在曲线③④机械特性上,稳定在曲线③④机械特性得C,D点上。 将A,B,C,D点连接起来得ABCD直线就就是闭环系统得静特性、 由图可见,静特性得硬度比开环机械特性硬,转速降Δn要小。闭环系统静特性与开环机械特性虽然都表示电动机得转速-电流(或转矩)关系,但两者就是不同得, 闭环静特性就是表示闭环系统电动机转速与电流(或转矩)得静态关系,它只就是闭环系统调节作用得结果,就是在每条机械特性上取一个相应得工作点,只能表示静态关系,不能反映动态过程。 当负载突然增加时,如图所示由Idl突增到Id2时,转速n先从A点沿着①曲线开环机械特性下降,然后随着Ud01升高为Ud02,转速n再回升到B点稳定运行,整个动态过程不就是沿着静特性AB直线变化得。 2.转速负反馈有静差调速系统及其静特性分析 对调速系统来说,转速给定电压不变时,除了上面分析负载变化所引起得电动机转速变化外,还有其她许多扰动会引起电动机转速得变化,例如交流电源电压得变化、电动机励磁电流得变化等,所有这些扰动与负载变化一样都会影响到转速变化。对于转速负反馈调速系统来说,可以被转速检测装置检测出来,再通过闭环反馈控制减小它们对转速得影响。也就就是说在闭环系统中,对包围在系统前向通道中得各种扰动(如负载变化、交流电压波动、电动机励磁电流得变化等)对被调量(如转速)得影响都有强烈得抑制作用、但就是对于转速负反馈调速系统来说,转速给定电压Ugn得波动与测速发电机得励磁变化引起得转速反馈电压Ufn变化,闭环系统对这种给定量与检测装置得扰动将无能为力。为了使系统有较高得调速精度,必须提高转速给定电源与转速检测装置得精度。

转速闭环控制的直流调速系统仿真

内蒙古科技大学课程设计任务书

目录 课程设计任务书 (1) 题目 (4) 引言 (4) 第1章转速闭环控制的直流调速系统仿真模型的建立 (4) 1.1、仿真任务 (4) 1.2、仿真模型参考参数 (4) 第2章转速闭环控制的直流调速系统的仿真 (5) 2.1、带转速负反馈的有静差直流调速系统仿真 (5) 2.1.1、带转速负反馈的有静差直流调速系统仿真模型的建立 (6) 2.1.2、带转速负反馈的有静差直流调速系统仿真波形及分析 (7) 2.2、带电流截止负反馈的转速单闭环调速系统仿真 (10) 2.2.1、带电流截止负反馈的转速单闭环调速系统仿真模型建立 11 2.2.2、带电流截止负反馈的转速单闭环调速系统仿真波形分析 11 第3章心得体会 (13) 参考文献 (14)

转速闭环控制的直流调速系统仿真 引言 直流电动机具有良好的起、制动性能,宜于在大范围内平滑调速,并且直流调速系统在理论和实践上都比较成熟,是研究其它调速系统的基础。而且MATLAB软件对直流调速系统进行虚拟环境下的仿真研究,不仅使用方便,也大大降低了研究成本。 晶闸管-直流电动机系统可以通过调节晶闸管控制角改变电动机电枢电压实现调速,但是存在两个问题,①全电压起动时起动电流大;②转速随负载变化而变化,负载越大,转速降落越大,难于在负载变动时保持转速的稳定而满足生产工艺的要求。为了减小负载波动对电动机转速的影响,可以采取带转速负反馈的闭环调速系统,根据转速的偏差来自动调节整流器的输出电压,从而保持转速的稳定。 第1章转速闭环控制的直流调速系统仿真模型的建立 1.1、仿真任务 已知直流电动机额定参数为Unom=220V,Inom=136A,nnom=1460r/min 四级,Ra=0.21Ω,GD 2=22.5N·m 2。励磁电压Uf=220V,励磁电流If=1.5A。采用三相桥式整流电路,设整流器内阻Rrec=0.5Ω。平波电抗器Ld=20mH。 1.2、仿真模型参考参数 表1.1直流电动机闭环调速系统模型参数

相关主题
文本预览
相关文档 最新文档