基于dsp的自动控制系统课程设计报告本科毕业论文_第1页
基于dsp的自动控制系统课程设计报告本科毕业论文_第2页
基于dsp的自动控制系统课程设计报告本科毕业论文_第3页
基于dsp的自动控制系统课程设计报告本科毕业论文_第4页
基于dsp的自动控制系统课程设计报告本科毕业论文_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、自动控制系统课程设计设计题目: 转速闭环异步电动机变频调速系统设计 班 级: 自动化1303班 学 号: 20134132 姓 名: 李丹阳 指导教师: 闫士杰、刘秀翀、贾旭 设计时间: 摘要电机分为直流电机和交流电机两大类。直流电机由于其便于控制和控制精度比较高的特点,在很长一段时间内被广泛应用,被人们认为难以被其他电机所取代。但随着电力电子技术的发展、各种新型控制器件和先进控制方法的在电机调速系统中的应用,使交流电机控制精度得到极大的提高;另外,由于交流电机,特别是笼型式异步电机具有结构简单牢固、制造成本低廉、运行方便可靠、环境适应能力强以及易于向高电压、高转速和大容量方向发展等优点,过去

2、直流电机占主导地位的调速传动领域将逐渐被交流电机所占领。 本文先从异步电机的物理模型出发,通过抽象假设给出了理想的异步电机原始数学模型;然后,详述了坐标变换方法,包括从三相到两相的静止坐标变换和从两相静止到两相旋转坐标的变换;最后,通过坐标变换将异步电机原始数学模型变换成便于控制的在不同坐标系的简化数学模型。然后,主要描述了变频调速原理,详述了V/F控制原理和电压空间矢量(SVPWM)控制原理,给出了用DSP实现SVPWM的方案,并给定了对应的SVPWM在一个PWM周期的波形,为异步电机变频调速的软件实现提供了理论依据。关键字:交流电机、异步电机、原始数学模型、坐标变换、V/F控制原理、电压空

3、间矢量控制原理目录TOC o 1-4 h u HYPERLINK l _Toc29086 摘 要 PAGEREF _Toc29086 2 HYPERLINK l _Toc13997 PAGEREF _Toc13997 4 HYPERLINK l _Toc1304 PAGEREF _Toc1304 5 HYPERLINK l _Toc14467 PAGEREF _Toc14467 5 HYPERLINK l _Toc7153 PAGEREF _Toc7153 5 HYPERLINK l _Toc11143 系统设计 PAGEREF _Toc11143 5 HYPERLINK l _Toc3029

4、3 安装调试部分 PAGEREF _Toc30293 5 HYPERLINK l _Toc29612 写出课程设计总结报告(要求报告在15页以上,并打印) PAGEREF _Toc29612 5 HYPERLINK l _Toc17173 PAGEREF _Toc17173 6 HYPERLINK l _Toc7293 3.1 方案论证 PAGEREF _Toc7293 6 HYPERLINK l _Toc8073 PAGEREF _Toc8073 6 HYPERLINK l _Toc30217 异步电机的原始数学模型 PAGEREF _Toc30217 6 HYPERLINK l _Toc2

5、7474 PAGEREF _Toc27474 8 HYPERLINK l _Toc6667 交流异步电动机在不同坐标系的数学模型 PAGEREF _Toc6667 10 HYPERLINK l _Toc14163 3.2 VF控制原理 PAGEREF _Toc14163 12 HYPERLINK l _Toc9099 33电压空间矢量(SVPWM)控制原理 PAGEREF _Toc9099 13 HYPERLINK l _Toc4452 基本电压空间矢量的形成及作用时间的计算 PAGEREF _Toc4452 13 HYPERLINK l _Toc29769 矢量控制系统原理分析 PAGERE

6、F _Toc29769 16 HYPERLINK l _Toc14973 PAGEREF _Toc14973 17 HYPERLINK l _Toc32427 主程序设计 PAGEREF _Toc32427 18 HYPERLINK l _Toc884 中断服务子程序设计 PAGEREF _Toc884 18 HYPERLINK l _Toc15 PAGEREF _Toc15 20 HYPERLINK l _Toc11401 PAGEREF _Toc11401 23 HYPERLINK l _Toc13995 PAGEREF _Toc13995 24 HYPERLINK l _Toc17991

