二、SVPWM

二、SVPWM

1. 介绍

SVPMW是将逆变器和电机看作一个整体,用八个基本的电压矢量合成期望的电压矢量,建立逆变器功率器件的开关状态,并依据电机磁链和电压关系,实现对电机恒磁通变压变频调速。

在这里插入图片描述

三相无刷电机的三项排除三项全部为1和全部为0外,将一个圆划为六个扇区,六个扇区临界( u a u_a ua u b u_b ub u c u_c uc)为

U 4 U_4 U4(100) U 6 U_6 U6(110) U 2 U_2 U2(010) U 3 U_3 U3(011) U 1 U_1 U1(001) U 5 U_5 U5(101)
U a U_a Ua110001
U b U_b Ub011100
U c U_c Uc000111

通过对 U 0 U_0 U0, U 1 U_1 U1, U 2 U_2 U2, U 3 U_3 U3, U 4 U_4 U4, U 5 U_5 U5, U 6 U_6 U6, U 7 U_7 U7八个不同比重的持续,可以实现 U q U_q Uq旋转。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RysFLnRY-1680783358604)(images/YH9Ole0uCjVKQ2Lct5teo16iEwK6ew0Y6u7IHpAJhc4.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L6dZKc0D-1680783358605)(images/7XLMnzfIZQ3UnCOVjTZnf__8vi3RU4E4zF08yi8zoWI.png)]

2. 判断条件

1. 扇区判断
tan θ \theta θ= u β u α \frac{u_\beta}{u_\alpha} uαuβ
#### 第一扇区#### 0< θ \theta θ<60#### 0< u β u α \frac{u_\beta}{u_\alpha} uαuβ< 3 \sqrt{3} 3 #### u α u_\alpha uα>0, u β u_\beta uβ>0
#### 第二扇区#### 60< θ \theta θ<120#### u β u α \frac{u_\beta}{u_\alpha} uαuβ<- 3 \sqrt{3} 3 u β u α \frac{u_\beta}{u_\alpha} uαuβ> 3 \sqrt{3} 3 #### u β u_\beta uβ>0
#### 第三扇区#### 120< θ \theta θ<180#### - 3 \sqrt{3} 3 < u β u α \frac{u_\beta}{u_\alpha} uαuβ<0#### u α u_\alpha uα<0, u β u_\beta uβ>0
#### 第四扇区#### 180< θ \theta θ<240#### 0< u β u α \frac{u_\beta}{u_\alpha} uαuβ< 3 \sqrt{3} 3 #### u α u_\alpha uα<0, u β u_\beta uβ<0
#### 第五扇区#### 240< θ \theta θ<300#### u β u α \frac{u_\beta}{u_\alpha} uαuβ<- 3 \sqrt{3} 3 u β u α \frac{u_\beta}{u_\alpha} uαuβ> 3 \sqrt{3} 3 #### u β u_\beta uβ<0
#### 第六扇区#### 300< θ \theta θ<360#### - 3 \sqrt{3} 3 < u β u α \frac{u_\beta}{u_\alpha} uαuβ<0#### u α u_\alpha uα>0, u β u_\beta uβ<0

