从零开始学习FOC(2)-- 开环控制_Gameone娛樂城_Gameone香港娛樂城,現金網博彩公司
您的位置:首页 > Gameone娛樂城

Gameone娛樂城

从零开始学习FOC(2)-- 开环控制

來源:Gameone娛樂城    發佈時間:2024-05-07 16:24:57

  本章节根据DENGFOC进行总结概括,重在记录自己学习过程和心得,以及自己在stm32上的移植过程

  在之前的章节中,讲的是根据电流矢量对电机进行控制,如果把这个每相的电流矢量都乘上其相电阻R(相电阻就是每相线圈所带的电阻),根据欧姆定律,它就会变成每相的电压矢量。而无刷电机的电流矢量,和电压矢量其实没有任何的区别。电流值控制对于硬件电路来说,相比于电压来说要难控制得多。

  假设我们已经获得了设定值电压U_{q},和角度值,需要先进帕克逆变换,再进行克拉可逆变换

  可以看到就是通过帕克逆变换和克拉克逆变换得到了U_{a}、U_{b}、U_{c}

  芯片只需要输入为一个pwm信号即可,不需要我们再做额外的pwm互补工作,输出的H、L分别接入桥式电路的MOS中

  因为之前的自动重装载寄存器设置的为200,所以将这个百分比*200就得到了该百分比下的pwm

  我们现在已经有了控制电机的办法,怎么才能通过用户输入的速度来让电机实际达到这个速度呢

  由于是开环控制,并没有实际的反馈值,所以我们之前的角度计算的角度都是一个计算得到的量,并不是实际测得的角度值

  //获取从开启芯片以来的微秒数,它的精度是 4 微秒。 micros() 返回的是一个无符号长整型(unsigned long)的值

  // 通过乘以时间间隔和目标速度来计算需要转动的机械角度,存储在 shaft_angle 变量中。在此之前,还需要对轴角度进行归一化,以确保其值在 0 到 2π 之间。

  //以目标速度为 10 rad/s 为例,如果时间间隔是 1 秒,则在每个循环中需要增加 10 * 1 = 10 弧度的角度变化量,才能使电机转动到目标速度。

  //如果时间间隔是 0.1 秒,那么在每个循环中需要增加的角度变化量就是 10 * 0.1 = 1 弧度,才能实现相同的目标速度。因此,电机轴的转动角度取决于目标速度和时间间隔的乘积。

  // 使用早前设置的voltage_power_supply的1/3作为Uq值,这个值会直接影响输出力矩

  // 最大只能设置为Uq = voltage_power_supply/2,否则ua,ub,uc会超出供电电压限幅

  主函数中我加入了一个通过串口传输转速的程序,在下面的视频中可以看到利用了一个串口屏

  开环控制的应用场景很少,就不多说了,主要是大家理解一下几个函数即可,在接下来的闭环控制中也是会用到的

相關產品