文档库 最新最全的文档下载
当前位置:文档库 › 基于uCCOS的直流电机PID转速闭环调速控制系统Proteus仿真实现…

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

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

基于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

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

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

郑州航空工业管理学院 电力拖动自动控制系统课程设计 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 -

双闭环直流电机调速系统的SIMULINK仿真实验

双闭环直流电机调速系统的SIMULINK仿真实验 魏小景张晓娇刘姣 (自动化0602班) 摘要:采用工程设计方法对双闭环直流调速系统进行设计,选择调节器结构,进行参数的计算和校验;给出系统动态结构图,建立起动、抗负载扰动的Matlab Simulink 仿真模型.分析系统起动的转速和电流的仿真波形 ,并进行调试 ,使双闭环直流调速系统趋于合理与完善。 关键词:双闭环调速系统;调节器;Matlab Simulink建模仿真 1.引言 双闭环直流调速系统是目前直流调速系统中的主流设备,具有调速范围宽、平稳性好、稳速精度高等优点,在理论和实践方面都是比较成熟的系统,在拖动领域中发挥着极其重要的作用。由于直流电机双闭环调速是各种电机调速系统的基础,直流电机双闭环调速系统的工程设计主要是设计两个调节器。调节器的设计一般包括两个方面:第一选择调节器的结构,以确保系统稳定,同时满足所需的稳态精度. 第二选择调节器的参数,以满足动态性能指标。本文就直流电机调速进行了较系统的研究,从直流电机的基本特性到单闭环调速系统,然后进行双闭环直流电机设计方法研究,最后用实际系统进行工程设计,并采用Matlab/Sim-ulink进行仿真。 2.基本原理和系统建模 为了实现转速和电流两种负反馈分别起作用,在系统中设置了两个调节器,分别调节转速和电流,二者之间实行串联连接. 把转速调节器ASR 的输出当作电流调节器ACR 的输入,再用电流调节器的输出去控制晶闸管整流器的触发装置GT ,TA为电流传感器,TG 为测速发电机. 从闭环结构上看,电流调节环在里面,叫做内环,转速调节环在外边叫做外环,这样就形了转速、 图1 直流电机双闭环调速系统的动态结构图

单闭环直流调速系统

第十七单元 晶闸管直流调速系统 第二节 单闭环直流调速系统 一、转速负反馈直流调速系统 转速负反馈直流调速系统的原理如图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章绪论 三十多年来,直流电机调速控制经历了重大的变革。传统的控制系统采用模拟元件,虽在一定程度上满足生产要求,但是因为元件容易老化,在使用中易受外界干扰影响,并且线路复杂、通用性差,控制效果受器件性能、温度等因素的影响,故系统的运行可靠性及标准性得不到保证,甚至出现事故。而如今首先实现了整流器的更新换代,以晶闸管整流装置取代了习用已久的直流发电机电动机组及水银整流装置使直流电气传动完成了一次大的跃进。大功率直流调速系统通常采用三相全控桥式整流电路对电动机进行供电,从而控制电动机的转速。同时,控制电路已经实现高集成化、小型化、高可靠性及低成本。以上技术的应用,使直流调速系统的性能指标大幅提高,应用范围不断扩大。直流调速技术不断发展,走向成熟化、完善化、系列化、标准化,在可逆脉宽调速、高精度的电气传动领域中仍然难以替代。直流调速是指人为地或自动地改变直流电动机的转速,以满足工作机械的要求。从机械特性上看,就是通过改变电动机的参数或外加电压等方法来改变电动机的机械特性,从而改变电动机机械特性和工作特性机械特性的交点,使电动机的稳定运转速度发生变化。直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在轧钢机、矿井卷扬机、挖掘机、高层电梯等需要高性能可控电力拖动领域应用历史悠久。近年来,

基于单片机的直流电机闭环调速控制系统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直流电动机闭环调速系统模型参数

微机原理课程设计—直流电机闭环调速控制系统

