智能车制作

标题: 电磁组两个电感的算法 [打印本页]

作者: easy颠倒黑白    时间: 2013-4-12 18:59
标题: 电磁组两个电感的算法
//方向控制
   uint16 ADValue0,ADValue1;  //      1    主程序使用的变量定义     
  float Direction_diff=0.0,Direction_sub=0.0,Direction_add=0.0;
  float Direction_sub_value=0.0,Direction_sub_old=0.0;
  float DirectionOutold=0.0,DirectionOutnew=0.0;
  void DirectionControl(void)
   {


      Direction_sub=(float)ADValue0-(float)ADValue1;
      Direction_add=(float)ADValue0+(float)ADValue1;
      Direction_diff=Direction_sub/Direction_add;
      Direction_sub_value=Direction_sub-Direction_sub_old;
      Direction_sub_old=Direction_sub;
      DirectionOutold=DirectionOutnew;
      DirectionOutnew=1100+K_Direction_P*Direction_diff+K_Direction_D*Direction_sub_value;

   }
大神帮我看看程序哪错了啊,大弯道正向能跑过去反向跑不过去


作者: 天涯々湖畔    时间: 2013-4-12 20:07
你这程序看着真晕,给哪整来的???是PID吗??

作者: Αρηδ    时间: 2013-4-12 21:37
这不是第七届参考方案吗
作者: 严鸿雁    时间: 2013-4-12 23:50
不懂呀:(
作者: jingqi    时间: 2013-4-13 21:07
做差的时候不管大小,只会出负值,不信你看看 所以只能往一个方向转 似乎if也不好使
作者: 时光自由    时间: 2013-4-14 00:24
对呀。我的也是只打一边角。另一边不打角。好像一边采集的值永远大于另一边的值。求解!
作者: jingqi    时间: 2013-4-14 08:57
有个方法 可以自己写个减法函数 但是不能出现减号
作者: 时光自由    时间: 2013-4-14 12:04
void AD_Init(){     //AD初始化

ATD0CTL1=0X00;   
ATD0CTL2=0XC2;   
ATD0CTL3=0X10;   
ATD0CTL4=0X6F;   
ATD0CTL5=0X30;     
ATD0DIEN=0X00;    //禁止数字输入

}
void interrupt 22 ADT0()
{
  DisableInterrupts;
  AD_ls0+=ATD0DR0L;
  AD_ls1+=ATD0DR1L;
  AD_cnt++;
  if (AD_cnt==8)
  {   AD_flag=1;
               
     AD_cy0=AD_ls0>>3;   //四次
     AD_cy1=AD_ls1>>3;
    AD_ls0=0;
    AD_ls1=0;
    AD_cnt=0;
   
       
       
     ad_djg();
          AD_flag=0;
  }
  EnableInterrupts;
}
请问上面的AD程序应该每进一次中断就能采到0,和1通道的模拟量的转换结果吧?
作者: jingqi    时间: 2013-4-14 14:57
不是吧 没转换完读走数据你说会怎么样
作者: jingqi    时间: 2013-4-14 14:58
我想看看楼主剩下的程序
作者: 水墨l丹青    时间: 2013-6-25 20:23
这个算法貌似在弯道上不怎么靠谱啊!
作者: 轻风鹤舞    时间: 2014-2-19 14:05

作者: 新哥哥    时间: 2014-3-19 16:01
Αρηδ 发表于 2013-4-12 21:37
这不是第七届参考方案吗

不是
作者: gulang007    时间: 2016-4-19 21:25
你的  Direction_sub_old=Direction_sub;而后面运算 Direction_sub_value=Direction_sub-Direction_sub_old。   这不就等于0了吗?还怎么控制?不懂,求问你的思想是什么?
作者: 任小人    时间: 2017-1-17 20:23
你好,请问你舵机转角只能朝一边的问题解决了吗




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2