基于WT931陀螺仪的云台PID调试


前言

这是本人首次使用维特智能WT931的反馈数据去调云台,发现跟使用电机编码器的过程和效果大大不同,特记录一下以供参考

一、读取方式

WT931有2种读取方式,分别是串口和I2C。在使用上位机读取时,使用串口的方式读取;使用STM32读取时,串口和I2C都可以。由于I2C的速度相对较快,所以使用的是I2C。


要读取的云台信息为YAW轴信息,由于目前陀螺仪是放在YAW轴的,则陀螺仪z轴的角度和角速度信息就是云台YAW轴PID运算时所要用到的信息。

二、PID调试过程

WT931读取回来的角速度单位为:度每秒
角度单位为度。为了PID好调一些,于是通过将2个数据进行线性处理后再作为PID计算时所用到的值

1.WT931第一套数据

数据信息

读取回来的角度和角速度信息线性处理-第一套数据:

    Machanical_angle_yaw = IMU->total_angle *(8192/360);
    Machanical_speed_yaw = IMU->speed_gyro/6.0f;

PID参数设置(19年infantry的YAW轴)。

 /*云台yaw电机PID参数初始化,由WT931陀螺仪反馈角度信息*/   
    PID_struct_init(&Gimbal_Motor_Pid_pos_IMU[YAW], POSITION_PID,200, 30, 0.7f, 0.0f, 1.0f); //位置环
    PID_struct_init(&Gimbal_Motor_Pid_Spd_IMU[YAW], POSITION_PID,30000, 2000, 30.0f, 1.0f,10.0f);//速度环

调试过程

笔者首先调试了速度环,通过调试P让响应速度变快,P给到50都没有异常,但是达不到目标速度,后通过给I让速度达到目标值消除静差,但发现此时在给定速度值为0时无法定住云台,后来发现是I过大引起的,于是降低积分限幅和I。但奇怪的是,若在此时的速度环数据基础上加位置环,那么无论位置环的P给的多小,云台都很抖。鉴于此情况,只能减小速度环的P,直到降至30云台才不抖。接着通过给位置环P,但此时云台到达目标值后还会有震荡的情况,于是通过给D抑制云台运动(速度环和位置环都给),但是D也不能给的太大,太大的话也同样导致云台抖动。

云台效果

调出来的云台效果并不是特别理想,不是很硬,但也已经是所能调试到的最优效果,发现同编码器反馈数据相比,调试的过程更为艰辛,跳出来的效果相对也不是那么好,特别是I不能给的太大,导致其硬度不够。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值