FOC 转子初始位置检测(图文详解)
本文介绍了PMSM的转子初始位置的各种情况;
文章目录
1 什么是转子的初始位置?
其实转子的初始位置是不确定的,但是在电机启动的时候,我们需要得到电角度,这样才可以进行矢量控制;所以,这里将转子与A轴重合作为初始位置,此时电角度也恰好为零,具体如下图所示;

)
至于原理下面会详细分析,这样在转子到初始位置后,也可以得到准确的电角度,就可以实现磁场和转子的同步转动。
2 如何让转子运行到初始位置?
其实这是一个很简单的问题,在这里我将它放大了,简单地分析了一下推导了一下,首先我们期望的结果是转子和A轴重合,准确地说是转子磁链和A轴重合。
之前在分析单电阻采样,对不同时刻的转子位置,处于不同的扇区时,电流的状态做了简单的分类讨论,首先看下图;

显然,当转子磁链与A轴重合的时候,逆变器的开关状态为:
SA:SB:SC—1:0:0
S_{A}:S_{B}:S_{C}—1:0:0
SA:SB:SC—1:0:0
这里规定上管打开,下管关闭的时候,SA=1S_{A} = 1SA=1;上管关闭,下管打开的时候,SA=0S_{A} = 0SA=0
因此可以得到
IA=IDCIC=IB=−IDC2I_{A} = I_{DC} \\
\\
\\
I_{C} = I_{B} = -\cfrac{ I_{DC}}{2} \\
IA=IDCIC=IB=−2IDC
静止坐标系αβ\alpha\betaαβ,α\alphaα轴的电流分量为iαi_{\alpha}iα,iβi_{\beta}iβ,则Clark变换满足以下公式:
iα=iAiβ=13∗iA+23∗iBi_{\alpha} = i_{A} \\
\\
i_{\beta} = \cfrac{1}{\sqrt{3}}*i_{A}+\cfrac{2}{\sqrt{3}}*i_{B}iα=iAiβ=31∗iA+32∗iB
所以根据Clark变换公式可以得到:
iα=IA=IDCiβ=13∗IA+23∗IB=13IDC−13IDC=0i_{\alpha} = I_{A} = I_{DC}\\
\\
i_{\beta} = \cfrac{1}{\sqrt{3}}*I_{A}+\cfrac{2}{\sqrt{3}}*I_{B} = \cfrac{1}{\sqrt{3}} I_{DC} - \cfrac{1}{\sqrt{3}} I_{DC} = 0iα=IA=IDCiβ=31∗IA+32∗IB=31IDC−31IDC=0
根据park变换:
id=iα∗cosθ+iβ∗sinθiq=−iα∗sinθ+iβ∗cosθi_{d}=i_{\alpha}*cos\theta+i_{\beta}*sin\theta \\
i_{q}=-i_{\alpha}*sin\theta+i_{\beta}*cos\thetaid=iα∗cosθ+iβ∗sinθiq=−iα∗sinθ+iβ∗cosθ
因为当前电角度为零,所以将 IA=IDC,IB=0,θ=0I_{A} = I_{DC},I_{B} = 0 ,\theta = 0IA=IDC,IB=0,θ=0 代入park变换的公式中,最终得到;
id=IDCiq=0i_{d}=I_{DC} \\
i_{q}=0id=IDCiq=0
所以可以设置id=IDC,iq=0i_{d}=I_{DC} ,i_{q}=0id=IDC,iq=0;然后通过park反变换得到Uα,UβU_{\alpha},U_{\beta}Uα,Uβ输入到SVPWM,就可以将转子驱动的和A轴重合的位置。
ipark_parameter.Ds = 0;
ipark_parameter.Qs = 20000;
ipark_parameter.Angle = 0;
ipark_calc(&ipark_parameter);
sv.Ualpha = ipark_parameter.Alpha;
sv.Ubeta = ipark_parameter.Beta;
svpwm_calc(&sv);
svpwm_update(ipark_parameter.Qs, &sv);
以上代码是实际测试中使用的,20000是电流的Q格式,最终可以实现预期的效果。
那么,如果iq=IDC;id=0;θ=0i_{q}=I_{DC} ;i_{d}=0;\theta = 0iq=IDC;id=0;θ=0;转子会出现什么样的情况呢?
3 iq=IDC;id=0;θ=0i_{q}=I_{DC} ;i_{d}=0;\theta = 0iq=IDC;id=0;θ=0
因为存在机械角度和电角度存在:电角度=机械角度*极对数;
所以如果电机极对数为1时:转子磁链与A轴夹角的机械角度为90°

