找回密码
 立即注册
楼主: 深山老妖

出个AI8051U的PWM例程 | 3相互补SPWM变频驱动,PWMA-3个相位差120度的PWM互补输出

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:179
  • 最近打卡:2025-09-13 11:21:33

76

主题

6721

回帖

1万

积分

超级版主

积分
14125
发表于 2024-12-9 21:03:15 | 显示全部楼层
xiaob*** 发表于 2024-12-9 17:53
怎样能改变输出电压的大小,例程只能改变频率

改变正弦表数据的大小(即改变正弦波幅度),就可以调整电压。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-09-14 08:46:58

3

主题

13

回帖

453

积分

中级会员

积分
453
发表于 2024-12-10 10:08:37 | 显示全部楼层
梁*** 发表于 2024-12-9 21:03
改变正弦表数据的大小(即改变正弦波幅度),就可以调整电压。

好的  感谢
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:12
  • 最近打卡:2025-07-04 12:08:25

8

主题

25

回帖

216

积分

中级会员

积分
216
发表于 2025-1-15 11:56:01 | 显示全部楼层
梁*** 发表于 2024-10-29 17:14
Ai8051U  PWMA-P2口输出3相互补SPWM变频驱动:
先别修改程序, 直接下载"Objects"里的"pwm.hex"测试, 下载 ...

请问梁工,这个例程是不是要KEIL C251版本才能编译? err.png

点评

是的,我所有AI8051U的例子都是32位方式,要使用C251编译。  详情 回复 发表于 2025-1-15 14:20
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:179
  • 最近打卡:2025-09-13 11:21:33

76

主题

6721

回帖

1万

积分

超级版主

积分
14125
发表于 2025-1-15 14:20:56 | 显示全部楼层
cpu*** 发表于 2025-1-15 11:56
请问梁工,这个例程是不是要KEIL C251版本才能编译?

是的,我所有AI8051U的例子都是32位方式,要使用C251编译。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 12:30:23

0

主题

24

回帖

112

积分

注册会员

积分
112
发表于 2025-5-5 15:54:31 | 显示全部楼层
梁*** 发表于 2024-12-9 21:03
改变正弦表数据的大小(即改变正弦波幅度),就可以调整电压。

梁工你好,我想改变一下正弦波幅度的大小,以下是改成0.5倍。但是出来的波形只能说是个正弦的样子了,没有之前的那样平滑,是我改的地方有问题吗?谢谢。
/******************** 中断函数 **************************/
void PWMA_ISR() interrupt PWMA_VECTOR
{
        u8        sr1;
        sr1 = PWMA_SR1;        //为了快速, 中断标志用一个局部变量处理
        PWMA_SR1 = 0;        //清除中断标志
        PWMA_SR2 = 0;        //清除中断标志
        if(sr1 & 0x01)        //更新中断标志
        {
                SineSum += (u16)SineFreq;        //正弦波频率, 1~255Hz
                if(SineSum >= 15480)        SineSum = 0 ;         //23040
                SineIndex = SineSum / 43;
                PWMA_CCR1H = (u8)(T_SIN_0[SineIndex]/2 >> 8);        // 计数器比较值, 控制占空比
                PWMA_CCR1L = (u8)T_SIN_0[SineIndex]/2;                // 计数器比较值, 控制占空比
                PWMA_CCR2H = (u8)(T_SIN_120[SineIndex]/2 >> 8);        //
                PWMA_CCR2L = (u8)T_SIN_120[SineIndex]/2;                        //
                PWMA_CCR3H = (u8)(T_SIN_240[SineIndex]/2 >> 8);        //
                PWMA_CCR3L = (u8)T_SIN_240[SineIndex]/2;                        //
        }}

点评

有三句没有加括号,会先转成8位(丢失高字节),再除以2,这是错误的。 PWMA_CCR1H = (u8)(T_SIN_0[SineIndex]/2 >> 8); // 计数器比较值, 控制占空比 PWMA_CCR1L = (u8)(T_SI  详情 回复 发表于 2025-5-5 23:47
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:179
  • 最近打卡:2025-09-13 11:21:33

76

主题

6721

回帖

1万

积分

超级版主

积分
14125
发表于 2025-5-5 23:47:21 | 显示全部楼层
pyx*** 发表于 2025-5-5 15:54
梁工你好,我想改变一下正弦波幅度的大小,以下是改成0.5倍。但是出来的波形只能说是个正弦的样子了,没 ...

有三句没有加括号,会先转成8位(丢失高字节),再除以2,这是错误的。
             PWMA_CCR1H = (u8)(T_SIN_0[SineIndex]/2 >> 8);        // 计数器比较值, 控制占空比
                 PWMA_CCR1L = (u8)(T_SIN_0[SineIndex]/2);                //要加括号
                PWMA_CCR2H = (u8)(T_SIN_120[SineIndex]/2 >> 8);        //
                PWMA_CCR2L = (u8)(T_SIN_120[SineIndex]/2);                        //要加括号
                PWMA_CCR3H = (u8)(T_SIN_240[SineIndex]/2 >> 8);        //
                PWMA_CCR3L = (u8)(T_SIN_240[SineIndex]/2);                        //要加括号

更好的方法是,定义一个数组变量,先计算好,然后直接读这个数组,不用每次都计算。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 12:30:23

0

主题

24

回帖

112

积分

注册会员

积分
112
发表于 2025-5-20 09:17:40 | 显示全部楼层
非常感谢,换成/256和%256,这样运算可以了。但是面发现变频后在输出电压低了点,有什么办法可以提升这个程序的输出电压?参考的是:"19 出个AI8051U的PWM例程 | 3相互补SPWM变频驱动,PWMA-3个相位差120度的PWM互补输出。"这个贴子的程序。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 12:30:23

0

主题

24

回帖

112

积分

注册会员

积分
112
发表于 2025-5-20 09:43:29 | 显示全部楼层
梁*** 发表于 2025-5-5 23:47
有三句没有加括号,会先转成8位(丢失高字节),再除以2,这是错误的。
             PWMA_CCR1H = (u8)( ...

梁工,提高SPWM的偏移量能否提升变频器的输出电压?谢谢。

点评

变频器的输出电压跟母线电压、SPWM幅度有关。 你说的“SPWM的偏移量”指的是什么参数?  详情 回复 发表于 2025-5-20 10:30
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:179
  • 最近打卡:2025-09-13 11:21:33

76

主题

6721

回帖

1万

积分

超级版主

积分
14125
发表于 2025-5-20 10:30:50 | 显示全部楼层
pyx*** 发表于 2025-5-20 09:43
梁工,提高SPWM的偏移量能否提升变频器的输出电压?谢谢。

变频器的输出电压跟母线电压、SPWM幅度有关。
你说的“SPWM的偏移量”指的是什么参数?
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-09-14 12:30:23

0

主题

24

回帖

112

积分

注册会员

积分
112
发表于 2025-5-20 11:03:03 | 显示全部楼层
梁*** 发表于 2025-5-20 10:30
变频器的输出电压跟母线电压、SPWM幅度有关。
你说的“SPWM的偏移量”指的是什么参数? ...

幅度基本到顶了,可以适当提高波谷数据来提高输出电压吗?谢谢。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-14 18:40 , Processed in 0.128644 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表