智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1374|回复: 0
打印 上一主题 下一主题

[编程类] 请各位大神指点迷津 谢谢了

[复制链接]

3

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
威望
155
贡献
64
兑换币
65
注册时间
2012-10-18
在线时间
25 小时
毕业学校
中南民大
跳转到指定楼层
1#
发表于 2012-11-16 16:01:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
请大神指点  这样为什么没能实现直立的闭环控制

/*//// 直立ad采样/////////////////*/
void AD_CaiY(void){
  gyro=(float)(ReadAD(0))*4240/1024;
  gyro=(gyro-gyro_mid)/6.7;
  gjiasu= (float)(ReadAD(1))*4240/1024;
  gjiasu=(gjiasu-gjiasu_mid)/800;
  gjiasu=asin(gjiasu);
  gjiasu*=57.3248;
  complement_filter(gyro,gjiasu);
}
/*/////角度融合///////////*/
void complement_filter(float angle_m_cf,float gyro_m_cf)
{
   angle=(angle+gyro_m_cf*dt)*0.995+angle_m_cf*0.005;
}
void PWM_Cal(void)
{   
    PWMOUT=Kp_angle*(angle-angleset)-Kd_angle*gyro;
    if(angle>5)
     {
      PWMOUT=5000;                      //超过中心值正负7度就停车
     }
     else if(angle<-25)
     {
      PWMOUT=5000;
     }
   
    if(PWMOUT>10000)PWMOUT=10000;
    else if(PWMOUT<0)PWMOUT=0;    //对所有环数据融合后进行限幅
    motor(PWMOUT);                   //将输出给电机
    motor1(PWMOUT);
}

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-21 19:35 , Processed in 0.405774 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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