三轮车模调试方法


前言

三轮车模的调试方法:

三轮车模与四轮车模不同:三轮车模无舵机,靠两差速转弯


`

一、闭环调试思路

1.差速的获取

代码如下(示例):

position=Cha_bi_he1(adc_h_l,adc_WB_l,50);//差比和左右两个电感

//两横电感差比和
double Cha_bi_he1(int16 data1,int16 data2,uint8 x)//两个电感所用算法
{
		int16 cha;
		int16 he;
		double result;

		cha = data1 - data2;
		he = data1 + data2;
		result = (x*cha)/(1.0*he);//x是放大倍数

		return result;
}


/*****************差比和差***********************//四个电感所用算法(注意:左移位数在我实际调车过程中严重影响车的左急转弯和右急转弯)
函数: int16 Cha_BI_He_Cha(uint16 Date_1,uint16 Date_2,uint16 Date_3,uint16 Date_4,float a,float b,uint16 X)
参数:  float Date_1--左横电感  float Date_2--右横电感 
        float Date_3--左斜电感  float Date_4--右斜电感 
        float a--横电感加权系数  float b-- 斜电感加权系数   int16 X--左移位数
说明:  无
返回值:Resault
日期:2022-3-28
最后修改时间:2022-7-4
作者: kkk      */
int16 Cha_BI_He_Cha(uint16 Date_1,uint16 Date_2,uint16 Date_3,uint16 Date_4,float a,float b,uint16 X)
{
  int16 Resault;
	int16 FengZ,FengM;
  Cha_H =  (int16)((Date_1 - Date_2));   //横电感差
	Cha_X =  (int16)((Date_3 - Date_4));   //斜电感差
	
  He =   Date_1 + Date_2;   //横电感和
	Sum = Date_1 + Date_2 + Date_3 + Date_4;  //所有电感之和
	He_X = Date_3 + Date_4; //斜电感和
	
//保密,剩下的就不发了
}

2.两轮转速的获取

1.首先需要理解差速和目标速度以及当前速度之间的关系,差速并不需要进到PID进行运算,直接用差速乘以放大系数,我们要做的就是调好电机的PID,具体的关系是:

(1)电感与中线的偏差error1
(2)目标速度与当前速度的误差error2

无需将电感误差进到PID,直接用误差乘以放大系数作为转弯所需的差速

计算方法为:
目标速度=基础速度+/-(电磁差值*放大系数)

       speed_control(+目标速度,-目标速度)//该speed_control为增量式运算后的驱动函数
		 Targer_L=250-position*6;   //左边轮速度
		 Targer_R=250+position*6;   //右边轮速度
       将计算后的数据进入增量式PID即可

二、开环调试思路

1.差速的获取:

方法:

差速的获取与闭环相同

2.两轮转速的获取:

方法:
开环意味着是没有编码器或者不需要用到编码器的情况下(大佬告诉我是伪PID),思路是:将电感的差值进到位置式子PID :将输出的结果乘以放大系数加减在基础速度上:

void Speed_ctrl(int32 x,int32 y)
{

	
	   speed_L_duty=x;//期望速度L
       speed_R_duty=y;//期望速度R
	

      real_speed_L=templ_pluse;//34
      real_speed_R=tempr_pluse;//53
		


	 PidLocCtrl(&LSpeed_PID,position);//通过位置式PID得到误差
  	PidLocCtrl(&RSpeed_PID,position);

		
      LSpeed_PID.out=range_protect(LSpeed_PID.out,-5000,5000);
	  RSpeed_PID.out=range_protect(RSpeed_PID.out,-5000,5000);
		
      Motor_ctrl(speed_L_duty-LSpeed_PID.out*2,speed_R_duty+RSpeed_PID.out*2);//(右轮,左轮)
}

三、总结:

1.调车不能死板,要多动脑子。
2.开环与闭环的区别要清楚。
3.多走出自己的舒适区。

  • 6
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值