首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32的电机控制库2.0中有关SVPWM实现的计算PWM高电平时间的代码问题

STM32的电机控制库2.0中有关SVPWM实现的计算PWM高电平时间的代码问题

1、
STM32的电机控制库2.0中有关SVPWM实现的计算PWM高电平时间的代码问题
switch(bSector)
  {  
    case SECTOR_1:
    case SECTOR_4:
                hTimePhA =(T/8) + ((((T + wX) - wZ)/2)/131072);
                               hTimePhB= hTimePhA + wZ/131072;
                               hTimePhC= hTimePhB - wX/131072;                                    
                break;
    case SECTOR_2:
    case SECTOR_5:  
                hTimePhA =(T/8) + ((((T + wY) - wZ)/2)/131072);
                       hTimePhB = hTimePhA + wZ/131072;
                               hTimePhC= hTimePhA - wY/131072;
                break;

    case SECTOR_3:
    case SECTOR_6:
                hTimePhA =(T/8) + ((((T - wX) + wY)/2)/131072);
                               hTimePhC= hTimePhA - wY/131072;
                               hTimePhB= hTimePhC + wX/131072;
                break;
    default:
                break;
   }
  

这里面的131072是怎么来的?困惑好久
没看过它的SVPWM库,我都是自己写。
原理上这个位置应该是2。 但不知道STM32库中间数据是怎么处理的,所以不好说它的意义。
但我发现一个线索 2*65536 (2^16)= 131072,估计是程序前面某个地方把数据放大了65536倍,在这个地方又把它除掉
做人要做懒羊羊啊!
返回列表