Replies: 1 comment
-
你好,你说的这种调制方式应该是正弦波调制(sinusoidal PWM),其峰值幅度受到直流母线电压的限制,正弦电压的最大幅度调制指数为1。如果想要调制指数大于1,则会发生削峰失真,从而引入难以滤除的低次谐波。所以SVPWM向正弦参考引入三角零序分量,也就是你说的三次谐波。所以SVPWM通过扭曲相电压参考达到最大约1.15的调制指数。SPWM调制确实有很多方式可以实现,这里可以由开发者自由发挥,我这里还是按照一般数学推导的方法实现的。 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
三相电源,在任意时刻,可以由2个参数唯一确定: 电压/电角度。
这个电压,指的是完整周期的相电压。因为三相的角度各相差120度。所以确定一个相的相位,就能自动推出另外2个相位。
因此,在三相电源的核心逆变代码,只参考由上层传入的两个控制参数:电压和角度。
有了角度,就可以知道任意相,他相对直流母线的电压因为 (sin(角度) /2 + 0.5)*电压。另外两相各加120度和240度即可。
如果把 电压设定为 0-1 之间的一个比例,也就是相对直流母线的电压,则算出来的值,就是每相的 上下管的导通之比。
算出三相的PWM之比后,只要 mcu 设定为 中央对齐的 PWM 输出,就可以完美的输出指定角度的三相电了。
然后再利用定时器,不断的更新 角度变量,就可以输出周期变化的三相交流电了。
throttle 为油门信号, 0.0 -1.0之间。sin_of_degree 为按角度的三角函数。可以使用整数参数,这样可以避开浮点数,加快运行速度
每个周期要执行三次 sin 运算。但是根据 三相和为 0 ,可以省去一个 sin 计算。简化为
既不需要扇区判断,也不需要 clarke 变换
另外,很多人把 马鞍波叫做 SVPWM 其实是不正确的。马鞍波,是注入三次谐波,提高直流母线电压利用率。SVPWM 的本意是指带 “电角度” 的三相电流。不使用马鞍波,无非是直流电压利用率低了一些。只要逆变器输出的电流角度,是受转子机械角度控制而始终垂直于转子,就叫空间适量驱动。而输出的电角度,可以通过 机械角度+电流滞后角 获得。电机线圈因为是电感,所以电流会滞后于电压,因此要通过测量 ebmf 获取电流相对电压的滞后角度,然后输出的时候就可以提前。不过在低速下,电流滞后角度较小。低成本项目可以直接忽略。也就是 simplefoc 的做法,只考虑电压角垂直于转子磁场。
在一些商业电调上,可以设置提前15度或者30度换向。就是为了在高速下补偿电流滞后,让定子磁场尽量垂直于转子磁场。
Beta Was this translation helpful? Give feedback.
All reactions