打印

谁用DSPic系列的DSP搞过电机控制

[复制链接]
1915|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t2230510|  楼主 | 2010-12-28 20:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在PIC的官网上找到 电机控制的 电压空间矢量算法 (代码名SVM.C  和sinusoidalBLDC v1.2.c)。大部分都看懂了。

把此代码移植到我手头的板子上,有PWM输出了,但电机没反应。

我想确认下,这2个代码真能实现 SVPWM?

有大侠若买过DSPic的开发板,肯定知道。帮帮忙,谢谢啦!

相关帖子

沙发
t2230510|  楼主 | 2010-12-28 20:56 | 只看该作者
本帖最后由 t2230510 于 2010-12-28 20:58 编辑

if(angle < VECTOR2)
        {
        angle2 = angle - VECTOR1;                // Reference SVM angle to the current
                                    // sector
        angle1 = SIXTY_DEG - angle2;        // Calculate second angle referenced to
                                    // sector

        t1 = sinetable[(unsigned char)(angle1 >> 6)];        // Look up values from
                                                    // table.
        t2 = sinetable[(unsigned char)(angle2 >> 6)];

        // Scale t1 to by the volts variable.
        t1 = ((long)t1*(long)volts) >> 15;
        // Scale t1 for the duty cycle range.
        t1 = ((long)t1*(long)tpwm) >> 15;
        // Scale t2 time
        t2 = ((long)t2*(long)volts) >> 15;
        t2 = ((long)t2*(long)tpwm) >> 15;

        half_t0 = (tpwm - t1 - t2) >> 1;                // Calculate half_t0 null time from   / period and t1,t2
        // Calculate duty cycles for Sector 1  (0 - 59 degrees)
        PDC1 = t1 + t2 + half_t0;
        PDC2 = t2 + half_t0;
        PDC3 = half_t0;
        }

使用特权

评论回复
板凳
t2230510|  楼主 | 2010-12-28 20:58 | 只看该作者
2楼为 SVM.C中的部分代码。百度里,很难搜到跟这相关的。看来,用DSPic搞电机控制的不多啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

38

帖子

0

粉丝