智能车制作

标题: 直立摄像头车向一个方向加速,求破 [打印本页]

作者: 晓风残月、    时间: 2014-6-26 21:18
标题: 直立摄像头车向一个方向加速,求破
直立调出来了,但是车总是向一个方向加速,已经加入速度闭环控制,但是不论如何调节速度I值车都不会来回荡漾,而是一个劲的朝一个方向加速,,求破,,,大神帮帮忙,这是最后次做车了,如果再不成功那我可真的和飞思卡尔无缘了。。。。。

作者: LSQ_GSQ    时间: 2014-6-26 21:21
直立+反了
作者: 竹音清影    时间: 2014-6-26 21:23

作者: 晓风残月、    时间: 2014-6-26 21:24
LSQ_GSQ 发表于 2014-6-26 21:21
直立+反了

可否扩展你说的句子?   

作者: LSQ_GSQ    时间: 2014-6-26 21:30
晓风残月、 发表于 2014-6-26 21:24
可否扩展你说的句子?

首先调整加速度计零点。零点不准就加速特别严重。其次,直立基本上能稳定了,加I单方向加速更严重了就是速度PWM和直立PWM加反了。

作者: 晓风残月、    时间: 2014-6-26 21:34
LSQ_GSQ 发表于 2014-6-26 21:21
直立+反了

具体解释一下什么意思好不好啊,大神?

作者: 晓风残月、    时间: 2014-6-26 21:36
LSQ_GSQ 发表于 2014-6-26 21:30
首先调整加速度计零点。零点不准就加速特别严重。其次,直立基本上能稳定了,加I单方向加速更严重了就是速 ...

速度PWM和直立PWM加反了。具体能不能说下?

作者: LSQ_GSQ    时间: 2014-6-26 21:39
晓风残月、 发表于 2014-6-26 21:36
速度PWM和直立PWM加反了。具体能不能说下?

直立PWM+/-速度PWM

作者: 晓风残月、    时间: 2014-6-27 09:50
LSQ_GSQ 发表于 2014-6-26 21:39
直立PWM+/-速度PWM

还能再俗一点的解释么? 头一回调直立车。。。

作者: 晓风残月、    时间: 2014-6-27 10:01
晓风残月、 发表于 2014-6-27 09:50
还能再俗一点的解释么? 头一回调直立车。。。

这是我的这个函数,,你看下哪里不对
void MotorOutput(void) //这个函数式PWM的融合函数,,即角度 速度 方向 PWM融合函数
{
        float fLeft, fRight , fAngleAndSpeed;
        fAngleAndSpeed = g_fAngleControlOut-g_fSpeedControlOut;  
       
                fLeft  = fAngleAndSpeed        + g_fDirectionControlOut;
                fRight = fAngleAndSpeed        - g_fDirectionControlOut;

        if(fLeft > MOTOR_OUT_MAX)                fLeft = MOTOR_OUT_MAX;
        if(fLeft < MOTOR_OUT_MIN)                fLeft = MOTOR_OUT_MIN;
        if(fRight > MOTOR_OUT_MAX)                fRight = MOTOR_OUT_MAX;
        if(fRight < MOTOR_OUT_MIN)                fRight = MOTOR_OUT_MIN;
       
        g_fLeftMotorOut = fLeft;
        g_fRightMotorOut = fRight;
        MotorSpeedOut();
}


作者: 晓风残月、    时间: 2014-6-27 10:06
晓风残月、 发表于 2014-6-27 10:01
这是我的这个函数,,你看下哪里不对
void MotorOutput(void) //这个函数式PWM的融合函数,,即角度 速度 ...

另外加上这个函数 车就不直立了,一个劲的往上不满足直立的方向去直到不满足直立条件为止
void SpeedControlOutput(void)
{
        float fValue;
        fValue = g_fSpeedControlOutNew - g_fSpeedControlOutOld;
        g_fSpeedControlOut = fValue * (g_nSpeedControlPeriod + 1) / SPEED_CONTROL_PERIOD
                                                + g_fSpeedControlOutOld;
                                               
        //        速度控制平滑输出
#if SPEED_CONTROL_METHOD == 1
//        fValue = g_fAngleControlSpeedFeedbackNew - g_fAngleControlSpeedFeedbackOld;
//        g_fAngleControlSpeedFeedback = fValue * (g_nSpeedControlPeriod + 1) / SPEED_CONTROL_PERIOD +
//                                        g_fAngleControlSpeedFeedbackOld;
#endif // SPEED_CONTROL_METHOD
}


作者: LSQ_GSQ    时间: 2014-6-27 10:09
晓风残月、 发表于 2014-6-27 10:01
这是我的这个函数,,你看下哪里不对
void MotorOutput(void) //这个函数式PWM的融合函数,,即角度 速度 ...

g_fAngleControlOut-g_fSpeedControlOut;  


---------------------------------------------------
g_fAngleControlOut+g_fSpeedControlOut;  

作者: 晓风残月、    时间: 2014-6-27 10:18
LSQ_GSQ 发表于 2014-6-27 10:09
g_fAngleControlOut-g_fSpeedControlOut;  

改成+后车就不直立了,而是前后可劲的慌,是不是该从新调节角度参数啊

作者: LSQ_GSQ    时间: 2014-6-27 11:01
晓风残月、 发表于 2014-6-27 10:18
改成+后车就不直立了,而是前后可劲的慌,是不是该从新调节角度参数啊

这我就不知道 了,你好好 看看清华参考方案吧[attach]61321[/attach]





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