7、 PAGEREF _Toc17991 25 HYPERLINK l _Toc14172 PAGEREF _Toc14172 26 HYPERLINK l _Toc18060 PAGEREF _Toc18060 26 HYPERLINK l _Toc27422 PAGEREF _Toc27422 27 HYPERLINK l _Toc23222 PAGEREF _Toc23222 27 HYPERLINK l _Toc14585 8.收获、体会和建议 PAGEREF _Toc14585 28 HYPERLINK l _Toc2112 PAGEREF _Toc2112 29 HYPERLINK l

8、 _Toc18602 附录 PAGEREF _Toc18602 30随着生产技术的不断发展,直流拖动的薄弱环节逐步显示出来。由于换向器的存在,使直流电动机的维护工作量加大,单机容量、最高转速以及使用环境都受到限制。人们转向结构简单、运行可靠、便于维护、价格低廉的异步电动机,但异步电动机的调速性能难以满足生产要求,于是,从上世纪三十年代开始,人们就致力于交流调速技术的研究,然而进展缓慢,直到上世纪六七十年代以来,电力电子技术和控制技术的飞速发展,使得交流调速性能可以与直流调速相媲美、相竞争,目前,交流调速已进入逐步替代直流调速的时代。而变频技术作为高新技术是一门重要的节能和环保技术,在各种工业生

9、产、交通运输、家用电器中应用十分广泛。变频器作为变频技术的产品,在我国工农业等各方面有着极其重要的作用。在目前经济快速发展与能源相对紧缺状况中,普及变频器的应用范围将对振兴经济、节约能源起到不可估量的作用。本课设正是主要运用新型电机控制芯片TMS320F2812DSP 为控制核心,构建了异步电机无速度传感器矢量控制变频调速系统,重点研究了交流变频调速技术和无速度传感器矢量控制技术,并在搭建的实验平台上进行了实验,得到了正确的实验结果。这对推动我国交流调速系统的理论研究、扩大交流调速系统的工业应用起到一定的推动作用,具有比较重要的理论和实际意义。(1)典型控制系统的分析与设计(2)系统设计调试,

10、以自动控制系统实验室模型为设计对象(3)控制系统的分析,以自动控制系统实验室模型为设计对象 = 1 * GB2 独立完成系统的原理设计。说明系统实现的功能,应达到技术指标,进行多种方案的论证,确定最佳设计方案。 = 2 * GB2 画出电路图,说明各部分电路的工作原理,初步选定所使用的各种器件的主要参数及型号,列出元器件明细表。2. = 1 * GB2 根据理论设计,验证所设计方案的正确性。 = 2 * GB2 分析系统的工作原理,写出报告。2.2.3安装调试部分 = 1 * GB2 实现所设计的系统,并进行单元测试和系统调试。完成系统功能。 = 2 * GB2 若系统出现故障,排除系统故障,

11、分析并记录系统产生故障的原因,并将此部分内容写在报告中。写出课程设计总结报告(要求报告在15页以上,并打印)3.1 方案论证 三相交流异步电机是一个多变量、高阶、非线性、强耦合的复杂系统,为了方便对三相交流异步电机进行分析研究,抽象出理想化的电机模型,通常对实际电机作如下假设 :1)忽略磁路饱和的影响,认为各绕组的自感和互感都是恒定的。2)忽略空间谐波,三相定子绕组A、B、C及三项转子绕组a、b、c在空问对称分布,互差120。电角度,且认为磁动势和磁通在空间都是按J下弦规律分布。3)忽略铁心损耗的影响。4)忽略温度和频率变化对电机参数的影响。有了这些假设,实际异步电机可被等效为如图21所示的三

12、相异步电机物理模型。图中,定子三相绕组轴线A、B、C在空间是固定的,故定义为三相静止坐标系。设A轴为参考坐标轴,转子绕组轴线a、b、c随转子以速度旋转。A轴和转子a轴间的电角度即为空间角位移变量图3-1 异步电机物理模型异步电机的原始数学模型可由以下四组方程表示: 1电压方程 三相定子绕组的电压方程为: (3-1)三相转子绕组折算到定子侧后的电压方程为: (3-2)式中uA,uB,uC,ua,ub,uc定子、转子相电压的瞬时值; iA,iB,iC,ia,ib,ic定子、转子相电流的瞬时值; A,B,C,a,b,c各绕组的全磁链; R1 ,R2定子、转子绕组电阻。将以上电压方程写成矩阵形式,并以

