PMSM电机无传感器FOC矢量控制
MICROCHIP AN1078 PMSM电机FOC控制中文

矢量控制综述
间接矢量控制的过程总结如下: 1. 测量 3 相定子电流。 这些测量可得到 ia 和 ib 的 值。 可通过以下公式计算出 Ic : ia + ib + ic = 0。 将 3 相电流变换至 2 轴系统。该变换将得到变量 它们是由测得的 ia 和 ib 以及计算出的 ic 值 iα 和 iβ, 变换而来。从定子角度来看,iα 和 iβ 是相互正交 的时变电流值。 按照控制环上一次迭代计算出的变换角,来旋转 2 轴系统使之与转子磁通对齐。 iα 和 iβ 变量经过 该变换可得到 Id 和 Iq。Id 和 Iq 为变换到旋转坐标 系下的正交电流。在稳态条件下, Id 和 Iq是常量。 误差信号由 Id、 Iq 的实际值和各自的参考值进行 比较而获得。 • Id 的参考值控制转子磁通 • Iq 的参考值控制电机的转矩输出 • 误差信号是到 PI 控制器的输入 • 控制器的输出为 Vd 和 Vq,即要施加到电机 上的电压矢量 估算出新的变换角,其中 vα、 vβ、 iα 和 iβ 是输 入参数。 新的角度可告知 FOC 算法下一个电压 矢量在何处。 通过使用新的角度,可将 PI 控制器的 Vd 和 Vq 输出值逆变到静止参考坐标系。该计算将产生下 一个正交电压值 vα 和 vβ。 vα 和 vβ 值经过逆变换得到 3 相值 va、vb 和 vc。 该 3 相电压值可用来计算新的 PWM 占空比值, 以生成所期望的电压矢量。图 6 显示了变换、PI 迭代、逆变换以及产生 PWM 的整个过程。
PMSM无传感器FOC的单分流三相电流重构算法01299a_cn.

AN1299 结论本应用笔记阐述了单分流算法的优点、局限性和限制条件。
通过使用单分流电阻来检测流经直流母线的电流,单分流算法能够重构流经电机各相的电流。
为了获取蕴含在直流母线电流中的信息,使用了空间矢量调制方法。
SVM 产生一组采样时间窗口,在时间窗口中可以观察流经电机各相的电流。
在分流电阻真值表(表 1)中对这些时间窗口进行了划分和分组。
此真值表表明了分流电阻提供的信息与电子开关状态之间的关系。
但是,在某些 SVM 区域,要从直流母线电流获取期望信息是不可能的。
通过修改 SVM 开关模式可以克服这一局限性。
对这些模式进行修改,使得在每个 SVM 工作状态中从单分流电阻提取期望信息成为可能。
这些实际结果表明:单分流电阻方法提供了足够精确的信息,能够满足磁场定向控制的需求。
对提取的流经直流母线的电流进行重构,根据重构的信息,还可能获取诸如位置、转矩这样的电机信息。
参考文献本应用笔记参考了下列应用笔记,它们可从 Microchip 网站()下载:•AN908 《使用 dsPIC30F 实现交流感应电机的矢量控制》(DS00908A_CN)• AN955 “VF Control of 3-Phase Induction Motor (DS00955) Using Space Vector Modulation” • AN1017 《使用 dsPIC30F DSC 实现 PMSM 电机的正弦驱动》(DS01017A_CN)• AN1078 《PMSM 电机的无传感器磁场定向控制》(DS01078A_CN) 2009 Microchip Technology Inc. DS01299A_CN 第 21 页AN1299 注: DS01299A_CN 第 22 页 2009 Microchip Technology Inc.请注意以下有关 Microchip 器件代码保护功能的要点:• • • Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。
无感FOC控制原理

