STM32 功率映射计算方法及调试验证

问题发现

描述问题

这次的这个问题起因是假负载屏的核心功能是显示功率,这个功率要通过AD8361把功率转换成0-4V电压,然后通过电位器,调节成0-3.3V电压,最后经过adc运放缓冲电路,送给ADC检测IO口。
流程图
通过STM32的ADC检测功能,把功率再给反向映射出来。
我的问题就是以为这个映射过程为线性过程,所以,直接使用0-3.3V的数值映射到0-4500W的数值进行显示,计算这个线性参数的方法也就是
P U ∗ 1000 \frac{\text{P}}{\text{U}*1000} U1000P
带入数据
4500 3.3 ∗ 1000 \frac{4500}{3.3*1000} 3.310004500
写成代码也就是如下所示

adcx=1.3636*temp*1000;

发现问题

在实际工作环境中工作调试过程中,发现实际功率与显示功率差别巨大,并且无论较准低位还是高位,都无法正常显示变化。

问题分析

起初我以为是检测方法出现了问题,或者运放电路中增加的电阻导致的数据偏差,但是看到数据的偏离后,排除了这个可能性。
随后的交流中,得自功率转化电压的那个芯片,转化过程并非线性,二是对数关系。
也就是说我的线性模型本身就是错误的,需要改变映射关系。
经过与赵老师与卢老师的进一步沟通,得自需要使用这个公式来进行映射
P = U I = U 2 R P = UI = \frac{{{U^2}}}{R} P=UI=RU2

模型建立参数拟合

对照表采集

这里因为没有去从源头去分析,所以没办法直接得到理论的公式还有参数,采用了对照表拟合的方式
在这里插入图片描述
得到了实际参数,这里是使用电流步进的方式,每次步进0.5A,然后测量功率转换模块输出口的十个数据。
在这里插入图片描述
这里呢用excel画出取样电压和实际功率的图象,图像中我们也可以观察出,有比较直观的一元二次方程的曲线关系。

数据处理

这里就直接使用之前确定的 P = U I = U 2 R P = UI = \frac{{{U^2}}}{R} P=UI=RU2关系皆可,这里本质上计算的就是 1 R \frac{1}{R} R1,其实 1 R \frac{1}{R} R1就是我们需要的那个参数。
在这里插入图片描述
十个采样值的参数取完之后,然后对其做一下平均值的处理,使其拟合更加平滑
在这里插入图片描述
然后就是计算一下求得的这个平均参数能否正确及算出来结果
在这里插入图片描述
根据图象还是可以非常直观的看出拟合的非常好,参数问题不大,问题解决

代码的实现

其实这里就没啥好说的了,就是改改计算方式就可以了

c = 138.3103
adcx = temp*temp*c;

这里因为是按照这个1092.5W来计算,也就是这个模型,最大也就能检测1500W左右,所以需要改变显示量程的话需要重新输入然后测量以上数据,按照生成的参数配置进去即可。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值