13、微分算子P代替微分符号ddt (3-3)也可以简写为: U=Ri+p (3-4)2磁链方程 由于每个绕组的磁链是它本是的自感磁链和其它绕组对它的互感磁链之和,六个绕组的磁链可以表示为: (3-5)也可简写为: Li (3-6)式中,L是6 x 6的电感矩阵,其中对角线元素是各有关绕组的自感, 其余各项是绕组间的互感。 3矩阵方程 根据机电能量转换原理,异步电机电磁转矩表达式为: Te=PnLm1(iAia+iBib+iCic)sin+(iAib+iBic+iCia)sin(+120o)+(iAic+iBia+iCib)sin(-120o) (3-7)4运动方程 对于恒转矩负载,机电系统的运动方

14、程为:Te= TL + J/Pnd/dt (3-8)式中:Te,TL电磁转矩,负载转矩;J转动惯量;P电动机极对数。 我们知道对异步电机研究控制时,如果能用两相就比用三相简单,如果能用直流控制就比交流控制更方便。为了对三相系统进行简化,就必须对电动机的参考坐标系进行变换,这就叫坐标变换。坐标变换以产生相同的磁通为准则,建立三相交流绕组、两相交流绕组和旋转的直流绕组三者之间的关系,从而可以建立交流异步电机的直流模型。 在研究电机矢量控制时定义有三种坐标系统,即三相静止坐标系(3s)、两相静止坐标系(2s)和两相旋转坐标系(2r)。对应的坐标变换有:从三相到两相的静止坐标变换(3s2s);从两相静

15、止到两相旋转的坐标转换(2s2r)等。 1.Clarke变换:从三相到两相的静止坐标变换(3s2s)图3-2 3s2s变换图3-2是A、B、C为三相对称静止绕组,图3-1中A轴与口轴重合,通以三相平衡的J下弦电流,产生合成磁动势F,以同步转速旋转,三相静止坐标系与两相静止坐标系在空间上相差90。,且如果通上时间相差90。的两相交流电,也可以产生相同的磁动势F。由于它们的磁动势和转速都相等,所以可以认为这两种坐标系等效。可以由简单的三角函数关系推导出从三相到两相静止坐标系的变换矩阵: (3-9)若为三相平衡系统,uA+ uB+ uC =0,则矩阵的第三行系数为0,于是可写成为 (3-10)即 (

16、3-11)变换后的两相电流有效值为三相电流有效值的倍,因此,每相功率为三相绕组每相功率的3/2倍,但相数由原来3变成2,所以变换前后总功率不变。此外变换后的两相绕组每相匝数是原来三相绕组每相匝数的。此变换称为 32变换(3s2s变换)。 2. Park变换:从两相静止到两相旋转的坐标转换(2s2r) 在两相静止坐标和两相旋转坐标dq之间的变换简称为2s2r变换。 如图33所示,为两相静止坐标系(2s),dq为两相旋转坐标系(2r)。dq绕组在空间相互垂直放置,分别加上直流电压Ud和Uq,产生合成磁动势F,其位置相对于绕组来说是静止的。如果让包含两个绕组在内的整个铁心以同步转速1旋转,则磁动势自

17、然也随之旋转起来,成为旋转磁动势。如果磁动势的大小与两相静止坐标系下的磁动势大小相等,那么这个旋转的直流绕组也就和交流绕组等效了。当观察者站在铁心上和绕组一起旋转时,在他看来,d和q是两个通以直流而且相互垂直的静止绕组,如果控制磁通的位置在d轴上,就相当于直流电机物理模型了。这时,绕组d相当于励磁绕组,q绕组相当于静止的电枢绕 组。dq和轴的夹角是一个变量,随着负载、转速而变。其变换矩阵为 (3-12)其逆变换矩阵为 (3-13)图3-3 2s2r变换 三相异步电机的数学模型经3s2s变换后在两相静止坐标系上的数学模型为:1电压方程 (3-14)2磁链方程 (3-15)3转矩方程 (3-16)