- 定子坐标系(静止)
― A-B-C坐标系(三相定子绕组、相差120度) ― α-β坐标系(直角坐标系:α 轴与A轴重合、 β 轴超前α 轴90度)
- 转子坐标系(旋转)
― d-q坐标系(d轴-转子磁极的轴线、q轴超前d轴90度 ) - 定向坐标系(旋转) ― M-T坐标系( M轴固定在定向的磁链矢量上,T轴超前M轴90度 )
ADC Channel 7
电流采样方式选择
比较内容 母线电阻 1 2 3 MCU运算开销 支持电机运行范围 硬件需求 大 大 1shunt+高带 宽运放 电流采样方式 双电阻 小 略低 2 shunt +普 通带宽轨到轨 双运放 一般 好 三电阻 中 大 3shunt +普通 带宽轨到轨四 运放 差 好
FOC的控制要素—母线电流还原相电流
母线电阻电流采样
通过直流母线侧一个电阻,实现一个周期内两相电流的测量,第三相电 流由 得到。 SVPWM开关 VS 直流母线电流
FOC的控制要素—相电流采样
单电阻ADC采样
SVPWM单直流母线电阻采样 CC83 ST信号用来硬件触发ADC
Power MOSFET
使用V0矢量
使用V7矢量
7段SVPWM、5段SVPWM端电压对比
7段SVPWM、5段SVPWM选择
比较内容
1 2 3 4 THD 开关损耗 功率开关 调制波形
SVPWM模式 7段SVPWM 较低,性能好 较高 多 连续 5段SVPWM 较高,性能差 减少1/3 少 不连续
5
母线电压利用率
一致
4 5
电路一致性 电流还原效果
好 略差
FOC的控制要素—闭环控制
foc 电机矢量控制

foc 电机矢量控制FOC电机矢量控制是一种高级的电机控制技术,它通过对电机的电流和电压进行精确控制,实现对电机的高效运行。
本文将对FOC电机矢量控制的原理、优势和应用进行介绍。
一、FOC电机矢量控制的原理FOC电机矢量控制的核心思想是将电机拆分成磁场定向控制和电流控制两个子系统。
首先,通过磁场定向控制,将电机的磁场与转子磁场的磁轴对齐,使电机旋转产生转矩。
然后,通过电流控制,控制电机的电流大小和相位,实现对电机的转速和转矩的精确控制。
具体来说,FOC电机矢量控制使用了两个坐标系:静态坐标系和旋转坐标系。
静态坐标系是以电机的定子为基准,旋转坐标系是以转子为基准。
在磁场定向控制中,通过变换静态坐标系到旋转坐标系,可以将电机的磁场与转子磁场的磁轴对齐。
在电流控制中,通过变换旋转坐标系到静态坐标系,可以将电机的电流转换为静态坐标系下的电流,从而实现对电流的精确控制。
二、FOC电机矢量控制的优势FOC电机矢量控制相比传统的电机控制技术具有如下优势:1. 高效运行:FOC电机矢量控制可以减少电机的功率损耗,提高电机的效率。
通过精确控制电机的电流和电压,可以使电机在不同负载下都能以最佳效率运行。
2. 高精度控制:FOC电机矢量控制可以实现对电机转速和转矩的精确控制。
通过精确控制电机的电流大小和相位,可以实现对电机的精确控制,从而满足不同应用场景的需求。
3. 高动态响应:FOC电机矢量控制可以实现对电机的快速响应。
通过精确控制电机的电流和电压,可以实现电机的快速加速和减速,提高电机的动态响应性能。
4. 低噪音和低振动:FOC电机矢量控制可以减少电机的噪音和振动。
通过精确控制电机的电流和电压,可以减少电机的震荡和共振现象,从而降低电机的噪音和振动。
三、FOC电机矢量控制的应用FOC电机矢量控制广泛应用于各种领域的电机控制中,包括工业控制、家用电器、交通运输等。
在工业控制领域,FOC电机矢量控制可以用于驱动各种类型的电机,如交流电机、直流电机和步进电机。
无传感器FOC控制提高电器电机控制设计

