TI公司官网源代码基于TMS320F2812的永磁同步电动机空间矢量控制的算法实现
基于DSP TMS320F2812的永磁同步电机直接转矩控制
( eh ncl n l tcl n i e n ol eo hn ot nvr t, h n sa 1 0 3 C ia M c aia adEe r a E g e r gC l g f iaSuhU i s y C agh 0 8 , h ) ci n i e C ei 4 n
SM ULI I NK.I s s o d t a hes t m s sg e ih l ti h we h tt ys e Wa de in d rg ty.Th n t e c n r ls t m a ee pei n t . e h o to ys e C b x r n me e d Ke r s:d e t t r ue c n r l y wo d r i c o q o to ;pema e tma e yn h o o s mo o ; P r n n g t s c n u t r DS n r
Die tTo q n r lS s e r c r ueCo to y t m.a Dii lDTC o to ys e b s d o P TM 3 0F 1 s pr po e gt a c n r ls t m a e n DS s 2 28 2 i o s d i n
0 引言
二 十世 纪八 十年代 德 国 D p n rc ee bok教授 和 日本 学 者 T k hsi aa ah 分别 提 出直 接转 矩控 制算 法 , 然在 理 论 虽
子 相绕组 O轴 的转 子 空 间位 置 角 ; L 为定 、 子 磁链 转 与 问夹 角 , 电机 功 角 。转 子 d 一q 坐 标 系下 即 的永磁 同步 电机 的数学模 型 可表示 为 :
推导 和实现 方法上 有所不 同 , 但是 基 本思 想是 一 致 的 , 即放 弃 了 矢 量 控 制 中 电 流 解 耦 的控 制 思 想 , 掉 了 去 P WM脉宽 调制器 和 电流反馈 环 节 , 转而 通 过检 测 母 线 电压 和定子 电流 , 接计算 出电机 的磁 链 和转 矩 , 利 直 并 用两 个滞环 比较 器直 接实 现对 定子 磁链 和 转矩 的解耦 控制 J 。因此 , 与矢量 控制 相 比 , 直接 转 矩控 制具 有 转 矩响应 快 、 制结构 简单 、 控 易于 实现全 数字 化等 特点 。
基于TMS320F2812的全数字交流伺服系统设计
能 D P芯片 T 3 0 2 1 S MS 2 F 8 2实现 数 字化双 闭环 系统 , 即速度环 、 电流 环 的控 制系 统 , 计 了具 有完 整保 护 设 和 监控功 能 的 P M伺 服系 统 MS
23 辅助 电路设 计 .
231 位 置 / 度 信 号检 测 电路 .. 速
而 算 出 实 际 电流 大 小 ,实现 电机 V相 电流 信 号 反
馈 , 过坐标变换 、 经 比较 、 电流 调 节 器及 S P V WM 输 出. 构成 电流 闭环
定 稿 日期 :0 9 1 — 3 2 0 — 0 1
波 电路 。 变 电路采 用智 能功 率模 块 P 287 接 收 逆 S 16 .
D P输 出的经过缓冲 电路及 高速 光耦 6 3 S N17隔离后 的SP V WM 波 , 优 点如下 : 其 采用 第 5代 I B G T工艺 , 内置优 化后 的栅级 驱动和 过流 保护 、 欠压保 护 电路 , 超 小 型体积 , 出功率 强劲 的三 相波 形 , 输 供给永 磁 同
( MS P M)i cm l e yueo eit le t o e m d l(P s o pe db s f h n lgn w r oue IM)adT 30 2 S .hsat l dsr e h t t ei p n MS 2 F 8 D PT i rc eci st 1 2 ie b e
中事件 管 理器 ( V) 具 有 的捕 获 口及 正 交 解 码 电 E 所
到 电机 的 定 子 V相 绕 组 上 ,经 过采 样 电 阻后 得 到 20mV 以 内的 采 样 电压信 号输 入 到 感 应 输 入 引脚 6 V 。P B是 功 率智 能 模 块 的 V相 输 出 , 入 到 V . D 输 m
基于TMS320F28335的永磁同步电机矢量控制器设计
基于TMS320F28335的永磁同步电机矢量控制器设计严勤;李永聪【摘要】为了提高电动汽车用永磁同步电机控制性能,设计了一款以浮点型TMS320F28335数字信号处理器(DSP)为控制核心的数字化矢量控制器.与采用TMS320LF2407、TMS320F2812等传统定点型DSP为控制核心的永磁同步电机控制器相比,其具有编程简单、运算速度快、片内A/D精度高等优势.文章详细介绍了IGBT模块、温度模块以及各信号采集与调理电路等硬件部分的设计;软件部分,以C语言和汇编语言混合编程,基于TI公司提供的开发系统编写了电机控制程序.该控制器与传统的以定点型DSP芯片为控制核心的驱动控制器相比,提高了运算速度和控制精度,且易于编程,保护功能完善.【期刊名称】《贵州电力技术》【年(卷),期】2018(021)006【总页数】7页(P63-69)【关键词】永磁同步电机;矢量控制;控制器;TMS320F28335【作者】严勤;李永聪【作者单位】贵阳职业技术学院,贵州贵阳550081;贵州大学机械工程学院,贵州贵阳550025【正文语种】中文【中图分类】U271永磁同步电动机(PMSM)因其优良的性能在电动汽车牵引电机上被广泛应用[1-2],文章以电动汽车用内置式永磁同步电动机为对象,研究设计了电动汽车用永磁同步电动机的驱动控制器。
在分析PMSM矢量控制理论与方法的基础上,设计了驱动控制器硬件电路,以及控制逻辑和程序等软件部分。
该控制器以浮点型DSPTMS320F28335芯片为核心,与传统定点型DSP相比,能够执行更复杂的浮点运算,A/D转换精度更高和速度更快,且具有性能稳定、集成度好的优点。
1 总体方案设计此次设计的PMSM驱动控制器的硬件系统主要由两部分组成,即主控制板部分和驱动板部分。
在此系统中,主控制板是核心部分,它主要实现三相电流的信号采集,主电路电压信号采集,位置信号采集,温度信号采集,数据处理,控制系统的输出,通过CAN总线接口电路对外通信等功能。
基于Matlab_Simulink的TMS320F2812代码开发
LEARNING GARDEN 学习园地基于Matlab /Simulink 的TMS320F2812代码开发广东工业大学卢小锦曾岳南摘 要T M S320F2812DSP 是运动控制系统很好的硬件支撑平台,但传统的DSP 代码开发周期较长,效率不高。
M at lab 公司的Embedded T arget for T I C2000DSP 可解决上述问题,用户通过使用该模块,不仅可以进行电路的系统级仿真,还可编译生成相应的C 语言代码,进行算法的探索与设计思路的验证。
文章以三相异步电动机的VV VF 结合SVPWM 控制算法的开环控制系统为例,给出了M atlab/Simulink 平台上DSP 代码开发的设计流程。
关键词自动代码生成 T M S320F2812 M at lab/Simulink RT W 代码生成引 言随着现代电力电子技术的迅猛发展,兼有高运算速度和强控制能力的DSP 在逆变器、电机等电力电子设备的控制领域得到了广泛应用。
通用DSP 的源代码开发都可以采用两种方法:一种是直接利用其提供的汇编指令编写源代码,然后经汇编器和链接器进行汇编链接后生成目标可执行代码;另一种方法是利用标准C/C ++语言编写源代码,然后经C/C ++编译器、汇编器和链接器进行编译链接,最后生成目标可执行代码。
这两种代码开发方法都使得开发人员不得不花费大量的时间在代码的编写上面,增大产品开发难度,延长产品开发周期,从而影响开发效率[1]。
M at h Works 公司和T I 公司联合开发的工具包 M at lab L ink for CCS Development T ools,已经能把M at lab 和T I 公司的DSP 集成开发环境CCS(Code Composer St adiu)及目标DSP 连接起来。
利用此工具可以像操作M at lab 变量一样来操作T I DSP 的存储器或寄存器,即整个目标DSP 对于M at lab 像透明的一样,开发人员在M at lab 环境下,就可以完成对CCS 的操作。
基于TMS320F2812的永磁同步直线电机伺服控制系统设计
Z ENG un, ZENG e n n,W U Yix a g H J YH — a —in
( a ut o tmain,Gu n d n iest f e h oo yGu n z o F c l fAuo t y o a g o gUnv ri o c n lg a gh u,Gu n d n 0 6,Chn ) y T a g o g5 0 1 0 ia
p o e t o o n t lpo ii n tsi g i c u ae,h ve g o y a i e f r a c n o r lp e ii n. r v he r tr i ii sto e tn s a c r t a a o d d n m c p ro m n e a d c nto r c so
第 3期 21 0 2年 3月
组 合 机 床 与 自 动 化 加 工 技 术
M o l a hi o du ar M c ne To l& Aut m atc M a f c u i g Te hn que o i nu a t r n c i
NO. 3 M ar .20 2 1
Pe m a e a ne ne r Sy hr o o o e v nt o y t m e i n Ba e n TM S3 0F2 2 r n ntM g t Li a nc on us M t r S r o Co r lS s e D sg s d o 2 81
c o e - o e v o t o y t m e i n i i h d・ x s c r n f s a o s s tt e z r n t e r t r fu - l s d-o p s r o c n r ls s e d s g n wh c ・ i ure to t t r i e o b e o i h o o l x- l a
基于DSPTMS320F2812和DS18B20的温度测量系统设计
基于DSP TMS320F2812和DS18B20的温度测量系统设计摘要:本文介绍了一种基于TI公司DSP TMS320F2812 的高精度温度测量系统的设计。
该系统采用TMS320F2812为微处理器,配合高精度DS18B20数字温度传感器和外部扩展的模数转换器采集温度数据,并经过滤波算法处理控制输出,能够得到比较精确的温度值。
主要介绍了系统的结构、工作原理、软硬件的设计,并对系统设计的特点进行了详细的说明。
关键词: TMS320F2812;DS18B20;温度测量;模数转换1 概述温度在航空、航天领域中是个重要的物理量,由于温度变化对设备可能产生影响,包括降低系统的成像质量,影响分辨率,因此,在这些系统中对温度的实时采集测量十分重要。
以传统的单片机为核心的温度测量控制系统,由于受到处理器自身硬件资源和速度的限制,硬件电路设计复杂,数据实时处理能力差,温度测量时间长。
而随着计算机技术尤其是招超大规模集成电路技术的发展,具有更强处理能力的DSP芯片,以其运算速度快、实时性强、功耗低、抗干扰能力强等特点,越来越多地被应用。
采用了DS18B20数字温度传感器、外部扩展ADC模数转换器,使用内部集成外设功能的DSP TMS320F2812 微处理器作为整个系统的核心控制单元,简化了硬件电路设计;在温度采集控制软件上采用“通道滤波”温度采集控制算法,使得温度采集具有速度快、精度高的特点。
2 系统方案设计温度测量系统设计以DSP TMS320F2812为中央处理器为核心,采用DS18B20型号数字温度传感器为温度传感器,使用AD7892型号的ADC模数转换器进行A/D 转换,并将采集结果代入温度曲线方程计算出当前温度值,并且将温度值通过通信系统发送到上位机。
高精度温度测量控制系统由两大部分组成,第1部分为以DSP TMS320F2812为核心处理器的数据采集及处理部分,主要由产品温度环境、温度传感器、ADC模数转换器、DSP TMS320F2812、电源构成;第2部分由温度采集处理软件构成,完成对DSP采集到的数据进行分析、处理等任务。
基于TMS320F2812全数字三相PWM整流器的设计
基于TMS320F2812全数字三相PWM整流器的设计唐勇奇 赵葵银(湖南工程学院,湘潭 411101)摘要:本文针对三相电压型PWM整流器,在建立了其数学模型的基础上,对整流器电流解耦控制策略进行研究,使用TMS320F2812数字处理芯片进行系统的硬件和软件设计,充分利用TMS320F2812丰富接口资源和快速的运算能力,使整流器硬件更简单;实验结果表明:整流器实现了单位功率因数控制,具有优越动态和静态性能。
关键词:三相PWM整流器;DSP; 电流解耦控制中图分类号:TP461 文献标识码:AThree-phase PWM Rectifier Based on TMS320F2812Tang-Yongqi Zhao-Kuiyin(Hunan institute of Engineering , Xiangtan 411101)Abstract:Aiming at the three phase PWM rectifier,this paper study on the control method of rectifier current decoupled control based on setting up rectifier mathematical mode , designs system hardware and software with TMS320F2812 chip, utilizes completely the wealthy peripherals and high— speed calculation function of DSP, simplifies design of rectifier's hardware . The experiment indicates the rectifier has realized control of the unit's power factor and has better dynamic and static characters.Keywords:Three-phase PWM Rectifier;DSP;Current Decoupled Controll 引言近年来,PWM整流器以其突出的优点(网侧电流正弦化,功率因数可调等)广泛应用于功率因数补偿、高性能整流器、电能回馈、有源滤波等电力电子变流领域,同时也成为电力电子学术界研究的热点。
基于TMS320F2812的程序从FLASH到RAM的移植
.text:LOAD=FLASH—AB。PAGE=0 RUN=RAM—HOLOLl,PAGE=0
LOAD_-sTART(jexLI∞dS协rt), RUN—STARTLtexL,unstart), SIZELte)(t—size) 2软件测试
.sect”RAMfuncs”改变为.te)(t段,使DSP281 x-usDelay.弱m 定位在.te)(【段。
6)从DSP281X-SysclrLc文件代码中移去#pragma CODE —SECTION(1nitFLASH。”RAMfuncs”)。这将重新定位InitFIash() 函数到.te)(t段上来代替原来的RAMfuncs段。
intemaI FlAM.so.direct OperaCe.n F|鸽h for the ha晤h app¨ation,aften can not meeC the requ订ementS.TherefOre,there e×ist a
need to copy the code to RAM 10 enhance the Operating speed.This appIicaliOn repOrt and associated cOde fileS pravide
CMD文件的第二部分是段在存储器中的分配。这时实际 编译的段被链接到存储区中。本文中所有的段被加载和运行在 FLASH存储区。分配如下所示。
codestan:>BEGlN—FLASH。PAGE=0 wddisabIe:>FLASH-AB.PAGE=0
∞pysectjons:>Fb气SH—AB.PAGE=O 其它的初始化段被加载到FIash空间,却在内部RAM中运
基于CAN和TMS320F2812的永磁同步电机控制器的研究
输入最大电流 5 , 0 最高电压 6 0 推荐使用条 A 0 件如下: 逆变 电压不超过 4 0 工作 电流不超过 0
其 中, , 为定 子 磁链 ;
为转 子 磁 链 ;L ,q dL
为 d/ 轴 电感 分 量; , 为 d/ 轴 电流 分量 . i q 留 定子 线 圈上 的 电压 方程 为 :
f / d d ~ 0+ , 3 l p + ' + . “ q  ̄ 0 g d 3 ,
第2 卷 第4 ,0 1 1N 4 期 2 1年 0
V 4No4 Oc . Ol l .. t 2 1 2
宁 波 大 学 学 报 (理 工 版 )
J R LOF NG O U V R I Y( E OU NA N1 B NI E ST NS E)
首届中国高校优秀科技期刊奖
_
宁波大学学报 ( 理工版 )
流 及控 制部分 4路 1 V独立 直流 , 电流检 测 、 5 向 位
置检测及系统板提供4 2 - 1 v、+ 直流. 5 v 系统具体 硬件如图 1 所示.
和过热等故 障检测 电路, 并可将 故障检测信号输 出到控制单元, 功能非常完善. 本次设计采用三菱 第五代 IM 模块 P 0 L B 6 . M5 C 1 00 P M5 C 1 00 P 0 L B 6
浙江省秀科技期刊一等奖
基于 C N和 T 30 2 A MS 2 F 8 1 2的永磁 同步 电机控制器 的研究
梅 义成,俞建定
( 宁波大学 信息科学与工程学院,浙江 宁波 3 5 1 ) 12 1
摘 要 :基 于永磁 同步 电机 的 矢量控 制 理论 、C N 总线和 T 30 2 1, A MS 2F 82 从硬 件 和软件 提 出了一
基于DSP的永磁同步电机控制系统硬件设计
基于DSP的永磁同步电机控制系统硬件设计胡宇;张兴华【摘要】以小功率永磁同步电机(PMSM)为研究对象,结合数字信号处理器TMS320F2812功能特点,给出了一套PMSM驱动控制系统硬件设计方案.详细阐述了功率驱动主电路、反馈信号检测电路以及供电电路的设计,介绍了主要元器件选型和参数计算方法.基于设计的硬件平台,对PMSM调速控制系统进行了测试.试验结果表明,所设计的控制系统硬件设计可靠、性能稳定、控制精度高.%Based on the controlled object of small power permanent magnet synchronous motor (PMSM),combined with the main features of digital signal processor TMS320F2812,an overall hardware design scheme had been put forward for the PMSM drive control system.Design of the power driven main circuit had illustrated,signal detection circuit and power supply circuit in detail,meanwhile introduced the main components selection and parameters calculation method.Based on the designed hardware platform,the control system of PMSM had been performed a functional test.Experimental results showed that the hareware design of control system had good reliability with stable performance and high control precision.【期刊名称】《电机与控制应用》【年(卷),期】2017(044)012【总页数】7页(P19-24,80)【关键词】永磁同步电机;功率驱动主电路;信号检测电路【作者】胡宇;张兴华【作者单位】南京工业大学电气工程与控制科学学院,江苏南京211816;南京工业大学电气工程与控制科学学院,江苏南京211816【正文语种】中文【中图分类】TM351永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)因其体积小、损耗低、功率密度高和效率高等优点,在机械制造、工业控制、航空航天等领域得到广泛应用[1]。
基于TMS320F2812的交流电机控制系统设计
床 控 制 等 高 精 度 应 用.本 文 基 于 T M S 3 2 O F 2 8 1 2分析 了空 间矢 量 脉宽 调制技 术 的基 本 原 理 , 利用 T M S 3 2 0 F 2 8 1 2专 用 于 S V P WM 波 形 生 成 的 硬 件 电 路 , 提 出 了
基金项 目: 湖南 省教育厅一般项 目( 1 I C 1 1 3 0 ) 作者简介 : 邱雄 迩 ( 1 9 7 3 一) , 男, 湖南 隆回人 , 硕士 , 讲师 , 研究方 向 : 电力 电子与 电气传动. E - m a i l : c e k o n g p g 2 0 0 8 @1 2 6 . c o n r
收 稿 日期 : 2 0 1 3 — 0 2 — 2 6
变器输 出线 电压基 波最 大 幅值 为直 流侧 电 压, 这 比正 弦脉 宽 调 制 逆 变器 输 出 电压 高
出 1 5 %… .
在 电机 控 制 技 术领 域 , 1 [ I 公 司推 出的
2 O 0 O系列 中的 3 2位定点 D S P T NS 3 2 0 F 2 8 1 2 属 于较新 高端产 品 , 适 合工 业 电气控 制 、 机
Ke y wo r d s : D S P; T MS 3 2 0 F 2 8 1 2;S VP WM; F OC
0 引 言
在交 流 电机 变 频 调速 中 P WM 控 制 已 经得 到 了广 泛 应 用 , 其 中经典 的正 弦脉 宽 调制 ( S P WM)是 一种近似 地抑 制谐 波 的方 法, 使逆变器 输 出 的电压尽 量 接 近正 弦波 , 使P WM 电压波 的基 波成分 尽量 大 , 谐 波成 分 尽 量 小 .而 电 压 空 间 矢 量 脉 宽 调 制 ( S V P WM)视逆变器 和电机为一体 , 控 制 电 机获得 幅值 恒定 的 圆形 旋 转 磁 场. 它 能 够 明显地 减 少 逆 变器 输 出 电压 的谐 波 成 分 、 电动机 的谐 波耗 损 和转 矩 的脉 动 , 而 且 逆
基于TMS320F2812的通用伺服电机控制系统的设计与实现
Sci ence and Techn Ogy OI Con suli g Her l tn ad
工 程 技 术
基于 T 3 0 2 MS 2 F 8 1 2的通用伺服 电机控制系统的设计与实现
李想 ( 中国电子科技集 团公 司第 5 研 究所 河北石家庄 4
1引言
目前 ,随 着 电 力 电子 技 术 ,微 电子 技 术 , 代控制理论 的发展 , 现 交流伺 服系统逐渐 成 为工业 伺服 系统 的主流 ,但在一 些特 定的 领域 内直 流伺服 系统 仍 占据着 主要地 位 。本 系统利用 T 3 0 2 l 实现 了直流 /交流伺 MS 2 F 8 2 服控制 系统的设计 。T 3 0 2 l 是 T 公 MS 2 F 8 2 I 司设计 的面 向工 业控制 领域 的数 字信号 处理 器, 适用于卫星天 线伺服系统 、工业控制、机 床控 制等高精度应用 。T 3 0 2 1 的最 高 M¥ 2 F 8 2 运行 频率可达 l 0 , 内有 l 8 r 5M 片 2 K wo d的 F A H程序 存储器 , 8 r L S l K wo d的数据 /程 序R AM。 包括 两个 8 通道或一 个 l 通 道的 l 6 2 位 A/ D转 换 器。两 个 串行 通讯接 口( C ) S I, 控制 器局 域 网络 ( CAN) 线 , 个独 立 的 总 两 SP V wM 发 生器 ;具有复 合 I E l4 . 标 准 E E 19 1 的在线仿真 接 K。采 用该 D P可 使本系统的 I S 硬 件 结 构 简单 ,控 制 精 度 高 ,实 时 性 强 。
一
_ -( 2 _ s x i - n O
电压 方程可表 示为
U = R i +缸 d+e o
基于TMS320F2812的SVPWM控制
基于TMS320F2812的SVPWM控制
贺洪江;王飞鹏
【期刊名称】《通信技术》
【年(卷),期】2008(041)007
【摘要】在交流电机变频调速中,脉宽调制技术已经得到了广泛的应用.而空间矢量脉宽调制方法与经典的脉宽调制方法相比,具有直流电压利用率高、控制简单、损耗较小、便于数字化方案实现等优点.文中介绍了利用TI公司的DSP电机控制芯片TMS320F2812实现SVPWM的方法.该控制方法速度快、精度高,在电压型逆变器中能产生更少的谐波并减少开关损耗.
【总页数】3页(P265-267)
【作者】贺洪江;王飞鹏
【作者单位】河北工程大学信息与电气工程学院,河北邯郸,056038;河北工程大学信息与电气工程学院,河北邯郸,056038
【正文语种】中文
【中图分类】TN787+.2
【相关文献】
1.基于TMS320F2812的永磁同步电机SVPWM调速 [J], 任彧;刘欢
2.基于TMS320F2812的SVPWM算法分析与实现 [J], 祝恩国;邹和平;赵兵;吕英杰
3.基于TMS320F2812的步进电机SVPWM细分驱动 [J], 王虹;杨甦
4.基于TMS320F2812光伏并网SVPWM逆变系统的设计 [J], 靳亚丽;郑恩让;张
晓娟
5.基于TMS320F2812的SVPWM控制 [J], 王飞鹏;邵占英
因版权原因,仅展示原文概要,查看原文内容请购买。
基于TMS320F2812伺服矢量控制系统的研究
摘
201) 10 6
要 :对 以 T 30 2 1 核 心 芯 片 的伺 服 矢量 控 制 系统 硬 件 、软 件 的设 计 方 法 进 行 阐述 与 论 证 。实 践 表 明 ,利 MS2 F 8 2为
用3 2位 D P芯片 T S 2 F 8 2 S M 30 2 1 进行伺 服矢量控制 ,运算速度快 、精度高 ,而且高编译 效率 的 C语 言编程使复 杂系 统 的数字化实现简单。 关键词 :T 3 0 2 1 ;矢量控制 ;伺服系统 MS 2 F 82
通 汛 接¨
高 ,力矩惯 量 比大 ,定 子 电流 和定 子 电阻损 耗 减小 , 且转 子参数 可 测 、控 制 性 能 好 ;和 普 通 同 步 电 动机
模拟 信号
E, OM PR
相比,它省去了励磁装置 ,简化 了结构 ,提高了效 率 ¨ 。永磁 同步 电机 伺 服矢 量 控 制 系 统 能 够 实现 高 J 精度 、高 动态 性 能 、大 范 围 的调 速 或定 位 控 制 。另 外 ,微 控制 器 的发 展 ,使 得 矢 量 控 制 系 统 的 实现 越 来越方 便 ,尤其 是随着 D P控 制芯 片 的进 一步发 展 , S 其运算 速度 越来 越 快 ,精度 越来 越 高 ,而且 高 编 译 效 率 的 c语 言编 程 使 复杂 系 统 的数 字 化 实 现越 来 越
分为 控制 电路 和 逆变 器 两 大 部 分 。永 磁 同步 电机 矢
基于TMS320F2812的最小系统设计
* 基 金 项 目 : 四 川 省 成 都 市 西 华 大 学 重 点 学 科 研 究 项 目 ( SZD0409 )
《微型机与应用》 2010 年第 12 期
JTAG 电 路 外
电源
部
DSP
《微型机与应用》 2010 年第 12 期
图形、图像与多媒体 Image Processing and Multimedia Technology
址 线 , 所 以 最 大 可 以 达 到 512 KB , 片 选 信 号 用 CS2 。 具 体 连接如图 6 所示。
1.5.2 SCI 串 口 通 信 电 路 在 许 多 DSP 的 应 用 中 都 会 使 用 到 串 行 口 与 电 脑 的
接
复位电路
口
Hale Waihona Puke 电路 时钟电路图 1 最小系统结构框图
1.1 电源电路 一个稳定可靠的电源是系统稳定工作的基础。 考虑
到 DSP 的 内 核 工 作 电 压 为 1.8 V, 其 I/O 的 工 作 电 压 为 3.3 V,再 者 一 般 的 外 围 器 件 工 作 电 压 为 5 V,所 以 需 要 提供这三种工作电压。 首先, 通过外部电源适配器获 得+5 V 电压,考虑到电源工作的稳定性和可靠性 ,采用 市 场 上 现 成 的 电 源 适 配 器 ; 然 后 再 通 过 LDO ( 低 压 差 线 性稳压电源)将 5 V 电压转换成 3.3 V 和 1.8 V,采用的是 Sipex 公 司 的 SPX1117 系 列 LDO 芯 片 [3] 来 进 行 电 压 的 转 换 。 该 系 列 LDO 芯 片 输 出 电 压 的 精 度 在 ±1% 以 内 , 具 有 电流限制和热保护功能,价格低廉,广泛应用于手持仪 表、数字家电和工业控制领域。使用时,输出端常接一个 10 μF 或 者 47 μF 的 电 容 来 改 善 瞬 态 响 应 和 稳 定 性 。 具 体的连接如图 2 所示。
基于矢量变频技术的起重机电机控制系统设计
基于矢量变频技术的起重机电机控制系统设计摘要:本文介绍了一种起重机电机的变频控制技术,系统以三相异步电动机为控制对象,为获得良好稳定的调速性能,采用矢量变频控制技术,设计了一套以tms320f2812为核心芯片的起重机电机矢量变频调速控制系统。
最后经起重机样机初步试验表明,该控制系统具有较好的动静态性能。
关键字:起重机;异步电动机;矢量变频控制;dsp1. 引言起重机是现代工业生产不可或缺的机械设备,被广泛地应用于各行各业中。
起重机需要在短时间内频繁启制动,对调速系统提出了更高的要求,传统的转子串电阻调速、定子调压调速、串级调速存在调速范围小、启动电流对电网冲击大、功率因数低、故障率较高等问题。
随着微电子技术、电力电子技术的飞速发展,加之工业对生产效率和产品质量要求的不断提高,交流变频调速技术得到了越来越广泛的应用。
变频调速,通过改变电动机电源频率来改变电动机的速度,调速范围大,运动平滑性能好,可实现恒功率或恒转矩调速以适应不同负载的要求,且由于逆变器的反馈作用,对控制目的的精确度也更高[1]。
变频调速以其优异的启、制动性能,高效率和节能效果,在起重机上有着广阔的应用前景。
2. 三相异步电机的矢量控制原理三相异步电机是一个多变量、时变、非线性、强耦合的系统,要分析其微分方程组是十分复杂的。
采用标量控制的策略,其控制效果不是十分理想,为了从根本上解决上述问题,研究学者们提出了交流电机的矢量控制思想,矢量控制是为了改善转矩控制的性能,通过对定子电流的控制,进而实现对电磁转矩的控制。
其基本原理是:利用坐标变化原理把交流电机模拟成直流电机进行控制,在磁场定向坐标上,把电流矢量分解成励磁电流分量和转矩电流分量,并使两个分量互相垂直,彼此独立,然后分别进行调节控制[2],其关键是对电流矢量幅值和空间位置(频率和相位)的控制。
通过检测或估计电机转子磁通位置及幅值来控制定子电流和电压,电机的转矩便只和磁通、电流相关,这样便与直流电机的控制相似,可以获得高质量的控制性能。
基于TMS320F2812的异步电机矢量控制系统
a o t . Co v n o a a c l t n f r t f x S o e s t d n o r c e . TI S y t m d pe d n e t n l c lu ai o o o l i c mp n a e a d c re t d i o r u l s se i
好地实现了控制方案 ,实验表 明该控制 系统精度高 ,实时性和动态 响应都较好 。 [ 关键词] 偏差电压解耦 ;矢量控制 ;转子磁链 ;T 3 0 2 1 MS 2 F 82
[ 中图分类号]T 4 + M36. 2 [ 文献标识码] A [ 文章编号]10 —9 32 1 )1 0 20 003 8 (0 00 - 3 .5 0
矢量控制系统
摘要:交流电机矢量控制理论是德国学者K Hass和FBlaschke建立起来的,作为交流异步电机控制的一种方式,矢量控制技术已成为高性能变频调速系统的首选方案。
交流电机的矢量控制技术是基于交流电机的动态模型,通过建立交流电机的空间矢量图,采用磁场定向的方法将定子电流分解为与磁场方向一致的励磁分量和与磁场方向正交的转矩分量,并分别对磁通和力矩进行控制,而使异步电机可以像他励直流电机一样控制。
随着计算机技术飞速发展,功能强大的数字信号处理器(DSP)的广泛应用使得矢量控制逐渐走向了实用化。
本文先对矢量控制系统的原理进行简要说明,然后给出了一种矢量控制系统基于DSP芯片的实现方案,最后例举了一些目前应用较广泛的矢量型变频器。
关键词:矢量控制,DSP,变频器。
目录1.矢量控制 (3)1.1概述 (3)1.2基本原理 (4)1.3坐标变换 (6)2.转差频率矢量控制 (7)3.基于DSP芯片TMS320F2812的矢量控制系统 (11)4.西门子MicroMaster440变频器 (13)参考文献 (15)1.矢量控制1.1概述由于异步电机的动态数学模型是一个高阶、非线性、强耦合的多变量系统。
上世纪70年代西门子工程师F.Blaschke首先提出异步电机矢量控制理论来解决交流电机转矩控制问题。
矢量控制实现的基本原理是通过测量和控制异步电动机定子电流矢量,根据磁场定向原理分别对异步电动机的励磁电流和转矩电流进行控制,从而达到控制异步电动机转矩的目的。
具体是将异步电动机的定子电流矢量分解为产生磁场的电流分量 (励磁电流) 和产生转矩的电流分量 (转矩电流) 分别加以控制,并同时控制两分量间的幅值和相位,即控制定子电流矢量,所以称这种控制方式称为矢量控制方式。
简单的说,矢量控制就是将磁链与转矩解耦,有利于分别设计两者的调节器,以实现对交流电机的高性能调速。
矢量控制方式又有基于转差频率控制的矢量控制方式、无速度传感器矢量控制方式和有速度传感器的矢量控制方式等。
基于TMS320F2812的永磁同步直线电机提升系统的伺服控制
2 TMS320F2812简介
TMS320F2812 是当今世界上在数字控制领域 性能最高的 字信号处理芯片, 它是工业界首批 32
EVB): 其提供了一整套用于运动控制和电机控制应
用的功能和特性。 每个事件管理模块包括通用定时器 ( GP )、 比较单元、 捕获单元以及正交编码脉冲电路。
4 电 趁 07年 , 0} 气 撇20 第“ 期
Abstract Based on digital signal processor(DSP), the design of control system of permanent magnet linear synchronous motor(PMLSM) is introduced in this paper , which makes good use of the high integrated feature of DSP.
ud= r,弓 乌尸 一 钱 十 几勿 uq= sq+Ldp', +coy/,
转矩方程如下:
流的两个分量分别进行调节控制;最终采用SVPWM
对逆变器进行脉宽调制。
T =Pm V 一 d (i d凡钱id)
二 LYr iq+ Ld一 P. ' ( Lq)id ', I
从上式可以看出,永磁同步电机的电磁转矩基 本上决定于定子交轴电流分量和转子磁链。在永磁
Yq=Lq iq '
式中, Vr为转子磁钢在定子上的祸合磁链; Ld,
由图 1 可知,本系统是由位置、速度与电流三 闭环所组成,最外环 “ 位置控制器”实现对电机的
L 直、 轴主电 q为 交 感。
定子电压方程如下:
行程控制;其位置反馈信号及速度环的速度反馈信
基于TMS320F2812的永磁交流伺服系统设计
、 , o 1 .3 2 No. 5
文章 编号 : 1 0 0 8 - 0 5 6 2 ( 2 0 1 3 ) 0 5 — 0 6 4 8 — 0 4
辽宁工程技术大学学报 ( 自 然科学版 )
J o u r n a l o f L i a o n i n g T e c h n i c a l Un i v e r s i t y( Na t u r a l S c i e n c e )
d e s i g n o f t h e s y s t e m b y u s i n g t h e t e c h n o l o g y o f S p a c e V e c t o r P u l s e Wi d t h Mo d u l a t i o n( S VP WM) w a s i n t r o d u c e d u n d e r t h e C CS ( C o d e C o m p o s e r S t u d i o )d e v e l o p me n t e n v i r o n me n t , wh i c h m a d e he t s p a c e v e c t o r c o n t r o l o f
2 0 1 3年 5月
Ma v 201 3
d o i : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 8 — 0 5 6 2 . 2 0 1 3 . 0 5 . 0 1 6
基于 T MS 3 2 0 F 2 8 1 2的永磁交流伺服系统设计
姜艳华 l 1 ,张连勇
AC s e r v o s y s t e m b a s e d o n T M¥ 3 2 0 F 2 8 1 2 d i g i t a l s i g n a l p r o c e s s o r( DS P ) . T h e h a r d wa r e d e s i g n o f t h e s y s t e m
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
往链点点通共享资源,了解更多请登录第7章基于TMS320F2812的永磁同步电动机控制例1、空间矢量算法实现SVGEN_DQ对象结构体定义typedef struct {_iq Ualpha; // 输入:α轴参考电压_iq Ubeta; // 输入:β轴参考电压_iq Ta; // 输出:参考相位a开关函数_iq Tb; // 输出:参考相位b开关函数_iq Tc; // 输出:参考相位c开关函数void (*calc)(); // 函数指针} SVGENDQ;typedef SVGENDQ *SVGENDQ_handle;SVGEN_DQ模块调用方法:main(){}void interrupt periodic_interrupt_isr(){svgen_dq1.Ualpha = Ualpha1; // 提供输入参数:svgen_dq1svgen_dq1.Ubeta = Ubeta1; // 提供输入参数:svgen_dq1svgen_dq2.Ualpha = Ualpha2; // 提供输入参数:vgen_dq2svgen_dq2.Ubeta = Ubeta2; // 提供输入参数:svgen_dq2svgen_dq1.calc(&svgen_dq1); // 调用函数模块svgen_dq1svgen_dq2.calc(&svgen_dq2); // 调用函数模块svgen_dq2Ta1 = svgen_dq1.Ta; // 访问运算结果svgen_dq1Tb1 = svgen_dq1.Tb; // 访问运算结果svgen_dq1Tc1 = svgen_dq1.Tc; // 访问运算结果svgen_dq1Ta2 = svgen_dq2.Ta; // 访问运算结果svgen_dq2Tb2 = svgen_dq2.Tb; // 访问运算结果svgen_dq2Tc2 = svgen_dq2.Tc; // 访问运算结果svgen_dq2}为进一步了解空间矢量算法的基本原理,下面给出空间矢量模块的源代码:void svgendq_calc(SVGENDQ *v){_iq Va,Vb,Vc,t1,t2;_iq sector = 0; /*设相位置(sector)等于Q0 *//*逆clarke变换*/Va = v->Ubeta;Vb = _IQmpy(_IQ(-0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualfa); /* 0.8660254 = sqrt(3)/2 */ Vc = _IQmpy(_IQ(-0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualfa); /* 0.8660254 = sqrt(3)/2 *//* 60度sector的确定*/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)的计算*/Va = v->Ubeta; /* X = Va */Vb = _IQmpy(_IQ(0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualfa); /* Y = Vb */Vc = _IQmpy(_IQ(0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualfa); /* Z = Vc */if (sector==1) /* sector 1: t1=Z and t2=Y (abc ---> Tb,Ta,Tc) */{t1 = Vc;t2 = Vb;v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); /* tbon = (1-t1-t2)/2 */v->Ta = v->Tb+t1; /* taon = tbon+t1 */v->Tc = v->Ta+t2; /* tcon = taon+t2 */}else if (sector==2) /* sector 2: t1=Y and t2=-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 */}else if (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;t2 = Vc;v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2)); /* tcon = (1-t1-t2)/2 */v->Tb = v->Tc+t1; /* tbon = tcon+t1 */v->Ta = v->Tb+t2; /* taon = tbon+t2 */}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 */}v->Ta = _IQmpy(_IQ(2),(v->Ta-_IQ(0.5)));v->Tb = _IQmpy(_IQ(2),(v->Tb-_IQ(0.5)));v->Tc = _IQmpy(_IQ(2),(v->Tc-_IQ(0.5)));}在相位置(sector)3中的一个矢量的例子:PWM1PWM3PWM5图相位置(sector)PWM 实例及其占空比例2、事件管理器配置EvaRegs.T1PR = p->n_period; /* SYSTEM_FREQUENCY*1000000*T/2 *//*初始化Timer 1周期寄存器*//* 预定标器X1 (T1),ISR周期= T x 1 */ EvaRegs.T1CON.all = PWM_INIT_STATE; /* 对称操作模式*/ EvaRegs.DBTCONA.all = DBTCON_INIT_STATE;EvaRegs.ACTRA.all = ACTR_INIT_STATE;CONA.all = 0xA200;EvaRegs.CMPR1 = p->n_period;EvaRegs.CMPR2 = p->n_period;EvaRegs.CMPR3 = p->n_period;EALLOW;GpioMuxRegs.GPAMUX.all |= 0x003F;例3、TMS320F2812电流及DC母线电压检测//******************************************************************************// TMS320F2812电流及DC母线电压检测// 文件名称:F28XILEG_VDC.C//****************************************************************************** #include "DSP28_Device.h"#include "f28xileg_vdc.h"#include "f28xbmsk.h"#define CPU_CLOCK_SPEED 6.6667L // CPU时钟速度150MHz#define ADC_usDELAY 5000L#define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L)/ (long double)CPU_CLOCK_SPEED) - 9.0L) / 5.0L) extern void DSP28x_usDelay(unsigned long Count);void F28X_ileg2_dcbus_drv_init(ILEG2DCBUSMEAS *p){DELAY_US(ADC_usDELAY);AdcRegs.ADCTRL1.all = ADC_RESET_FLAG; /*复位ADC模块*/asm(" NOP ");asm(" NOP ");AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; /* 为bandgap和参考电路供电*/DELAY_US(ADC_usDELAY); /*为ADC其他单元上电前延时*/AdcRegs.ADCTRL3.bit.ADCPWDN = 1; /*为ADC其他单元上电*/AdcRegs.ADCTRL3.bit.ADCCLKPS = 3; /* 设置ADCTRL3寄存器*/DELAY_US(ADC_usDELAY);AdcRegs.ADCTRL1.all = ADCTRL1_INIT_STATE; /*设置ADCTRL1寄存器*/AdcRegs.ADCTRL2.all = ADCTRL2_INIT_STATE; /*设置ADCTRL2寄存器*/AdcRegs.ADCMAXCONV.bit.MAX_CONV = 2; /* 确定3个转换*/AdcRegs.ADCCHSELSEQ1.all = p->Ch_sel; /* 配置通道选择*/EvaRegs.GPTCONA.bit.T1TOADC = 1; /*设置采用Timer1 UF触发ADC转换*/ }void F28X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p){int dat_q15;long tmp;/* 等待ADC转换结束*/while (AdcRegs.ADCST.bit.SEQ1_BSY == 1){};dat_q15 = AdcRegs.ADCRESULT0^0x8000; /*将转换结果变成Q15格式双极性数据*/tmp = (long)(p->Imeas_a_gain*dat_q15);p->Imeas_a = (int)(tmp>>13);p->Imeas_a += p->Imeas_a_offset;p->Imeas_a *= -1; /*正向,电流流向电动机*/dat_q15 = AdcRegs.ADCRESULT1^0x8000; /*将转换结果变成Q15格式双极性数据*/tmp = (long)(p->Imeas_b_gain*dat_q15);p->Imeas_b = (int)(tmp>>13);p->Imeas_b += p->Imeas_b_offset;p->Imeas_b *= -1; /*正向,电流流向电动机*/dat_q15 = (AdcRegs.ADCRESULT2>>1)&0x7FFF; /*将转换结果变成Q15格式双极性数据*/tmp = (long)(p->Vdc_meas_gain*dat_q15);p->Vdc_meas = (int)(tmp>>13);p->Vdc_meas += p->Vdc_meas_offset;p->Imeas_c = -(p->Imeas_a + p->Imeas_b);AdcRegs.ADCTRL2.all |= 0x4040; /* 复位排序器*/}例4、电动机位置检测/******************************************************************************// TMS320F2812电动机位置检测QEP电路初始化及应用// 文件名称:F28XQEP.C//****************************************************************************** #include "DSP28_Device.h"#include "f28xqep.h"#include "f28xbmsk.h"void F28X_EV1_QEP_Init(QEP *p){EvaRegs.CAPCON.all = QEP_CAP_INIT_STATE; /*设置捕捉单元*/EvaRegs.T2CON.all = QEP_TIMER_INIT_STATE; /*设置捕捉定时器*/EvaRegs.T2PR = 0xFFFF;EvaRegs.EV AIFRC.bit.CAP3INT = 1; /*清除CAP3标志*/EvaRegs.EV AIMRC.bit.CAP3INT = 1; /*使能CAP3中断*/GpioMuxRegs.GPAMUX.all |= 0x0700; /*配置捕捉单元的引脚*/}void F28X_EV1_QEP_Calc(QEP *p){long tmp;p->dir_QEP = 0x4000&EvaRegs.GPTCONA.all;p->dir_QEP = p->dir_QEP>>14;p->theta_raw = EvaRegs.T2CNT + p->cal_angle;tmp = (long)(p->theta_raw*p->mech_scaler); /* Q0*Q26 = Q26 */tmp &= 0x03FFF000;p->theta_mech = (int)(tmp>>11); /* Q26 -> Q15 */p->theta_mech &= 0x7FFF;p->theta_elec = p->pole_pairs*p->theta_mech; /* Q0*Q15 = Q15 */p->theta_elec &= 0x7FFF;}void F28X_EV1_QEP_Isr(QEP *p){p->QEP_cnt_idx = EvaRegs.T2CNT;EvaRegs.T2CNT = 0;p->index_sync_flag = 0x00F0;//******************************************************************************// TMS320F2812电动机位置检测QEP电路初始化参数及函数定义// 文件名称:F28XQEP.H//******************************************************************************#ifndef __F28X_QEP_H__#define __F28X_QEP_H__#include "f28xbmsk.h"/* 初始化T2CON和CAPCON */#define QEP_CAP_INIT_STATE 0x9004#define QEP_TIMER_INIT_STATE (FREE_RUN_FLAG + \TIMER_DIR_UPDN + \TIMER_CLK_PRESCALE_X_1 + \TIMER_ENABLE_BY_OWN + \TIMER_ENABLE + \TIMER_CLOCK_SRC_QEP + \TIMER_COMPARE_LD_ON_ZERO)/* 定义QEP (正交编码电路) 驱动的对象*/typedef struct {int theta_elec; /* 输出: 电动机电角度(Q15) */ int theta_mech; /* 输出: 电动机机械角度(Q15) */int dir_QEP; /* 输出: 电动机转动方向(Q0) */int QEP_cnt_idx; /* 变量: 编码器计数(Q0) */int theta_raw; /* 变量: 定时器2得出的角度(Q0) */int mech_scaler; /* 参数: 0.9999/计数最大值,计数最大值= 4000 (Q26) */int pole_pairs; /* 参数: 极对数(Q0) */int cal_angle; /* 参数: 编码器和相之间的角度偏移量(Q0) */int index_sync_flag; /* 输出: Index sync status (Q0) */void (*init)(); /* 初始化函数指针*/void (*calc)(); /* 计算函数指针*/void (*isr)(); /* 中断程序指针*/} QEP;/* 定义一个QEP_handle */typedef QEP *QEP_handle;#define QEP_DEFAULTS { 0x0, 0x0,0x0,0x0,0x0,16776,2,-2365,0x0, \(void (*)(long))F28X_EV1_QEP_Init, \(void (*)(long))F28X_EV1_QEP_Calc, \(void (*)(long))F28X_EV1_QEP_Isr }void F28X_EV1_QEP_Init(QEP_handle);void F28X_EV1_QEP_Calc(QEP_handle);void F28X_EV1_QEP_Isr(QEP_handle);#endif /* __F28X_QEP_H__ */例5、TMS320F2812实现三相永磁同步电动机的磁场定向控制//****************************************************************************** // 采用TMS320F2812实现三相永磁同步电动机的磁场定向控制// 文件名称:PMSM3_1.C//******************************************************************************#include "IQmathLib.h" /* 包含IQmath库函数的头文件*/#include "DSP28_Device.h"#include "pmsm3_1.h"#include "parameter.h"#include "build.h"// 函数声明interrupt void EvaTimer1(void);interrupt void EvaTimer2(void);// 全局变量定义float Vd_testing = 0; /* Vd testing (pu) */float Vq_testing = 0.25; /* Vq testing (pu) */float Id_ref = 0; /* Id reference (pu) */float Iq_ref = 0.4; /* Iq reference (pu) */float speed_ref = 0.2; /* Speed reference (pu) */float T = 0.001/ISR_FREQUENCY; /* Samping period (sec), see parameter.h */int isr_ticker = 0;int pwmdac_ch1=0;int pwmdac_ch2=0;int pwmdac_ch3=0;volatile int enable_flg=0;int lockrtr_flg=1;int speed_loop_ps = 10; // 速度环定标器int speed_loop_count = 1; // 速度环计数器CLARKE clarke1 = CLARKE_DEFAULTS;PARK park1 = PARK_DEFAULTS;IPARK ipark1 = IPARK_DEFAULTS;PIDREG3 pid1_id = PIDREG3_DEFAULTS;PIDREG3 pid1_iq = PIDREG3_DEFAULTS;PIDREG3 pid1_spd = PIDREG3_DEFAULTS;PWMGEN pwm1 = PWMGEN_DEFAULTS;PWMDAC pwmdac1 = PWMDAC_DEFAULTS;SVGENDQ svgen_dq1 = SVGENDQ_DEFAULTS;QEP qep1 = QEP_DEFAULTS;SPEED_MEAS_QEP speed1 = SPEED_MEAS_QEP_DEFAULTS; DRIVE drv1 = DRIVE_DEFAULTS;RMPCNTL rc1 = RMPCNTL_DEFAULTS;RAMPGEN rg1 = RAMPGEN_DEFAULTS;ILEG2DCBUSMEAS ilg2_vdc1 = ILEG2DCBUSMEAS_DEFAULTS;// 主函数void main(void){// 系统初始化InitSysCtrl();// HISPCP 设置EALLOW;SysCtrlRegs.HISPCP.all = 0x0000; /* SYSCLKOUT/1 */ EDIS;// 禁止并清除所有CPU中断:DINT;IER = 0x0000;IFR = 0x0000;// 初始化Pie到默认状态InitPieCtrl();// 初始化PIE相量表InitPieVectTable();// 初始化EV A 定时器1://设置定时器1寄存器(EV A)EvaRegs.GPTCONA.all = 0;//等待使能标志位while (enable_flg==0){// 使能定时器1的下溢中断EvaRegs.EV AIMRA.bit.T1UFINT = 1;EvaRegs.EV AIFRA.bit.T1UFINT = 1;// 使能CAP3中断(定时器2)EvaRegs.EV AIMRC.bit.CAP3INT = 1;EvaRegs.EV AIMRC.bit.CAP3INT = 1;};// 重新分配中断向量EALLOW;PieVectTable.T1UFINT = &EvaTimer1;PieVectTable.CAPINT3 = &EvaTimer2;EDIS;// 使能PIE组2的中断6(T1UFINT)PieCtrlRegs.PIEIER2.all = M_INT6;// 使能PIE组3的中断7(CAPINT3)PieCtrlRegs.PIEIER3.all = M_INT7;// 使能CPU INT2(T1UFINT)和INT3(CAPINT3):IER |= (M_INT2 | M_INT3);// 使能全局中断和最高优先级适时调试事件管理器功能:EINT; //使能全局中断INTMERTM; // 使能适时调试中断DBGM/* 模块初始化*/pwm1.n_period = SYSTEM_FREQUENCY*1000000*T/2; /* 预定标器X1 (T1), ISR周期= T x 1 */ pwm1.init(&pwm1);pwmdac1.pwmdac_period = 2500; /* PWM频率= 30 kHz */pwmdac1.PWM_DAC_IPTR0 = &pwmdac_ch1;pwmdac1.PWM_DAC_IPTR1 = &pwmdac_ch2;pwmdac1.PWM_DAC_IPTR2 = &pwmdac_ch3;pwmdac1.init(&pwmdac1);qep1.init(&qep1);drv1.init(&drv1);ilg2_vdc1.init(&ilg2_vdc1);/* 初始化SPEED_FRQ模块*/speed1.K1 = _IQ21(1/(BASE_FREQ*T));speed1.K2 = _IQ(1/(1+T*2*PI*30)); /* 低通截至频率= 30 Hz */ speed1.K3 = _IQ(1)-speed1.K2;speed1.rpm_max = 120*BASE_FREQ/P;/*初始化RAMPGEN模块*/rg1.step_angle_max = _IQ(BASE_FREQ*T);/* 初始化PID_REG3 Id调节模块*/pid1_id.Kp_reg3 = _IQ(0.75);pid1_id.Ki_reg3 = _IQ(T/0.0005);pid1_id.Kd_reg3 = _IQ(0/T);pid1_id.Kc_reg3 = _IQ(0.2);pid1_id.pid_out_max = _IQ(0.30);pid1_id.pid_out_min = _IQ(-0.30);/* 初始化PID_REG3 Iq调节模块*/pid1_iq.Kp_reg3 = _IQ(0.75);pid1_iq.Ki_reg3 = _IQ(T/0.0005);pid1_iq.Kd_reg3 = _IQ(0/T);pid1_iq.Kc_reg3 = _IQ(0.2);pid1_iq.pid_out_max = _IQ(0.95);pid1_iq.pid_out_min = _IQ(-0.95);/*初始化PID_REG3 速度调节模块*/pid1_spd.Kp_reg3 = _IQ(1);pid1_spd.Ki_reg3 = _IQ(T*speed_loop_ps/0.1);pid1_spd.Kd_reg3 = _IQ(0/(T*speed_loop_ps));pid1_spd.Kc_reg3 = _IQ(0.2);pid1_spd.pid_out_max = _IQ(1);pid1_spd.pid_out_min = _IQ(-1);// 循环等待for(;;);}interrupt void EvaTimer1(void){isr_ticker++;if (speed_loop_count==speed_loop_ps){pid1_spd.pid_ref_reg3 = _IQ(speed_ref);pid1_spd.pid_fdb_reg3 = speed1.speed_frq;pid1_spd.calc(&pid1_spd);speed_loop_count=1;}else speed_loop_count++;pid1_iq.pid_ref_reg3 = pid1_spd.pid_out_reg3;pid1_iq.pid_fdb_reg3 = park1.qe;pid1_iq.calc(&pid1_iq);pid1_id.pid_ref_reg3 = _IQ(Id_ref);pid1_id.pid_fdb_reg3 = park1.de;pid1_id.calc(&pid1_id);ipark1.de = pid1_id.pid_out_reg3;ipark1.qe = pid1_iq.pid_out_reg3;ipark1.ang = speed1.theta_elec;ipark1.calc(&ipark1);svgen_dq1.Ualfa = ipark1.ds;svgen_dq1.Ubeta = ipark1.qs;svgen_dq1.calc(&svgen_dq1);pwm1.Mfunc_c1 = (int)_IQtoIQ15(svgen_dq1.Ta); /* Mfunc_c1 is in Q15 */ pwm1.Mfunc_c2 = (int)_IQtoIQ15(svgen_dq1.Tb); /* Mfunc_c2 is in Q15 */ pwm1.Mfunc_c3 = (int)_IQtoIQ15(svgen_dq1.Tc); /* Mfunc_c3 is in Q15 */ pwm1.update(&pwm1);ilg2_vdc1.read(&ilg2_vdc1);clarke1.as = _IQ15toIQ((long)ilg2_vdc1.Imeas_a);clarke1.bs = _IQ15toIQ((long)ilg2_vdc1.Imeas_b);clarke1.calc(&clarke1);park1.ds = clarke1.ds;park1.qs = clarke1.qs;park1.ang = speed1.theta_elec;park1.calc(&park1);qep1.calc(&qep1);speed1.theta_elec = _IQ15toIQ((long)qep1.theta_elec);speed1.dir_QEP = (long)(qep1.dir_QEP);speed1.calc(&speed1);pwmdac_ch1 = (int)_IQtoIQ15(svgen_dq1.Ta);pwmdac_ch2 = (int)_IQtoIQ15(clarke1.as);pwmdac_ch3 = (int)_IQtoIQ15(speed1.theta_elec);drv1.enable_flg = enable_flg;drv1.update(&drv1);pwmdac1.update(&pwmdac1);// 使能定时器中断EvaRegs.EV AIMRA.bit.T1UFINT = 1;EvaRegs.EV AIFRA.all = BIT9;PieCtrlRegs.PIEACK.all |= PIEACK_GROUP2;}interrupt void EvaTimer2(void){qep1.isr(&qep1);EvaRegs.EV AIMRC.bit.CAP3INT = 1;EvaRegs.EV AIFRC.all = BIT2;PieCtrlRegs.PIEACK.all |= PIEACK_GROUP3;}。