18、4运动方程 (3-17)式中:Ls Lr 定子、转子相的自感; Rs Rr 定子、转子相的电阻; Lm定转子绕组的互感; 转子角频率。2. 在两相旋转坐标系的数学模型 设坐标轴dq的旋转速度等于定子频率的同步角转速1,而转子的转速为,则dq轴相对于转子的角转速为s=1一,即为转差。将三相异步电机在坐标系上的数学模型经2s2r变换后,得到在两相同步旋转坐标系dq上的数学模型为:1电压方程 (3-18)2磁链方程 (3-19)3转矩方程 (3-20)4运动方程 (3-21)3.2 VF控制原理 由电机学理论,交流异步电机的定子绕组的感应电动势是定子绕组切割旋转磁场磁力线的结果,其有效值计算如下:E

19、=Kf (3-22)式中K一与电机结构有关的常数;一磁通。 而在电源一侧,电源电压的平衡方程式为:U=E+Ir+jIx (3-23) 该式表示,加在电机绕组端的电源电压U,一部分产生感应电动势E,另一部分消耗在阻抗(线圈电阻r和漏电感x)上。其中定子电流I分成两部分:少部分I1用于建立主磁场磁通,大部分I2用于产生电磁力带动机械负载。I= I1+ I2 (3-24) 当交流异步电机进行变频调速时,例如频率f下降,则由式(322)可知E 降低;在电源电压U不变的情况下,根据式(323),定子电流I将增加;此时,如果外负载不变时,I2不变,I的增加将使I1增加,也就是使磁通量增加;根据式(322)

20、,的增加又使E增加,达到一个新的平衡点。 理论上这种新的平衡对机械特性影响不大。但实际上,由于电机的磁通容量与电机的铁心大小有关,通常在设计时已达到最大容量。因此当磁通量增加时,将产生磁饱和,造成实际磁通量增加不上去,产生电流波形畸变,削弱电磁力矩,影响机械特性。 为解决机械特性下降的问题,一种解决方案是设法保持磁通量恒定不变。即设法满足: Ef=K=常数 (3-25) 这就要求,当电机调速改变电源频率f时,E也应该相应的变化,来维持它们的比值不变。但实际上E的大小无法进行控制。由于定子电阻上产生的压降相对于加在绕组端的电源电压U很小,可以用加在绕组端的电源电压U来近似代替E。调节电压U,使跟

21、其随频率f的变化,从而达到使磁通量恒定的目的。即 EfUf=常数 (3-26) 所以,在变频的同时也需要变压。 我们采用电源电压U近似代替E显然存在一定误差。当频率f的数值相对较高时,定子阻抗压降在电压U中所占比例相对较小,UE所产生的误差较小;当频率f的数值降的较低时,电压也按同比例下降,而定子阻抗的压降并不按同比例下降,使定子阻抗压降在电压U中所占比例增大,UE将产生较大误差。因为定子阻抗压降所占比重增大,使得实际上产生的感应电动势E减小,Ef的比值减小,造成磁通量减小,因而导致电机的临界转矩下降。必须采取相应的补偿措施U/f转矩补偿法。 U/f转矩补偿法的原理:针对频率f降低时,电源电压

22、U成比例的降低引起的U下降过低,采用适当提高电压U的方法来保持磁通恒定,使电机转矩回升,即所谓的转矩提升(Torqueboost)。 当频率高于额定频率时,为了避免电机绕组绝缘破坏的情况发生,电源电压不能超过电机的额定电压值,这样可得压频控制原理图如图31所示:图3-4 恒压频比控制原理图33电压空间矢量(SVPWM)控制原理空间矢量PWM的英文全称是Space Vector PWM,简写成SVPWM或SVM。它是从电机角度出发,着眼于如何使电机获得幅值恒定的圆形磁场。SVPWM控制用逆变器不同的开关模式产生实际磁通去逼近基准磁通圆,不但能达到较高的控制性能,而且由于它把逆变器和电机看作一个整

