基于DSP永磁同时电机控制
设计总说明.........................................................................................................................3 Abstract...................................................................................41.绪论.................................................................................................................................5 1.1交流调速概述...................................................................5 1.2相关领域发展...................................................................5 1.2.1功率器件发展............................................................................................5 1.2.2变频技术发展............................................................................................6 1.2.3电机制造技术和交流调速理论发展........................................................6 1.2.4控制理论发展............................................................................................7
1.3 中国外研究动态和发展方向...........................................8
1.2.5微处理器发展............................................................................................8
2.1永磁同时电机控制理论发展............................................9 2.2永磁交流伺服控制系统....................................................9 2.3永磁同时电机矢量控制原理..........................................10 2.3.1永磁同时电机内部结构和种类...............................................................10 2.3.2永磁同时电机控制策略..........................................................................10 2.3.3永磁同时电机数学模型建立...................................................................11 2.4SVPWM基础原理..........................................................18 2.4.1空间矢量定义..........................................................................................18
2.4.2电压和磁链空间矢量关系.......................................................................18
2.4.3 六拍阶梯波逆变器和正六边形空间旋转磁场......................................20 2.4.4 T1, T2,T0计算.......................................................................................23 2.5电机位置检测原理..........................................................24 2.6光耦隔离电路原理..........................................................27 2.7逆变器原理......................................................................29 第三章硬件电路设计......................................................................................................34 3.1系统硬件总体设计.........................................................34 3.2 主控芯片DSP2812基础特征..........................................35 3.3DSP外设介绍..................................................................35 3.4主电路模块设计..............................................................41 3.4. 1整流滤波电路设计.................................................................................41
图3-2SCI接口电路图.....................................................................................44 3.4.5最小系统电路...........................................................................................45 3.5LED显示电路.................................................................45 光耦隔离电路.......................................................................46 2.第五章软件设计...........................................................................................................47 5.1DSP开发软件安装和应用..............................................47 总结和致谢.......................................................................................................................56 参考文件...........................................................................................................................57
基于DSP永磁同时电机控制
设计总说明
伴随电力电子技术现代控制技术和计算机微芯片技术快速发展,在交流调速技术中,变频调速以其优异调速性能和高效节能效果等优点成为了中国外交流调速系统发展方向,现阶段利用计算机电子技术最新发展结果将成熟电机控制理论应用并构建成完整系统已经是该领域内研究一个热点。在交流伺服系统中,
因为电机本身含有非线性和强耦合特征,其控制方法相当复杂,
所以用一般单片机极难取得良好控制效果。
本文中采取TI企业高速数字信号处理器TMS320F2812为控制关键,
利用空间矢量脉宽调制控制算法,能够有效地处理电机强耦合特征;
适时地控制电机转矩、速度和位置状态;
位置环算法实现及其控制。因为TMS230F2812高集成、高性能特点,
使得控制系统含有控制精度高、硬件简单、可靠性能高等优点。系统关键由DSP、IPM(智能功率模块)、检测电动机速度信号和电流信号传感器、光电隔离电路、
电源电路等组成。首先,
传感器将检测到定子相电流信号和转速信号送入DSPADC和QEP,
DSP对检测信号进行对应运算处理后产生PWM脉冲信号,经光电隔离后,
驱动IPM智能功率模块以产生期望电压来控制电机运行。另外,
系统还含有键盘设定及显示功效。
本论文是基于电机矢量控制理论构建了系统模型并以TI企业电机控制专用DSP
芯片TMS320F2812
为关键设计开发了一套针对永磁同时电机变频调速数字化控制系统。
具体介绍了DSP开发软件CCS3.3安装和应用,DSP 2812芯片结构特点,
电机空间矢量控制理论和PWM逆变技术。给出了系统硬件总体方案和关键模块设计,包含主控制电路和部分器件模块选择,
采取空间电压矢量SVPWM调制方法并给出了基于DSP芯片软件编程。
关键字:DSP2812; 空间电压矢量控制;永磁同时电机
Abstract
Asthe rapid development of modern control technology power electronictechnology and computer microchip technology, the speed of regulatingtechnique, frequency control of motor speed, with its excellent speedregulating performance and advantages of high
efficiencyand energy saving effect ,has become a development direction of acspeed
regulatingsystem both at home and abroad, using the latest developments ofcomputer electronic technology at the present stage to apply maturemotor control theory, and build into a complete system has been a hotspot of research in this area.
Thispaper is based on the theory of motor vector control system model,the motor control special DSP chip TMS320F2812 of TI company as thecore was designed,developed a
synchronous motor.
set of digital frequency control of motorspeed control system for permanent magnet
technology presents are introduced in detail in this paper. Givesthe system scheme of
hardware and the main module design,including the selection of main control circuit and some devicemodule.Adopts the space voltage vector SVPWM modulation method andthe software programming based on DSP chip is given
Keywords: DSP2812 ; voltage space vector control; permanent magnetsynchronous moto
1.绪论
1.1交流调速概述
在电力系统中,电动机负荷约占总发电量60%~70%。
电动机作为把电能转换为机械能关键设备,不仅要含有较高机电能量转换效率,而且应能依据生产机械工艺要求,控制和调整旋转速度。
调速系统是伺服系统关键组成部分,其性能对提升产品质量、
提升劳动生产率和节省电能起着决定性影响,所以,
调速系统一直是传动领域一个研究热点。调速系统是由功率部分、
实施部分和控制部分三大要素组成一个有机整体,各部分之间不一样组合,
组成多个多样调速系统。长久以来,
直流电动机因其调速性能优越而掩盖了其结构复杂、难以维护等缺点,
广泛应用于工程中。但直流电动机固有缺点,限制了其向高转速、高电压、
大容量方向发展。
为交流调速技术发展发明了极为有利技术条件和物质基础,促进其快速发展,并进入了实用化阶段。现阶段,交流调速系统不仅性能能够和直流调速系统相媲美,而且成本和维护比直流调速系统更低,可靠性更高。
中国外直流传动装置生产呈下降趋势,而交流变频调速装置生产大幅度上升。
现在已形成直流电动机、异步电动机、永磁同时电动机为实施机构三大类调速系统。
20世纪80年代以来,伴随价格低廉、性能优越永磁材料出现,
永磁同时电机研究和应用得到了空前发展。永磁同时电机含有结构简单、体积小、
重量轻、转动惯量小、调速范围宽、转矩脉动小、无需励磁电流、功率因数高、发烧少等优点,所以广泛应用于数控机床、工业机器人、医疗器械、化工、轻纺、
计算机外设、仪器仪表、微型汽车和电动自行车等领域。
伴随永磁电机控制技术成熟和完善,永磁同时电机应用领域也越来越广泛:从小型到大型、从通常控制驱动到高精度伺服系统、
从日常电器到多种高精尖科技领域均采取永磁电机作为关键驱动电机。
1.2相关领域发展
永磁同时电机应用和发展离不开电机制造技术、永磁材料、传感器、功率器件、
微处理器和控制理论等各方面技术、理论发展和综合。
1.2.1 功率器件发展
电力电子技术是弱电和被控强电之间桥梁。交流调速系统中,
功率主回路中电力半导体是现代电力电子设备心脏和灵魂,
电力半导体器件发展为交流调速系统完善奠定了基础。其发展关键经历了三个阶段:50年代出现半控型器件,由其组成逆变器用于交流调速系统必需附加强迫换向电路; 70年代以后出现本身兼有开通和关断功效全控型高速器件和复合型器件;80年代以后出现智能功率模块(IPM)是微电子技术和电力电子技术相结合产物,
1.2.2 变频技术发展
调速系统必需含有能够同时控制电压幅值和频率电源,而电网提供是恒压恒频电源,所以应该配置变压变频器。从整体结构上看,
电力电子变压变频器可分为交-直-交和交-交两大类目前应用最广泛是由不控整流
和全控型功率开关器件组成脉宽调制逆变器组成变压变频器。
现在脉宽调制技术关键有正弦脉宽调制(SPWM)、电流滞环控制(CHBPWM)、空间矢量脉宽调制(SVPWM)等。SPWM意在输出正弦电压,
CHBPWM意在输出正弦波电流,SVPWM 是针对形成旋转圆形磁场提出,
所以比较适合于电机调速矢量控制和直接转矩控制。1.2.3 电机制造技术和交流调速理论发展
作为传动系统实施部件电机,要求含有体积小、重量轻、输出力矩大、低转动惯量、优良起制动性能、宽调速范围、转矩脉动小等特点。
直流电机控制简单,调速性能好,变流装置简单,长久以来在调速系统中占主导地位。
直流电机因为存在机械换向、维护困难、工作环境要求较高、转动惯量大、效率低、散热条件差等缺点,限制了其向高转速、高电压、大容量方向发展。
交流电机克服了上述直流电机调速系统缺点,所以逐步替换直流电机,成为调速和伺服系统关键实施部件。交流调速电机关键有异步感应电动机、
永磁同时电机(包含永磁同时正弦波电机和直流无刷方波电机)、开关磁阻电机。
异步感应电机结构简单,价格低廉,不需要特殊维护,易于实现高速运行。永磁同时电机无励磁电流,功率因数高,发烧少,结构简单,转动惯量小。
开关磁阻电机转子结构简单,无需励磁,控制策略易于实现,可实现超高速运行。
并取得了显著结果。永磁同时电机发展和永磁材料发展息息相关,中国永磁材料丰富,
中国外感应电机、永磁同时电机、开关磁阻电机调速系统研究全部在不停发展,
交流电机含有强耦合、时变、非线性等特点,为了能够实现高性能交流调速系统,使之含有优良动态和静态特征,且对外界扰动含有不敏感性,
控制策略选择发挥着至关关键作用。优良控制策略不仅能填补硬件上不足,
而且能深入提升系统综合性能。现在,比较成熟交流调速系统控制策略关键有:
VVVF(变压变频)控制、矢量控制和直接转矩控制。VVVF控制对象是电机外部变量:电压和频率, 属于开环控制,无须引入反馈量, 无法反应电机状态,
不能正确控制电磁转矩,所以控制精度不高,而且对于同时电机轻易引发失步。
1971年德国西门子企业F.Blaschke提出了矢量控制理论,
使交流电机控制理论取得质飞跃。矢量控制思想关键是将电机三相电流、电压、磁链从三相静止坐标系中变换到以磁场定向两相旋转坐标系中,
从而实现定转子之间解耦。矢量控制需要进行坐标变换,正确观察转子磁链大小和空间位置,运算量大,
且在异步电机控制中易受到转子参数改变影响。
1.2.4控制理论发展
控制理论发展经历了三个阶段。首先是以传输函数为基础描述、以频域法或根轨迹法作为关键分析和设计方法经典控制理论。
经典控制理论局限于对单输入和单输出系统分析,
对系统状态无法进行观察和进行定性、定量分析。对于多变量、多输入、多输出、控制精度要求较高复杂系统,经典控制理论逐步表现出不足之处。
针对上述经典控制理论不足,基于状态方程或差分方程现代控制理论逐步发展起来。
现代控制理论关键包含线性系统分析和综合、最优控制、系统辨识、
经典控制理论和现代控制理论全部是以被控对象数学模型为基础,最优估量等关键理论分支。
为了分析和综合难以建立数学模型、结构复杂、难以设计控制器系统,估计控制、非线性控制、智能控制也逐步发展起来并得到广泛应用。
1.2.5微处理器发展
实现优良控制策略必需有性能优越控制器作为基础。模拟控制器含有以下优点:抗干扰能力强,不会因峰值噪声影响造成致命误动作;控制信号连续,响应速度快;信号易读取、测量等。不过,模拟控制器也存在以下不足之处:参数不易调整、自适应能力差、难以实现高精度和复杂控制策略、集成度不高、硬件复杂、通用性差等。正是因为模拟控制器上述缺点,
以DSP(数字信号处理器)为关键数字控制器快速发展起来。数字控制一定程度上克服了模拟控制一些缺点,
能实现模拟系统不能实现高复杂和高精度控制算法,含有硬件电路简单、可靠性好、集成度高、易于移植、自适应能力强、数据采集速度快、易于实现监控、
故障诊疗和自恢复等优点,但也存在量化误差、受微处理器运算速率限制等不足之处。
数字控制在传动领域中推广很大程度上取决于控制芯片性能。现在,
在运动控制领域中,TI、AnalogDevice和Motorola企业分别推出了各自专用芯片。电机控制领域中常见是TI企业TMS320F系列DSP芯片。
系列DSP关键经历了TMS320F20x、TMS320F24x和TMS320F28x三代,运算速度逐步加紧,存放容量逐步加大,功效越来越强,功耗也越来越小。
其中TMS320F2812是32位可进行浮点运算定点数字处理器,运算速率达成150MIPS,片上RAM达18k×16bit,片内Flash达128k×16bit, 可扩展RAM达1M×16bit,支持45个外部中止,可扩展SPI、SCI、eCAN、McBSP等串行通讯外设,含有128
两个电机控制外设事件管理器和16路12位高精度AD转换通道等丰富资源,
位保护密码、
此次毕业设计关键内容是利用DSP2812控制永磁同时电机控制,
在CCS3.3环境下编写并编译程序,利用DSP2812开发板和仿真器实现程序仿真。
在研究DSP2812控制永磁同时电机控制之前,
本文先对永磁同时电机和控制芯片发展做了简单介绍,
并具体介绍了空间电压矢量SVPWM调制方法,
最终结合设计对系统硬件部分做了简明说明,并给出了基于DSP芯片软件编程。
2永磁同时电机结构及控制原理
2.1永磁同时电机控制理论发展
交流调速理论包含矢量控制和直接转矩控制。1971年,
由F.Blaschke提出矢量控制理论第一次使交流电机控制理论取得了质飞跃。
矢量控制基础思想是在一般三相交流电动机上设法模拟直流电动机转矩控制规律,在磁场定向坐标上,
将电流矢量分解成为产生磁通励磁电流分量和产生转矩转矩电流分量,
并使得两个分量相互垂直,相互独立,然后分别进行调整。这么交流电动机转矩控制,从原理和特征上就和直流电动机相同了。控制策略选择上是PID控制,
传统数字PID控制是一个技术成熟、应用最为广泛控制算法,其结构简单,调整方便。
2.2永磁交流伺服控制系统
永磁交流伺服控制系统发展趋势以下:
(1)电机调速技术发展趋势是永磁同时电机将会替换原有直流有刷伺服电机和步进电机及感应电机。
作为广泛使用电力变换装置变频器,将朝着节省能源, (2)绿色化发展。因为全球电能80%以上经过电力变换装置来消耗,
2.3.1永磁同时电机内部结构和种类
永磁同时电动机分类方法较多:按工作主磁场原理方向不一样,
可分为径向磁场式和轴向磁场式;按电枢绕组位置不一样,可分为内转子式和外转子式;按转子上有没有开启绕组,
可分为无开启绕组电动机和有开启绕组电动机(又称为异步开启永磁同时电动机);
依据极对数不一样,永磁同时电机可分为单极和多极;依据磁通分布或反电动势波形,可分为永磁无刷直流电动机和永磁同时电动机。
2.3.2 永磁同时电机控制策略
现代交流调速控制策略关键有:矢量控制、直接转矩控制、变压变频控制、
转差频率控制等。针对永磁同时电机,控制策略关键有矢量控制和直接转矩控制,
本节关键介绍矢量控制策略。交流电机全部是多变量、强耦合、时变高阶复杂系统,对于系统分析和控制思想实现全部有很大难度,
假如能将非线性时变问题转换为线性时不变问题,
那么系统分析和控制全部将得到大大简化。矢量变换控制实质是:
以从电机真实物理模型建立起来数学模型为基础,经过一系列坐标变换,
将原来数学模型变换成公共旋转坐标系中等效两相模型(d-q模型),
然后经过对公共坐标系统中相关矢量进行独立控制,
最终利用坐标反变换取得三相静止坐标系中控制量,从而实现对电机控制。
矢量变换中公共坐标系通常是建立在某一磁场(定子磁场、
转子磁场或气隙磁场)矢量位置上,也就是由该磁场矢量确定公共坐标系,所以矢量变换控制也称为磁场定向控制(Field_OrientedControl, 简称FOC)。
所以矢量控制也能够称之为转子磁场定向控制。矢量控制公共坐标系通常以转子磁场定一直建立,
所以多数永磁同时电机调速系统采取矢量变换控制策略。
SVPWM控制是针对形成旋转圆形磁场提出,
其基础思想是把电动机和PWM控制逆变器作为一个整体,
经过选择逆变器不一样开关模式,使电机定子绕组产生圆形旋转磁场。SVPWM控制含有易于实现数字化、电压利用率高、开关频率固定等优点。
电机控制目标是产生圆形旋转磁场,从而产生恒定电磁转矩,所以SVPWM控制技术比较适合于电机控制。
2.3.3永磁同时电机数学模型建立
永磁同时电机数学模型关键包含电压平衡方程、运动方程和转矩方程。在永磁同时电机动态过程中存在永磁体和绕组、绕组和绕组之间相互影响,
电磁关系十分复杂,要正确建立永磁同时电机数学模型十分困难。
所以数学模型建立做以下假设:转子永磁磁场在气隙空间中为正弦分布、
电枢绕组反电势波形为正弦、忽略定子铁心饱和,认为磁路线性、
不计铁心和涡流损耗、转子没有阻尼绕组;
矢量控制中,电机变量,如电流、电压、电动势和磁通等,均由空间矢量来描述,并经过建立电动势动态数学模型,得到各物理量之间关系,经过坐标变换,
在定向坐标系上实现各物理量控制和调整。坐标系和坐标改变在本文中,
将包含到以下多个,对其进行一一介绍。
(1)三相定子坐标系(ABC坐标系)
PMSM定子中有三相绕组,其轴线分别为A,B,C,且相互间互差1200空间电角度。当定子通入三相对称交流电时,就产生了一个旋转磁场。三相定子坐标系定义图2-
1所表示。
C
图2-1三相定子坐标系
(2)定子静止直角坐标系(坐标系)
为了简化分析,定义一个定子静止直角坐标系即坐标系(图2-2),
其α轴和A轴重合,轴超前β轴900。假如在
轴组成两相绕组内通入两相对称正弦电流时也会产生一个旋转磁场,
其效果和三相绕组产生一样。所以能够将两相坐标系替换三相定子坐标系进行分析,
从而达成简化运算目标。 | B | β | α | A |
|
120 |
|
C
图2-2定子静止坐标系
(3)转子旋转直角坐标系(dq坐标系)
转子旋转坐标系固定在转子上(图2.3),其d轴在转子轴线上,q轴超前d轴900,
空间坐标以d轴和参考坐标轴之间电角度确定。
该坐标系和转子一起在空间以转子速度旋转,故相对于转子来说,此坐标系是静止,又称为同时旋转坐标系。
q
图2-3定子静止坐标系和转子旋转坐标系
下面介绍坐标变换关系:
三相定子坐标系和两相定子坐标系变换(3s-2s)
图2-2中绘出了ABC和两个坐标系,为了方便起见,取A轴和α轴重合。
设三相绕组每相有效匝数为N3,两相绕组每相有效匝数为N2,
各相磁动势为有效匝数和电流乘积,其空间矢量均在相关相坐标轴上。
设磁动势波形是正弦分布,当三相总磁动势和两相总磁动势相等时,
则两套绕组瞬时磁动势在α,β轴上投影也相等写成矩阵形式得:
| | | | | | | 1 | | 1 | | 1 | | i | | | | ||
| i | | | N | 3 | | | | 2 | | 2 | | i | A | | | ||
i | ||||||||||||||||||
| i | | | N | 2 | | 0 | 3 | | 3 | | B | | (2.1) | ||||
i C | ||||||||||||||||||
2 | 2 |
考虑变换前后总功率不便,在以前提下,能够证实,匝数比应为
N 3 | 2 | |
N 2 | 3 | (2.2) |
代入式(2.1)得
i i | | | | | 1 | | 1 | | i | | | |||
2 | | | 2 | | 2 | | i B i C | | (2.3) | |||||
3 | 3 | | 3 | |||||||||||
2 | 2 | |||||||||||||
令 | C | 3 | / 2 | 表示从三相坐标系变换到两相坐标系变换矩阵, 则 | ||||||||||
C |
代入式(2.3)和式(2.4)并整理后得:
i i | | | | 2 | 0 | | i A i B | | (2.5) |
3 | |||||||||
1 | 2 | ||||||||
2 |
根据所采取条件,电流变换阵也就是电压变换阵,同时还可证实,
它们也是磁链变换。
两相定子坐标系和两相转子旋转坐标系变换(2s-2r)
图2-3是两相坐标系到两相旋转坐标系变换,简称2s-2r变换,其中s表示静止, r表示旋转。把两个坐标系画在一起,图2-4所表示。两相交流电流i 、i
和两个直流电流 | i d | 、 | i q | 产生一样以同时转速1 | 旋转合成磁动势 | F s | 。 |
因为绕组匝数全部相等,能够消去磁动势中匝数,直接用电流表示。
在图2-5中,d、q轴和矢量Fs(is)全部以转速1旋转,分量id、iq长短不便,
相当于d、q绕组直流磁动势。但、轴是静止,轴和d轴夹角随时间而改变,
所以is在、轴上分量i、i长短也随时间改变,相当于、
绕组交流磁动势瞬时值。由图可见,i、i和id、iq之间存在下列关系
ß 1
qFsi(s )
i
d
iq s id
i
i
sin
cos
cos
cos
i
i
d
q
C2r2s
i
i
d
q
(2.6)
写成矩阵形式,得
式中 | C 2 r2 s | | cos sin | | cos cos | (2.7) |
|
是两相旋转坐标系变换到两相静止坐标系变换矩阵。
对式(3.6)两边全部左乘以变换阵逆矩阵,得:
i d i q | | | cos sin | sin cos | 1 | i i | | | | cos | sini | |
sin | |
则两相静止坐标系变换到两相旋转坐标系变换阵是:
C | 2 | s | / | 2 | r | | | cos | sin cos | (2.9) | 为x轴和d轴夹角, | ||
| sin | | |||||||||||
电压和磁链旋转变换阵也和电流(磁动势)旋转变换阵相同, 其中 |
即转矩角。下面介绍永磁同时电机在各个坐标系下数学模型:
1)永磁同时电机在ABC坐标系上数学模型
对于三相绕组电动机,在忽略了内部绕组电容前提下,其电压矢量和磁链矢量:
s | | L s | I | s | r | (2.10) | ||||||||||||||||||||||||||||||||
U | s | | R s | I | s | | ds | (2.11) | ||||||||||||||||||||||||||||||
dt | ||||||||||||||||||||||||||||||||||||||
其中: | U | s | 为定子电压矢量, | R | s | 和 | L | s | , 分别表示定子电阻和定子电感, s | 和r | ||||||||||||||||||||||||||||
分别表示定子磁链矢量和转子磁链矢量, | ||||||||||||||||||||||||||||||||||||||
其中为 | U | A | 、 | U | B | 、 | U | C | 各相绕组端电压, | i | A | 、 | i | B | 、 | i C | 为各相绕组电流, A | 、 | B | 、 | ||||||||||||||||||
C | 为转子磁场在定子绕组中产生交链, | p | 为微分算子 | d / | dt | 。 |
因为假设转子磁链在气隙中呈正弦分布,依据图2-1及图2-22可知:
A cos
B r cos( 2/3 ) (2.13)
Ccos( 4/ 3 )
另外, 对于星形接法三相绕组,依据基尔霍夫(Kirchhoff)定律有
i A | | i B | | i C | | 0 | (2.14) |
联合式(3.14)、式(3.15)和式(3.16)整理能够得到:
| | | | | R s | | 3 | L | p | | | 0 | | p | | | 0 | | | | | | | | | | |
U U | A | | | 2 | s | R | | L | | | | | | |
| | | p | A | | (2.15) | ||||||
3 | 0 | ||||||||||||||||||||||||||
0 | |||||||||||||||||||||||||||
| B | | | | s | 2 | s | R | | 0 | L | p | | B i C | | | | B C | | | |||||||
C | 0 | 3 | |||||||||||||||||||||||||
0 | |||||||||||||||||||||||||||
| | | | | | | | s | | 2 | s | | | | | | | | | | |||||||
2)永磁同时电机在坐标系上数学模型 | |||||||||||||||||||||||||||
i i | | | | 2 | 0 | | i Ai B | | (2.16) | ||||||||||||||||||
3 | |||||||||||||||||||||||||||
1 | 2 | ||||||||||||||||||||||||||
2 |
依据坐标变换理论,对用此同时电机在ABC坐标系下数学模型进行3s-2s坐标变换,
由式(2.4)、(2.5)和(2.15)可得电压方程就能够得到在αβ坐标系下数学模型。
其中U、U分别为定子电压在轴上分量,L、 L为在轴上电感分量,其中
L L 3/ 2 Ls,f为转子磁链在定子侧耦合磁链,r为转子角速度。
3)永磁同时电机在dq坐标系上数学模型
在dq坐标系下建立永磁同时电机数学模型,
对于分析永磁同时电机控制过程系统稳态和动态性能全部十分方便。
对永磁同时电机在坐标系数学模型进行2s-2r坐标变换,就能够取得永磁同时电机在
dq坐标系下数学模型。由式(3.5)和式(3.8)得到永磁同时电机在dq坐标系下电流方程:
i di q | | | 2 | | cos | | 2 cos() 3 2 sin( ) 3 | 2 cos( sin( 3 2 ) ) 3 | i A i B i C | | (2.18) | ||||||||||||||||||
3 | | sin | | ||||||||||||||||||||||||||
其中 | i | d | 、 | i | q | 分别为定子电流在dq坐标系下分量, 结合式(2.14)整理得 | |||||||||||||||||||||||
i di q | | | | | 2 | sin | | | 6 | cos | | 2 | sin | | i Ai B | | | ||||||||||||
2 | 2 | ||||||||||||||||||||||||||||
| | 6 | sin | | | 2 | cos | | 2 | cos | (2.19) | ||||||||||||||||||
2 | 2 |
永磁同时电机在dq坐标系磁链方程
d L(2.20) i r
qLqiq (2.21)、
|s| d 2q 2 (2.22)
U
电压方程为:
R i p (2.23)
| U s | d U q
转矩方程为:
T | | (2.26) pd | i q | q | i d | ) | ||||||||||||||||||||||||||||||||||||||
运动方程为: | T e | T L (2.27) | J | d | ||||||||||||||||||||||||||||||||||||||||
n | p | dt | ||||||||||||||||||||||||||||||||||||||||||
其中 | J | 为转动惯量, | T L | 为转矩负载。其中d | 、 | q | 、 | U | d | 、 | U | q | 、 | i | d | 、 | i | q | 、 | L d | 、 | |||||||||||||||||||||||
L q | 分别是定子绕组 | d | 、 | q | 轴磁链、电压、电流和电感, | U | s | 、 | s | 、 | R | s | 为定子端电压、 | |||||||||||||||||||||||||||||||
磁链和定子绕组电阻; r | 为转子磁链在定子侧耦合磁链, | n p | 、 | r | 为电机极对数、 | |||||||||||||||||||||||||||||||||||||||
电磁转矩和角频率, | p | 为微分算子 | d / | dt | 。以上即是永磁同时电机在同时旋转坐标 | dq | ||||||||||||||||||||||||||||||||||||||
轴系下数学模型。 |
|
2.4SVPWM基础原理
把逆变器和交流电动机视为一体,根据跟踪圆形旋转磁场来控制逆变器工作,这种控制方法称作“磁链跟踪控制”,磁链轨迹是交替使用不一样电压空间矢量得到,所以又称“电压空间矢量PWM(SVPWM,Space Vector PWM)控制”。
2.4.1空间矢量定义
交流电动机绕组电压、电流、磁链等物理量全部是随时间改变,
分析时常见时间相量来表示,但假如考虑到它们所在绕组空间位置,也能够图所表示,定义为空间矢量uA0,uB0, uC0。
图2-6 电压空间矢量
电压空间矢量相互关系,定子电压空间矢量:uA0、 uB0、
uC0方向一直处于各相绕组轴线上,而大小则随时间按正弦规律脉动,
时间相位相互错开角度也120°。合成空间矢量:
由三相定子电压空间矢量相加合成空间矢量us是一个旋转空间矢量,它幅值不变,是每相电压值3/2倍。当电源频率不变时,
合成空间矢量us以电源角频率1为电气角速度作恒速旋转。当某一相电压为最大值时,合成电压矢量 us就落在该相轴线上。用公式表示,则有
u s u A0 uB0 u C0(2.28) 和定子电压空间矢量相仿,能够定义定子电流和磁链空间矢量Is 和Ψs
2.4.2电压和磁链空间矢量关系
三相电压平衡方程式相加,即得用合成空间矢量表示定子电压方程式为:
u | | R | I | | | dΨ | s | |
s | | s | | s | | d t | | (2.29) |
us—定子三相电压合成空间矢量;
Is —定子三相电流合成空间矢量;
Ψs—定子三相磁链合成空间矢量。
当电动机转速不是很低时,定子电阻压降在式(2.29)中所占成份很小,可忽略不计,则定子合成电压和合成磁链空间矢量近似关系为:
u | dΨ | s | |
s | d t | | (2.30) |
Ψs u s d t |
其中Ψm是磁链Ψs幅值,W1为其旋转角速度。由式(2.31)和式(2.32)可得
| | d | | | | | | | | | | | | j | (t | | π | ) | |
u | | | (Ψ | e | j1 t | ) | | jΨ | e | j1 t | | Ψ | e |
| 1 | | 2 |
| |
s | | d t | m | | | | | 1 m | | | | 1 m | |
| | | |
| (2.33) |
上式表明,当磁链幅值一定时,us大小和W1(或供电电压频率)成正比,其方向则和磁链矢量Ψs正交,即磁链圆切线方向,
磁场轨迹和电压空间矢量运动轨迹关系图所表示,当磁链矢量在空间旋转一周时,电压矢量也连续地按磁链圆切线方向运动,其轨迹和磁链圆重合。
这么电动机旋转磁场轨迹问题就可转化为电压空间矢量运动轨迹问题。
图2-7旋转磁场和电压空间矢量运动轨迹
2.4.3六拍阶梯波逆变器和正六边形空间旋转磁场
(1)电压空间矢量运动轨迹
在常规PWM变压变频调速系统中,异步电动机由六拍阶梯波逆变器供电,这时电压空间矢量运动轨迹是怎样呢?为了讨论方便起见,再把三相逆变器-
8中六个功率开关器件全部用开关符号替换,能够代表任意一个开关器件。
异步电动机调速系统主电路原理图绘出,图2-
图2-8三相逆变器-异步电动机调速系统主电路原理图
开关工作状态:假如图中逆变器采取180°导通型,
功率开关器件共有8种工作状态(见附表),其中6种有效开关状态;
2种无效状态(因为逆变器这时并没有输出电压):上桥臂开关VT1、VT3、VT5全部导通下桥臂开关VT2、VT4、VT6全部导通。
SVPWM 理论基础是平均值等效原理,
即在一个开关周期内经过对基础电压矢量加以组合, 使其平均值和给定电压矢量相等。
在某个时刻,电压矢量旋转到某个区域中,
可由组成这个区域两个相邻非零矢量和零矢量在时间上不一样组合来得到。两个矢量作用时间在一个采样周期内分数次施加,从而控制各个电压矢量作用时间,使电压空间矢量靠近按圆轨迹旋转,
经过逆变器不一样开关状态所产生实际磁通去迫近理想磁通圆,
并由二者比较结果来决定逆变器开关状态,从而形成PWM波形。
设直流母线侧电压为Udc,逆变器输出三相相电压为UA、UB、UC,
其分别加在空间上互差120°三相平面静止坐标系上,能够定义三个电压空间矢量UA(t)、UB(t)、UC(t),它们方向一直在各相轴线上,
而大小则随时间按正弦规律做改变,时间相位互差120°。假设Um为相电压有效值,f为电源频率,则有:
|
可见U(t)是一个旋转空间矢量,它幅值为相电压峰值1.5倍,Um为相电压峰值,且以角频率ω=2πf按逆时针方向匀速旋转空间矢量,而空间矢量U(t)在三相坐标轴(a,b, c)上投影就是对称三相正弦量。
图2-9逆变电路
因为逆变器三相桥臂共有6个开关管,
为了研究各相上下桥臂不一样开关组合时逆变器输出空间电压矢量,特定义开关函数
1上桥臂导通
Sx( x = a、b、c)为:Sx
0下桥臂导通
(Sa、 Sb、Sc)全部可能组合共有八个,包含6个非零矢量Ul(001)、 U2(010)、
U aN U bN U dc , U aN U cN U d c(2.36)
UaNUbN UcN0
求解上述方程可得:Uan=2Ud /3、UbN=-Ud/3、UcN=-Ud/3。
同理可计算出其它多种组合下空间电压矢量,列表以下:
表2.1基础电压空间矢量
由表中八组电压值,就能够求出这些相电压矢量和和相位角。
这八个矢量和就称为基础电压空间矢量,依据其相位角特点分别命名为U000、U0、U60、U120、U180、U240、U300、U111,其中U000和U111称为零矢量。图2-10给出了八个基础电压空间矢量大小和位置。
图2-10电压空间矢量图
其中非零矢量幅值相同(模长为2Udc/3),相邻矢量间隔60度,
而两个零矢量幅值为零在中心。在每一个扇区,选择相邻两个电压矢量和零矢量,根据伏秒平衡标准来合成每个扇区内任意电压矢量,即:
T | U | ref | | T x 0 | U | x | dt | | T | xT y U T x | y | dt | | T x | T T y | 0 | dt | (2-37) |
|
或等效成下式:
U | ref | * | T | | U | x | * | T x | | U | y | * | T | y | | U | 0* | T 0 | (2-38) |
其中,Uref 为期望电压矢量;T为采样周期;Tx、Ty、
T0分别为对应两个非零电压矢量Ux、Uy和零电压矢量U0在一个采样周期作用时间;其中U0包含了U0和U7两个零矢量。矢量Uref在T时间内所产生积分效果值和Ux、Uy、U0分别在时间Tx、Ty、T0内产生积分效果相加总和值相同。
因为三相正弦波电压在电压空间向量中合成一个等效旋转电压,其旋转速度是输入电源角频率,等效旋转电压轨迹将是图3-10所表示圆形。
所以要产生三相正弦波电压,能够利用以上电压向量合成技术,在电压空间向量上,将设定电压向量由U4(100)位置开始,每一次增加一个小增量,
每一个小增量设定电压向量能够用该区中相邻两个基础非零向量和零电压向量给予合成,如此所得到设定电压向量就等效于一个在电压空间向量平面上平滑旋转电压空间向量,
2.4.4 T1, T2, T0计算电压空间矢量:
计算得:
图2-11电压矢量图
其中Tpwm是事先选定,由电力电子器件频率决定,当逆变器单独输出零矢量时,
依据这一特点在Tpwm期间插入零矢量作用时间T0使得Tpwm=T0+T1+T2,即T0=Tpwm-
电动机定子磁链矢量是不变,
2.5电机位置检测原理
光电编码器在电机控制中应用:电机位置检测在电机控制中是十分关键,尤其是需要依据正确转子位置控制电机运动状态应用场所,如位置伺服系统。
电机控制系统中位置检测通常有:微电机解算元件, 光电元件,磁敏元件,
电磁感应元件等。这些位置检测传感器或和电机非负载端同轴连接,
或直接安装在电机特定部位。其中光电元件测量精度较高,
能够正确反应电机转子机械位置,从而间接反应出和电机连接机械负载正确机械位置,
从而达成正确控制电机位置目标。
光电编码器介绍:
光电编码器是经过读取光电编码盘上图案或编码信息来表示和光电编码器相连电机转子位置信息。
依据光电编码器工作原理能够将光电编码器分为绝对式光电编码器和增量式光电编码器,下面我就这两种光电编码器结构和工作原理做介绍。
绝对式光电编码器:绝对式光电编码器图2-12所表示,
她是经过读取编码盘上二进制编码信息来表示绝对位置信息。
编码盘是根据一定编码形式制成圆盘。图1是二进制编码盘,图中空白部分是透光,用“0”来表示;涂黑部分是不透光,用“1”来表示。通常将组成编码圈称为码道,每个码道表示二进制数一位,其中最外侧是最低位,最里侧是最高位。
4位二进制可形成16个二进制数,所以就将圆盘划分16个扇区,
假如编码盘有4个码道,则由里向外码道分别表示为二进制23、22、 21和20,
图2-12绝对式光电编码器
根据码盘上形成码道配置对应光电传感器,包含光源、透镜、码盘、
光敏二极管和驱动电子线路。当码盘转到一定角度时, 扇区中透光码道对应光敏二极管导通, 输出低电平“0”,
遮光码道对应光敏二极管不导通,输出高电平“1”,这么形成和编码方法一致高、低电平输出,从而取得扇区位置脚。
增量式光电编码器:增量式光电编码器是码盘随位置改变输出一系列脉冲信号,然后依据位置改变方向用计数器对脉冲进行加/减计数,以此达成位置检测目标。它是由光源、透镜、主光栅码盘、鉴向盘、光敏元件和电子线路组成。
增量式光电编码器工作原理是是由旋转轴转动带动在径向有均匀窄缝主光栅码盘旋转,
在主光栅码盘上面有和其平行鉴向盘, 在鉴向盘上有两条相互错开 | 90 | 0 | 相位窄缝, |
并分别有光敏二极管接收主光栅码盘透过来信号。工作时,鉴向盘不动,主光栅码盘随转子旋转,光源经透镜平行射向主光栅码盘,
0
经过主光栅码盘和鉴向盘后由光敏二极管接收相位差90近似正弦信号,
再由逻辑电路形成转向信号和计数脉冲信号。为了取得绝对位置角,
在增量式光电编码器有零位脉冲,即主光栅每旋转一周,输出一个零位脉冲,使位置角清零。利用增量式光电编码器能够检测电机位置和速度。
械位置改变速度和改变方向。
下面就我就光电编码器在这几方面应用方法做一下介绍。
使用光电编码器来测量电机转速:
能够利用定时器/计数器配合光电编码器输出脉冲信号来测量电机转速。
具体测速方法有M法、T法和M/T法3种。 M法又称之为测频法,
其测速原理是在要求检测时间Tc内,对光电编码器输出脉冲信号计数测速方法,比如光电编码器是N线,则每旋转一周能够有4N个脉冲,
因为两路脉冲上升沿和下降沿恰好使编码器信号4倍频。现在假设检测时间是Tc,
计数器统计脉冲数是M1, 则电机每分钟转速为:
TC | | T | T | | 4 | NT C | |||
M | 1 | | 4 | N | | | | M | 1 |
T为转一圈所用时间。综上得:
n | | 15 | M | 1 |
| | NT C |
在实际测量中,时间Tc内脉冲个数不一定恰好是整数,而且存在最大半个脉冲误差。假如要求测量误差小于要求范围,比如说是小于百分之一,那么M1就应该大于50。
在一定转速下要增大检测脉冲数M1以减小误差,
能够增大检测时间Tc单考虑到实际应用检测时间很短,
比如伺服系统中测量速度用于反馈控制,通常应在0.01秒以下。由此可见,减小测量误差方法是采取高线数光电编码器。
因为对于给定光电编码器线数N机测量时间Tc条件下,转速越高, 计数脉冲M1越大,
M法测速适适用于测量高转速,
误差也就越小。
该测速方法是在一个脉冲周期内对时钟信号脉冲进行计数方法,图3所表示。
比如时钟频率为fclk,计数器统计脉冲数为M2,光电编码器是N线,每线输出4N个脉冲,那么电机每分钟转速,为了减小误差,期望尽可能统计较多脉冲数,
所以T法测速适适用于低速运行场所。但转速太低,一个编码器输出脉冲时间太长,时钟脉冲数会超出计数器最大计数值而产生溢出;另外,时间太长也会影响控制快速性。
和M法测速一样,选择线数较多光电编码器能够提升对电机转速测量快速性和精度。
M/T法测速是将M法和T法两种方法结合在一起使用,在一定时间范围内,
同时对光电编码器输出脉冲个数M1和M2进行计数, 则电机每分钟转速为n15 M 1 | f | clk | |
2 | |||
实际工作时, 在固定Tc时间内对光电编码器脉冲计数, |
|
在第一个光电编码器上升沿定时器开始定时,同时开始统计光电编码器和时钟脉冲数,定时器定时Tc时间到,对光电编码器脉冲停止计数,
而在下一个光电编码器上升沿到来时刻,时钟脉冲才停止统计。
采取M/T法既含有M法测速高速优点,又含有T法测速低速优点,能够覆盖较广转速范围,测量精度也较高,在电机控制中有着十分广泛应用。
使用增量式光电编码器来判别电机转速方向原理: 0
增量式光电编码器输出两路相位相差90脉冲信号A和B,当电机正转时,
脉冲信号A相位超前脉冲信号B相位90,
此时逻辑电路处理后可形成高电平方向信号Dir。当电机反转时,
脉冲信号A相位滞后脉冲信号B相位90, 此时逻辑电路处理后方向信号Dir为低电平。
2.6光耦隔离电路原理 所以依据超前和滞后关系能够确定电机转向。
现在它已成为种类最多、用途最广光电器件之一。光耦合器通常由三部分组成:
光发射、光接收及信号放大。输入电信号驱动发光二极管(LED),
使之发出一定波长光,被光探测器接收而产生光电流,再经过深入放大后输出。
这就完成了电—光—电转换,从而起到输入、输出、隔离作用。
因为光耦合器输入输出间相互隔离,电信号传输含有单向性等特点,所以含有良好电绝缘能力和抗干扰能力。
又因为光耦合器输入端属于电流型工作低阻元件,所以含有很强共模抑制能力。所以,它在长线传输信息中作为终端隔离元件能够大大提升信噪比。
在计算机数字通信及实时控制中作为信号隔离接口器件,
能够大大增加计算机工作可靠性。 |
|
光耦合器性能及类型:用于传输模拟信号光耦合器发光器件为二极管、光接收器为光敏三极管。当有电流经过发光二极管时,便形成一个光源,该光源照射到光敏三极管表面上,使光敏三极管产生集电极电流,
该电流大小和光照强弱,亦即流过二极管正向电流大小成正比。
因为光耦合器输入端和输出端之间经过光信号来传输,
所以两部分之间在电气上完全隔离,没有电信号反馈和干扰,故性能稳定,
抗干扰能力强。发光管和光敏管之间耦合电容小(2pf左右)、耐压高(2.5KV左右),故共模抑制比很高。输入和输出间电隔离度取决于两部分供电电源间绝缘电阻。另外,因其输入电阻小(约10Ω),对高内阻源噪声相当于被短接。所以,
由光耦合器组成模拟信号隔离电路含有优良电气性能。本文选择了
TLP521光耦隔离器件
副边三极管电流Ic越大。
TLP521原边相当于一个发光二极管,原边电流If越大,光强越强,
做反馈用光耦正是利用“原边电流改变将造成副边电流改变”来实现反馈,
所以在环境温度改变猛烈场所,因为放大系数温漂比较大,
应尽可能不经过光耦实现反馈。另外,使用这类光耦必需注意设计外围参数,
使其工作在比较宽线性带内,不然电路对运行参数敏感度太强,不利于电路稳定工作。
4-9光耦反馈电路
Vo为输出电压,Vd为芯片供电电压。com信号接芯片误差放大器输出脚,或把PWM芯片内部电压误差放大器接成同相放大器形式,
com信号则接到其对应同相端引脚。注意左边地为输出电压地,
当输出电压升高时,TL5211脚(相当于电压误差放大器反向输入端)电压上升,
右边地为芯片供电电压地,二者之间用光耦隔离。图4-9所表示接法工作原理以下:
输出电压减小; 反之,当输出电压降低时, 调整过程类似。
接到电压误差放大器输出端电压是外部电压经电阻R4降压以后得到,不受电压误差放大器电流输出能力影响,
光耦工作点选择能够经过其外接电阻随意调整。
2.7逆变器原理
逆变电路选择是智能功率模块IPM,
智能功率模块设计思想就是为降低在设计开发和制造上成本,
而把IGBT模块进行集成IPM和一般IGBT模块相比,在系统性能和可靠性上有深入提升,使设计和开发变得简单。因为IPM通态损耗和开关损耗全部比较低,使得散热器减小, 所以系统尺寸也减小尤其IPM集成了驱动和保护电路,使系统硬件电路简单可靠,
并提升了故障情况下自保护能力。
1、三相逆变电路结构和工作原理
三个单相逆变电路可组合成一个三相桥式逆变电路,以下图4-3:
图4-3三相桥式逆变电路
负载线电压:uUVuUN'uVN' uWN'uUN'
负载相电压: u UNu UN' uNN'u WN' u NN '
负载中点电压:
负载三相对称时有:uNN'uVN'uWN' 0
开关动作和输出电压关系如表1:
表1开关动作和输出电压关系
基础工作方法——180°导电:
U相上开关管驱动波形
U相下开关管驱动波形
V相上开关管驱动波形
V相下开关管驱动波形
W相上开关管驱动波形
图4-4180°导电方法
每桥臂导电180°,即:在一个正弦周期中,每个桥臂上开关管开通半个周期;各桥臂上下开关管交替导通;各桥臂开始导电角度差120°;
任一瞬间有三个桥臂同时导通。
2、IGBT驱动作用:
在电力电子装置中一个关键组成部分,输入连接到控制电路PWM信号输出端,输出连接到装置各IGBT门极和发射极,
将装置中控制电路产生数字PWM信号进行隔离传输和电平转换和功率放大,实现控制电 路对IGBT进行开通和关断动作控制,从而实现装置功率变换功效。
为了保护弱电控制系统远离高压, 电气隔离是必需。
隔离能够经过以下方法实现光藕脉冲变压器小功率逆变器采取自举驱动电路时,必需把控制板地和功率地隔离开。
IPM(IntelligentPower Module),即智能功率模块,
不仅把功率开关器件和驱动电路集成在一起。而且还内藏有过电压,过电流和过热等故障检测电路,并可将检测信号送到CPU。
它由高速低功耗管芯和优化门极IPM内部集成了逻辑、控制、检测和保护电路,使用起来方便,不仅降低了系统体积,缩短了开发时间,也增强了系统可靠性,适应了当今功率器件发展方向,IPM在功率电子领域得到了越来越广泛应用。
驱动电路和快速保护电路组成。即使发生负载事故或使用不妥,
也能够确保IPM本身不受损坏。IPM通常使用IGBT作为功率开关元件,
内藏电流传感器及驱动电路集成结构。IPM以其高可靠性,使用方便赢得越来越大市场,
伺服驱动,变频家电一个很理想电力电子器件。
尤其适合于驱动电机变频器和多种逆变电源,是变频调速, 冶金机械,电力牵引,
若供电电压低于12.5V,且时间超出toff=10ms,发生欠压保护, 封锁门极驱动电路,
输出故障信号。
(2)过温保护(OT):在靠近IGBT芯片绝缘基板上安装了一个温度传感器,当IPM温度传感器测出其基板温度超出温度值时,发生过温保护,封锁门极驱动电路,输出故障信号。
(3)过流保护(OC):若流过IGBT电流值超出过流动作电流,且时间超出toff,则发生过流保护,封锁门极驱动电路,输出故障信号。为避免发生过大di/dt,大多数IPM采取两级关断模式。其中,VG为内部门极驱动电压,ISC为短路电流值,
IOC为过流电流值, IC为集电极电流, IFO为故障输出电流。
第三章硬件电路设计
3.1系统硬件总体设计
本系统采取经典交直交电压型变频系统将交流电先整流成直流,再由IPM逆变器生成频率可变交流电驱动电机系统。
硬件电路关键分为电源主电路和控制电路两个模块,
电源电路关键由整流滤波和智能功率模块IPM组成逆变器组成,而控制电路由DSP芯片TMS320F2812控制,包含信号检测模块、数据显示模块、数据通讯模块等。
由这些组成了一套功效完善数字变频调速控制系统其系统结构框图4-1以下:
图3-1系统硬件电路图
该系统由DSP芯片负责电流和转速采样,
经过关键控制算法生成电压空间矢量PWM信号,经过光耦隔离电路驱动IPM,从而控制电机系统硬件设计关键是整个控制电路是由微芯片组成数字控制电路,
下面将分别对各个关键模块设计进行具体介绍。
3.2主控芯片DSP2812基础特征
DSP处理器在电机调速中应用发展:传统电机调速系统通常全部是由模拟器件组成,因为设计轻易, 价格相对廉价。然而,模拟调速系统有很多不足:
部分分立模拟器件老龄化和温漂全部将影响整个调速系统性能,
且分立元件增加将影响系统稳定性。因为模拟调速系统由硬件组成,
这给系统长久运行和更新换代带来了很多困难。而数字系统比模拟系统性能要好多:温度漂移将被消除,系统更新换代能够由软件完成,分立元件将降低,
因为它们全部被集成到单个芯片中。在数字系统早期,
大家应用较多是由单片机组成调速系统,不过,
因为单片机在包含大量数据处理或浮点运算矢量控制中难于胜任,所以,
现己逐步被DSP调速系统替换。数字信号处理器(DigitalSignal Prcessor),
是一个尤其适合于进行数字信号处理运算微处理器。自1979年诞生以来, 短短二十年时间,DSP显示了巨大应用潜力,在信号处理、通信、语言、图形图像、
F281x集成外设在下面子部分中进行了说明:三个32位CPU定时器;
两个事件管理器模块(EVA,EVB); 增强型模数转换器(ADC)模块;
增强型控制器局域网络(eCAN)模块; 多通道缓冲串行端口(McBSP)模块;
串行通信接口模块(SCI-A,SCI-B); 串行外设接口(SPI) 模块;数字I/O 和共用引脚功效。
3.3DSP外设介绍
(1)32位CPU定时器0/1/2
在F281x器件上有三个32位CPU定时器(CPU-TIMER0/1/2)。
定时器2为DSP/BIOS预留。能够在用户应用程序中使用CPU定时器0和定时器1。这些定时器和出现在事件管理器模块(EVA,EVB)中通用(GP)定时器不一样。
(2)事件管理器模块(EVA,EVB)
事件管理器模块包含通用(GP)定时器、完全比较/PWM单元、捕捉单元、和正交编码器脉冲(QEP)电路。EVA和EVB定时器、比较单元、
和捕捉单元功效一致。然而EVA和EVB定时器/单元名称不一样。
事件管理器A和B含有完全一样外设寄存器集,对于EVA外设寄存器从7400h开始,对于EVB则从7500h开始。这个部分中段落描述了使用EVA命名规则GP定时器、比较单元、捕捉单元、和QEP功效。在功效方面,这些段落一样适适用于EVB-然而,模块/信号名称不一样。
(3)通用(GP)定时器
有两个GP定时器。GP定时器x(对于EVA,x=1或2;对于EVB,x=3或4)GP定时器可独立运行或相互之间同时。
和每个GP定时器相关比较寄存器可被用于比较功效和PWM波形生成。
带有可编程分频器内部或外部输入时钟被用于每个GP定时器。
对于每个处于上计数或上计数/倒计数运行中GP定时器来说,有三个连续运行模式。
GP定时器2为捕捉单元和正交脉冲计数运行提供时基。根据需要,
周期和比较寄存器双缓冲可实现定时器(PWM)周期和比较/
PWM脉冲宽度可编程改变。
(4)完全比较单元
在每个事件管理器上有三个完全比较单元。
这些比较单元使用GP定时器作为时基并为使用可编程死区电路比较和PWM波形生成产生六个输出。这六个输出中每一个输出状态可独立配置。
比较单元比较寄存器是双缓冲,从而可实现所需比较/PWM脉冲宽度可编程改变。
(5)可编程死区发生器
对于每一个比较单元输出, 可单独启用/禁用死区生成。
死区发生器电路为每个比较单元输出信号产生两个输出(带有或不带有死区)。经过双缓冲ACTRx寄存器,死区发生器输出状态可根据需要配置和改变。
(6)PWM波形生成
每一个事件管理器可同时产生多达8个PWM波形(输出):带有可编程死区三个完全比较单元生成三个独立对(六个输出),和GP定时器比较生成两个独立PWM。
(7)双更新PWM模式
F281x事件管理器支持“双更新PWM模式。”这个模式是指一个PWM运行模式,在这个模式中,一个PWM脉冲前沿和后沿位置可在每个PWM周期内独立修改。
为了支持这个模式,
确定一个PWM脉冲边缘位置比较寄存器必需许可(缓冲)比较值在一个PWM周期开始
F281x事件管理器中比较寄存器是完全缓冲而且支持3个比较值重新载入/更新(缓冲器
时更新一次,在一个PWM周期中间另外一个时间更新一次。
)上被重新载入。双更新PWM模式可经过使用这个用于比较值重新载入条件实现。
(8)PWM特征
PWM特征以下:16位寄存器;针对PWM输出引脚正确宽范围可编程死区;
PWM摇频所需PWM载波频率改变;
PWM脉冲宽度内改变和每个PWM周期以后所需改变;外部可屏蔽电源和驱动保护中止;脉冲波形发生器电路,用于不对称、对称、和四空间矢量PWM波形可编程生成;使用比较和周期寄存器自动重新载入可大大降低CPU开销在PDPINTx引脚被驱动至低电平而且在PDPINTx信号验证以后,PWM引脚被驱动至高阻抗状态。
PDPINTx引脚(验证以后)被反应在COMCONx寄存器位8上。
PDPINTA引脚状态被反应在COMCONA寄存器位8上。
PDPINTB引脚状态被反应在COMCONB寄存器位8上。;
EXTCON寄存器位提供针对每个PWM信号正确独立跳闸触点控制选项。
(9)捕捉单元
捕捉单元为不一样事件或转换提供一个日志统计功效。
当在捕捉输入引脚上检测到所选转换,CAPx(对于EVA,x=1, 2或3;对于EVB,x=4, 5或6)时,定GP定时器计数器值被捕捉并存放在两级深FIFO堆栈内。
比较单元由三个捕捉电路组成。
(10)正交编码器脉冲(QEP)电路
两个捕捉输入(对于EVA,CAP1和CAP2;对于EVB,
CAP4和CAP5)可被用于片载QEP电路和正交编码器脉冲对接。
在芯片上实施这些输入完全同时。方向或前沿正交脉冲序列被检测到,
)。
而且GP定时器2/4被两个输入信号上升和下降边缘增量或减量(每个输入脉冲频率四倍
(11)外部ADC转换开始
EVA/EVB转换开始(SOC)可被发送到一个外部引脚(低EVASOC/低EVBSOC)用于外部ADC接口。低EVASOC和低EVBSOC分别和低T2CTRIP和低T4CTRIP复用。
(12)增强型模数转换器(ADC)模块
ADC模块功效包含:含有内置S/H12位ADC内核;模拟输入:
0.0V至3.0V(高于3.0V电压产生满量程转换结果);快速转换率:25MHzADC时钟,12.5每秒百万次采样(MSPS)时为80ns;16通道,被复用输入;
自动定序功效在单次会话中可提供多达16次“自动转换”。
可将每次转换编程为选择16个输入信道中任何一个。 ; 序列发生器可运行为2个独立8态序列发生器,
或作为1个较大16态序列发生器(即2个级联8态序列发生器)用于存放转换值16个结果寄存器(可分别寻址)作为转换开始(SOC)序列源多个触发器,S/W-软件立即开启,EVA- 事件管理器A(EVA内多个事件源),EVB- 事件管理器B(EVB内多个事件源),灵活中止控制许可每个序列结束(EOS)或其它EOS上中止请求。,
序列发生器可运行在“开启/停止”模式,方便多个“时序触发器”进行同时转换。,EVA和EVB触发器可独立运行在双序列发生器模式,
采样保持(S/H)采集时间窗口含有独立预分频控制。
(13)增强型控制器局域网络(eCAN)模块
CAN模块有下列特征:和CAN协议,版本2.0B完全兼容,支持高达1Mbps数据速率,32个邮箱,低功耗模式,总线活动上可编辑唤醒,对远程请求消息自动回复,
由一个特定消息同时32位当地网络时间计数器(和邮箱6协同通信),自测模式,
丢失仲裁或错误情况下帧自动重传,
(14)多通道缓冲串行端口(McBSP)模块
McBSP模块有以下特征:和TMS320C54x/TMS320C55xDSP器件内McBSP兼容;全双工通信; 双缓冲数据寄存器,许可连续数据流;用于接收和发送独立成帧和时钟;外部移位时钟生成或一个内部可设定频率移位时钟;包含8, 12, 16, 20, 24,
或32位在内宽数据尺寸选择;以LSB或MSB开头8位数据传输;
用于帧同时和数据时钟可编程极性;高度可编程内部时钟和帧生成;支持A-bis模式;到工业标准CODEG、模拟接口芯片(AIC)、和其它串行连接A/D和D/A器件直接接口;和SPI兼容器件一起工作;用于发送通道两个16x16级FIFO。
(15)串行通信接口(SCI) 模块
F281x器件包含两个串行通信接口(SCI) 模块。
SCI模块支持CPU和其它异步外设之间使用标准非归零码(NRZ)格式数字通信。
SCI接收器和发射器是双缓冲,而且它们中每一个有其本身独立使能和中止位。
两个器件全部可独立或同时地运行在全双工模式。为了确保数据完整性,SCI在中止检测、奇偶性、超载、和组帧错误方面对接收到数据进行检验。
经过一个16位波特率选择寄存器,可将比特率设定为超出65000个不一样速度。
(16)串行外设接口(SPI)模块
F281x器件包含四引脚串行外设接口(SPI)模块。SPI是一个高速、同时串行I/O端口,
此端口可在设定位传输速率上将一个设定长度(1至16位)串行比特流移入和移出器件。通常,SPI用于DSP和外部外设或其它处理器之间通信。经典应用包含外部I/O或从诸如移位寄存器、显示驱动器、和ADC等器件外设扩展。
(17)GPIOMUX 多器件通信由SPI主控/受控操作支持。
寄存器)。假如被选择用于“数字I/O”模式,
提供寄存器用来配置引脚方向(经过GPxMUX寄存器)而且限定输入信号来去除有害噪声(经过GPxQUAL寄存器)。假如被配置为“数字I/O”模式,
提供一个附加寄存器来设定独立I/O信号(经过GPxSET寄存器)、清除独立I/O
信号(经过GPxCLEAR寄存器)、切换独立I/O信号(经过GPxTOGGLE寄存器)、或读取/写入独立I/O信号(经过GPxDAT寄存器)
3.4主电路模块设计
3.4. 1 整流滤波电路设计
整流电路作用是把交流电转换成直流电,严格地讲是单方向大脉动直流电,而滤波电路作用是把大脉动直流电处理成平滑脉动小直流电,
整流原理是利用二极管单向导电性可实现整流。
整流分为半波整流和全波桥式整流,本文选择RC三相桥式整流电路,其整流过程以下:
图4-2整流电路
需要经过滤波电路消除其脉动成份,使其更靠近于直流。经过整流后电源电压即使没有交流改变成份,但其脉动较大,
3.4.2 逆变电路设计该企业20世纪80年代末就致力于研究开发代智能保护功效功率模块,
现在已生产出用于110KW变频器IPM模块,居世界领先水平。
下图4-7为型号为PM30CSJ060(VCES=600V,IC=30A)六单元IPM原理图。
模块中封装了6个IGBT,模块内部也集成了对各个IGBT驱动及保护电路。P、N为直流输入或输出,U、V、W为三相输入或输出VUP1-VUPC,VVP1-VVPC, VWP1-VWPC, VN1-VNC模块内部电源,经典值为15V,工作时应该在13.5V~16.5V之间。
UFO,VFO, WFO和FO分别为对应故障输出引脚。UP,WP, VP、 UN,WN、VN分别为对应IGBT控制引脚。
图4-7PM10CSJ060原理图
3.4.3测速电路设计
我们是经过安装在电机轴上光电编码器提供。光电编码器分为增量式、
永磁同时电机闭环控制所需电机转子位置和转速信息,
绝对式和混合式三种,
本系统最终采取了增量式编码器。
增量式光电编码器工作原理是依据电机旋转产生AB两相相位互差90˚正交编码脉冲个数
和频率,分别确定电机角位置和角速度。
图3-12 光电编码器接口电路图
3.4.4通信接口电路设计
1)SCI通信接口电路
串行数据接口是一个双线异步串口,
C19
C17104PF
C16 104PF2 16 104PF
104PF3 V+VCC 4 +3.3C20
1 C1+ C2+ 5
C1-C2-
UART1-TX 11 T1IN T1OUT 14
UART1-RX 12 R1OUT R1IN 13
R3110K 10 T2IN T2OUT 7
9
6 R2IOUT R2IN 8
15
GND C18 V-
ST3232
GND
104PF
GND
2)SPI通信接口电路 | 图3-2 SCI接口电路图 |
|
|
SPI是同时串行高速I/O口,
它许可长度可编程串行位流以可编程位传输速度移入或移出器件,
且可编程串行位流长度范围为1-16。
通常SPI被用于外部外设和其它处理器和DSP处理器之间通信。
应用较多有如移位寄存器、
显示驱动器及DAC和日历时钟等器件所进行外部I/O口或器件扩展。
本永磁同时电机控制系统SPI接口设计成串行EEPROM,选择了256K*8位EEPROM,
用于读写存放交流伺服系统参数变量对应相关故障信息、设置状态或数值。
电路设计图3-3所表示:
3.3V
10K 10K 10K U 5 3.3V RC22 RC21 RC7
A T25H P256
图3—3SPI接口电路图
3.4.5最小系统电路
TMS320LF2407A最小系统电路是确保整个控制系统正常运行基础电路,它包含,Title
晶振、复位电路、电源电路。因为片内有足够RAM和ROM所以不需扩展存放电路。
SizeN um ber Revision
A3
6 | D ate: | 16-Jun-2011 | Sheet of | 8 |
File: | H :\件件件件件\tuzhi\Sheet3.D DB | D raw n By: | ||
7 |
3.5LED显示电路
键盘控制采取HD7279芯片。
动芯片。该芯片同时还可连接多达64键键盘矩阵,
HD7279是一片含有串行接口可同时驱动8位共阴式数码管(或64只独立LED)智能显示驱
LED显示电路图4-10所表示。
TLP559(P559)由一个高输出砷化镓铝发光二极管和一个高速单片光电二极管-光耦隔离电路
晶体管探测器组成。
TLP559(P559)是8脚DIP封装。TLP559(P559)内部无基极连接,
并在光电探测器芯片上集成了法拉第静电屏蔽,可提供有效共模噪音瞬态免疫。所以,TLP559(P559)适适用于嘈杂环境条件下应用。
TLP559(P559)特征
隔离电压:2500Vrms(最小),转换速率:
tpHL=0.3μs,tpLH=0.5μs(经典)(RL=1.9kΩ),兼容TTL,UL 认证:UL1577,file
no.E67349。
TLP559(P559)应用
数字逻辑地面隔离,线路接收器,微处理器系统接口,开关式电源反馈控制,晶体管逆变器。
程序子函数说明
IPARK.C
#include"IQmathLib.h" // Include header for IQmath library#include "DMCTYPE.H"
#include"ipark.h"
voidipark_calc(IPARK *v)
_iq Cosine,Sine; {
Cosine = _IQcosPU(v->Angle);
v->Alpha =_IQmpy(v->Ds,Cosine) - _IQmpy(v->Qs,Sine);
v->Beta =_IQmpy(v->Qs,Cosine) + _IQmpy(v->Ds,Sine);
}
PARK.C
#include "IQmathLib.h" // Includeheader for IQmath library
#include "DMCTYPE.H"
#include "park.h"
void park_calc(PARK *v) {
_iq Cosine,Sine;
//Using look-up IQ sine table
Sine = _IQsinPU(v->Angle);
Cosine = _IQcosPU(v->Angle);
v->Ds = _IQmpy(v->Alpha,Cosine) + _IQmpy(v->Beta,Sine); v->Qs = _IQmpy(v->Beta,Cosine) - _IQmpy(v->Alpha,Sine); }
F281XPWM.C
#include"DSP281x_Device.h"
#include"f281xpwm.h"
voidF281X_EV1_PWM_Init(PWMGEN *p)
EvaRegs.T1PR = p->PeriodMax; // Init Timer 1 periodRegister
{
EvaRegs.ACTRA.all = ACTR_INIT_STATE; // Init ACTRA Register
EvaRegs.COMCONA.all = 0xA200; // Init COMCONA Register EvaRegs.CMPR1 = p->PeriodMax; // Init CMPR1 Register
EvaRegs.CMPR2 = p->PeriodMax; // Init CMPR2Register
EvaRegs.CMPR3 = p->PeriodMax; // InitCMPR3 Register
EALLOW; // Enable EALLOW
GpioMuxRegs.GPAMUX.all |= 0x003F; // Setting PWM1-6 asprimary output pins
EDIS; // Disable EALLOW
}
voidF281X_EV1_PWM_Update(PWMGEN *p)
{
int16MPeriod;
int32 Tmp;
//Compute the timer period (Q0) from the period modulation input(Q15) Tmp = (int32)p->PeriodMax*(int32)p->MfuncPeriod;
// Q15 = Q0*Q15
MPeriod = (int16)(Tmp>>16) + (int16)(p->PeriodMax>>1); // Q0 = (Q15->Q0)/2 + (Q0/2)
EvaRegs.T1PR = MPeriod;
Tmp = (int32)MPeriod*(int32)p->MfuncC1;
//Compute the compare 1 (Q0) from the PWM 1&2 duty cycle ratio(Q15)
// Q0 = (Q15->Q0)/2 + (Q0/2)
// Compute the compare 2(Q0) from the PWM 3&4 duty cycle ratio (Q15)
Tmp =(int32)MPeriod*(int32)p->MfuncC2;
// Q15= Q0*Q15
EvaRegs.CMPR2 = (int16)(Tmp>>16) +(int16)(MPeriod>>1);
// Q0 = (Q15->Q0)/2 + (Q0/2)
// Compute the compare 3 (Q0) from the PWM 5&6 duty cycleratio (Q15)
Tmp = (int32)MPeriod*(int32)p->MfuncC3;
// Q15 = Q0*Q15
EvaRegs.CMPR3 = (int16)(Tmp>>16) + (int16)(MPeriod>>1);
//Q0 = (Q15->Q0)/2 + (Q0/2)
}
SVGEN_DQ.C
#include"IQmathLib.h" // Include header for IQmath library
#include"DMCTYPE.H"
#include"svgen_dq.h"
voidsvgendq_calc(SVGENDQ *v)
{
_iqVa,Vb,Vc,t1,t2;
Uint32Sector = 0; // Sector is treated as Q0 - independently with global
Va = v->Ubeta; // Inverse clarke transformation
0.8660254 = sqrt(3)/2 Vc = _IQmpy(_IQ(-0.5),v->Ubeta) -_IQmpy(_IQ(0.8660254),v->Ualpha); //
0.8660254 = sqrt(3)/2
// 60 degree Sector determination
if(Va>_IQ(0))
Sector = 1;
if (Vb>_IQ(0))
Sector = Sector + 2;
if (Vc>_IQ(0))
Sector = Sector + 4;
// X,Y,Z (Va,Vb,Vc) calculations
Va= v->Ubeta; // X =Va
Vb = _IQmpy(_IQ(0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualpha); // Y = Vb Vc = _IQmpy(_IQ(0.5),v->Ubeta) -_IQmpy(_IQ(0.8660254),v->Ualpha); // Z = Vc if (Sector==0) //Sector 0: this is special case for (Ualpha,Ubeta) = (0,0)
{
v->Ta = _IQ(0.5);
v->Tb = _IQ(0.5);
v->Tc = _IQ(0.5);
}
if (Sector==1) // Sector 1: t1=Z and t2=Y (abc ---> Tb,Ta,Tc)
{
t2 = Vb; t1 = Vc;
v->Tc = v->Ta+t2; // tcon =taon+t2
}
else if (Sector==2) // Sector 2: t1=Y andt2=-X (abc ---> Ta,Tc,Tb)
{
t1 = Vb;
t2 =-Va;
v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // taon= (1-t1-t2)/2
v->Tc = v->Ta+t1; // tcon = taon+t1
v->Tb = v->Tc+t2; // tbon = tcon+t2
}
elseif (Sector==3) // Sector 3: t1=-Z and t2=X (abc ---> Ta,Tb,Tc){
t1 = -Vc;
t2 = Va;
v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // taon =(1-t1-t2)/2 v->Tb = v->Ta+t1; // tbon =taon+t1
v->Tc = v->Tb+t2; // tcon =tbon+t2
}
else if (Sector==4) // Sector 4: t1=-X and t2=Z (abc --->Tc,Tb,Ta) {
t1 = -Va;
v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tcon =(1-t1-t2)/2
t2 = Vc;
}
else if (Sector==5) // Sector 5: t1=X and t2=-Y (abc---> Tb,Tc,Ta)
{
t1 = Va;
t2 = -Vb;
v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tbon =(1-t1-t2)/2
v->Tc = v->Tb+t1; // tcon = tbon+t1
v->Ta = v->Tc+t2; // taon = tcon+t2
}
else if (Sector==6) // Sector 6: t1=-Y and t2=-Z (abc ---> Tc,Ta,Tb)
{
t1 = -Vb;
t2 = -Vc;
v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); // tcon =(1-t1-t2)/2
v->Ta = v->Tc+t1; // taon =tcon+t1
v->Tb = v->Ta+t2; // tbon = taon+t2
}
//Convert the unsigned GLOBAL_Q format (ranged (0,1)) -> signedGLOBAL_Q format (ranged (-1,1))
v->Ta = _IQmpy(_IQ(2.0),(v->Ta-_IQ(0.5)));
v->Tb = _IQmpy(_IQ(2.0),(v->Tb-_IQ(0.5)));
} v->Tc = _IQmpy(_IQ(2.0),(v->Tc-_IQ(0.5)));
#include "DMCTYPE.H"
#include "rmp_cntl.h"
void rmp_cntl_calc(RMPCNTL *v)
{
_iq tmp;
tmp = v->TargetValue - v->SetpointValue;
if(_IQabs(tmp) > _IQ(0.0000305))
{
v->RampDelayCount += 1;
if (v->RampDelayCount >= v->RampDelayMax)
{
if (v->TargetValue >= v->SetpointValue)
{
v->SetpointValue += _IQ(0.0000305); // 0.0000305 isresolution of Q15 if (v->SetpointValue > v->RampHighLimit)
v->SetpointValue = v->RampHighLimit;
v->RampDelayCount = 0;
}
else
{
v->SetpointValue -= _IQ(0.0000305); // 0.0000305 isresolution of Q15
v->SetpointValue = v->RampLowLimit; if(v->SetpointValue < v->RampLowLimit)
}
}
else v->EqualFlag = 0x7FFFFFFF;
}
RAMPGEN.C
#include "IQmathLib.h" // Include header for IQmath library
#include "DMCTYPE.H"
#include "rampgen.h"
void rampgen_calc(RAMPGEN *v)
{
//Compute the angle rate
v->Angle += _IQmpy(v->StepAngleMax,v->Freq); //Saturate the angle rate within (-1,1)
if (v->Angle>_IQ(1.0))
v->Angle -= _IQ(1.0);
else if (v->Angle<_IQ(-1.0))
v->Angle += _IQ(1.0);
//Compute the ramp output
v->Out = _IQmpy(v->Angle,v->Gain) + v->Offset; //Saturate the ramp output within (-1,1)
if (v->Out>_IQ(1.0))
else if (v->Out<_IQ(-1.0)) v->Out -= _IQ(1.0);
2. 第五章软件设计
5.1DSP开发软件安装和应用
5.1.1CCS 概述
CCS提供了基础代码生成工具,它们含有一系列调试、分析能力。CCS支持以下所表示开发周期全部阶段。包含设计阶段(概念性计划)、
编程和编译(创建工程文件、编写源程序和配置文件)、调试(语法检验、
探测点设置和日志保留)、分析(实时调试、统计和跟踪)。CCS组成及接口见图2-1。
图5-1CCS 组成及接口
5.1.2代码生成工具
代码生成工具奠定了CCS所提供开发环境基础。一个经典软件开发以下:
1)C 编译器(Ccompiler) 产生汇编语言源代码。
它一边创建可实施模块,一边完成重定位和决定外部参考。
连接器输入是可重定位目标文件和目标库文件。
4)归档器(archiver)许可你把一组文件搜集到一个归档文件中。
归档器也许可你经过删除、替换、提取或添加文件来调整库,汇编语言工具用户指南。
5)助记符到代数汇编语言转换公用程序(mnimonic_to_algebricassembly translator utility)把含有助记符指令汇编语言源文件转换成含有代数指令汇编语言源文件。
6)你能够利用建库程序(library_build
utility)建立满足你自己要求“运行支持库”。
7)运行支持库(run_time_support libraries) 它包含C编译器所支持ANSI
标准运行支持函数、编译器公用程序函数、浮点运算函数和C编译器支持I/O函数。 8)十六进制转换公用程序(hexconversion utility) 它把COFF目标文件转换成TI-Tagged、ASCII-hex、 Intel、 Motorola-S、或Tektronix等目标格式,
能够把转换好文件下载到EPROM编程器中。
9)交叉引用列表器(cross_referencelister)它用目标文件产生参考列表文件,可显示符号及其定义,和符号所在源文件。
10)绝对列表器(absolutelister)它输入目标文件,输出.abs文件,经过汇编.abs文件可产生含有绝对地址列表文件。假如没有绝对列表器,这些操作将需要冗长乏味手工操作才能完成。
5.1.3CCS集成开发环境
CCS集成开发环境(IDE)许可编辑、编译和调试DSP目标程序。
CCS许可编辑C源程序和汇编语言源程序,5.1.4 编辑源程序
1)用彩色加亮关键字、注释和字符串。
2)以圆括弧或大括弧标识C程序块,查找匹配块或下一个圆括弧或大括弧。3)在一个或多个文件中查找和替换字符串,能够实现快速搜索。
4)取消和反复多个动作。
5)取得“上下文相关”帮助。
6)用户定制键盘命令分配。
5.1.5创建应用程序
应用程序经过工程文件来创建。工程文件中包含C源程序、汇编源程序、目标文件、库文件、连接命令文件和包含文件。编译、汇编和连接文件时,能够分别指定它们选项。在CCS中,能够选择完全编译或增量编译,能够编译单个文件,
也能够扫描出工程文件全部包含文件隶属树,也能够利用传统makefiles文件编译。
CCS提供下列调试功效:设置可选择步数断点、在断点处自动更新窗口、查看变量、观察和编辑存放器和寄存器、观察调用堆栈、
对流向目标系统或从目标系统流出数据采取探针工具观察,并搜集存放器映象、绘制选定对象信号曲线、估算实施统计数据、
观察反汇编指令和C指令CCS提供GEL语言,它许可开发者向CCS菜单中添加功效。
5.1.6安装CCS3.3
1)双击打开CCS3.3.rar中setup.exe进行安装,自动解压后进入安装界面图2-3所表示;
图5-3
2)点击Next,出现图5-4所表示界面,直接点击Next;
图5-4
3)出现图5-5所表示界面,选择Iaccept the License Agreement, 点击Next;
图5-5
4)出现图5-6所表示界面,选择“TypicalInstall”;
图5-6
5)出现图5-7所表示安装目录选择界面,能够在默认目录下安装,
也可装到其它盘符下,但一定要在英文目录下安装,点击Next, 出现图5-
8所表示确定界面,确定无误后点击Next;
图5-7
图5-8
6)进入安装界面, 图5-9所表示,等候片刻后开始安装;
图5-9
图5-10
7)安装TDS510USB5.0驱动,添加图5-11所表示,保留确定后打开CCS;
图5-11
图5-12
8)创建新工程
根据以下步骤创建一个新工程:
C:\CCStudio_v3.1\myprogects文件下新建一个practice文件夹。 (1)假如CCS安装在C:\CCStudio_v3.1,
(3).选择Project->New 。
(4).在ProjectName框里输入工程名:(比如:practice)。
(5).在Location框里输入或浏览第一步创建文件夹。
(6).工程类型默认为可实施(.out)文件,目标设置为CCS目前配置。
(7).点击Finish,CCS 创建一个叫做practice.prj工程文件。
文件里存放了工程配置和工程所需要多种相关文件。
(8).选择 Project->Addfiles to Project, 把文件加到工程里。
你也能够在左边工程视图窗口里右击工程,选择 Addfiles to Project 。
(9).从你所创建文件夹里添加main.c,DoLoop.c, 和lnk.c(映射内存连接命令文件)。
浏览C:\CCStudio_v3.1\c6000\cgtools\lib\目录,为所配置目标添加对应rts.lib。
(10).你无须手工添加包含文件到工程里,因为编译程序时候,
程序会自动找到它们。在编译一个工程后,包含文件会出现在工程视图里。
构建程序创建了一个功效程序后,你就能够构建(build)它。
构建关键完成编译(compile)和连接(link)。第一次使用全构建(Build
All)功效便能够构建工程,以后能够使用增量构建(Buildthe project incrementaly)。
一个输出窗口将会显示构建过程和状态。当构建完成后,输出窗口将会显示Buildcomplete 0 errors, 0 warnings。当工程选项或文全部件发生改变后,实施RebuildAll命令重建工程。
(11).加载程序程序成功构建后,实施File->LoadProgram 加载程序。
加载过程是将上述构建成功,生成可实施文件加载到目标板,目标板能够是软件仿真环境,也能够是硬件目标板。默认况下,
文件放在里面。点击Open加载程序。跳转到主函数(Goto Main )
CCS集成开发环境将会在你工程路径下创建一个Debug子目录,把生成.out
这个区域被称为选择区域(selectmargin)。能够在这个区域设置断点(breakpoint ), 探针(probe)等使用断点 (Using Breakpoints)
把光标置于所需行上,按F9设置一个断点。另外,你还能够经过选择Toggle
Breakpoint工具条按钮创建断点。设置断点后,一个红色图标将出现在选择空白区。
再按F9或ToggleBreakpoint 按钮将除去断点。main.c中,在
DoLoop行设置断点(Input1,Input2, Weights, Output, LOOPCOUNT), 当程序暂停在Main函数处时,经过按F5,选择Debug->Run,或选择Run工具条来运行程序。一旦程序运行到断点出,程序将挂起。
附录
#include "DSP281x_Device.h" // DSP281x HeaderfileInclude File
#include "DSP281x_Examples.h" //DSP281x Examples Include File
#include "IQmathLib.h" // Include header for IQmath library
#include"pmsm.h"
#include "parameter.h"
#include<math.h>
// 主中止
interruptvoid MainISR(void);
void init_evb(void); // EVBPWM 9 :
void scia_loopback_init(void); // SCI寄存器设置 voidscia_fifo_init(void); // 初始化SCI_FIFO
void spi_fifo_init(void);
unsigned int spi_read(void); //spi接收
voidspi_xmit(int a);
void set_cs(void);
voidreset_cs(void);
// 全局变量定义
longi=0;
long m=0;
unsigned int Resolver[500];
Uint16 Resol_Mech_Theta = 0;
Uint16Rotor_Mech_Theta = 0;
Uint16Rotor_Elec_Theta_Temp=0;
float32 Ele_Theta_temp;
_iqRotor_Elec_Theta;
// Adc(内部AD)变量
Uint16Voltage1;
Uint16Voltage2;
Uint16Voltage3;
Uint16Voltage4;
Uint16SendChar; // SCI发送变量
Uint16ReceivedChar;
float32 VqTesting = 0.5; // Vq testing (pu)float32 VdTesting= 0; // Vd testing (pu)
int16 DlogCh1 = 0; //
int16 DlogCh2 = 0;
int16DlogCh3 = 0;
int16 DlogCh4 = 0;
Uint16 IsrTicker = 0;
Uint16 BackTicker = 0;
// CLARKE, PARK, IPARK:初始值
CLARKE clarke1 =CLARKE_DEFAULTS;
PARK park1 = PARK_DEFAULTS; IPARK ipark1 = IPARK_DEFAULTS;
// PWM: 初始值
PWMGENpwm1 = PWMGEN_DEFAULTS;
// SVPWM: 初始值
SVGENDQsvgen_dq1 = SVGENDQ_DEFAULTS; // RMPCNTL: 初始值
RMPCNTLrc1 = RMPCNTL_DEFAULTS;
// RAMPGEN: 初始值
RAMPGENrg1 = RAMPGEN_DEFAULTS;
// DLOG: 初始值
DLOG_4CHdlog = DLOG_4CH_DEFAULTS;
void main(void) // 主程序
在DSP281x_SysCtrl.c文件中
InitSysCtrl();
// GPIO为片内外设
EALLOW;
GpioMuxRegs.GPAMUX.all = 0x003F; // GPIOA0-GPIO5 :EVA PWM 1-6
GpioMuxRegs.GPBMUX.bit.PWM9_GPIOB2 = 1; // EVB PWM 9 : Sample
GpioMuxRegs.GPFMUX.all = 0x003f; //GPIOF4 : SCITXDA
EDIS;
// 严禁CPU中止
DINT; |
|
// PIE初始化,严禁PIE中止,PIE中止标志清零,在DSP281x_PieCtrl.c文件中 InitPieCtrl();
// 严禁CPU中止,CPU中止标志清零
IER = 0x0000;
IFR = 0x0000;
// PIE向量表初始化,在DSP281x_PieVect.c文件中
InitPieVectTable();
// Adc(内部AD)初始化,在DSP281x_Adc.c文件中
InitAdc();
AdcRegs.ADCTRL3.bit.ADCCLKPS = 8;
AdcRegs.ADCMAXCONV.all=0x0003;
AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x0009;AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0008;
scia_fifo_init(); // 初始化SCI_FIFO
scia_loopback_init(); // SCI寄存器设置
// 使能PIE外部中止1
IER|=M_INT1;
// 初始化 EVATimer 1:
// 设置EVA寄存器
EvaRegs.GPTCONA.all = 0;
// 使能GP timer 1 下溢中止
EvaRegs.EVAIMRA.bit.T1UFINT = 1; EvaRegs.EVAIFRA.bit.T1UFINT = 1;
// 主中止
EALLOW;
PieVectTable.T1UFINT= &MainISR;
EDIS;
// 使能PIEgroup 2 interrupt 6 for T1UFINT
PieCtrlRegs.PIEIER2.all = M_INT6;
// 使能CPUINT2 for T1UFINT
IER|= M_INT2;
// EVA时钟是高速外设时钟,是CPU1/2
pwm1.PeriodMax = SYSTEM_FREQUENCY*1000000*T/2; pwm1.init(&pwm1);
init_evb();
dlog.iptr2 = &DlogCh2;
dlog.iptr3= &DlogCh3;
dlog.iptr4 = &DlogCh4;
dlog.trig_value = 0x1;
dlog.size = 0x400;
dlog.prescalar = 1;
dlog.init(&dlog);
// 初始化RAMPGEN 模块
rg1.StepAngleMax = _IQ(BASE_FREQ*T);
// 使能CPU中止
EINT;
ERTM;
spi_fifo_init();
spi_init();
SciaRegs.SCITXBUF = 0;
SpiaRegs.SPIRXBUF = 0;
while (1)
{
BackTicker++;
scia_xmit(Resolver[m]);
}
interrupt void MainISR(void)}
spi_xmit(0x0fff);
Resolver[m] = spi_read();
Resolver[m]= Resolver[m]+518;
if (Resolver[m]>=4095)
{
Resolver[m] = Resolver[m]-4095;
}
Rotor_Mech_Theta =Resolver[m];
Ele_Theta_temp = (float32)Rotor_Mech_Theta/819.0;
if (Ele_Theta_temp <= 1)
{
Rotor_Elec_Theta = Ele_Theta_temp * (_IQ(1))+(_IQ(0)); }
else if((Ele_Theta_temp > 1)&&(Ele_Theta_temp <= 2)) {
Rotor_Elec_Theta = (Ele_Theta_temp-1)*(_IQ(1))+(_IQ(0)); }
else if((Ele_Theta_temp > 2)&&(Ele_Theta_temp <= 3)) {
Rotor_Elec_Theta = (Ele_Theta_temp-2)*(_IQ(1))+(_IQ(0)); }
{ else if((Ele_Theta_temp > 3)&&(Ele_Theta_temp <=4))
else if((Ele_Theta_temp > 4)&&(Ele_Theta_temp <=5))
{
Rotor_Elec_Theta =(Ele_Theta_temp-4)*(_IQ(1))+(_IQ(0));
}
// End ofReading the Electric Theta
//------------------------------------------------------------------------------
// RAMP_CNTL 模块
//------------------------------------------------------------------------------
rc1.TargetValue = _IQ(SpeedRef);
rc1.calc(&rc1);
//------------------------------------------------------------------------------// RAMP_GEN 模块
//------------------------------------------------------------------------------ rg1.Freq = rc1.SetpointValue;
rg1.calc(&rg1);
//------------------------------------------------------------------------------// I_PARK 模块
//------------------------------------------------------------------------------ ipark1.Ds = _IQ(VdTesting);
ipark1.Qs = _IQ(VqTesting);
ipark1.Angle = Rotor_Elec_Theta;
ipark1.calc(&ipark1); // ipark1.Angle = rg1.Out;
//------------------------------------------------------------------------------
svgen_dq1.Ualpha = ipark1.Alpha;
svgen_dq1.Ubeta =ipark1.Beta;
svgen_dq1.calc(&svgen_dq1);
//------------------------------------------------------------------------------
// PWM 模块
//------------------------------------------------------------------------------
pwm1.MfuncC1 = (int16)_IQtoIQ15(svgen_dq1.Ta); // MfuncC1 is inQ15
pwm1.MfuncC2 = (int16)_IQtoIQ15(svgen_dq1.Tb); //MfuncC2 is in Q15
pwm1.MfuncC3 =(int16)_IQtoIQ15(svgen_dq1.Tc); // MfuncC3 is in Q15
pwm1.update(&pwm1);
//------------------------------------------------------------------------------// DATALOG 模块显示数据
//------------------------------------------------------------------------------ DlogCh1 = (int16)_IQtoIQ15(svgen_dq1.Tc);
DlogCh2 = (int16)_IQtoIQ15(svgen_dq1.Tb);
DlogCh3 = (int16)_IQtoIQ15(svgen_dq1.Tc);
DlogCh4 = (int16)_IQtoIQ15(svgen_dq1.Ta-svgen_dq1.Tb); //------------------------------------------------------------------------------// DATALOG 模块显示
//------------------------------------------------------------------------------
// 使能 GP timer 1 下溢中止 dlog.update(&dlog);
EvaRegs.EVAIFRA.all = BIT9;
// 使能PIE group 2 全部中止
PieCtrlRegs.PIEACK.all|= PIEACK_GROUP2;
}
void init_evb()
{
EvbRegs.T3PR = 0x1D4C; // 20K
EvbRegs.T3CNT = 0x0000;
EvbRegs.T3CON.all = 0x1040; // 连续增
EvbRegs.CMPR5 = 0x0064;
EvbRegs.ACTRB.all = 0x0666;
EvbRegs.DBTCONB.all = 0x0000; // 严禁死区
EvbRegs.COMCONB.all = 0xA600;
}
// SCI寄存器设置
voidscia_loopback_init()
{
SciaRegs.SCICCR.all = 0x0007; // 1个结束位,严禁回送测试,无奇偶校验位 // 选择空闲线协议,8位数据位
SciaRegs.SCICTL1.all = 0x0003; // 使能TX,RX, SCICLK, SCI软件复位
SciaRegs.SCIHBAUD = 0x0001; SciaRegs.SCICTL2.all = 0x0000; // 严禁接收和发送中止
SciaRegs.SCICTL1.all = 0x0023; // 重启SCI
}
// 初始化SCI_FIFO
void scia_fifo_init()
{
SciaRegs.SCIFFTX.all=0xE040; //
SciaRegs.SCIFFRX.all=0x605f; //
SciaRegs.SCIFFCT.all=0x0000; //
}
// SCI发送
voidscia_xmit(int a)
{
while (!(SciaRegs.SCICTL2.bit.TXRDY));
SciaRegs.SCITXBUF = a>>8;
while (!(SciaRegs.SCICTL2.bit.TXRDY));
SciaRegs.SCITXBUF = a;
}
voidspi_init(void)
{
GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0 = 1; EALLOW;
GpioMuxRegs.GPFMUX.bit.SPISTEA_GPIOF3=1;
EDIS;
SpiaRegs.SPICCR.all=0x004b; // 数据长度为12位,在时钟下降沿发送数据,在上升沿接收数据
SpiaRegs.SPICTL.all=0x0006; // 主工作方法,许可发送,
严禁中止;spi时钟相位延时
SpiaRegs.SPIBRR=0x0049; // 波特率0.5M
} | SpiaRegs.SPICCR.all= 0x00cb; // 开启SPI |
|
|
voidspi_fifo_init(void)
{
SpiaRegs.SPIFFTX.all=0xE040; //
SpiaRegs.SPIFFRX.all=0x204f; //
SpiaRegs.SPIFFCT.all=0x0000; //
}
unsignedint spi_read(void)
{
unsigned int temp;
// reset_cs ();
temp = SpiaRegs.SPIRXBUF;while(SpiaRegs.SPIFFRX.bit.RXFFST == 0);
}
void spi_xmit(int a)
{
// while(SpiaRegs.SPIFFTX.bit.TXFFST != 1);
SpiaRegs.SPITXBUF=a;
}
void set_cs(void)
{
// EALLOW;
GpioDataRegs.GPFDAT.bit.GPIOF3=1; // 将IOPF3输出为1, spiste===CS
// EDIS;
}
voidreset_cs(void)
{ // 将片选信号置低,选中芯片
// EALLOW;
GpioDataRegs.GPFDAT.bit.GPIOF3=0; // 将IOPF3输出为0,spiste===CS // EDIS;
}
总结和致谢
值此论文完成之际,谨向在大学期间全部曾给本人帮助老师,同学,
亲友致以真挚谢意!衷心感谢张晓宇老师,本论文选题、
研究和撰写工作是在张老师悉心指导下完成。张老师严谨治学态度,渊博知识,丰富实践经验,实事求是工作科研态度和高度责任心全部是永远值得我学习。
张老师对学生严格要求,在毕业论文撰写过程中,给了我很多指导、
督促和帮助无不渗透您精心指导!言传身教,从中所获,己不止专业知识和实践经验本身,您实事求是科学态度,严谨认真治学作风,和宽容大度处世方法,学生耳濡目染,
受益匪浅。“桃李无言,下自成蹊”在此,谨致衷心感谢和高尚敬意并祝您全家幸福,万事如意。
在学习过程中, 还有很多人曾给我无私帮助,我要感谢你们。感谢我各位老师、同学、好友,在学习和生活中和她们进行了很多有益合作、探讨和交流,使我受益非浅! 是你们让我如此乐观,求学道路上,
我当然最应该感谢我父母,
却也最无以言表“谁言寸草心,报得三春晖”我不敢妄称自己将是你们骄傲,但我一直因为你们而自豪。
最终,感谢我母校,华北科技学院,在这里我度过了人生中意义非凡时光,现在还来不及为您做点儿什么,便己将离去,道一声再见吧,后会有期了!
再一次,致谢!
参考文件
[1]陈坚.电力电子学.北京:高等教育出版社..12
[2]黄廉杏.基于TMS320F2812交流伺服系统控制.研究硕士论文..5
[3]张斌.基于DSP2812永磁同时电机控制系统设计.工业控制计算机.22卷第9期[4]陈国呈.PWM变频调速及软开关电力变换技术.北京:机械工业出版社.
[5] 王成元,周美文,郭庆鼎.矢量控制交流伺服驱动电动机.北京:
机械工业出版社.1995
[6] 王晓明,王玲.电动机DSP控制~TI企业DSP应用.北京航空航天大学出版社, [7] 张健,张东亮.永磁同时电机数字交流伺服系统.微特电机,.7
[8]李志民,张遇杰.同时电动机调速系统(M].北京:机械工业出版社,1996:88.
[9]田 淳 ,胡育文.永磁同时电机直接转矩控制系统理论及控制方案研究.电工技术学报,,6(2): 8-12. [10]堂杨.基于DSP永磁同时电机调速系统研究[D].浙江:浙江大学,:
林大学, 20.07:
[13]赵春水.全数字永磁同时电机位置伺服系统研究[D].天津:天津大学,:
[14]王晓明,王铃.电动机DSP控制[M].北京:北京航空航天出版社,200s: 189.
[15」 | 田 | 淳 | , |
胡育文.永磁同时电机直接转矩控制系统理论及控制方案研究[J].电工技术学报,, 22(1): 711-714.
[16]葛宝明, 王祥,苏鹏声等.交流传动系统控制策略综述汇J].电气传动自动化,, 23(4):3-9
[17』 骆 再 飞 ,蒋 ,许振伟二交流伺服系统及其优异控制策略综述[[J].机床和液压,,(6): 7-10.
[18]夏超英.交直流传动系统自适应控制[M].北京:机械工业出版社,1998:210.
[19]郭 | 庆 | 鼎 | , | 郭 | 威 | , |
周悦.交流永磁直线同时电机伺服系统预见前馈赔偿[J].电机和控制学报,1999, 3(3):
172-175.
[20]李久胜,王炎.交流伺服系统滑模控制器动态设计.电气传动, 5(3): 17-22.