智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 风生水起
打印 上一主题 下一主题

直立电磁《视频,图片》走过路过来看一看评一评

    [复制链接]

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1229
威望
561
贡献
350
兑换币
364
注册时间
2015-12-1
在线时间
159 小时
毕业学校
武汉工程大学
51#
发表于 2016-6-10 12:03:40 | 只看该作者
风生水起 发表于 2016-6-10 11:30
这个速度转弯打滑是因为转向陀螺仪的值不好用,要用偏差微分,连续过弯不流畅是因为电感抖。你能告诉我为 ...

我曾经实验过,把分别给左右两个电机的差速,改为减去期中一个轮子的输出量,而另一个输出量不变,这样的话,从直道到弯道时,由于此时两个电机的平均转速比直道慢,所以车身进入弯道时会前倾,由此实现了弯道加速。
回复 支持 反对

使用道具 举报

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1229
威望
561
贡献
350
兑换币
364
注册时间
2015-12-1
在线时间
159 小时
毕业学校
武汉工程大学
52#
发表于 2016-6-10 12:05:32 | 只看该作者
风生水起 发表于 2016-6-10 11:30
这个速度转弯打滑是因为转向陀螺仪的值不好用,要用偏差微分,连续过弯不流畅是因为电感抖。你能告诉我为 ...

当然我们由于打滑,弯道加速也一样会甩出跑道就是了。。。。
回复 支持 反对

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
53#
 楼主| 发表于 2016-6-10 13:06:06 | 只看该作者
cxj_均小乘 发表于 2016-6-10 12:05
当然我们由于打滑,弯道加速也一样会甩出跑道就是了。。。。

非常感谢,我试试。有时间去你学校交流下
回复 支持 反对

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
54#
 楼主| 发表于 2016-6-10 14:10:16 | 只看该作者
cxj_均小乘 发表于 2016-6-10 12:03
我曾经实验过,把分别给左右两个电机的差速,改为减去期中一个轮子的输出量,而另一个输出量不变,这样的 ...

怎么实现弯道加速度的,能否具体点?谢谢
回复 支持 反对

使用道具 举报

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1229
威望
561
贡献
350
兑换币
364
注册时间
2015-12-1
在线时间
159 小时
毕业学校
武汉工程大学
55#
发表于 2016-6-10 15:48:01 | 只看该作者
风生水起 发表于 2016-6-10 14:10
怎么实现弯道加速度的,能否具体点?谢谢

     我们的电机输出值一般是下面这两个
     Speed_L = g_fAngleControlOut + g_fSpeedControlOut - g_fDirectionControlOut ;   
     Speed_R = g_fAngleControlOut + g_fSpeedControlOut + g_fDirectionControlOut ;

    方向控制其实就是最后的两个电机一个加g_fDirectionControlOut ,一个减g_fDirectionControlOut 得到的,但是电机由于加速比减速快,过弯时电机转速可能会比直道时快,导致车后仰从而又减了速(之前我提到过),,
   而我们如果改成
        if(g_fDirectionControlOut >= 0)
     {
         Speed_L = g_fAngleControlOut + g_fSpeedControlOut
         Speed_R = g_fAngleControlOut + g_fSpeedControlOut + 2 * g_fDirectionControlOut ;
     }
     if(g_fDirectionControlOut < 0)
     {
         Speed_L = g_fAngleControlOut + g_fSpeedControlOut - 2* g_fDirectionControlOut ;   
         Speed_R = g_fAngleControlOut + g_fSpeedControlOut;
     }
这样就实现了把转弯变为电机输出到一个轮子上实现。就相当于比如说前方有个向左的弯道,我们平常的做法是我的左电机减去一个pwm数值,而右电机加上一个同样的数值从而实现了差速转向,但是做了上述处理后,我前方有左弯时,就只是左电机减去一个pwm数值而右电机转速保持不变,这样我们过弯时电机的平均转速会比直线时的小,从而车身会前倾,车前倾了直立环会有输出,然后就实现弯道加速了。但是改了之后许多参数也得修改,车子不一定就会比之前跑得好。
      当然也可以这样
        if(g_fDirectionControlOut >= 0)
     {
         Speed_L = g_fAngleControlOut + g_fSpeedControlOut
         Speed_R = g_fAngleControlOut + g_fSpeedControlOut + (2 -x)* g_fDirectionControlOut ;
     }
     if(g_fDirectionControlOut < 0)
     {
         Speed_L = g_fAngleControlOut + g_fSpeedControlOut - x* g_fDirectionControlOut ;   
         Speed_R = g_fAngleControlOut + g_fSpeedControlOut;
     }