23、体处理,使所得模型简单,便于数字化实现,并具有转矩脉动小、噪声低、电压利用率高等优点。3.3.1 基本电压空间矢量的形成及作用时间的计算根据三相电压型逆变器电路可以得出逆变桥输出的线电压矢量Vab、Vbc 、Vcat 、相电压矢量Va、Vb 、Vct和开关变量矢量a b ct之间的关系可以用式(327)和式(328)表示,式中Vdc是电压型逆变器的直流供电电压,或称直流母线电压和总线电压。 (3.27) (3.28)上式中,由于开关变量矢量a b c t有8个不同的组合值(a、b或c只能取0或1),即逆变桥上半部分3个功率管的开关状态有8种不同的组合,故其输出的相电压和线电压也有8中对应的组合

24、。为了在DSP的编程中计算方便,需要利用电机的坐标轴系变换理论进行坐标转换,即将线电压和相电压在三相平面坐标系中的值,转换到平面直角坐标系中,在两个坐标系之问转换时须遵循电机总功率不变的原则。其转换公式为(329)所示。 (3.29)由于逆变桥中,功率管开关状态的组合一共只有8个,则对应于开关变量矢量a b ct在坐标系中的Vs、Vs也只有有限种组合。他们的对应关系同样如表31所示。 为了便于运用,将逆变器的八种开关状态所对应的八个基本电压空间矢量,分别用U0 、U1、U2 、U3 、U4 、U5 、U6 、U7 表示,其中U0 、U7为零矢量位于中心,另外六个非零矢量幅值相等,且相邻两个非零

25、矢量之间的夹角为60,八个基本电压空际矢量的位置和大小见图35所示。 图3-5 基本的电压空间矢量与开关状态示意图空间矢量PWM的目的是,通过与基本的空间矢量对应的开关状态的组合,得到一个给定的定子参考电压矢量Uref。参考电压矢量Uref阿用其轴分量U和U表示。图35表示参考电压矢量Uref和与之对应的轴分量U和U 以及基本空间矢量Ul和Um的对应关系(其中Ul和Um是任意两个相邻的基本空间矢量)。图3-6 电压空间矢量分解图图36中参考电压矢量Uref耐位于被基本空间矢量Ul和Um所包围的扇区内, 因此Uref可以用Ul和Um两个矢量来表示。于是有:(3.30)式中,Tl和Tm分别是在周期

26、时间T内基本空间矢量Ul和Um各自的作用时间;To是0矢量的作用时间。将上式分别在,轴投影得: (3.31)基本空间矢量的幅值是Vdc即Ul=Um=Vdc代入式(331)可得矢量作用时间: (3.32)3.3.2 矢量控制系统原理分析 按转子磁链定向实现了定子电流两个分量的解耦,同时采用电流闭环控制,可抑制电流的微分方程中存在的交叉耦合。如图3.7,首先在转子磁链定向坐标系中计算定子电流励磁分量和转矩分量给定值和,经过反旋转变换2r/2s得到和,再经过2s/3s变换得到、和,然后通过电流闭环跟随控制,输出异步电动机所需的三相定子电流。忽略变频器可能产生的滞后,认为电流跟随控制的近似传递函数为1

27、,且2/3变换与电动机内部的3/2变换环节抵消,反旋转变换2r/2s与电动机内部的旋转变换2s/2r抵消,则虚线内可用直线代替。图3-7异步电动机矢量控制系统的原理框图通过对三相异步电动机矢量控制调速原理的分析,可以建立一个完整的矢量控制变频调速系统。矢量控制的原理框图如图3.8所示,图中为电压空间矢量(SVPWM)控制系统。图3-8 电压空间矢量(SVPWM)控制系统据图3-8可知,首先通过测速环节(FBS)测得电动机的转速,并与速度参考输入相比较,送给转速PI调节器(ASR),ASR限幅输出后得到电磁转矩的给定输入(参考信号的转矩分量);与计算出的实际转矩相比较,偏差送给转矩PI调节器(A

28、TR),ATR限幅输出后得到信号。同样(参考信号的磁场分量)与计算磁通相比较后,偏差送给磁通PI调节器(), 限幅输出后得到信号。和经过Park逆变换和Clarke逆变换后送入电流滞环控制器,产生6路PWM信号驱动逆变器,精确地控制电机的运行。图中转子磁链的位置由转子磁链观测模块计算得出。外环速度环产生了定子电流的参考值,内环电流环得到实际控制信号,共同组成完整的速度电流双闭环控制系统。整个系统软件设计采用模块化设计思想,系统软件分为两个模块,即主程序模块和中断服务子程序模块。本设计中,主程序模块主要包括系统初始化和DSP与PC机通信两部分。其中初始化部分包括系统配置初始化、中断初始化、各个矢

