SVPWM 程序流程 SVPWM(Space Vector Pulse Width Modulation)是一种常用的脉宽调制技术,广泛应用于电机控制领域。SVPWM 程序流程是指在微控制器或数字信号处理器中实现 SVPWM 算法的过程。 1. 程序中定义的变量: 在 SVPWM 程序中,定义了多个变量用于存储中间结果和输入信号。这些变量包括: * sqrt32 和 sqrt3inv:用于存储 Q12 格式的 23 和 31 数据 * PWMPRD:用于存储 PWM 周期 * tmp 和 tmp1:用于暂存寄存器 * ua、ub、uc:用于存储 SVPWM 输入三相正弦电压 * usalfa 和 usbeta:用于存储 alfa 轴和 beta 轴参考电压 * sintetaA 和 sintetaB:用于存储两个相差 120 度的正弦角度值 * index 和 indexB:用于存储 sintetaA 和 sintetaB 的查表索引 * t1 和 t2:用于存储 SVPWM 两个相邻有效矢量的作用时间 * X、Y、Z:用于存储 SVPWM 功率器件导通时间 * X、Y、Z Sector:用于存储扇区号 * Vref1、Vref2、Vref3:用于判断扇区用的三个变量 * U:用于存储外部电压设定值 * Umax:用于存储输入 SVPWM 的电压最大值 * set_f:用于存储外部频率设定值 * teta:用于存储角度值 * add_teta:用于存储每次中断进去的角度增量 * adtmp 和 adtmp2:用于暂存寄存器数值 * VDC:用于存储直流侧母线电压 * VDCinvT:用于存储 PWMPRD/VDC 数据值 * taon、tbon、tcon:用于存储矢量切换点 2. 程序流程: SVPWM 程序流程可以分为以下几个步骤: (1)变量初始化: 在程序开始时,需要将所有变量初始化为默认值。例如,VDC 设为 309ah,VDCinvT 设为 0285h,set_f、teta、add_teta、index、indexB、adtmp、adtmp2、Umax 等变量初始化为 0。 (2)中断初始化: 在中断初始化部分,需要读取外部电压设定值 U 和外部频率设定值 set_f,然后计算 Umax 值和角度值 teta。 (3)计算 SVPWM 输入信号: 根据查表索引 index,读取正弦表,得到 sintetaA 和 sintetaB,然后计算三相输入电压 Ua、Ub 和 Uc,再通过 clark 变换得到 Usalfa 和 Usbeta。 (4)判断扇区: 根据 Vref1、Vref2 和 Vref3 的值,判断扇区 sector,计算扇区号 A、B 和 C。 (5)计算 SVPWM 输出信号: 根据扇区号和 SVPWM 输入信号,计算 SVPWM 输出信号 X、Y 和 Z。 SVPWM 程序流程是一个复杂的过程,需要精心设计和实现,以确保电机控制系统的稳定性和可靠性。
- 粉丝: 1
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助