Simulink查表法实现NTC温度计算模型

news2024/11/21 0:34:30

目录

前言

把NTC数据导入到excel

把excel数据导入Matlab

拟合NTC温度曲线

查表实现温度计算

总结


前言

 在实际项目中需要对NTC对某些区域进行温度采样和做一些系统层面的保护等等,比如过温降载,过温保护,这时就需要对NTC或者其他的温度传感器进行采样,计算实时温度。而NTC的数据表提供的温度和阻值的对应关系点数太少,计算的温度误差比较大。这里记录下所使用的方法,方便日后回顾。

把NTC数据导入到excel

如下图是开发板上的一个NTC电路。MCU采样NTC_Temp的AD值并进行温度的计算

 以下是NTC的阻值和温度的对应关系,这里选用的是10KR的型号

 把数据手册上的数据导入到excel,如下是电阻和温度的对应关系,再根据电路结构很容易就算出了电压,AD值的对应关系。

 如下是引脚电压和ADC对应当前的温度数据,再把数据生成曲线

 

图1横坐标是AD值12位,纵坐标是对应的温度,图2是横坐标是电阻值,纵坐标是温度

 

可以看到,曲线的点是比较少的,如果直接用这些数据进行查表,那得到的温度值精度也不高。 

把excel数据导入Matlab

从Matlab里双击打开刚刚的表格,把表格数据导入到Workspace,如下

 再把导入到Workspace里的数据给到两个数组,求个转转置就可以把列变成行了。

 

拟合NTC温度曲线

输入以下代码


Coef1=polyfit(ADC_Table_T,Tem_Table_T,5);
z1=polyval(Coef1,ADC_Table_T);
plot(ADC_Table_T,Tem_Table_T,'r*',ADC_Table_T,z1,'b')

 第一句的意思是把ADC数组作为输入,把温度作为输出,拟合成一个5次多项式的形式,并获取其系数。

第二句就是把ADC数组作为输入,用拟合得到的系数方程计算得到温度Z1

第三句就是比较拟合出来的曲线和数组曲线作对比

可以适当调节项数提高精度,如 Coef1=polyfit(ADC_Table_T,Tem_Table_T,5);这里采用的是五次项。

 可以看到,系数在Command Window里面精度是不够的,需要在Workspace里双击。选择上面的系数,最后再把系数构建成多项式,那ADC和温度的关系就可以计算出来,后面根据需要的精度进行调整即可。

查表实现温度计算

把计算公式输入到excel里,和之前的数据做对比,这里设置了从-40-125度一共191个点。可根据实际需要进行适当调整,精度越高占用空间越多,合理选择就可以。

 再把数据导入到脚本里

 比较NTC数据手册提供的点,再比较拟合出来的191个点的曲线。

 得到数据后直接用Simulink查表就可以完成ADC转换成温度值的计算了。

 

 如下是模块内部配置

 

 AD值改变,温度也会变化,仿真和预期一样,1-D LookupTable 这个模块可以直接生成代码。

 

总结

 没啥好总结的!灵活使用各种方法和工具就行,这种方法也可以用在其他复杂的公式里面,如一些曲线过于复杂不好拟合的,还可以分段拟合多项式等等,不同的情况选择合适的方法最重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1154642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker之docker-compose(介绍,安装及入门示例)

文章目录 一、docker-compose介绍Compose 中有两个重要的概念: 二、docker-compose安装三、docker-compose简单示例参考网址: 一、docker-compose介绍 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。 Compo…

第7讲:VBA中利用FIND的代码实现多值查找实例