29、量控制算法模块的初始化、各个寄存器置初值、运算过程中使用的各个变量分配地址和设置相应的初值等,其程序流程图如图4-1所示。当开启定时器中断后,主程序就负责循环读取PC机传送过来的转速和磁通给定量,在循环的过程中等带中断当系统出现故障时,程序禁止PWM口输出SVPWM波,同时将故障情况通过串口传送给PC机显示出来。中断服务子程序在每次定时计数器T1下溢事件发生后,都将从主程序的等待循环中唤醒执行。当T1下溢中断标志位被置位且CPU响应中断后,与其对应的中断服务子程序就将被执行。中断服务子程序执行时,转速和磁通的给定从主程序中读取,程序运行的最终目的是为了使给定频率与逆变器的SVPWM波形输出频率

30、一致,从而达到三相异步电动机变频调速的目的,其流程图如图4-2所示。图4-1矢量控制系统主程序流程图图4-2 T1下溢中断服务子程序流程图TMS320F2812A 为电机控制设计了专门的PWM硬件电路,如图4-3所示,图中列出的是TMS320F2812A的事件管理模块EVA的PWM电路结构框图,由通用定时器1的计数器T1CON产生比较匹配信号。设置比较寄存器 COMCONA12=0,不用硬件PWM; COMCONA9=1 ,PWM1/2/3/4/5/6 ,由相应的比较逻辑驱动。设置定时控制寄存器 T1CON11-12=01,采用连续增/减计数,当定时计数器的值与比较寄存器的值相等,就会在两个比

31、较单元的两个 PWM 引脚上产生跳变,生成 PWM 波。设置比较操作寄存器ACTRA=0 x0666,比较输出时,高/低有效。图4-3 PWM电路结构框图本文采用SVPWM法,即采用软件生成SVPWM。本文前面章节已经讲述了SVPWM的基本原理,由SVPWM的原理可知DSP实现SVPWM算法的关键是如何确定和的作用时间和以及零矢量(或)的作用时间。图4-4电压空间矢量的线性组合依据图4-4中电压空间矢量的线性组合可知: (4-1)其中是一个换相周期,根据三角形的正弦定理,有 (4-2) (4-3)由上面的两个式子可得 (4-4) (4-5) (4-6)确定位于哪个扇区是非常重要的,只有知道了位

32、于哪个扇区才知道应该用哪一对矢量去合成。确定所在扇区的方法如下。首先由Park逆变换得到和,它们分别对应着在坐标系中的投影和,然后用式(4-7)、式(4-8)、式(4-9)确定、和。 (4-7) (4-8) (4-9)再用下式计算P值, (4-10)其中,是符号函数,如果0,=1;如果Function: openloop()unsigned int index = 0; unsigned int t1per = 0; signed int angle_cos = 0;signed int angle_sin = 0;signed int cmp0 = 0;signed int cmp1 = 0

33、;signed int cmp2 = 0;signed long long1_tmp = 0;signed long long2_tmp = 0; signed int u16_tmp1 = 0;signed int u16_tmp2 = 0;signed int spd_given = 0;signed int spd_given_q12 = 0;signed int d_theta = 0;long signed theta = 0;unsigned int u_out = 0;signed int uarfa_given = 0;signed int ubeita_given = 0;

34、float Kmatrix3=2896; /SQRT(2/3)*(SQRT(3)/2) = SQRT(1/2); float Kmatrix4=3547; /SQRT(3)/2 ; float Kmatrix5=2048; float Kmatrix6=7094; /SQRT(3) float Kmatrix7=6144; float Kmatrix8=1024; float Tcma,Tcmb,Tcmc;/ PWM切换时间点Tcm int cmp1,cmp2,cmp3; int B3,P; float Tx,Ty,X,Y,Z; float Ta,Tb,Tc; int CMPR3; struc