所以如果电机极对数为2时:转子磁链与A轴夹角的机械角度为45°

FOC 转子初始位置检测(图文详解)的更多相关文章
- DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解
DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解 说明:此文章中部分图片为网络搜集,所以不一定为DELL R720服务器安装界面,但可保证界面内容接近DELL ...
- Windows XP硬盘安装Ubuntu 12.04双系统图文详解
Windows XP硬盘安装Ubuntu 12.04双系统图文详解 Ubuntu 12.04 LTS版本于2012年4月26日发布,趁着五一放假,赶紧在自己的Windows XP的电脑上安装下Ubun ...
- 全网最详细的Eclipse和MyEclipse里对于Java web项目发布到Tomcat上运行成功的对比事宜【博主强烈推荐】【适合普通的还是Maven方式创建的】(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发 ...
- 全网最详细的MyEclipse里如何正确新建普通的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在eclipse里,则是File -> new -> ...
- SPSS学习系列之SPSS Modeler的功能特性(图文详解)
不多说,直接上干货! Win7/8/10里如何下载并安装最新稳定版本官网IBM SPSS Modeler 18.0 X64(简体中文 / 英文版)(破解永久使用)(图文详解) 我这里,是以SPSS ...
- 图文详解 Android Binder跨进程通信机制 原理
图文详解 Android Binder跨进程通信机制 原理 目录 目录 1. Binder到底是什么? 中文即 粘合剂,意思为粘合了两个不同的进程 网上有很多对Binder的定义,但都说不清楚:Bin ...
- cloudemanager安装时出现failed to receive heartbeat from agent问题解决方法(图文详解)
不多说,直接上干货! 安装cdh5到最后报如下错误: 安装失败,无法接受agent发出的检测信号. 确保主机名称正确 确保端口7182可在cloudera manager server上访问(检查防火 ...
- (转)CentOS 6下配置软RAID图文详解
CentOS 6下配置软RAID图文详解 原文:http://blog.51cto.com/hujiangtao/1929620 一.RAID 简介 RAID 是英文Redundant Array o ...
- (转)CentOS系统启动流程图文详解
CentOS系统启动流程图文详解. 原文:http://www.linuxidc.com/Linux/2017-03/141966.htm 熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽 ...
随机推荐
- C - Battle City BFS+优先队列
Many of us had played the game "Battle city" in our childhood, and some people (like me) e ...
- Xshell 中文提示乱码
1.Alt+P 打开配置对话框,点击终端->编码,选择Unicode(utf-8)编码
- 解决SpringMVC的乱码问题:CharacterEncodingFilter
在使用 SpringMVC 框架的过程中,如果前台有包含中文的请求,或者后台有包含中文的响应,有可能会出现乱码的情况.在以前的 Servlet 中,我们使用 request.setCharacterE ...
- 【题解】P2024 [NOI2001]食物链 - 数据结构 - 并查集
P2024 [NOI2001]食物链 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 动物王国中有三类动物 \(A,B ...
- 模糊字符串匹配:FuzzyWuzzy
FuzzyWuzzy 模糊字符串匹配,它使用Levenshtein Distance来计算简单易用的包中序列之间的差异. 前置条件 Python 2.7 or higher difflib pytho ...
- orcale 多列转一行显示
强大的数据库有个自带函数wm_concat() wm_concat()这个函数放的是需要汇总的列 select wm_concat(name) name from tablename
- 关于foreach总是报错invalid param等问题
原因为被foreach的数组可能为空,则会报错,只需做好容错即可,例如 if ( !empty( $arr ) ) { foreach ( $arr as $k => $v ) { } }
- (三)PL/SQL数据类型
PL/SQL注释 程序注释是解释性说明,可以包括自己编写的,并帮助任何人阅读源代码的PL/SQL代码.所有的编程语言允许某种形式的注释. 在PL/SQL支持单行和多行注释.任何注释里面所有字符都会被P ...
- 【ejabberd】安装XMPP服务器ejabberd(Ubuntu 12.04)
ejabberd ejabberd is a free and open source instant messaging server written in Erlang/OTP. ejabberd ...
- Vue Cli 3 打包上线 部署到Apache Tomcat服务器
使用 npm run build 打包项目 在根目录中有一个dist文件夹 我使用的服务器是 Apache Tomcat 把项目放进tomcat /webapps 中 启动服务器 <mac O ...