使 { V r e f 1 = u β V r e f 2 = 3 2 ∗ u α − 1 2 ∗ u β V r e f 3 = − 3 2 ∗ u α − 1 2 ∗ u β \begin{cases} V_{ref1}=u_\beta \\ V_{ref2}=\frac{\sqrt{3}}{2}*u_\alpha-\frac{1}{2}*u_\beta \\ V_{ref3}=-\frac{\sqrt{3}}{2}*u_\alpha-\frac{1}{2}*u_\beta \end{cases} Vref1=uβVref2=23 uα21uβVref3=23 uα21uβ

则有(N= 2 2 2^2 22* V 3 V_3 V3+ 2 1 2^1 21* V 2 V_2 V2+ 2 0 2^0 20 V 1 V_1 V1)
V 1 V_1 V1 V 2 V_2 V2 V 3 V_3 V3N( V 3 V_3 V3 V 2 V_2 V2 V 1 V_1 V1)
第一扇区1103
第二扇区1001
第三扇区1015
第四扇区0014
第五扇区0116
第六扇区0102
2. 时间T的计算

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m2d25sjH-1680783358607)(images/Gcx9111zMGwd09OEXYhsW0FtXhllvfRvaFbyCDvkNE8.png)]

  ##### 1. 原始公式
{ u α − U 4 ∗ T 4 T s + U 6 ∗ T 6 T s ∗ c o s π 3 u β = U 6 ∗ T 4 T 6 ∗ s i n π 3 \begin{cases} u_\alpha-U_4*\frac{T_4}{T_s}+U_6*\frac{T_6}{T_s}*cos{\frac{\pi}{3}} \\ u_\beta=U_6*\frac{T_4}{T_6}*sin{\frac{\pi}{3}} \end{cases} {uαU4TsT4+U6TsT6cos3πuβ=U6T6T4sin3π

| U 4 U_4 U4|=| U 6 U_6 U6|= 2 3 ∗ U d c \frac{2}{3}*U_{dc} 32Udc (说明:逆变器输出电压 U d c U_{dc} Udc,单个线圈的分压为 2 3 \frac{2}{3} 32)
##### 2. 推导后
{ u α = U d c ∗ ( 2 T 4 + T 6 3 T s ) u β = U d c ∗ ( 3 T 6 3 T s ) \begin{cases} u_\alpha=U_{dc}*(\frac{2T_4+T_6}{3T_s}) \\ u_\beta=U_{dc}*(\frac{\sqrt{3}T_6}{3T_s}) \end{cases} {uα=Udc(3Ts2T4+T6)uβ=Udc(3Ts3 T6)
##### 3. 可以计算得出
{ T 4 = 3 T s U d c ∗ ( 3 2 u α − 1 2 u β ) T 6 = 3 T s U d c ∗ u β \begin{cases} T_4=\frac{\sqrt{3}T_s}{U_{dc}}*(\frac{\sqrt{3}}{2}u_\alpha-\frac{1}{2}u_\beta) \\ T_6=\frac{\sqrt{3}T_s}{U_{dc}}*u_\beta \end{cases} {T4=Udc3 Ts(23 uα21uβ)T6=Udc3 Tsuβ
#### 4. 所有扇区结果
{ X = 3 T s U d c ∗ u β Y = 3 T s U d c ∗ ( 3 2 u α + 1 2 u β ) Z = 3 T s U d c ∗ ( − 3 2 u α + 1 2 u β ) \begin{cases} X=\frac{\sqrt{3}T_s}{U_{dc}}*u_\beta \\ Y=\frac{\sqrt{3}T_s}{U_{dc}}*(\frac{\sqrt{3}}{2}u_\alpha+\frac{1}{2}u_\beta) \\ Z=\frac{\sqrt{3}T_s}{U_{dc}}*(-\frac{\sqrt{3}}{2}u_\alpha+\frac{1}{2}u_\beta) \end{cases} X=Udc3 TsuβY=Udc3 Ts(23 uα+21uβ)Z=Udc3 Ts(23 uα+21uβ)

扇区IIIIIIIVVVI
N315462
T 4 T_4 T4-ZZX-YY-X
T 6 T_6 T6XY-Y-Z-XZ
T 0 T_0 T0 T s − T 4 − T 6 2 \frac{ T_s-T_4 -T_6 }{2} 2TsT4T6
3. 三相abc切换时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QIY9465L-1680783358608)(images/ivTj30YhaqU3nV1aUPEEOVgEgWFjOXQE3B_Dkl3dqyg.png)]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是SVPWM(Space Vector Pulse Width Modulation)的Verilog代码示例: ``` module svpwm( input clk, // 时钟信号 input [11:0] vref, // 参考电压 input [11:0] va, // a 相电压 input [11:0] vb, // b 相电压 input [11:0] vc, // c 相电压 output reg PWM_A, // a 相 PWM 输出 output reg PWM_B, // b 相 PWM 输出 output reg PWM_C // c 相 PWM 输出 ); reg [11:0] v_alpha; // α 轴电压 reg [11:0] v_beta; // β 轴电压 reg [11:0] v_0; // 0 轴电压 reg [11:0] ta; // a 相占角时间 reg [11:0] tb; // b 相占角时间 reg [11:0] tc; // c 相占角时间 reg [11:0] t1; // 所有相占角时间中的最小值 reg [11:0] t2; // 所有相占角时间中的第小值 reg [11:0] t0; // 0 轴占角时间 reg [2:0] sector; // 所在扇区 reg [11:0] max_volt; // 最大电压值 // 计算 α 轴、β 轴、0 轴电压 assign v_alpha = va; assign v_beta = (vb - vc) / 2; assign v_0 = (va + vb + vc) / 3; // 计算所在扇区 always @ (v_alpha, v_beta) begin if (v_alpha > 0) begin if (v_beta > 0) begin sector = 1; end else begin sector = 6; end end else begin if (v_beta > 0) begin sector = 2; end else begin sector = 5; end end end // 计算最大电压值 always @ (v_alpha, v_beta, v_0) begin case (sector) 1, 4: max_volt = v_alpha + v_beta + v_0; 2, 5: max_volt = v_alpha - v_beta + v_0; 3, 6: max_volt = -v_alpha - v_beta + v_0; endcase end // 计算占角时间 always @ (v_alpha, v_beta, max_volt) begin t1 = ((max_volt - v_alpha) * 4096) / max_volt; t2 = ((max_volt - v_beta) * 4096) / max_volt; t0 = 4096 - t1 - t2; end // 生成 PWM 信号 always @ (posedge clk) begin case (sector) 1: begin PWM_C <= 1'b0; PWM_B <= (ta > t0); PWM_A <= (ta > t1); end 2: begin PWM_C <= 1'b0; PWM_A <= (tb > t0); PWM_B <= (tb > t2); end 3: begin PWM_B <= 1'b0; PWM_A <= (tc > t0); PWM_C <= (tc > t1); end 4: begin PWM_B <= 1'b0; PWM_C <= (ta > t0); PWM_A <= (ta > t2); end 5: begin PWM_A <= 1'b0; PWM_C <= (tb > t0); PWM_B <= (tb > t1); end 6: begin PWM_A <= 1'b0; PWM_B <= (tc > t0); PWM_C <= (tc > t2); end endcase end endmodule ``` 该代码使用了 Verilog 语言来实现 SVPWM 算法。在代码中,输入包括参考电压和三相电压,输出为每个相的 PWM 信号。使用时,需要将输入的参考电压和三相电压连接到模块的输入端口,将输出的 PWM 信号连接到电机控制器的输出端口。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值