无传感器FOC控制提高电器电机控制设计邮件群发对于大多数家用电器制造商,提高电器效率和降低可闻噪声是最优先考虑的事项。
通常,政府通过严格的法规来推动对效率的要求。
然后,有一些消费者会愿意引领潮流,以相对较高的价格购买“更绿色”的电器。
这驱使电器制造商研究相应的解决方案,解决效率和可闻噪声方面的问题,同时让增加的整体系统成本保持最低。
例如,电器制造商希望设计出可以快速响应速度变化(包括洗涤和甩干两个过程)的洗衣机。
一些高级电机控制技术,如磁场定向控制(FOC),也称为矢量控制,有助于设计出更加安静节能的洗衣机。
洗衣机控制拓扑本文主要关注如何部署FOC来设计高效、安静的洗衣机。
通过分析洗衣机的构造,可以了解为什么需要高效的电机控制技术。
如图1所示,最新型的洗衣机带有一个滚筒单元,该结构由BLDC电机或PMSM电机、电机控制器电路板、带按键用户界面电路板和显示单元组成。
控制器电路板和用户界面电路板可以使用串行链路(如UART、SPI或专有串行协议)进行通信,用以设置所需的洗涤负载、漂洗速度,以及处理其他命令。
根据所接收到的命令,电机控制器电路板会调整电机速度和扭矩。
电机是洗衣机中最主要的用电部件,用电量可达总用电量的85%。
因此,对于PMSM控制的任何改进,都可以显著节省用电和成本。
为此,高效的电机控制对于设计更好的电器非常关键。
图1新型洗衣机的构造新型信号控制器促进电器设计半导体技术的发展促进了数字信号控制器(DSC)和功率电子开关的产生,它们可以用于设计变速电机。
实际上,得益于DSC高效而高成本效益的电机功率管理,电器不再需要局限于使用一些定制的硬件和控制技术。
例如,借助Microchip最新一代的dsPIC DSC系列,电器制造商现在可以设计出显著节省用电和成本的电机系统。
这是因为dsPIC DSC上包含专用于电机控制应用的外设。
这些外设包括电机控制脉宽调制(MCPWM)、高速ADC和可扩展闪存程序存储器。
无感FOC控制原理

IDClink
T0/2
TU
T-W
DClink
T0 TPWM
d
t
t
e
f
gt
T-W
TU
T0/2 t
SVPWM.emf
t
t
e
f
gt
FOC的控制要素—母线电流还原相电流
母线电阻电流采样
通过直流母线侧一个电阻,实现一个周期内两相电流的测量,第三相电
无传感器磁场定向控制(FOC) 风机控制原理
主要内容
风机用直流无刷电机 FOC的控制原理 无感FOC的控制原理
主要内容
风机用直流无刷电机 FOC的控制原理 无感FOC的控制原理
风机用电机以及控制方式
FAN Motor
ACIM
效率
BLDC/PMSM
梯形波控制
简易正弦波控制
噪声
无感FOC控制
扇区
空间矢量构成6个扇区
[100] [110] [010] [011] [001] [101] [100]
确定Vref位于哪个扇区,才能知道用哪对相邻的基本电压 空间矢量去合成Vref 。
S N S
N
[110]
[010]
[011]
[001]
N
S N
[010]
[101]
S N S
N
B CA
DF E
A
B
C
D
E
F
IU
IV
IW
S
[100]
N
[100] [110] [010] [011] [001] [101] [100]
FOC控制永磁同步电机(PMSM)接线方法