实验课题:直流电机调速控制 实验内容: 本实验完成的是一个实现对直流电机转速调节的应用。 编写实验程序,用ADC0809完成模拟信号到数字信号的转换。输入模拟信号有A/D转换单元可调电位器提供的0~5V,将其转换后的数字信号读入累加器,做为控制电机的给定转速。用8255的B口作为直流电机的控制信号输出口,通过对电机转速反馈量的运算,调节控制信号,达到控制电机匀速转动的的作用。并将累加器中给定的转速和当前测量转速显示在屏幕上。再通过LED灯显示出转速的大小变化。 实验目的: (1)学习掌握模/数信号转换的基本原理。 (2)掌握的ADC0809、8255芯片的使用方法。 (3)学习PC系统中扩展简单I/O接口的方法。 (4)了解实现直流电机转速调节的基本方法。 实验要求: 利用微机接口实验系统的硬件资源,运用汇编语言设计实现直流电机的调速控制功能。 基本功能要求:1、利用A/D转换方式实现模拟量给定信号的采样;2、实现PWM方式直流电机速度调节;3、LED灯显示当前直流电机速度状态。 实验设备: (1)硬件要求: PC微机一台、TD-PIT实验系统一套 (2)软件要求:唐都编程软件,tdpit编程软件,“轻松编程”软件 实验原理: 各芯片的功能简介: (1)8255的基本输出接口电路: 并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息,CPU 和接口之间的数据传递总是并行的,即可以同时进行传递8位,16位,32位等。8255可编程外围接口芯片是具有A、B、C三个并行接口,+5V单电源供电,能在以下三种方式下工作:方式0—基本输入/出方式、方式1—选通输入/出方式、方式2—双向选通工作方式。

双闭环直流电机调速系统设计参考案例

《运动控制系统》课程设计指导书 一、课程设计的主要任务 (一)系统各环节选型 1、主回路方案确定。 2、控制回路选择:给定器、调节放大器、触发器、稳压电源、电流截止环节,调节器锁零电路、电流、电压检测环节、同步变压器接线方式(须对以上环节画出线路图,说明其原理)。 (二)主要电气设备的计算和选择 1、整流变压器计算:变压器原副方电压、电流、容量以及联接组别选择。 2、晶闸管整流元件:电压定额、电流定额计算及定额选择。 3、系统各主要保护环节的设计:快速熔断器计算选择、阻容保护计算选择计算。 4、平波电抗器选择计算。 (三)系统参数计算 1、电流调节器ACR 中i i R C 、 计算。

2、转速调节器ASR 中n n R C 、 计算。 3、动态性能指标计算。 (四)画出双闭环调速系统电气原理图。 使用A1或A2图纸,并画出动态框图和波德图(在设计说明书中)。 二、基本要求 1、使学生进一步熟悉和掌握单、双闭环直流调速系统工作原理,了解工程设计的基本方法和步骤。 2、熟练掌握主电路结构选择方法,主电路元器件的选型计算方法。 3、熟练掌握过电压、过电流保护方式的配置及其整定计算。 4、掌握触发电路的选型、设计方法。 5、掌握同步电压相位的选择方法。 6、掌握速度调节器、电流调节器的典型设计方法。 7、掌握电气系统线路图绘制方法。 8、掌握撰写课程设计报告的方法。 三、 课程设计原始数据

有以下四个设计课题可供选用: A 组: 直流他励电动机:功率P e =1.1KW ,额定电流I e =6.7A ,磁极对数P=1, n e =1500r/min,励磁电压220V,电枢绕组电阻R a =2.34Ω,主电路总电阻R =7Ω,L ∑=246.25Mh(电枢电感、平波电感和变压器电感之和),K s =58.4,机电时间常数 T m =116.2ms ,滤波时间常数T on =T oi =0.00235s ,过载倍数λ=1.5,电流给定最大值 10V U im =*,速度给定最大值 10V U n =* B 组: 直流他励电动机:功率P e =22KW ,额定电压U e =220V ,额定电流I e =116A,磁极对 数P=2,n e =1500r/min,励磁电压220V,电枢绕组电阻R a =0.112Ω,主电路总电阻R = 0.32Ω,L ∑=37.22mH(电枢电感、平波电感和变压器电感之和),电磁系数 C e =0.138 Vmin /r ,K s =22,电磁时间常数T L =0.116ms ,机电时间常数T m =0.157ms , 滤波时间常数T on =T oi =0.00235s ,过载倍数λ=1.5,电流给定最大值 10V U im =*,速度给定最大值 10V U n =* C 组: 直流他励电动机:功率Pe =145KW ,额定电压Ue=220V ,额定电流Ie=733A,磁极对数P=2,ne=430r/min,励磁电压220V,电枢绕组电阻Ra=0.0015Ω,主电路总电阻R =0.036Ω,Ks=41.5,电磁时间常数TL=0.0734ms ,机电时间常数

相关文档
相关文档 最新文档