OpenEdv-开源电子网

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

经过PID控制后输出的值如何转化为无刷电机的占空比?

[复制链接]

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-4-7
在线时间
29 小时
发表于 2018-5-18 13:51:11 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]struct _pid
{      
        float SetAngle;            //定义给定值 本程序为角度
        float ActualAngle;         //定义实际测量角度值   
        float err;                 //偏差值  
        float err_last;            //上一时刻偏差值     
        float Kp,Ki,Kd;            //比例、积分、微分系数
        int vSpeed;              //计算占空比值     
        float integral;            //定义积分值
}pid;

//*********************************************************
//PID算法
//PID参数初始化设置
//*********************************************************
void PID_init(void)
{   
        pid.SetAngle=0.0;     
        pid.ActualAngle=0.0;   
        pid.err=0.0;      
        pid.err_last=0.0;     
        pid.vSpeed=0.0;     
        pid.integral=0.0;     
        pid.Kp=1;     
        pid.Ki=0;     
        pid.Kd=0;  
}

//PID计算电机值
//输出参数:设置角度 实际角度
//输出参数:电机占空比值

int PID_realize(float SAngle,float AAngle)
{             
        pid.SetAngle=SAngle;  //0
        pid.ActualAngle=AAngle;         //pitch 30
        pid.err=pid.ActualAngle-pid.SetAngle;  //30   
        pid.integral+=pid.err;                //30     
        pid.vSpeed=pid.Kp*pid.err+pid.Ki*pid.integral+pid.Kd*(pid.err-pid.err_last);  //30   
        pid.err_last=pid.err; //30
        return pid.vSpeed;
}[/mw_shl_code]

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

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-4-7
在线时间
29 小时
 楼主| 发表于 2018-5-18 13:51:56 | 显示全部楼层
电机最低转速1100 最高 大概2000不过应该用不上2000,太高了
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2018-5-18 23:43:32 | 显示全部楼层
得到电机转速捕获计数值,经过PID后,得到对应的占空比进行调节,这是最简单的方法
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2018-4-7
在线时间
29 小时
 楼主| 发表于 2018-5-19 12:54:51 | 显示全部楼层
八度空间 发表于 2018-5-18 23:43
得到电机转速捕获计数值,经过PID后,得到对应的占空比进行调节,这是最简单的方法

我输入的是角度,经过PID运算后出来的东西我就不知道是啥了。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 05:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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