电机驱动(一)——FOC坐标变换

4 篇文章 1 订阅
2 篇文章 0 订阅

电机驱动(一)——FOC坐标变换


version : v1.0 「2022.7.28」 最后补充


author: Y.Z.T.

摘要: 简要介绍FOC驱动从坐标变换到SVPWM 各个部分在MATLAB仿真和硬件平台实现的学习过程


备注: ❗️面向自己的笔记 , 有的地方可能说的不是很清晰




⭐️ 目录





1️⃣ 前言

六步换向控制无刷直流电机

image-20221015150424630

通过ABC三相电流方向来控制直流无刷电机选择 ,

步骤A相电压B相电压C相电压转子目标角度
1+-悬空 15 0 ∘ 150^{\circ} 150
2+悬空- 21 0 ∘ 210^{\circ} 210
3悬空+- 27 0 ∘ 270^{\circ} 270
4-+悬空 33 0 ∘ 330^{\circ} 330
5-悬空+ 3 0 ∘ 30^{\circ} 30
6悬空-+ 9 0 ∘ 90^{\circ} 90

通过不断重复这六步换向 , 就可以让BLDC转动起来



1.2 有感FOC控制流程

image-20221004205032040


1.3 无感FOC控制流程

image-20221004205036856

反park变换 : 由直流信息转变为交流信息,把 θ \theta θ 和D轴Q轴信息进行合成 为一个交流信息

Clark变换 : 把三相的电流正弦波分解成二维的直角坐标系( α \alpha α - β \beta β 坐标 )

image-20221005165836664

park变换 :

  • Clark变换后的( α \alpha α - β \beta β 坐标 ) 旋转 θ \theta θ 度(即 d - q 坐标系), 其中 θ \theta θ 是转子当前的角度 ;
  • d - q坐标系是一个始终跟随转子进行旋转的坐标系
  • 通过将一个匀速旋转向量 θ \theta θ在这个坐标系下变成了一个定值 , 实现将两个控制量 I d I_d Id I q I_q Iq 线性化.

img



FOC驱动电机的速度由 电机的转矩和负载的大小动态决定

例: 速度开环的情况下

  • 当负载不变时转矩 = 负载时 ,电机转速恒定;
  • 转矩增大, 电机转速增快 , 负载阻力增大 ,直到转矩和负载重新达到平衡
  • 转矩减小, 电机转速减小 , 负载阻力减小 ,直到转矩和负载重新达到平衡

2️⃣ 坐标变换

(👇 关于这各个变换的目的是什么 , 可以参考一下这篇文章)

深入浅出讲解FOC算法与SVPWM技术

2.1为什么要进行坐标变换

即将角度信息、磁场信息、转矩信息进行解耦,方便控制

2.1.1 目标
  1. 利用三相线圈产生旋转的磁场来控制转子的转动。
  2. 因此我们需要在三相线圈里面产生正弦的交流电流
  3. 通过在三相线圈内通入 , 互差120度的正弦的电压来产生正弦交流电流。

2.1.2将交流信息转变成直流信息
  • 因为foc电机的速度是通过转矩来控制的 , 如果想要改变电机转矩
  • 则需要改变通入线圈的正弦交流电的幅值 ;
  • 要改变电流幅值 ,则需要改变正弦交流电压的幅值
  • 现在我们想要动态的调节, 输入电压的幅值 ,一般是使用闭环的PID进行控制;
  • 为了方便进行控制 , 所以需要将正弦的交流电压转变为直流的,所以需要进行坐标变换

2.1.3坐标变换需要做到

我们需要的控制量有 ①幅值信息 , ②角度信息

把正弦交流信息分解成角度信息幅值信息

最终分解成 角度 θ \theta θ转矩Q磁场D


补充:

  • park变换和clark变换 , 正向变换都是对电流进行变换 ;
  • 反向变换都是对电压进行变换;


2.2反park变换

