基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx

上传人:b****2 文档编号:3550873 上传时间:2023-05-01 格式:DOCX 页数:22 大小:790.08KB
下载 相关 举报
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第1页
第1页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第2页
第2页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第3页
第3页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第4页
第4页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第5页
第5页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第6页
第6页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第7页
第7页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第8页
第8页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第9页
第9页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第10页
第10页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第11页
第11页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第12页
第12页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第13页
第13页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第14页
第14页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第15页
第15页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第16页
第16页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第17页
第17页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第18页
第18页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第19页
第19页 / 共22页
基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx

《基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。

基于FPGA的开关磁阻电机调速系统设计说明Word文档下载推荐.docx

脉冲功率桥的驱动模块来控制IGBT的导通与关断从而能达到让电机运转目的。

如图5所示:

图5多功能功率桥

1.5、IGBT驱动电路图

本模块是多用桥的驱动模块主要由M57962L芯片构成,如果M57962L的第十三管脚PWM输入引脚为低电平时B1和E1产生15V的电压驱使IGBT的导通,而当PWM输入为高电平时B1和E1产生-9V的电压驱使IGBT的关断。

从而能够根据PWM的占空比来调整IGBT导通或关断的时间,进而能够改变输出的电流大小。

此外M57962L还具

有过压保护功能。

如图6所示:

图6IGBT驱动电路

1.6、光电隔离原理图

光耦合器一般由三部分组成:

光的发射、光的接收及信号放大。

输入的电信号驱动发光

二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

这就完成了电一光一电的转换,从而起到输入和输出的隔离的作用。

由于光耦合

器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干

扰能力。

也是实现弱电对强电的控制的重要部件,所以采用光电隔离输出PWM波可以避免

外界信号干扰FPGA,避免了电磁对FPGA程序的干扰,导致的程序跑飞现象,提高了系统的可靠性。

从而使FPGA具有良好的工作环境,正常输出PWM波等。

如图7所示,光

电隔离电路主要是由6N137芯片完成光和电的隔离。

由6N137芯片将FPGA输出的高电平是3.3V的PWM波,通过隔离得到5V的高电平输出PWM波,从而驱动IGBT的驱动芯片。

图7PWM光电隔离电路

(二)系统软件设计

2.1、NIOS处理器结构

基于SOPC的嵌入式系统结构如图8所示,主要包括嵌入式微处理器(CPU核)、定时

器(Timer)、嵌入式锁相环(PLL)、嵌入式数字信号处理器(DSP)及其他IP模块等部分。

和传统的单片机相比,基于FPGA的NIOS软核系统具有CPU外围功能模块可定制剪裁的优势,用户只需根据项目的需要,添加自己所需要的外设,即可完成产品的设计,并且集成在一片

芯片里边。

这样就可以大大缩减产品的开发周期,提高产品性能的稳定性。

 

图8基于SOPC的嵌入式系统结构

2.2、FPGA的NIOS处理器的定制

本设计系统主要应用到Altera公司的FPGA芯片EP3C40F484C8内部所嵌入的

NIOSii软核CPU、定时器2个、锁相环(PLL)、PIO口、RAM和ROM几个模块,其中NIOS与FPGA内部电路进行数据交换的主要是PIO口,通过PIO口可以控制PWM模

块的使能及输出,读取速度计算电路模块的计算结果,PID调节的信号的输入等。

本系统的

定制原理图如图9所示:

图9开关磁阻电机NIOS系统

2.3、锁相环倍频、分频电路

锁相环电路系统构成主要是由Altera公司的FPGA内部所包含的免费的IP核,通过ALT_PLL锁相环IP核可以很容易地实现分频和倍频的功能,只需要通过设置PII内的相关

参数即可。

此电路模块主要完成功能:

(1)NIOS软核工作所需要的100MHz的频率c0。