x是0到2之间取的一个数。。这样的话小车转弯都会有不同的效果,你可以试一下,,
以上都是个人见解。

回复 支持 反对

使用道具 举报

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1229
威望
561
贡献
350
兑换币
364
注册时间
2015-12-1
在线时间
159 小时
毕业学校
武汉工程大学
56#
发表于 2016-6-10 15:58:43 | 只看该作者
风生水起 发表于 2016-6-10 11:30
这个速度转弯打滑是因为转向陀螺仪的值不好用,要用偏差微分,连续过弯不流畅是因为电感抖。你能告诉我为 ...

偏差微分是指的是左右两个电感的差值的微分吗,还是差和比的微分?
回复 支持 反对

使用道具 举报

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1229
威望
561
贡献
350
兑换币
364
注册时间
2015-12-1
在线时间
159 小时
毕业学校
武汉工程大学
57#
发表于 2016-6-10 15:59:36 | 只看该作者
风生水起 发表于 2016-6-10 13:06
非常感谢,我试试。有时间去你学校交流下

随时欢迎大神来交流啊
回复 支持 反对

使用道具 举报

1

主题

34

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1229
威望
561
贡献
350
兑换币
364
注册时间
2015-12-1
在线时间
159 小时
毕业学校
武汉工程大学
58#
发表于 2016-6-10 16:28:47 | 只看该作者
风生水起 发表于 2016-6-10 11:30
这个速度转弯打滑是因为转向陀螺仪的值不好用,要用偏差微分,连续过弯不流畅是因为电感抖。你能告诉我为 ...

我试着把d换成了差和比的微分进行pd控制,控制后会左右摆动失控,怎么调都调不好,示波后发现差和比的微分尖刺极多,图我上传的,红色是差和比乘一比例值后的波形,而蓝色是差和比的微分乘一个比例后的波形,褐色是转向向陀螺仪的波形。。。。请下问这么多尖刺正常吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
59#
 楼主| 发表于 2016-6-10 17:55:37 | 只看该作者
cxj_均小乘 发表于 2016-6-10 16:28
我试着把d换成了差和比的微分进行pd控制,控制后会左右摆动失控,怎么调都调不好,示波后发现差和比的微 ...

对的,偏差微分是指差比和的微分,你的尖峰较多应该是电感不够稳定。微分本来就是容易受干扰的值,不过你的感觉也可以,微分很小,我乘了1000倍使用的,你得放大到一个合适的系数才能使用,不然就是乱抖。
你在看看我们的算法是否一样,还有极性问题
g_fDirectionError = (float)(g_ValueOfAD[0] - g_ValueOfAD[1])/(g_ValueOfAD[0] + g_ValueOfAD[1]);
        g_fDirectionErrorTemp[4] = g_fDirectionErrorTemp[3];
        g_fDirectionErrorTemp[3] = g_fDirectionErrorTemp[2];
        g_fDirectionErrorTemp[2] = g_fDirectionErrorTemp[1];
        g_fDirectionErrorTemp[1] = g_fDirectionErrorTemp[0];
        g_fDirectionErrorTemp[0] = g_fDirectionError;
        g_fDirectionError_dot = 1000*(g_fDirectionErrorTemp[0]-g_fDirectionErrorTemp[4]);


g_fDirectionControlOut = g_fDirectionError*g_dirControl_P + g_fDirectionError_dot*g_dirControl_D;

g_fDirectionControl_P = 190;
g_fDirectionControl_D = 6.0;

回复 支持 1 反对 0

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
60#
 楼主| 发表于 2016-6-10 18:00:49 | 只看该作者
风生水起 发表于 2016-6-10 17:55
对的,偏差微分是指差比和的微分,你的尖峰较多应该是电感不够稳定。微分本来就是容易受干扰的值,不过你 ...


黄色偏差微分,这是静态

这是跑起来

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 12:46 , Processed in 0.069702 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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