经过Park反变换将旋转坐标系(d - q 坐标系)变成了静止坐标系( α \alpha α - β \beta β 坐标系); 方便接下来让静止的两相坐标系向3相绕组坐标系进行变换。


2.2.1基本公式:

{ V α =   V d ⋅ cos ⁡ θ   −   V q ⋅ sin ⁡ θ V β   =   V d ⋅ sin ⁡ θ   +   V q ⋅ cos ⁡ θ \begin{cases} V_\alpha =\ V_d\cdot\cos{\theta}\ -\ V_q\cdot\sin{\theta} \\ V_\beta\ =\ V_d\cdot\sin{\theta}\ +\ V_q\cdot\cos{\theta} \end{cases} {Vα= Vdcosθ  VqsinθVβ = Vdsinθ + Vqcosθ

image-20221005205642809



2.2.2Matlab 仿真:

image-20221006220536197

可以看到matlab仿真结果, $V_\alpha $ 和 V β V_\beta Vβ 相位差为 9 0 ∘ 90^{\circ} 90



2.2.3硬件平台实现:
  • 通过上位机打印参数波形
  • theta为 (0~2pi)的锯齿波
  • V_d = 0.0f
  • V_q = 1.0f

image-20221015000036380



2.3反Clark变换

反clark变换的目的是把两个垂直的坐标系( α \alpha α - β \beta β 坐标系 )转变为三相绕组坐标系;

(在FOC的控制中, 并没有使用反Clark变换 , 因为通过后边公式的化简发现只需要Iα和Iβ即可)


2.3.1基本公式:

{ V a   =   V α ⋅ cos ⁡ 0 ∘   +   V β ⋅ cos ⁡ 9 0 ∘ V b   =   − V α ⋅ sin ⁡ 3 0 ∘   +   V β ⋅ cos ⁡ 3 0 ∘ V c   =   − V α ⋅ sin ⁡ 3 0 ∘   −   V β ⋅ cos ⁡ 3 0 ∘ \begin{cases} V_a\ =\ V_\alpha\cdot\cos{0^{\circ}}\ +\ V_\beta\cdot\cos{90^{\circ}} \\ V_b\ =\ -V_\alpha\cdot\sin{30^{\circ}}\ +\ V_\beta\cdot\cos{30^{\circ}} \\ V_c \ =\ -V_\alpha\cdot\sin{30^{\circ}}\ -\ V_\beta\cdot\cos{30^{\circ}} \end{cases} Va = Vαcos0 + Vβcos90Vb = Vαsin30 + Vβcos30Vc = Vαsin30  Vβcos30


化简得:
{ V a   =   V α V b   =   − 1 2 ⋅ V α   +   3 2 ⋅ V β V c   =   − 1 2 ⋅ V α   −   3 2 ⋅ V β \begin{cases} V_a\ =\ V_\alpha \\ V_b\ =\ -\frac{1}{2}\cdot V_\alpha\ +\ \frac{\sqrt{3}}{2}\cdot V_\beta \\ V_c \ =\ -\frac{1}{2}\cdot V_\alpha\ -\ \frac{\sqrt{3}}{2}\cdot V_\beta \end{cases} Va = VαVb = 21Vα + 23 VβVc = 21Vα  23 Vβ

坐标图:

image-20221005212529859



2.3.2Matlab 仿真

image-20221006230158773

image-20221006230131147

  • 可以看到a, b, c三个方向互差 12 0 ∘ 120^{\circ} 120



2.3.3 硬件平台实现
  • 通过上位机打印参数波形
  • theta为 (0~2pi)的锯齿波
  • V_d = 0.0f
  • V_q = 1.0f

image-20221015002613794



2.4 Clark变换

把三相的电流正弦波分解成二维的直角坐标系( α \alpha α - β \beta β 坐标 )

2.4.1基本公式 :

{ I a + I b + I c = 0 I α = I a ⋅ cos ⁡ 0 ∘ −   I b ⋅ cos ⁡ π 3   −   I c ⋅ cos ⁡ π 3 I β   =   I a ⋅ cos ⁡ 9 0 ∘ +   I b ⋅ cos ⁡ π 6   −   I c ⋅ cos ⁡ π 6 \begin{cases} I_a + I_b + I_c = 0 \\ I_\alpha =I_a\cdot\cos{0^{\circ}} -\ I_b \cdot\cos{\frac{\pi}{3}}\ -\ I_c\cdot\cos{\frac{\pi}{3} }\\ I_\beta\ =\ I_a\cdot\cos{90^{\circ}} +\ I_b \cdot\cos{\frac{\pi}{6}}\ -\ I_c\cdot\cos{\frac{\pi}{6} } \end{cases} Ia+Ib+Ic=0Iα=Iacos0 Ibcos3π  Iccos3πIβ = Iacos90+ Ibcos6π  Iccos6π

化简得:
{ I α   =   3 2 ⋅ I a I β   =   3 2 ⋅ ( I a   +   2 I b ) \begin{cases} I_\alpha\ =\ \frac{3}{2}\cdot I_a \\ I_\beta\ =\ \frac{\sqrt{3}}{2}\cdot (I_a \ +\ 2I_b) \end{cases} {Iα = 23IaIβ = 23 (Ia + 2Ib)

注意:

为了保证变换前后幅值不变 , 需要乘上clark变换系数 2 3 \frac{2}{3} 32

(后续在SVPWM变换部分, 会乘上 3 2 \frac{3}{2} 23 补回来 )


最终公式:
{ I a + I b + I c = 0 I a = I α I β   =   3 3 ⋅ ( I a   +   2 I b ) \begin{cases} I_a + I_b + I_c = 0 \\ I_a = I_\alpha \\ I_\beta\ =\ \frac{\sqrt{3}}{3}\cdot (I_a \ +\ 2I_b) \end{cases} Ia+Ib+Ic=0Ia=IαIβ = 33 (Ia + 2Ib)


坐标图:

在这里插入图片描述

在这里插入图片描述



2.4.2Matlab 仿真:

image-20221007164224758

image-20221007164051286

  • 可以看到 α \alpha α - β \beta β 两相相差 9 0 ∘ 90^{\circ} 90


2.5Park变换

park变换的目的是把静止的 α \alpha α - β \beta β 坐标系 变成跟随转子转动的坐标系


2.5.1基础公式:

{ I d =   I α ⋅ cos ⁡ θ   +   I β ⋅ sin ⁡ θ I q   =   − I α ⋅ sin ⁡ θ   +   I β ⋅ cos ⁡ θ \begin{cases} I_d =\ I_\alpha\cdot\cos{\theta}\ +\ I_\beta\cdot\sin{\theta} \\ I_q\ =\ -I_\alpha\cdot\sin{\theta}\ +\ I_\beta\cdot\cos{\theta} \end{cases} {Id= Iαcosθ + IβsinθIq = Iαsinθ + Iβcosθ


写成矩阵形式:
[ I d I q ] [ cos ⁡ θ sin ⁡ θ − sin ⁡ θ cos ⁡ θ ] [ I α I β ] \left[ \begin{matrix} I_d \\ I_q \\ \end{matrix} \right] \left[ \begin{matrix} \cos{\theta } & \sin{\theta}\\ -\sin{\theta} & \cos{\theta } \\ \end{matrix} \right] \left[ \begin{matrix} I_\alpha\\ I_\beta \end{matrix} \right] [IdIq][cosθsinθsinθcosθ][IαIβ]

坐标图:

image-20221005203445196

在这里插入图片描述



2.5.2 Matlab 仿真:

image-20221007201607635

image-20221007170053508
  • 可以看到经过反park、反clark、clark、park变换,最终输入值不变, 证明公式无误
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值