本文档是针对PMSM 电机FOC 控制驱动请注意区别42永磁同步电机(PMSM )引线说明电机相线黄U绿V蓝W传感器接口1GND电源地2VCC电源正(5V)3PW+霍尔传感器W4PV-V5PU+U6PZ+编码器Z+7PB+B+8PA+A+9NC无信号10NC11NC12NC13PZ-编码器Z-14PB-B-15PA-A-传感器接口引脚顺序定义42永磁同步电机(PMSM)参数供电电压24 V额定功率63W额定力矩0.2 N.M峰值力矩0.6 N.M额定转速3000 RPM 额定电枢电流 3.13 A力矩系数0.057 N.M/A 反电势系数 4.13 V/KRPM 磁极8(4对极)编码器1000线相电阻0.89±10%Ω相电感0.62±20%mH电机驱动板与PMSM 电机接线说明序号驱动板接口功能说明电机引脚1U 电机接口直流无刷电机动力线注意这里实际是将蓝线(W)和黄线(U)对调蓝电机粗线2V 绿3W 黄4VCC 外部电源外部24V 电源供电,驱动板允许接入电源范围:18~36V 直流电源5GND15V 电压输出,可以为外部设备供电PMSM 电机传感器专用接口霍尔传感器接口电机动力线&电源注意:请使用带电压电流保护的24V 电源供电,一般设置电源为24V 2A 输出,空载时候,电机正常运转时总电流大概是200mAPMSM 电机不使用该端子接口,直接使用驱动板左上角VGA 接口的传感器接口注意:调试时候严禁直接使用锂电池供电,必须使用带保护的电源供电。
这里电机的U(黄)线实际接驱动板的W接口;电机的W(蓝)线实际接驱动板的U接口。
注意:1.调试时候需要把开发板上的跳线帽都去掉,防止信号干扰,无刷电机例程都不需要跳线帽的2.开发板需要单独外部供电,使用USB线或者外部电源供电,如下图:霍尔传感器模式FOC控制例程连线方法对应以下例程:YSF1_PMSM-005. FOC v4.2_HallSensor_42PMSM YSF1_PMSM-008. FOC v2.0_HallSensor_42PMSM无刷电机驱动板与YS-F1Pro开发板接线说明序号模块引脚功能说明开发板引脚2U霍尔传感器霍尔传感器接口PC84V PC7 6W PC6 8U线电流电机驱动臂电流采集PC110V PC2 12W PC3 13V_BUS外部电源电压检测(过压、欠压保护)PC5 14温度环境温度检测(高温保护)PC0 15PU_H梯形方波驱动信号正弦波(SVPWM)驱动信号PA816PU_L PB1317PV_H PA918PV_L PB1419PW_H PA1020PW_L PB1522SD ShutDown引脚,停机,高电平有效与GND连接或者悬空21GND电源线开发板和驱动板至少需要连接一根GND线。
PMSM永磁同步电机设计技术方案(PFC功率因数、FOC磁场导向及矢量控制设计永磁同步电机技术)

