OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3878|回复: 4

BLDC 控制算法疑问

[复制链接]

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-7-1
在线时间
11 小时
发表于 2016-6-27 11:39:48 | 显示全部楼层 |阅读模式
通过给定位移dis,时间t,加速度acc就能让电机自动运行,这样的算法看不懂,公式是根据哪类曲线推算出来,求大神解析一下:

unsigned char setTPath(int64_t dis,int64_t t,int acc)
{
   
       treferencepos=getPosition();
       t_destin=dis;        
       dis=1000*(dis-treferencepos);
      t=10*t;  
     if(vel>0)
     {
            dec=-acc;
            if(vel*t-vel*vel/acc/2>dis)
            {
                if(vel*vel/acc/2>dis)
                dec=acc;        
                acc=-acc;
        
            }
    }
    else
    {
        dec=acc;
        if(vel*t+vel*vel/acc/2>dis)
        {
            acc=-acc;
        }
        else
        {
            if(vel*vel/acc/2<dis)
                dec=-acc;
        }
            
    }
    if(dec/acc==-1)
    {
            temp=t*t+2*vel*t/acc-4*dis/acc+3*vel*vel/acc/acc;
            if(temp<0)return 1;
            temp=sqrt(temp);
            acctime=(t-vel/acc-temp)/2;
            dectime=t-(acctime+vel/acc);
   
            if(acctime>0&&dectime>acctime&&dectime<t)
            ;
            else
            {
                acctime=(t-vel/acc+temp)/2;            
                dectime=t-(acctime+vel/acc);
                if(acctime>0&&dectime>acctime&&dectime<t)
                    ;
                else
                return 2;
            }
    }
    else
    {
            acctime=(dis-vel*t-vel*vel/2/acc)/(vel+acc*t);
            dectime=t+vel/acc+acctime;
    }
    return 0;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-7-1
在线时间
11 小时
 楼主| 发表于 2016-6-27 14:21:15 | 显示全部楼层
梯形曲线算法  函数的公式不知道如何推导
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-7-1
在线时间
11 小时
 楼主| 发表于 2016-6-28 09:25:10 | 显示全部楼层
怎么没有人可以指导一下么,我要从程序从找出电机控制的算法思想。这个函数就是关键函数,我觉得就是要算出加速时间和减速时间,不知道对不对
回复 支持 反对

使用道具 举报

62

主题

903

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3566
金钱
3566
注册时间
2016-1-8
在线时间
544 小时
发表于 2016-6-28 11:54:44 | 显示全部楼层
什么都没有,怎么看。这样的代码没人愿意看
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-7-1
在线时间
11 小时
 楼主| 发表于 2016-6-28 16:34:24 | 显示全部楼层
Sun_Fly 发表于 2016-6-28 11:54
什么都没有,怎么看。这样的代码没人愿意看

不知道需要提供什么资料,手头上就是一个电机控制的程序,这个是位置控制算法,给定位移,时间和加速度自动算出加速时间和减速时间,核心就是这个函数,但函数里面的公式我推导不出来,梯形轨迹。希望多多指教!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 17:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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