35、t Flag2_Bits / bits description Uint16 communi:2; / 0-1 Uint16 syn:2; / 2-3 Uint16 fenpin:2; / 4-5 ;union Flag2_Reg Uint16 all; struct Flag2_Bits bit;Flag2Regs;unsigned int f_ref_q0 = 0; /0.0150.00Hz(15000) open-loop set up frequencyunsigned int switch_pwm = 50; /50010KHz(5100) PWM frequencyunsigned

36、 int d_t = 0; /2*10-31*10-4s(335541678 Q24) every PWM timeunsigned int tup = 7; /1.020.0s(120) rise timeunsigned int f_given_reg = 0;unsigned int k_uf = 0; /vf slopeunsigned int M = 0; /Torque upgrade Setunsigned int N_syn = 0; /(6200)long d_f = 0; /Q14long f_ref_long = 0; signed int ind = 0;signed

37、int sector = 0;unsigned int U_DIV_CAL( long unsigned int udividend,unsigned int udivisor );signed int DIV_CAL( long signed int dividend,signed int divisor );unsigned int fixed_sqrt(unsigned long a);void SVPWM(void);void Vector_Svpwm(void);void uf(void);void openloop(void);void ASYN(void); interrupt

38、void t1uf_int(void);void main(void) InitSysCtrl(); /系统初始化 InitPieCtrl();/使用EVA定时器1的下溢中断 InitPieVectTable(); InitGpio(); InitSci(); InitEv();/三角波初始周期值为3000 InitAdc(); DINT; IER = 0 x0000; IFR &= 0 xFFFF; EALLOW; /This is needed to write to EALLOW protected registers PieVectTable.T1UFINT = &t1uf_int;

39、/T1 underflow interruput address EDIS; /This is needed to disable write to EALLOW protected registers PieCtrlRegs.PIEIER2.bit.INTx6 = 1; /T1 underflow interrupt enable IER |= M_INT2; / Enable CPU Interrupt 2 t1uf_int() /Enable global Interrupts and higher priority real-time debug events: EINT; / ena

40、ble global interrupt ERTM; / Enable Global realtime interrupt DBGM ? /Alg select Flag2Regs.bit.syn = 1; /0 ASYN 1 SYN 2 MIX if( Flag2Regs.bit.syn = 0 ) ASYN(); spd_given_q12 = 2048; /Speed set: 04095 - 01500 spd_given = (long)spd_given_q12 * 1500) 12; Motor_Start(); while( 1 ) ; /End of main loop /E

41、nd of main/*Unsigned division*/unsigned int U_DIV_CAL( long unsigned int udividend,unsigned int udivisor ) char i_div = 0; unsigned int ures_div = 0; long signed int tmp1 = 0; long signed int tmp2 = 0; long signed int tmp4 = 0; if( udivisor != 0 ) tmp4 = udivisor; tmp4 = tmp4 15; tmp1 = udividend; f

42、or( i_div = 0;i_div 0 ) tmp1 = ( tmp2 1 ) + 1; else tmp1 = tmp1 1; ures_div = tmp1; return( ures_div ); /*signed division*/signed int DIV_CAL( long signed int dividend,signed int divisor ) char sign_div = 0; signed int res_div = 0; if( divisor != 0 ) if( ( ( dividend 0 ) ) | ( ( dividend 0 ) & ( div

43、isor 0 ) ) ) sign_div = 1; if( dividend 0 ) res_div = U_DIV_CAL( -dividend,abs( divisor ) ); else res_div = U_DIV_CAL( dividend,abs( divisor ) ); if( sign_div = 1 )res_div =- res_div; else res_div = 0; return( res_div );/*32bit SQRT*/unsigned int fixed_sqrt( unsigned long a ) unsigned char i; unsign