通过引脚PIN_G2接外部输入20MHz的晶振,经过5倍频之后得到100MHz的频率c0接入NIOS的时钟输入端,保证系统能够正常工作。

(2)PWM电路模块的工作时钟频率c1。

根据PWM模块电路工作原理,时钟的输入

做为三角波发生器的时钟,计数器计数得到三角波,再通过比较器比较得到PWM波,c1

主要是保证计数器正常计数的需要。

通过外部接入的20MHz的频率,经过20分频之后得

到1MHz的频率。

图10锁相环电路

2.4、PWM模块的设计

2.4.1、PWM波形实现原理

目前,采用FPGA产生PWM波形的方法很多,如上下计数法、存储查表法等,本文采用技术比较的方法来实现PWM波形的产生,原理如所示。

其原理是:

三角波发生器的值小于比较值时,输出低电平,高于比较值时输出高电平,如图所示。

其中,三角波作为载波,

三角波的实现是通过10位计数器IP核设置为增减计数模式,增减计数控制使能端为1时增计数,为0时是减计数。

当计数值到达计数器最大值1024时,输出一个上升沿脉冲

信号,输入D触发器,使其输出状态取反一次,从而有效地使计数器工作在增减计数模式下,实现了三角波生成的功能。

调节PWM波的占空比是电机调速的重要手段,若比较寄存器的值逐渐增大,输出脉冲的开启时间变大,PWM占空比逐渐变大,功率器件输出给电机电枢的能量增加,电机加速;

若比较寄存器的值减小,输出脉冲的开启时间变小,PWM占空比逐渐变小,功率器件输出

2.4.2、PID控制原理

图13PID控制原理图

PID控制器是一种线性器,它根据给定值r(t)与实际输出构成控制偏差:

e(t)r(t)c(t)(5-1)

将此偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制。

其控制规律为:

ttde(t)

U(t)Kp[e(t)1/T|0e(t)dt-](5-2)

0dt

其传递函数:

G(S)U(S)/E(S)KP(11/TISTDS)(5-3)

式中,Kp为比例系数,Ti为积分时间常数,Td为微分时间常数。

2.4.3、本设计系统PID模块的实现

本设计所采用的是增量式PID算法,所谓增量式PID是指数字控制器的输出只是控制

量的增量。

当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式

PID控制算法进行控制。

增量式PID控制算法可以通过式(5-9)推导出。

由式(5-9)可

以得到控制器的第k—1个采样时刻的输出值为:

将式(5—8)与式(5-10)相减并整理,就可以得到增量式PID控制算法公式为:

VUkUk

Uk1

kp[e(k)

e(k1)Te(k)Tde(k)2e(k1)e(k2)]

TiT

kp[e(k)e(k1)]^e(k)kd[e(k)2e(k1)e(k2)](5-11)

增量式PID控制算法与位置式PID算法式(5-8)相比,计算量小的多,因此在实际中得到广泛的应用。

PID算法最终可以化简为UkqOekqleklq2ek2,其可以很

容易利用FPGA内部的IP核实现。

本系统利用一个减法器,实现误差值的求取,采用三个

乘法器实现公式当中的乘法,再利用一个加法器相加,最终得到计算结果,在通过一个比较

器,当计算结果大于0时输出高电平,计算结果小于0时,输出一个低电平,在NIOS当

中读取该电平的状态,根据该状态值增加或者减小PWM脉冲宽度的值,达到脉宽调制的效

果。

其中的ek、ek1及ek2的移位操作是通过乘法器的流水线时钟选择实现

的。

图14增量式PID算法电路

2.4.2、测速电路模块

两路位置信号输入,每一次跳变上升沿或下降沿都要产生一次计算过程,读取计数器的

数值即可计算出各路信号相邻两个跳变之间的标准脉冲个数N,脉冲个数的计算是在固定频

率的脉冲信号fclk下计算的。

图15位置信号示意图

根据T测速法,可得如下转速计算公式:

256~2047r/min

过的时间差,单位min;

fdk是计数器的时钟频率;

由于测速范围为

当n=2048r/min时,计数值N=256,贝U肛为0.2MHz,即当计数器的时钟频率选在

=1/24,fC|k=0.2MHz,则可以

0.2MHz时,系统能正常运行。

当n=256r/min

的分子可选19位全1的数据。

本系统实际设计,主要由异或门、计数器、常数值及除法器三部分构成,如下图所示。

捕获信号通过IN1,IN2引脚接入,经过XOR门之后,得到15°

占空比为50%的倍频信

号。

倍频信号高电平期间使能计数器,对固定频率的时钟进行计数,低电平期间进行速度值

图16电机转速计算模块

2.5基于NIOSII软核应用软件编程

2.5.1、主程序的设计

主函数程序,主要完成系统函数的初始化,根据软件所设计的标志位控制相关模块的

运行与停止,是整个软件编写最主要的部分。

本设计系统主函数主要完成功能:

主函数流程图见下图所示:

实际系统设计主函数截图如下:

23/*****************************************

24*爾数宅称;

主丽数

25*功辭:

歸育蜚数;

26王

mtmain(void>

30{

31//alt_ir<

Liait<

AiT_lRQbase};

〃在a.l^iulnf)函敷中仍级.开牛局中新

32PIOlKlt(>

//PI0口莉始北

Timer_l_rnit()匸"

定吋富1初贻化

TlEBOZlnitO离时辭2初始化

PWMlnit(};

"

fwm湫初鮒化函数lnlt_12a64(>

雀晶M初跆化3T

while

(1)

<

='

_jxenu.andJ.ngshxhanshu();

//履配界直工时函葱

ehushl^leciiAiiEhuaxlnheu^shUL():

人‘初始界tkl刷劉i曲数yejingjiemliinxiarflhihanshu():

//#品界面制示甬电ysjingjianpanhanshu\);

液晶梶盘函数caozuogongrtengxxianzejiemianhanshu{};

//操作功能选择界面常数

1-dianjitjidon^hanshuO;

//电机启动函数|

gftidiudusuanza“;

给罡速度透择函敷zh&

ngfanzhuanqlehuantlugjiqueren门;

/.'

-v转训换芳机确认胡臂

-:

-LEDliushuidengO灯两魏

49>

50

50return0;

52}

图17系统主函数

2.5.2、开关磁阻电机位置检测捕获中断函数

本设计捕获功能的实现是同过NIOS的10口外设,将其设置为2输入的输入端口,此

时10口具有捕获功能,可以检测开关磁阻电机的两个位置传感器的位置信号,在NIOS软

件编程中读取捕获到状态值,来确定开关磁阻的电机A、B、C、D四相,哪一相导管,哪

一相关闭,从而给电机绕组通电,使电机转动起来。

在定制NIOS软核系统中,将CAP_PIO端口设置为同步边沿捕获,并且上升沿和下降

都捕获,这样在捕获中断函数当中读取捕获值,同时完成电机换向。

由电机结构决定,电机

每转动一圈,进24次中断。

本设计中NIOS定制中的捕获端口实际设计如下图所示:

图18捕获IO口设置为双沿同步捕获

首先进入捕获中断函数后,完成读取捕获值、换相函数、清除中断标志。

捕获功能的NIOS软件编程流程图:

本设计系统实际编程截图如下:

47/*******<

**-捕获屮斷酷熨叮

staticvoidCAP_l&

t*i!

rupt^v&

ld*c{>

nT*xtTalt_u32id}

49[—-

dir_w2wl_ft*t*=((dix«

t丄I<

IORD_ALTERA_AMU.CiN_PIO_DATA(CAr_PIC_BASE>

)>

J//tjhu«

nxi*nqhAn<

hu();

//Wiffl:

Ef

lowALTSRAAYADQN_PIQ_EDOECAF(CAEFIPDA3E.3;

•亠月亍杰寄打更

图19捕获中断函数

2.5.3、读速度中断函数

进中断

读15个速度值

速度值排序

—t

去最大最小值

©

求平均值

(结束'

流程图

在其中断函数当中,主要完成速度值的读取、存储、赋值给显示变量及其算法处理。

了提高速度的精度,我们取15组数据,存放在数组当中,用于求取速度的平均值。

在调试

函数过程中,出现的误差相对较大并且不稳定,为此,在对读取的15组数据当中,首先进

行一个排序处理,按照读取速度值的大小,从小到大依次排序。

然后,在处理数据的时候,去掉最小的4个数据和最大的5个数据,剩下中间的6个数据,求取平均值。

这样有效地避免了转速计算过程中可能会出现的坏值,解决了转速值不稳定的现象,大大提高了控制精

度。

2.5.4、正反转相序转换函数

正转相序和反转相序是根据电机结构而定的,电动机在出厂的时候就已经确定了的。

函数是电机运转的重要函数。

电机正转时:

00->

10->

11->

01->

00;

状态转换图如下图所示。

图22电机运转状态图

电机运转的原理是根据检测位置传感器的状态来确定,给电机的某相励磁绕组通电,驱使电机转动起来。

NIOS软件编程如下:

ti//**************5ft

voidzheng:

anahuanjcl«

igxuzhuanhuaji(d),,5復箕和尸轻換曲註

t3{

swi

65I

ca£

e0:

IOWRJkLTER2i_AV7iLtJN_PIO_EATA(PKM_SELECT_PIO_fiA£

ET3)ybEaik;

/,^case1:

IOWHJ^LTERjrAVULON^PIO^DArAtPWbTsELEC^TO^EA^ET2):

braak;

//2case2:

IOMjQkLTEMTxWMLOlCPIO^151*1*PWLSELECOlO^BASS,1);

Jstaak;

//1匸嚴冃3:

iowr*ltem3™L0IC5IOZdat*{fwm2selecOio^8*5®

01Jbteak;

//0case4:

IOWR~ALTERJ^AVSLON~Pia~DATA{FTiy~5ELEC^FIO~BAGErl):

bteak;

//1S:

IOWR-MTEEUrAVMON^^10^1^1*(ETO^SELEC^ICLDAGE:

b上也3k!

/;

3c&

sbfi:

iownj^lteeuTavalon^510!

11*1*(PWbTsELECT^pioTbxse7oj;

br*4k:

打qcaso?

:

IOWRJLLTEmTaVALON^PIO^DiATAtFTiy2£

ELECOlOXCEt2);

brfl3k;

//2default1工5ffl(j5TMU匚哲<CdATA{PW匸EtLPJ(CBM瓦0);

bnak;

//关闭FVtif■出

图23正反转相序转换函数

2.5.5、制动相序转换函数

电动机的制动方式主要有机械制动和电气制动。

机械制动是通过机械装置来卡住电机主轴使其减速,如电磁抱闸、电磁离合器等电磁铁制动。

而在实际应用中多采用电气制动,常用的电气制动方式有:

(1)短接制动:

制动时将电机的绕组短接,利用绕组自身的电阻消耗能量。

由于绕组的电阻较小,耗能很快,有一定的危险性,可能烧毁电机。

(2)反接制动:

直流电机制动,将电机的电源正负极反接,改变电枢电流的方向,这样转矩的方向也改变,使得转速与转矩的方向相反。

交流电机制动采用改变相序的方法产生

反向转矩,原理类似。

反接制动制动力强,制动迅速,控制电路简单,设备投资少,但制动

准确性差,制动过程中冲击力强烈,易损坏传动部件。

(3)能耗制动:

制动时在电机的绕组中串接电阻,电动机相当于发电机,将拥有的能

量转换成电能消耗在所串接电阻上。

这种方法在各种电机制动中广泛应用,变频控制也用到

了。

(4)能量回馈制动:

当采用有源逆变技术控制电机时,将制动时再生电能逆变为与电网同频率同相位的交流电回送电网,并将电能消耗在电网上从而实现制动。

77/?

*****************制功相序轉換函敷

voidahidongKiangxujhuftahuu(void)/打J別Hl申罠換苗倉

awlteH

8t{__

OhIOWB_RLTTKA_RVA1ON_P:

O_DATL(FMM_5ELECT_FSE.O)rbrtik;

/'

T'

-.T=详了霏#CAiie1:

JQWFJ^TEFA10~DATAtP>

Ud~SEL£

CT-iIQ~BASE,1Jrbn*k;

'

TZ,TjT7Tcaje2:

TQBF玉TEHiNvXL疵FI'

breflk;

Tl.T4计「悼:

;

T:

3:

IOWB_BiTER*_AVXLaN_FID_DATA(PW_SELECT_FIO_BASE,3):

fare;

/'

T?

PC计『讪桃

:

IC10^^™(F^2£

ELZctZpE.2)r2,T^ix

ca^e5.;

I心竝庆tF>

Im[$ELECT^?

.0};

break;

/T2tT弓百t'

W:

-l

CA5e51ieWR~kLTtRA_AVXLaH2PId2datjl(F皿亡IC_Ht£

E3];

4士亡Sk;

/yTlT吧m它严耳违

CASC7ilOWR^X1™*__KVKLON_PttTjfATA(fTM^SELEC^EIO_BftSErl);

bxflik;

/'

T1tT4'

芒子导址

defadlt:

工tWE^j^TERAHvtL远BIO^tfATA(F>

IM[en_F1:

o[b2LS云f0);

fcreak:

/■F-X[.L'

fli;

-;

91}"

"

~~"

图24制动转换函数

2.5.6、PID调节PWM脉冲宽度的实现

由于本系统在设计过程中,PID的计算过程是一个单独搭建的电路模块,计算得到最终

结果值有正负之分,通过一个比较器和0进行比较,根据比较计算结果,如果计算值大于0输出高电平,若小于0则输出低电平。

而在NIOS软件编写当中,只需要根据读到的电平状态,增加或减小PWM的数值,从而实现脉冲宽度的调制,达到对电机转速自动控制的目

在NIOS实际软件编程当中,在程序编写过程中读取PID计算的结果,改变PWM的值。

如图所示:

】4//STDi|节的It

voidFIDtlaojithtnahu(void)

1呵'

PID_fciiaaznibiaiiliaiiq=IQHD_ilTEHl_aMtDOW_PrD_DMia1TID_HESU1T_PID_EA£

E)'

15Eif(diu)Uuo92hibiuzbx=axQ1}4£

(zfiugibuuyundc£

^i*ozM.=i))\

II(iaiM^iksngxhnQ)4£

i;

aMhufljiyu&

dcng!

biaoiiii"

l:

]i\

At(Ehidnngblatwhl^MI).Jyj-.}:

J

21(

if410M_JCrTE3<

A_iV*L0«

i^PI0^D*TR(fID^RESVLT_^?

I0__B3UE)=1)'

11FTDl'

iffTft.打勺1一计鼻紬TH'

At'

T0

pwta-«

2f~_"

为D—PlOitW^^ffid'

于。

elEGifILCREALTERASV1LCNFIODATA.(EIDRESULTTICBASE=0:

■■■■■••■■

If

_.pMU"

590;

pfWFTsD;

ICWH_JlL7ER?

i^hVAMffl_FT0_DA7R(PKW_CCKFASZ_PTO_SA3E.pflD:

*、、A土悴供

图25PWM调节函数

(三)实物设计图

IGBT功率桥

电机转速动态显示

IGBT驱动电路FPGA主控制板

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2