《VBA代码解决方案》(10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好…

diffusers-AutoPipline

https://huggingface.co/docs/diffusers/tutorials/autopipelinehttps://huggingface.co/docs/diffusers/tutorials/autopipelineAutoPipeline会自动检测要使用的正确流程类,这样可以更轻松地加载与任务相对应的检查点,而无需知道具体的流程类名称。 1.…

.net core iis 发布后登入的时候请求不到方法报错502

.net core iis 发布后登入的时候请求不到方法报错502 502 bad gateway 502 - Web 服务器在作为网关或代理服务器时收到了无效响应。 您要查找的页面有问题,无法显示。当 Web 服务器(作为网关或代理)与上游内容服务器联系时,收到来自内容服务器的无效…

配置管理工具-Confd

1 简介 1.1 Confd介绍 Confd是一个轻量级的配置管理工具。通过查询后端存储,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。对应的后端存储可以是etcd,redis、zookeeper等。[1] 通过…

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项

2024年湖北黄冈建安ABC建筑企业专职安全员报名事项 专职安全员一般是指从事安全管理方面的工作,普遍的是建筑施工行业,建筑工地安全员,专职安全员C证,黄冈建筑安全员ABC-建筑单位在黄冈,只能在黄冈报考建筑安全员ABC。…

div 中文本太长用省略号隐藏展示,鼠标放上来弹出提示

需求描述 div 中有一行文本。 文本特别特别的长, 反正是超出了div所容纳的长度。 你呢, 现在想要的效果是: 1.文本就展示一行,多余的部分用省略号代替展示; 2.鼠标放上去的时候,用tip的方式展示完整的信息…

【AIFEM案例分析】药柱随机响应分析

AIFEM是由天洑自主研发的一款通用的智能结构仿真软件,助力用户解决固体结构相关的静力学、动力学、振动、热力学等实际工程问题,软件提供高效的前后处理工具和高精度的有限元求解器,帮助用户快速、深入地评估结构的力学性能,加速产…

三分钟学习一个python小知识9-----------我的对python中random的理解

文章目录 random库一、生成随机浮点数二、生成指定范围内的随机整数三、生成指定范围内的随机浮点数四、从序列中随机选择元素总结 random库 在Python中,random库是用于生成随机数的。 提示:以下是本篇文章正文内容,下面案例可供参考 一、生…

xx is not in the sudoers file. This incident will be reported

虚拟机再执行 sudo 命令的时候,出现类似这样的报错: xx is not in the sudoers file. This incident will be reported 其实,背景是这样的,我自己没事瞎作死,干了个这事,给 /etc/sudoers 文件的最下面一行…

软件开发全文档归档,开发、管理、实施、运维、服务巡检、信息安全、安全运维

在当今高度信息化的时代,软件开发已成为推动社会进步和发展的重要力量。软件开发过程中,文件支撑作为关键的一环,对于保障项目的顺利进行和产品的质量具有不可替代的作用。本文将探讨软件开发所需的主要文件及其作用。 一、引言 软件开发是…

C++核心编程---友元

目录 友元 友元的关键字 friend 友元的三种实现方式 1. 全局函数做友元 2. 类做友元 3. 成员函数做友元 友元 生活中你的家有客厅(Public),有你的卧室(Private) 客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进…

通过率90%的软件测试简历长什么样?

作为软件测试的从业者,面试或者被面试都是常有的事。 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官,所以在这场博弈中&#xff0…

抖音小店怎么做?五步教你做好抖店,新手快来看!

我是电商珠珠 新手在做抖音小店的时候,往往在入驻完成之后,就不知道后续应该怎么操作了。 我将抖店的运营分为了五个步骤,可以供大家参考。 一、类目 开店之前选择好的类目,后续如果想要更改的话可以随时更改。 不过需要下架…

vue中watch实现翻译案例

翻译案例需要向在线接口发起一个Ajax请求,所以需要引入axios库。当输入一个单词或者文字时自动发起翻译请求。所以可以使用watch监听器来监听属性是否变更,当发生变化即发起翻译请求。 // 该方法会在数据变化时调用执行 // newValue新值, oldValue老值&…

linux环境mysql安装配置踩坑

背景: 最近公司项目希望改造工作流ACTIVITI5.x的源码框架支持大数据量(历史表单表数据达到10亿), 方案暂定为 1.使用动态数据源 2.将工作流归档历史数据数据保存到一个库中这里定义为读库, 3.在办办件的数据单独一个库…

人工智能基础_机器学习012_手写梯度下降代码演示_手动写代码完成梯度下降_并实现梯度下降可视化---人工智能工作笔记0052

可以看到上面我们那个公式,现在我们用梯度下降实现一下,比如我们有一堆数据,但是没有方程的情况下,我们来看一下如果计算,对应的w值也就是seta值对吧,没有方程我们可以使用梯度下降 这里首先我们可以设置一个0.0001.我们知道梯度下降的公式, 梯度下降刚开始的时候,下降会快,然…

基于FPGA的图像差分运算及目标提取实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2022/07/28 01:51:…

k8spod

pod基本概念 (几种容器) pod 是k8s最小的创建和运行单元 一个pod包含几个容器,1个根容器/父容器/基础容器,一个或者多个应用容器/业务容器,pause容器 pod里面容器共享 network UTS IPC命令空间 k8s 创建的Pod 分为两种: 自主…

洞见UI自动化测试

随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。自动化测试包括三个方面:UI前端界面,Service服务契约和Unit底层单元如下图: 越是底层的测试,运行速度越快,时间开销越少,金…