44、ed int b = 0; unsigned long c; for( i = 0;i 16;i+ ) c = ( (unsigned long)1 ( ( 15 - i ) 1) ) + ( (unsigned long)b ( 16 - i ) ); if( c = a ) a -= c; b += ( 1 10; /Speed - Frequency (50*100)/1500(q10)=3413(基频以下调速 d_t = U_DIV_CAL( 167772,switch_pwm ); /224/100=167772 t1per=( (long)d_t * 3662 ) 11; /EV

45、Frequency = 60M t1per=EV Frequency/(2*PWM Frequency) EvaRegs.T1CON.all = 0 x080C; /Frequency/1 EvaRegs.T1PR = t1per; /Update T1PR Value /*Motor start*/Motor_Start()/开启率件管理器,开启输出口引脚 unsigned int i_Start = 0; EvaRegs.COMCONA.bit.FCOMPOE = 1; /Enable PWM GpioDataRegs.GPFCLEAR.bit.GPIOF8 = 1; /program r

46、uning(low) GpioDataRegs.GPFSET.bit.GPIOF11 = 1; /program stop(high) EvaRegs.ACTRA.all = 0 x0FFF; for( i_Start = 0;i_Start 10; /Convert speed to frequency (50*100)/1500(q10)=3413(基频以下调速) u16_tmp1 = ( (long)f_ref_q0 * K1 ) 12; /q0-q7 /给定参考频率,实际频率缓缓增加,电机启动 dd_f = U_DIV_CAL( f_given_reg,tup ); if( dd_f

47、1 ) dd_f = 1; if( ( Flag2Regs.bit.syn = 1 ) | ( Flag2Regs.bit.syn = 2 ) ) /SYN or MIX if( f_given_reg 100 ) /Min aimed frequency 1Hz F=100相当于1Hz f_given_reg = 100; if( f_ref_q0 100 ) /Min set frequncy 1Hz f_ref_q0 = 100; f_ref_long = 1638400; if( Flag2Regs.bit.syn = 2 ) /MIX if( f_ref_q0 = 1000 ) /1

48、Hz-10Hz N_syn = 144; else if( f_ref_q0 = 2000 ) /11Hz-20Hz N_syn = 72; else /21Hz-50Hz N_syn = 36; else N_syn = 36; long1_tmp = (long)f_ref_q0 * N_syn; u16_tmp2 = U_DIV_CAL( long1_tmp,100 ); if( N_syn 4; /Q14 d_theta = ( (long)u16_tmp1 * d_t ) 7; /f-d_theta /将外部输入频率转化为角频率 theta =w*t EvaRegs.T1CON.al

49、l = 0 x0F4C; /128 DIV else if( N_syn 6; /Q14 / d_theta=( (long)u16_tmp1 * d_t ) 9; /f-d_theta EvaRegs.T1CON.all = 0 x0D4C; /32 DIV else d_t = U_DIV_CAL( 4194304,u16_tmp2 ); /q22 d_f = ( (long)d_t * dd_f ) 8; /Q14 d_theta = ( (long)u16_tmp1 * d_t ) 11; /f-d_theta EvaRegs.T1CON.all = 0 x0A4C; / 8 DIV

50、t1per = ( (long)d_t * 3662 ) 12; EvaRegs.T1PR = t1per; if( f_ref_q0 4; else if( f_ref_q0 2; else if( f_ref_q0 1; else if( Flag2Regs.bit.syn = 0 ) /ASYN d_f = ( (long)d_t * dd_f ) 10; /Q14 d_theta = ( (long)u16_tmp1 * d_t ) 13; /f-d_theta if( f_given_reg f_ref_q0 ) f_ref_long = f_ref_long + d_f; f_re

51、f_q0 = f_ref_long 14; /Q0 if( f_given_reg f_ref_q0 ) f_ref_long = f_ref_long - d_f; if( f_ref_long 14; /Q0 theta = theta + d_theta; /theta Q18 if( theta = 262144 ) theta = theta - 262144; index = theta 9; /SIN table uf(); /*VF*/void uf() signed int tmp3 = 0; if( f_ref_q0 12; u_out = u_out + M; if( u_out 4095 ) u_out = 4095; else u_out = 4095; /*SVPWM*/ void SVPWM(void) openloop(); /SYN table index = index & 0 x01ff; sector = ( (long)index * 3048 ) 18; angle_sin = SINTABindex; /SIN value index = ( index + 0 x080 ) & 0 x01ff; /+90 angle_cos = SINTABindex; /cos value /PARK -1 ube

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论