实验DSP直流电机控制实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// Disable CPU interrupts
DINT;
// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
空比α的大小,改变α值就可以改变端电压的平均值,从而达到调速的目的,这就是PWM
调速原理。
PWM调速方法:
在PWM调速时,占空比α是一个重要参数。以下3种方法都可以改变占空比的值:
(1)定宽调频法:这种方法是保持t1不变,只改变t2,这样使周期T(或频率)也随之改变。
(2)调宽调频法:这种方法是保持t2不变,只改变t1,这样使周期T(或频率)也随之改变。
(3)定频调宽法:这种方法是使周期T(或频率)保持不变,而改变t1和t2。
前两种方法由于在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的
固有频率接近时,将会引起震荡,因此这两种方法用得很少。目前,在直流电动机的控制中,
主要使用定频调宽法
图中PWM输入对应ICETEK–F2812-A评估板上P4外扩插座第26引脚的PWM11信
Uint16 Test_var = 0;
Uint16 Test_status[32];
Uint16 PASS_flag = 0;
unsigned int uWork;
int jishu=0;
unsigned int uWork,nCount=0,uN,uN1,nCount1,nDir;
unsigned int uPort8000;
4.中断调用
(3)画出设计流程图。
(4)调试程序
#include "DSP281x_Device.h" // DSP281x Headerfile Include File
#include "DSP281x_Examples.h" // DSP281x Examples Include File
// Prototype statements for functions found within this file.
interrupt void cpu_timer0_isr(void);
void Delay(unsigned int nTime);
void Gpio_select(void);
void error(int);
void program_stop();
void Gpio_PortA(void);
void Gpio_PortB(void);
上图是利用开关管对直流电动机进行PWM调速控制的原理图和输入输出电压波形。图中,
当开关管MOSFET的栅极输入高电平时,开关管导通,直流电动机电枢绕组两端有电压Us。
t1秒后,栅极输入变为低电平,开关管截止,电动机电枢两端电压为0。t2秒后,栅极输入重
新变为高电平,开关管的动作重复前面的过程。这样,对应着输入的电平高低,直流电动机电
2.学习F2812DSP的通用I/O管脚的控制方法。
3.学习直流电机的控制原理和控制方法。
实验设备
计算机,ICETEK-F2812-EDU实验箱(或ICETEK仿真器+ICETEK–F2812-A系统板+相关连线及电源)。
实验原理
1.TMS320F2812DSP的McBSP引脚
通过设置11和PWM5的工作方式和状态,可以实现将它们当成通用I/O引脚使用。
// illustrates how to set the GPIO to it's default state.
// InitGpio(); // Skipped for this example
// Step 3. Clear all interrupts and initialize PIE vector table:
实验设计及调试:
(1)对实验内容和实验原理进行分析,理出完成实验的设计思路。
通过C语言编程改变pwm波的占空比,将此pwm波从I/O口输出到直流电动机,从而改变其转速,通过引脚上给出高电平或低电平和逻辑电路来控制直流电机的方向。
(2)列出设计所需的特殊环节…
1.pwm初始化
2.电机使能
3.键盘实时监测
{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00},//2
{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},
{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},
};
void main(void)
{
//int nCount=0;
char cKey,cOldKey;
unsigned int nScanCode,nKeyCode;
unsigned int nSpeed;
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
#define SCANCODE_Minus 0x7B
#define SCANCODE_Mult 0x7C
#define SCANCODE_Divid 0x4A
#define SCANCODE_Num 0x77
#define CTRGR *(int *)0x108000
#define CTRLCDCMDR *(int *)0x108001
的输入端,使与门Y1的输出由PWM决定,所以开关管V1栅极受PWM控制;第2路直接
与开关管V4的栅极相连,使V4导通;第3路经非门F1连接到与门Y2的输入端,使与门
Y2输出为0,这样使开关管V3截止;从非门F1输出的另一路与开关管V2的栅极相连,其
低电平信号也使V2截止。
同样,当电动机要求反转时,PWM5给出低电平信号,经过2个与门和1个非门组成的
// are cleared.
// This function is found in the DSP281x_PieCtrl.c file.
InitPieCtrl();
StopCpuTimer0();
// Disable CPU interrupts and clear all CPU interrupt flags:
号,DSP将在此引脚上给出PWM信号用来控制直流电机的转速;图中的DIR输入对应
ICETEK–F2812-A评估板上P1外扩插座第6引脚的P4信号,DSP将在此引脚上给出高电
平或低电平来控制直流电机的方向。从DSP输出的PWM信号和转向信号先经过2个与门和
1个非门再与各个开关管的栅极相连。
控制原理
当电动机要求正转时,PWM11给出高电平信号,该信号分成3路:第1路接与门Y1
姓名
吴镌
樊想
孙璐
陈玉枫
学号
0816070110
0816070202
0816070201
0816070203
专业
自动化
时间
2011/12/7
成绩
实验名称
直流电机控制实验
实验内容
通过C语言编程控制控制I/O管脚产生不同占空比的PWM信号,从而控制直流电机的转速
实验目的和要求
1.学习用C语言编制中断程序,控制F2812 DSP通用I/O管脚产生不同占空比的PWM信号。
2.直流电机控制
直流电动机是最早出现的电动机,也是最早能实现调速的电动机。近年来,直流电动机的结构和控制方式都发生了很大的变化。随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控型的开关功率元件进行脉宽调制(Puls Width Modulation,简称PWM)控制方式已成为绝对主流。PWM调压调速原理
#define SCANCODE_6 0x74
#define SCANCODE_7 0x6C
#define SCANCODE_8 0x75
#define SCANCODE_9 0x7D
#define SCANCODE_Del 0x49
#define SCANCODE_Enter 0x5A
#define SCANCODE_Plus 0x79
unsigned int nScreenBuffer[1024];
unsigned char ledbuf[8],ledx[8];
unsigned char ledkey[10][8]=
{
{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00},
{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00},//1
#define CTRKEY *(int *)0x108001
#define CTRLCDCR *(int *)0x108002
#define CTRCLKEY *(int *)0x108002
#define CTRLCDLCR *(int *)0x108003
#define CTRLCDRCR *(int *)0x108004
直流电动机转速n的表达式为:
Φ−=Kn U IR
其中,U为电枢端电压;I为电枢电流;R为电枢电路总电阻;Φ为每极磁通量;K为电动机结构参数。所以直流电动机的转速控制方法可分为两类:对励磁磁通进行控制的励磁控制法和对电枢电压进行控制的电枢控制法。其中励磁控制法在低速时受磁极饱和的限制,在高速时受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,所以这种控制方法用得很少。现在,大多数应用场合都使用电枢控制法。绝大多数直流电机采用开关驱动方式。开关驱动方式是使半导体功率器件工作在开关状态,通过脉宽调制PWM来控制电动机电枢电压,实现调速。
逻辑电路后,使开关管V3受PWM信号控制,V2导通,V1、V4全部截止。
4.程序编制
程序中采用定时器中断产生固定频率的PWM波,在每个中断中根据当前占空比判断应
输出波形的高低电平。
主程序用轮询方式读入键盘输入,得到转速和方向控制命令。
在改变电机方向时为减少电压和电流的波动采用先减速再反转的控制顺序。
枢绕组两端的电压波形如图中所示。电动机的电枢绕组两端的电压平均值Uo为
S S
S
OU U
T
t
t t
t U
U= =α
+
+
=1
1 2
10
式中α为占空比,α=t1/T
占空比α表示了在一个周期T里,开关管导通的时间与周期的比值。α的变化范围为0
≤α≤1。由此式可知,当电源电压Us不变的情况下,电枢的端电压的平均值Uo取决于占
#define CTRLA *(int *)0x108005
#define CTRLR *(int *)0x108007
Uint16 var1 = 0;
Uint16 var2 = 0;
Uint16 var3 = 0;
Uint16 test_count = 0;
Uint16 Test_flag = 0;
#define T46uS0x0d40
#define SCANCODE_0 0x70
#define SCANCODE_1 0x69
#define SCANCODE_2 0x72
#define SCANCODE_3 0x7A
#define SCANCODE_4 0x6B
#define SCANCODE_5 0x73
void Gpio_PortF(void);
void Gpio_PortDEG(void);
char ConvertScanToChar(unsigned char cScanCode);
void RefreshLEDArray();//刷新显示
void SetLEDArray(int nNumber);//修改显示内容
{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},
{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},
{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}
// This example function is found in the DSP281x_SysCtrl.c file.
InitSysCtrl();
// Step 2. Initalize GPIO:
// This example function is found in the DSP281x_Gpio.c file and
相关文档
最新文档