PMSM永磁同步电机设计技术方案(PFC功率因数、FOC磁场导向及矢量控制设计PMSM永磁同步电机技术)1、多数电机控制系统通常将PFC作为系统的第一级。
由于逆变器中开关器件的存在,若没有PFC 输入级,那么所产生的电流中将会含有显著的谐波分量。
此外,由于电机负载的高度感性,输入电流将会给输入系统引入大量无功功率,从而降低整个系统的效率。
PFC 级作为电机控制应用中的一个前端转换器,能够较好地调节输出电压以及降低输入电流中的谐波含量。
2、本应用场合选用PMSM电机。
电能质量的提高通过进行功率因数校正(Power Factor Correction,PFC)来实现,而电机的高效控制可以通过使用无传感器磁场定向控制(Filed Oriented Control,FOC)技术来实现。
3、家电业通常要求这些算法能够得以低成本的方式加以实现。
这可通过将PFC 和无传感器FOC 算法集成在单片数字信号控制器(Digital Signal Controller,DSC)上来实现。
4、本PFC 和无传感器FOC 集成系统中,采用了带下列外设的处理器:⑴、脉冲宽度调制器(Pulse Width Modulator,PWM);⑵、模数转换器(Analog-to-Digital Converter,ADC);⑶、正交编码器接口(Quadrature Encoder Interface,QEI)。
5、处理器上的这些外设最好具有以下特性:A、多源触发ADC;B、输入转换速率最快为1Msp;C、同步采样多个模拟通道技术;D、故障检测与处理能力;图1显示了一个PFC 和无传感器FOC 集成系统的结构图。
在这类应用中,按照平均电流模式控制的标准升压转换器拓扑是实现数字化PFC的首选方法。
6、双分流无传感器FOC 法是一种驱动PMSM 电机的转速控制方法。
它克服了那些无法配置位置和速度传感器的应用中存在的限制条件。
7、PMSM 电机的速度和位置可以通过测量相电流来估算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// @Date
09.01.2005
// Condition optimization off / one
//****************************************************************************
inline int clarke_trans(int Phase_s, int Phase_t, int *ia)
说明:下面程序取自 IFX 16 位机无传感器 PMSM 电机矢量控制程序。程序架构是 C 语言嵌套汇编。其中坐标系变换是汇编编写。有插图说明,便于 更好的理解。其中包括坐标系变换,磁链角估算,PI 速度环电流环调节。(单片机 XC2236N,Tasking 编译器 Cavin 整理) 坐标系变换说明:双电阻采样得到两相电流(ia, ib),由 abc120°静止坐标系 Clarke 变换到直角坐标系(iα, iβ),由(iα, iβ)静止直角坐标系 Park 变换到直 角旋转坐标系(iq, id)。直流 id 不变,通过 PI 速度环电流环得到期望直流 iq,进行限幅控制。由旋转坐标系(vq, vd)经过 Park 逆变换到静止坐标系(vα, vβ), 然后再经过矢量调制成 PWM 控制电机。 无传感器角度估算:由 Clarke 变换得到 (iα, iβ)和由 Park 逆变换得到的(vα, vβ),经过低通滤波器 PT1,再由直角坐标系变极坐标系得到磁链估算角 无传感器开环启动策略:在定子中加入幅值及频率都受控的电流,若 PLL 收敛,切换到 FOC 闭环控制。
\n"
" mov r12,[%3 + #SOF(_sincostab+512)] \n"
" mov r11,[%3 + #SOF(_sincostab)]
\n"
" CoMUL %1,r12
\n"
" CoMAC- %2,r11
\n"
" CoASHR #2
\n"
" CoSTORE %0,MAS
\n"
" CoMUL %1,r11
: "r13","r12","r11" /*scratch registers */
);
return retvalue;
}
//**************************************************************************** // @Function int cart_polar_conv(int x,int y, int *angle); // //---------------------------------------------------------------------------// @Description
\n"
" CoMAC %2,r12
\n"
" CoASHR #2
\n"
" CoSTORE [%4],MAS
\n"
" mov MCW,r13
\n"
"\n"
: "=&w"(retvalue) /* output registers */
: "w"(i_d),"w"(i_q),"w"(phi),"w"(o_b) /* input registers */
****************************************************************************/
//****************************************************************************
\n"
" CoMUL %2,r12
\n"
" CoMAC %1,r11
\n"
" CoSTORE %0,MAS
\n"
" CoMUL %2,r11
\n"
" CoMAC- %1,r12
\n"
" CoSTORE [%4],MAS
\n"
" mov MCW,r13
\n"
"\n"
: "=&w"(retvalue) /* output registers */
// @Function int inv_park_trans(int e_a,int e_b,int phi,int *a_b)
//
//----------------------------------------------------------------------------
// @Description inverse park transformation
;* 1/sqrt(3)
\n"
" CoSHL #4
; default 2 * 4
\n"
" CoSTORE %0,MAS
; ib = result
\n"
" shl %1,#2
\n"
" mov [%3],%1
; ia = Phase_s * 4
\n"
" mov MCW,r12
\n"
: "=&w"(retvalue) /* output registers */
****************************************************************************/
//****************************************************************************
//
ib = 1/sqrt(3)*( (2 * it) + is)
//
//----------------------------------------------------------------------------
// @Returnvalue (ib * 16) , "(ia * 16)"
{
int retvalue;
__asm(
" mov r12,MCW
\n"
" mov MCW,#0200h ; set saturation
\n"
" shl %2,#1
; ( 2*Phase_t
\n"
" add %2,%1
; + Phase_s )
\n"
" mov r13,#37837
\n"
" CoMULsu %2,r13
// @Parameters
//
//----------------------------------------------------------------------------
// @Date
09.01.2005
// Condition optimization off / one
//**************************************************************************** inline int park_trans(int i_a,int i_b,int phi,int *o_q) { int retvalue;
inline int inv_park_trans(int i_d,int i_q,int phi,int *o_b)
{
int retvalue;
__asm( "\n"
" mov r13,MCW
\n"
" mov MCW,#0600h
\n"
" shr %3,#6
\n"
" shl %3,#1
\n"
" EXTS #SEG (_sincostab),#2
//
//----------------------------------------------------------------------------
// @Returnvalue Id_comp , Iq_comp
//
//----------------------------------------------------------------------------
// @Function int clarke_trans(int Phase_s, int Phase_t, int *ia);
//
//----------------------------------------------------------------------------
// @Description ia = is
: "w"(i_a),"w"(i_b),"w"(phi),"w"(o_q) /* input registers */
: "r13","r12","r11" /*scratch registers */