四旋翼电池电压与油门曲线拟合
来源:互联网 发布:ping 专业软件 编辑:程序博客网 时间:2024/05/17 09:39
还在继续做着咱的四旋翼,我自己的飞控板子上集成有蜂鸣器。电池12v左右的电压通过4个100k的大电阻分压,然后用stm32的AD进行数据的采集。
蜂鸣器和电池电压测量电路图如下:
航模电池基础知识补充:
3s电池,建议使用到11.1v,也就是每节电池是3.7v。我查阅了相关资料:2.75V≈0%;3.56V≈5%;3.70V≈10%;3.75V=20%;3.85V≈50%电池电压与电量的基本关系。以上电压值均为无负载情况下的电压,有负载的电压情况根据放电电流大小来具体确定。也就是说,电池在实际使用中电压很容易掉到11.1v以下,不能直接设置阈值,低于11.1v报警。这样是不对的。所以才有了今天的工作。
更多电池知识请见下面博客:
http://tieba.baidu.com/p/3752844048
之前一直都没认真搞一下电池低电压报警(注:因为航模锂电池很脆弱,听说只要电池低过最低电压,电池立马挂),由于担心自己的电池挂,又因为没花钱买个BB响,就自己画pcb的时候预留了电压检测部分电路。 之前写的代码,总是误响,遂今天花了半天时间,自己拟合了一条电池电压与油门的关系曲线。拟合曲线图如下:
红色箭头所指,即为拟合后的曲线。 我的油门数据是这样来的: 电调pwm博范围是 1000 到 2000,所以这里我设置的pwm基础值为1000,那么我油门设置的是 0 到1000。
图上各个曲线意思为:
纵坐标:我ADC采集出来的原始值 (原始值 / 4096) * 3.3 * 4 = 电池电压值。【4个100k电阻分压】
横坐标:遥控油门数据0到700范围(已经转的相当快了)
最下面的几条曲线是我在电池电压快耗尽的时候记录的数据,最上面一条是充满电测试记录的数据。
首先我飞控代码中,写了断测试程序,每秒油门+10,每秒读取一次电池电压的AD采集值,存入数组,油门最大取到了700,也就是每次采集了70次的值。我上述数据是使用jlink硬件仿真看的数组值。其实有省事的方法,直接通过串口线传到电脑上,但是我买的串口线还没到。。
就是这样,哥凭借惊人的毅力,采集整理了6组excel数据,每组70个。然后我打开了自己的MATLAB,将excel原始数据导入到MATLAB中,进行绘图如下:
各个曲线是我在电池电压不同的时候测试的,最下面的2条是在电池电压接近11.2v测试的,当时相当担心自己电池挂啊。。。。
观察曲线,发现油门110以内,电池电压基本不变(因为电机还没有转动),之后曲线近似为直线,但是我呢感觉二次可能高大上点,于是使用 ——最小二乘法 拟合曲线的时候,我将曲线拟合成了2次的。
由于MATLAB水平比较渣,语法都不熟,于是计算最小二乘法系数矩阵的时候自己 用c语言写的一个测试工程,计算各个矩阵系数。
最后再通过MATLAB的 解方程组功能,解出拟合的曲线为:
y = 3504.3 - 0.1627 * x - 0.0014 * x * x
其实数学好的,可以直接通过高斯消去法手算。。。。
MATLAB操作如下:
1、 首先导入excel数据
2、 然后根据c语言求出来的数据,写MATLAB矩阵系数,即为图上AB矩阵,注意MATLAB矩阵写法
3、 A \ B求出 a0 a1 a2
然后就能得到拟合的曲线y
4、 画出拟合的曲线和原始曲线进行 对比 (油门110以上使用)如下图:
剩下的就是将公式转换到自己的飞控中,经过测试效果很好,不存在误报现象了。哈哈
测试代码、测试数据、最小二乘法资料以及测试截图见下面链接:
http://download.csdn.net/detail/zzw5945/9739247
- 四旋翼电池电压与油门曲线拟合
- 电池的电压与记忆效应
- 电池电压与电量的关系(转)
- 电池电压容量关系
- BASS 电池电压修正
- 油门
- WinCE ADC获得电池电压
- Android 电池电流,电压信息
- STM32测量外部电池电压值时参考电压解决方法
- 多旋翼油门量与升力关系
- 电池的电压对容量的关系
- 电池的电压、电流(可充电电池)
- 曲线拟合与插值
- 函数逼近与曲线拟合
- 最小二乘法与曲线拟合
- 曲线拟合与绘制
- 低功耗的项目,采集电池电压设计
- UglyMonste_Flying 丑八怪四轴——ADC电池电压采集
- tomcat调优总结
- Windows卸载软件后但还遗留下服务,需手动删除
- 5.浅谈get方式和post方式的区别
- 2017寒假集训-小题训练1:D - USB Flash Drives
- QT-Socket编程之路由分组转发仿真
- 四旋翼电池电压与油门曲线拟合
- Super IO芯片组成及访问机制(一)-83627
- Jsp与mysql中的中文显示问题
- 批量反编译jar包中的class文件
- 配置SpringMVC时出现Tomcat无法启动,SpringMVC的jar包
- 解决FileZilla 连接服务器报错的问题
- 将博客搬至CSDN
- [置顶]配置SpringMVC
- WeUI 应用到网页面中