【笔记】FOC学习笔记

FOC学习笔记

例程学习

SimpleFOC

英文对应

无刷直流电机(BLDC)

  • 云台电机 -低 KV(高内阻~10Ω)云台电机实际上可以在几乎任何无刷电机驱动器上使用,低速和高扭矩运行时非常平稳。它们可以高质量的代替你的步进电机或者直流伺服电机

  • 高性能无刷直流电机 -高KV(低内阻<1Ω )高性能无刷电机驱动板上通常有电流检测电路

  • 步进电机-2相4线,相对较高的极对数 >50

编码器(Encoder)

磁传感器(Magnetic sensor)

Hall sensor(霍尔传感器

电机的 a 相, b 相和 c 相直接连接到驱动板的电机输出端子 TB_M1

电源线连接到输入端 TB_PWR

L6234芯片:低功率simpleFOC用的芯片

位置传感器的连接,分类和测试程序

编码器连接

  • 通道 A and B 连接到驱动板的编码器端子 P_ENCAB上。
  • 如果你的编码器上有 index ,你也可以将它连接到编码器端子的 I上。
  • encoder >
    - encoder_example
    - encoder_software_interrupts_example

磁传感器-SPI通信

magnetic_sensors >
- magnetic_sensor_i2c_example
- magnetic_sensor_spi_example
- magnetic_sensor_analog_example

磁传感器的 SPI 接口 SCK, MISOMOSI 连接到 Arduino 的 SPI 引脚 (Arduino UNO 13,12 and 11)。

  • 如果需要多个传感器,可以将所有传感器都连接到 Arduino 的相同引脚上。

磁传感器-I2C通信

磁传感器的 I2C 的接口 SCLSDA 连接到 Arduino 的 I2C 引脚 (Arduino UNO A4A5).

  • 如果需要多个传感器,可以将所有传感器都连接到 Arduino 的相同引脚上。

磁传感器-模拟输出

磁传感器的模拟输出直接连接到Arduino 的任何模拟输入引脚,在下图中我们使用 A0

霍尔传感器

hall_sensors >
- hall_sensor_example
- hall_sensor_software_interrupts_example

通道 A, BC ( U, VW ) 连接到驱动器的编码器端子 P_ENC.

测试电机

开环测试,电机对数测试,依次进行测试

motion_control >开环控制
    open_loop_motor_control >
             - open_loop_position_example
             - open_loop_velocity_example
在开环(无位置传感器)控制模式下使用步进电机的主要问题是,我们不得不忽略电机的负载和其动力学问题。因此,在使用步进电机的时候,我们往往会选择强劲的超过我们应用需求的电机,以弥补无感时候的控制缺陷。开环控制的另一个问题是不知道电机此时的运动位置,这使得控制算法无法对环境干扰做出响应
utils >极对数计算
    find_pole_pair_number >
             - encoder
             - magnetic_sensor
motion_control > //电压控制扭矩
        torque_voltage_control > 
                       - encoder
                       - magnetic_sensor
                       - hall_sensors
motion_control > 
        position_motion_control > 位置环
                       - encoder
                       - magnetic_sensor
                       - hall_sensors
        velocity_motion_control > 速度环
                       - encoder
                       - magnetic_sensor
                       - hall_sensors

理论研究

FOC算法的目的是实现磁力与其永磁体的90度偏移

电压控制算法从位置传感器读取角度a,从用户获取目标Uq电压值,通过FOC算法设置电机合适的U aU bU c。FOC算法确保这些电压在电机转子中产生的磁力与其永磁体的90度偏移,这保证了最大扭矩,这称为换相。

对于直流电动机,我们知道电机扭矩 T与电流I成正比:

T = I*K 

其中 K 是由其硬件定义的电机常数。 我们还知道,电流与设定的电压U成正比:

I  = (U - EMF)/R

其中 R是电机内阻,EMF是产生的反EMF电压。矩与电流成比例。而由于电流与电压成比例,那么扭矩也与电压成比例。

FOC可以通过正弦PWMSinePWM空间矢量PWM两种实现

正弦调制SinePWM

正弦调制法是基于两个变换方程。

img

逆派克变换法:

img

逆克拉克变换法:

img

空间矢量调制 SpaceVectorPWM

空间矢量调制基于两个步骤的计算:

img

在第一步,我们发现扇区s转子目前在。360度的角被分成6等份的60度。这个计算很简单。然后我们计算时间T0, T1T2T1T2告诉我们第一阶段和第二阶段应该开多久,T0告诉我们电机上0电压应该开多久。

img

第二步是将T0,1,2值投影到适当的占空比Ta,b,c,这些占空比直接取决于电机当前所在的扇区。

SectorTaTbTc
1T1 + T2 + T0/2T2 + T0/2T0/2
2T1 + T0/2T1 + T2 + T0/2T0/2
3T0/2T1 + T2 + T0/2T2 + T0/2
4T0/2T1+ T0/2T1 + T2 + T0/2
5T2 + T0/2T0/2T1 + T2 + T0/2
6T1 + T2 + T0/2T0/2T1 + T0/2

下面是一个例子使用SVM表生成pwm信号的参数: s = 2, *T1* = 1/8 = 0.125, *T2* = 1/8 = 0.125 and *T0* = 1/2 = 0.5

img

空间矢量算法更好地使用了电源的最大电压范围。使用相同的电源时,它可以向电机多输出15%的功率。

Ua,b,c是饱和的,在你超过最大值后,你实际上不再设置正弦波到你的电机。 电机的功率仍在增加,但不再是直线或平滑的。

FOC算法的Arduino实现

FOC算法有三个主要部分:

  • 相电压计算算法(调制): setPhaseVoltage()
  • 电机和传感器校准: initFOC()
  • 实时执行: loopFOC()

低通速度滤波器

控制器的低通滤波器传递函数为:

Gf=11+sTf G_f = \frac{1}{1+sT_f} Gf=1+sTf1

离散化为:

vf(k)=TfTf+Tsvf(k−1)+TSTf+Tsv(k) v_f(k)=\frac{T_f}{T_f+T_s}v_f(k-1)+\frac{T_S}{T_f+T_s}v(k) vf(k)=Tf+TsTfvf(k−1)+Tf+TsTSv(k)

其中*vf(k)*为k时刻的滤波值, v(k)k时刻的速度测量值, Tf是滤波时间常数,Ts是采样时间(或上述式子的时间间隔)。 这个低通滤波器也可以写成这样的形式:

vf(k)=αvf(k−1)+(1−α)v(k) v_f(k)=\alpha v_f(k-1)+(1-\alpha)v(k) vf(k)=αvf(k−1)+(1−α)v(k)

其中:

α=TfTf+Ts \alpha=\frac{T_f}{T_f+T_s} α=Tf+TsTf

上面的式子更直观地表示了在低通滤波器中常量Tf的意义。如果你的采样时间大约是1毫秒(对于arduino UNO,这可以作为平均值),那么设置 T_f = 0.01 将得到:

alpha = 0.01/(0.01 + 0.001) = 0.91

上式表示实际的速度测量值v会通过系数1-alpha = 0.09影响到滤波后的值vf,从而令速度的变化更加平滑(平滑程序取决于实际应用)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于L6234PD的三相无刷电机驱动板描述: 电路城(www.cirmall.com)本次分享的是国外开源设计的BLDC 电机驱动器电路设计,由3个高功率半桥组成,可输出高达5A峰值,或4A连续输出(取决于散热器)。它的底部设计有一个大的铜接地平面,作为散热片。如果单独的铜层不能满足驱动IC散热要求,则三相直流无刷 BLDC 电机驱动器板的底部可以固定在外部散热片上。电路板上放大绕组电流,并用于感测反电动势电压以辅助换向。请注意,该驱动程序不能独立工作,需要微控制器至少输出3个PWM信号和3个使能信号,以适当的顺序使三相直流无刷 BLDC电机运行。 基于L6234PD的三相无刷电机驱动板实物展示: 基于L6234PD的三相无刷电机驱动板特性: 3个半桥驱动通道 4A连续,5A峰值输出电流(取决于散热器) 输入电压范围:7-14 VDC(受输入电容电压限制) 反向EMF感应和参考电阻分压器 在电源轨上使用非常低的ESR电容来处理在驱动高电流电机时预期的高纹波电流 绕组电流检测电阻,带放大器升压输出信号 可选的电流循环二极管,以提高效率 所有微控制器I / O的ESD保护 驱动器模具与PCB铜层具有良好的热耦合(这可能使驱动IC的手工焊接非常困难) 0.200“螺钉端子块,或0.156”Molex接头,用于高电流连接 电路设计重要信号的测试点 基于L6234PD的三相直流无刷 BLDC 电机驱动器附件内容,见电路城(www.cirmall.com)“相关文件”下载:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值