
目录
前言
一、课设要求
1、1 课题研究的目的
1、2任务
二、系统总体设计
2.1、系统组成框图
2.2、系统主电路
2.3、采样调理电路
2.4、滤波电路设计
三、控制策略与算法
3.1、PID算法
3.2、SPWM波程序设计
3.2.1、SPWM波概念
3.2.2、产生SPWM波算法
3.2.3、SPWM实现程序流程图
3.3、交流采样测量程序实现
3.3.1、交/直流变换采样方式
3.3.2、均方根法
3.3.3、基于瞬时无功理论的检测方法
3.2.4、傅里叶级数法 .
四、实验的MATLAB仿真实现…......................................................................................................
五、课设总结
六、参考文献………………………………………………………………………………………
附录一、各模块原理图与PCB图
附录二、源程序代码
前言:直流电机由于励磁磁场和电枢磁场完全解耦,可以控制,因此具备良好的调速性能,出力大、调速范围宽和易于控制,广泛应用于电力拖动系统中。而随着对电机控制要求的不断提高,普通的单片机越来越不能满足对电机控制的要求,DSP技术的发展正好为先进控制理论以及复杂控制算法的实现提供了有力的支持。
电机的控制系统是由检测装置、主控制器、功率驱动器以及上位机组成,其中DSP控制器是电机控制系统的关键部分,负责对电机的反馈信号进行处理并输出控制信号来控制电机的转动。
电气传动是以电动机的转矩和转速为控制对象,按生产机械工艺要求进行电动机转速控制的自动化系统。根据电动机的不同,工程上通常把电气传动分为直流电气传动和交流电气传动两大类。
纵观电气传动的发展过程,交流与直流两大电气传动并存于各个时期的各大工业领域内,虽然它们所处的地位和作用不同,但它们始终随着工业技术而发展的。特别是随着电力电子技术和微电子学的发展,在相互竞争中完善着自身,发生着变更。由于直流电机具有良好的线性调速特性,简单的控制性能,因此在工业场合应用广泛。近代,随着生产技术的发展,对电气传动在起制动、正反转以及调速能力、静态特性和动态响应方面都提出了更高的要求,所以计算机控制电力拖动控制系统已成为计算机应用的一个重要内容。
开展本课题研究的控制对象是闭环直流调速系统;重点对控制部分展开研究,它包括对实现控制所需要的硬件和软件环境的探讨,控制策略和控制算法的探讨等内容。
目前,对于控制对象的研究和讨论很多,有比较成熟的理论,但实现控制的方法和手段随着技术的发展,特别是计算机技术的发展,不断地进行技术升级。这个过程经历了从分立元件控制,集成电路控制和单片计算机控制等过程。每一次的技术升级都是控制系统的性能有较大地提高和改进。随着新的控制芯片的出现,给技术升级提供了新的可能。
电机控制是DSP应用的主要领域,随着社会的发展以及对电机控制要求的日益提高,DSP将在电机控制领域中发挥越来越重要的作用。
一、课设要求
1、1课题研究的目的
1、巩固电机控制课程的理论知识。
2、学习和掌握中电力电子系统控制系统设计的基本方法,设计一个三相400Hz中频静止电源;
3、 养学生分析和解决工程问题的工作能力及实际工程设计的基本技能;
4、提高编写技术文件和制图的技能。
1、2任务
对三相400Hz中频静止电源的理论进行研究,设计一台样机,参数为400Hz,电压36V,容量为100VA,电压稳定度96%,失真度小于5%,效率80%。
二.系统总体设计
2、1系统组成框图
图1 系统组成框图
由图1可知系统主电路由采样调理电路、控制电路、光电隔离驱动电路和保护电路组成。
2、2系统主电路
图2 主电路系统组成框图
系统主电路是典型的AC-DC-AC逆变电路,由整流电路、中间电路、逆变电路和隔离变压器构成。整流电路将输入的三相交流电经整流;中间电路滤波后的直流电供给逆变器;逆变电路将直流电逆变为400Hz的三相正弦交流电。主电路系统组成框图如图2所示。
2、3 采样调理电路
该检测调理电路由霍尔检测、偏置电路和滤波三部分组成。若采样电压有效值220V,可以选择LEM的LV25-P电压传感器测量电压,转换率为2500:1000
由于进入DSP的信号范围为0-3V,LT308-S7的副边额定有效电流为150mA,所以选择RM=20欧姆的测量电阻。该电压传感器原边额定有效值电流为10mA,因此原边选择R1=22k的限流电阻;副边额定有效值电流为25mA,选择RM=120欧姆的测量电阻。
偏置电路和滤波具体参数如图3所示:
图3 电压检测调理电路
2、4滤波电路设计
常见的滤波电路有LC,LCL等,LC滤波的电路如图4所示:
图4 LC滤波电路
滤波电路的输入输出传递函数为:
式中,为基波角频率,n为谐波次数。令截止频率,则:
的选择决定了幅频特性的基本特征。越大,对高频的衰减能力越差,越小,对高频的衰减能越强,但是L、C参数值增大,会使滤波器成本增加,体积变大,因此需要合理选择。由于
根据图4所示,设滤波电路后端等效负载阻抗为Z。则在该处阻抗满足匹配条件:
令截止频率,则:
继而可得,
三、控制策略与算法
本系统采用DSP2812为主控器件,软件代码采用C语言编程,所有小数运算均转化为Q15格式处理以提高运算速度。
程序由主程序和一个中断服务程序组成,主程序主要完成初始化和均方根值得计算;定时下溢中断完成信号的采集、运算和PWM波的输出。程序流程如图5所示:
在该实验的程序设计时,根据控制系统需要实现的功能,涉及到了PID控制算法的应用、SPWM波程序设计和交流采样程序设计三个方面。
3.1、PID控制算法
在本系统中选用数字PID控制算法,数字PID控制在生产过程中是一种最普遍采用的控制方法,将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。数字PID控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,需要采用离散化方法。
图5DSP的序流程图
PID控制器各校正环节的作用如下:
(1)比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减小偏差。
(2)积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数T,T越大,积分作用越弱,反之则越强。
(3)微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正传号,从而加快系统的动作速度,减少调节时间。
在软件中实现PID调节的程序如下所示:
ek=_IQ15(0.8)-u; //22937,45220给定电压1.38V的Q15(开环m=0.5时)的峰峰值,用来做闭环的参考)
if(ek>=6553)ek=6553;//对输入偏差进行限幅
if(ek<=-6553)ek=-6553;
uk=uk1+_IQ15mpy(_IQ15(0.6),(ek-ek1))+_IQ15mpy(_IQ15(0.1),ek);//+ki*ek;//PI调节
ek1=ek;
uk1=uk;
if(uk>=29491)uk=29491; //0.9的Q15,输出限幅
if(uk<=3276)uk=3276; //0.1的Q15
//if(uk<=3276)uk=3276;
m=uk;
3.2、SPWM波程序设计
3.2.1、SPWM概念
SPWM技术目前已经在实际得到非常普遍的应用。经过长期的发展,大致可分成电压SPWM,电流SPWM和磁通SPWM。其中电压和电流SPWM是从电源角度出发的SPWM,而磁通SPWM则是从电动机角度出发的SPWM。
电压SPWM技术是通过生成的SPWM波信号来控制逆变器的开关管,从而实现电动机电源变频的一种技术。
3.2.2、产生SPWM的算法
产生电压SPWM信号的方法有硬件法和软件法。其中软件法是使电路成本最低的方法,它通过实时计算来生成SPWM波。但是实时计算对控制器的运算速度要求非常高。DSP无疑是能满足这一要求的最理想的控制器。电压SPWM 信号实时计算需要数学模型。建立数学模型的方法很多,有谐波消去法、等面积法、采样型SPWM法以及由它们派生出的各种方法。
对称规则采样法的数学模型非常简单,但是由于每个载波周期只采样一次,因此所形成的阶梯波与正弦波的逼近程度仍然存在较大的误差。如果既在三角波的顶点对称轴采样,又在三角波的底点对称轴位置采样,也就是每个载波周期采样两次,这样所形成的阶梯波的逼近程度会大大提高。由于这样采样所形成的阶梯波与三角波的交点并不对称,因此称其为不对称规则采样法。与规则采样法相比每个载波周期采样两次,这样形成的阶梯波与正弦波的逼近程度会大大提高。由于采用了内存大运算速度高的DSP,软件控制算法选用不对称规则采样法。不对称规则采样法生成SPWM波如图5所示:
由于采用不对称规则的算法,要用到正弦函数、浮点数的计算,单独用汇编语言实现较为麻烦,同时为提高运行速度,故采用C语言与汇编混合编程实现。
当在三角波的顶点对称轴位置t1时刻采样时,则有:
当在三角波的底点位置t2时刻采样时,则有
图6 不对称规则采样法生成SPWM波
将三角形相似关系式
代入上面两个式子得:
生成 SPWM波的脉宽为:
由于每个载波周期采样两次,所以
式中k为偶数时代表顶点采样,k为奇数时底点采样。
不对称规则采样法的数学模型尽管略微复杂一些,但由于其阶梯波更接近于正弦波,所以谐波分量的幅值更小,在实际中得到更多的使用。
以上是单相SPWM波生成的数学模型。如果要生成三相SPWM波,必须使用三条正弦波和同一条三角波求交点。三条正弦相差120度,即:
如果使用不对称规则采样法,则顶点采样时有:
底点采样时有:
所以,各相的脉宽为:
3.2.3、SPWM实现程序流程图
SPWM程序实现的流程图如图7所示:
图7 SPWM产生流程图
3.3、交流采样测量程序设计
系统中交流特征参数U 、I 、P、Q 、cosΦ、f的采样测量是系统设计中一个最重要的环节。交流采样有以下3 种方法:
3.3.1、交/直流变换采样方法
这种采样方法将交流电流和电压Uab、Ia、Ucb、Ic先转成直流信号再送A/ D 转换器进行采样,通过检测电压、电流以及两者之间的相位差,再用公式计算出三相电路的有功功率P、无功功率Q 、功率因数cosΦ
交/ 直流变换采样计算方法的优点是运算简单、对A/ D 转换器的速度要求低、运算工作量小、对处理器的速度和性能要求也高,电流电压测量的稳定性好;它的缺点是首先增加了交/ 直流变换环节,变换器反应速度慢(至少4~5 周期)且精度不高(一般大于0. 2级),所以这种方法测量精度差、反应速度慢。其次,由于采用过零比较器,相位差测量比较容易受到干扰,且不易被滤除。另外,相位差测量要占用较多的资源,使得这种方法不适合用于多路测量。使用商化的功率模块可以避开测量相位差,但成本提高了很多。因此这种方法只适用于要求不高的场合。
3.3.2、均方根法
根据电工学上对周期性信号有效值和平均功率的基本定义,并将其离散化可以得到:
为了提高精度,在连续一个周期内取N = 20均匀地对交流信号Uab、Ia、Ucb、Ic采样16次,算出有效值及对应的有功功率P1、P2和无功功率Q1、Q2,再根据两表法的原理,计算出各种交流电的特征参数。这种测量方法的优点是精度高、速度快。测量的有效值和平均功率一次就可以计算出来。其包含了基波和各次谐波的综合参数,真实地反应了被测信号的实际情况,但缺点是无法将基波和其它谐波分离开来,因此不能反映电源的供电质量。另外为保证平均功率的精度必须在同一时刻对电压电流进行采样,而增加了部分硬件的投资。
3.3.3、基于瞬时无功理论的检测方法
建立在矢量变换基础上的瞬时无功理论是由日本学者Akagi在1984年提出的。其核心是采用一变换矩阵将三相电路的各相电压和电流瞬时值变换到两相正交的α-β 坐标系上研究,使基波电流对应的瞬时功率为一直流量以便分离。该检测方法分为p-q运算方式和ip-iq运算方式。
三相电路瞬时无功功率理论,首先在谐波和无功电流的实时检测方面得到了成功的应用。目前有源滤波器和静止无功发生器中,基于瞬时无功功率理论的谐波和无功电流检测方法应用最多,有关这方面的内容将在第五章内容中详细讲述,本节主要讲述基波信号的检测。下面以三相电流信号为例简要说明。
设三相电流信号为:
坐标变换理论前面已有介绍,图8a和8b分别以框图形式给出了从三相静止到两相静止坐标系和从三相静止到两相旋转的坐标系变换示意图。
图8坐标变换示意图
坐标变换可采用上述两种方式进行,以图b为例转换到旋转坐标系下的关系式为:
所以,基波电流的幅值和相位为:
同理可求的电压的大小和相位。其它交流特征参数P、Q、cosΦ、f可参照上节进行求解。
3.3.4、傅里叶级数法
根据信号分析理论,周期函数f ( t ) 的傅里叶级数展开式经推导、离散处理可以得出:
式中: Akrm、Akxm、Akm分别是k 次谐波的实部幅值、虚部幅值和正弦波幅值。
平衡测量精度和计算工作量,在连续一个周期的时间间隔内均匀地对交流信号Uab、Ia、Ucb、Ic进行12 次采样,可以算出各信号基波的电压实部Uabrm、Ucbrm、电压虚部Uabxm和Ucbxm、电压幅值Uabm和Ucbm、电流实部Iarm和Icrm、电流虚部Iaxm和Icxm、电流幅值Iam和Icm,进而可以算出三相有效功率P、无功功率Q 和功率因数cosΦ:
用同样的方法可以算出其它谐波的特征参数。从上面的计算过程可以看出,傅里叶级数法可以计算出各次谐波的各种特征参数,计算精度较高。这对电源输出质量的分析是非常有用的。
根据以上比较,四种采样方法各有优缺点、各有适用场合。根据目前需要分析电源输出交流电的质量,用傅里叶级数法测量交流特征参数较为适宜。系统用DSP(TMS320LF2812)作处理器,利用其高速的处理能力可以做到采样速度快、精度高、稳定性好、硬件投资和软件运算工作量适中。
四、实验的MATLAB仿真实现
在该仿真系统中,通过对逆变电压进行采样,并进行均方根的运算,然后,对实际值和给定值进行比较,并进行PI调节,从而改变SPWM波中的幅值比m,使最终达到逆变变压稳定在给定值左右的目的。
理论值为20√6=49,经调试后实验值达到了理论值。
PI调节模块
五、课设总结
经过三周的努力,我们终于完成了课程设计。在这三周里我学到了很多有用的知识,对CCS软件有了更深的了解,温习了Protel 99se的使用,学回了使用multisim和Visio软件,这些都对以后工作很有用处。课设中我遇到了很多问题,在老师和同学的帮助下我学到了很多东西,提高了发现问题、分析问题和解决问题的能力,这次课程设计锻炼了我们的综合实验能力,对我们很有意义。
六、参考文献
[1]王兆安,刘进军.电力电子技术.第五版.北京:机械工业出版社,2009.
[2]康华光.电子技术基础.第五版.北京:高等教育出版社,2006.
[3]胡寿松.自动控制原理[M].第四版.北京:科学出版社.2004.
[4]万山明.TMS320F281xDSP原理及应用实例.2007.
附录一:
检测调理电路
检测调理电路PCB板
电源模块原理图
附录二:
SPWM波程序
#include "DSP28_Device.h"
#include "IQmathLib.h"
Uint16 pp=733,j,i,i1=0,k=0,flag=0,r=0,ad1=0,t=0,s=0,sy=0; /*全局变量定义,pp=Tc/4*/
longint U;
_iq15 sinne[512],a1[16],a2[16],m,square=0,sum=0;
_iq15 u,uk,ek,ek1=0,uk1=0;
interrupt void spwm(void); /*中断函数声明*/
void Adc(void); /*函数声明*/
void main(void)
{
InitSysCtrl(); /*初始化系统*/
DINT; /*关中断*/
IER = 0x0000;
IFR = 0x0000;
InitPieCtrl(); /*初始化PIE控制寄存器*/
InitPieVectTable(); /*初始化PIE矢量表*/
//InitGpio(); /*初始化I/O口*/
InitEv(); /*初始化EV*/
InitAdc(); /*初始化ADC*/
EALLOW; /*允许访问 EALLOW */
PieVectTable.T1UFINT = &spwm; /*把中断地址赋给中断向量表中定时器1的下溢中断*/
//PieVectTable.ADCINT = &ad_isr; /*把ad_isr的地址赋给中断向量表中模数转换中断*/
EDIS; /* 重新对EALLOW保护 protected registers*/
/*使能PIE级中断*/
PieCtrl.PIEIER2.all |= M_INT6; /*使能PIE级中断第二组第六位(T1UFINT)置1 */
//PieCtrl.PIEIER1.all = M_INT6; /*使能PIE级中断第一组第六位(ADCINT)置1,*/
/*使能CPU级中断*/
IER |= M_INT2; /*使能CPU第二组中断 */
//IER |= M_INT1; /*使能CPU第二组中断 */
EINT; /*使能全局中断*/
//ERTM; /*使能实时中断*/
for(i=0;i<512;i++)
{
sinne[i]=_IQ15sin(i*_IQ15(6.283/512)); /*做sin表,为dq变换做准备用。并且将所有的值转换为Q15格式*/
}
EvaRegs.T1CON.all|=0x0040;//事件管理器eva的通用定时器1控制寄存器1的第七位写1,定时器1使能。
///EvaRegs.T2CON.all|=0x0040;//事件管理器eva的通用定时器2控制寄存器1的第七位写1,定时器2使能
while(1)
{
if(flag==1)
{
intt,s,sy;
flag=0;
sum=0;
for(t=0;t<16;t++)
{sum+=a1[t];}
sum=_IQ15div(sum,_IQ15(16));
for(t=0;t<16;t++)
{
a2[t]=a1[t]-sum; //因为所采集到的正弦波是单极性的,即其中含有直流分量,就是偏上去的值。减去之后
//就是关于零轴上下对称了。此处应注意,将数组1中的数减去偏置量之后存入数组2;
a2[t]=(a2[t]*3)<<3; //对上下对称的正弦波进行数据还原,
}
square=0;
for(sy=0;sy<16;sy++)
{
square=square+_IQ15mpy(a2[sy],a2[sy]);//在循环语句内部做平方计算
}
square=_IQ15div(square,_IQ15(16));//平方和除以总数
//square=_IQ15sqrt(square);//开方,求出均方根值,其实就是整个正弦波的有效值
u=_IQ15sqrt(square);//开方,求出均方根值,其实就是整个正弦波的有效值
//u=square;//将值赋给u,做下一步运算
/**********PI调节部分***************/
ek=_IQ15(0.8)-u; //22937,45220给定电压1.38V的Q15(开环m=0.5时的峰峰值,用来做闭环的参考)
if(ek>=6553)ek=6553;//对输入偏差进行限幅
if(ek<=-6553)ek=-6553;
uk=uk1+_IQ15mpy(_IQ15(0.6),(ek-ek1))+_IQ15mpy(_IQ15(0.1),ek);//+ki*ek;//PI调节
ek1=ek;
uk1=uk;
if(uk>=29491)uk=29491; //0.9的Q15,输出限幅
if(uk<=3276)uk=3276; //0.1的Q15
//if(uk<=3276)uk=3276;
m=uk;
}
}
}
voidAdc(void)
{
U=AdcRegs.RESULT0>>4; //我们用的AD是12位的,但是AD寄存器是16位的,自动存入高12位,必须右移四位才是真实值。
a1[i1]=U; //这个地方要特别注意,一定要将采集的数放到数组里,用以下面程序的运算
i1++;
//a1[i1++]=AdcRegs.RESULT0>>4;
if(i1==16)
{
i1=0;
flag=1;
}
AdcRegs.ADCTRL2.bit.RST_SEQ1=1;
AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1; //清除SEQ1中断标志。
}
interrupt void spwm(void)
{
int j,t1,t2,t3,t4,t5,t6;
r++;
if(r==16)
{
r=0;
Adc();
}
//Adc();
m=_IQ15(0.8);
j=k;
t1=pp+(pp*_IQ15mpy(m,sinne[j])>>15);
j=j+171;
if(j>511)j=j-512;
t2=pp+(pp*_IQ15mpy(m,sinne[j])>>15);
j=j+171;
if(j>511)j=j-512;
t3=pp+(pp*_IQ15mpy(m,sinne[j])>>15);
k++;
j=k;
t4=pp+(pp*_IQ15mpy(m,sinne[j])>>15);
j=j+171;
if(j>511)j=j-512;
t5=pp+(pp*_IQ15mpy(m,sinne[j])>>15);
j=j+171;
if(j>511)j=j-512;
t6=pp+(pp*_IQ15mpy(m,sinne[j])>>15);
k++;
t1=t1+t4;
t2=t2+t5;
t3=t3+t6;
EvaRegs.CMPR1=(EvaRegs.T1PR*2-t1)>>1;
// EvaRegs.CMPR1=733;
EvaRegs.CMPR2=(EvaRegs.T1PR*2-t2)>>1;
EvaRegs.CMPR3=(EvaRegs.T1PR*2-t3)>>1;
if(k>511)
{
k=0;
}
EvaRegs.EVAIMRA.bit.T1UFINT=1; //T1UFINT使能下溢使能
EvaRegs.EVAIFRA.all |= BIT9; //清除定时器1下溢中断,否则以后的中断将被忽略
PieCtrl.PIEACK.all |= PIEACK_GROUP2; // Acknowledge interrupt to PIE 响应中断
}
