5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 2602|回复: 9
打印 上一主题 下一主题

飞行中实时调整参数的实现

[复制链接]
跳转到指定楼层
楼主
发表于 2009-9-8 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击查看详情


    根据飞机气动的不同,为保证稳定飞行而设置的各项参数也不同,因此根据新装配的飞机,我们需要进行飞行中的参数调整。由于飞机的起降是存在风险的,因此我们希望飞机上天后,在空中根据飞行状态进行实时调整参数,以尽可能少的起落调整出合适的参数来。
    在CY2007里,以简便的方式实现了这个实用的功能。在串口服务程序里有这样的代码:
    if((sixchar=='$')&&(fifthchar=='W')&&(forchar == 'R')&&(trdchar == 'P')&&(sndchar=='A')&&(fstchar=='R'))
    {
     wrParaHeadFlag=1;
     npos1=0;
    }
而后有:
  if(wrParaHeadFlag==1)
  {
   if(npos1<=39)
   {
    ParaData[npos1]=chuan1;
    npos1++;
   }
   else
   {
    ParaData[40]='$'+'W'+'R'+'P'+'A'+'R';
    for(ti=0;ti<=39;ti++)
    {
     ParaData[40]+=ParaData[ti];
    }
    if(ParaData[40]==chuan1)      //校验值正确
    {
     for(ti=0;ti<40;ti++)
     {
      ParaDataInUse[ti]=ParaData[ti];
     }
      writebuf = 1;
    }
     npos1=0;
    wrParaHeadFlag=0;
   }
  }
    上述程序是接收地面站发过来的新的40个参数,校验无误后将之赋予到使用的ParaDataInUse[]数组里。
    而当接收到地面要求读取参数的指令后:
    if((sixchar=='$')&&(fifthchar=='R')&&(forchar == 'D')&&(trdchar == 'P')&&(sndchar=='A')&&(fstchar=='R'))
    {
     rdParaHeadFlag=1;
    }
用如下代码发送到地面:
   if(rdParaHeadFlag==1)
   {
    msg[0]='$';
    msg[1]='P';
    msg[2]='A';
    msg[3]='R';
    ParaDataInUse[40]=0x00;
    ParaDataInUse[40]='$'+'P'+'A'+'R';
    for(i=0;i<40;i++)
    {
     msg[i+4]=ParaDataInUse;
     ParaDataInUse[40]=ParaDataInUse[40]+ParaDataInUse;
    }
    msg[4+40]=ParaDataInUse[40];

    AT91F_PDC_SetTx(AT91C_BASE_PDC_DBGU,(char *)msg,45);
    rdParaHeadFlag=0;
    return;
   }
    然后在各个控制程序里,大家可以看到参数数组ParaDataInUse[]在各个算法里的应用。改变了参数,就改变了各个状态。

(未完待续)

欢迎继续阅读楼主其他信息

沙发
发表于 2009-9-8 20:17 | 只看该作者
我在等待后文
希望继续提供更多,谢谢
3
发表于 2009-11-19 11:20 | 只看该作者
:em04:
4
发表于 2009-12-3 14:06 | 只看该作者
一个很简单的程序逻辑,恐怕学过两天程序的人都会写吧,用得着在这里显吗?
5
 楼主| 发表于 2009-12-7 16:46 | 只看该作者

呵呵

原帖由 dancerindark 于 2009-12-3 14:06 发表
一个很简单的程序逻辑,恐怕学过两天程序的人都会写吧,用得着在这里显吗?

写这些是供大家互相交流学习的,我还没有您的那种爱显摆的思想
6
发表于 2009-12-14 04:06 | 只看该作者
楼主多发这样的帖子,相互探讨气氛最好:em05:
7
 楼主| 发表于 2010-1-4 14:55 | 只看该作者

回复 6楼 saber 的帖子

是的
8
发表于 2010-2-23 16:32 | 只看该作者

摆一下好,并不是人人都有那么高水平,人有不同层次的水平嘛!

摆一下好,并不是人人都有那么高水平,人有不同层次的水平嘛!
9
发表于 2010-2-24 23:18 | 只看该作者
热切期待继续下文!
10
发表于 2010-2-27 00:18 | 只看该作者
看不懂:em23:
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

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