打印
[STM8]

连续曲线变量对时间变化率的C语言探讨

[复制链接]
1700|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LZJ361155817|  楼主 | 2016-4-23 00:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人是低端码农一枚。从事低端单片机电子设备驱动工作。
最近遇到一个看起来很简单的规格要求:“若温度在10秒内上升5度,则执行xxx”。
初看时觉得应该是很好实现的。
但是写代码时发现,温度是连续变化的,时间也是连续的。由于温度是一直在扫描和变化,时间轴也是实时在往前。
C语言要写出这一逻辑判断,不可避免要涉及温度基准点和时间基准点。
假设在0-9秒,温度上升了3度,9-10秒,温度上升了1度,在第10-15秒,温度上升了4度。
那么第9-15秒,实际上升了5度,第15秒就应该满足逻辑,执行动作xxx。

这是理想状态。
问题在于,这是一个连续变化更新的曲线,而且也需要实时去执行控制逻辑。
如何有效或者更为理想地实现这一控制逻辑呢?
各位大侠有什么看法,欢迎探讨!
谢谢!
沙发
wm20031015| | 2016-4-23 01:13 | 只看该作者
本帖最后由 wm20031015 于 2016-4-23 01:19 编辑

开个环形缓冲区,10个字节,保存10秒的温度,不断更新缓冲区的最早的一个数据,搜索缓冲区里的最大值和最小值,比较差值是否大于5度。

使用特权

评论回复
板凳
kk451506080| | 2016-4-23 01:42 | 只看该作者

使用特权

评论回复
地板
Rooney30| | 2016-4-23 15:16 | 只看该作者
这个对于硬件的操作还真的必须好好阅读芯片资料才行

使用特权

评论回复
5
ta1ent| | 2016-4-23 20:41 | 只看该作者
wm20031015 发表于 2016-4-23 01:13
开个环形缓冲区,10个字节,保存10秒的温度,不断更新缓冲区的最早的一个数据,搜索缓冲区里的最大值和最小 ...

嗯。是的。还要看他动作对时间精度要求。
可以考虑采多一些。比如50ms采集一次

使用特权

评论回复
6
ta1ent| | 2016-4-23 20:45 | 只看该作者
虽然物理量是连续变化的,但采样是离散的。
例如,10s可以量化成100个时间单位,这样就采集到100个数值。(每秒更新10个)。然后看极值就可以了。

使用特权

评论回复
7
LZJ361155817|  楼主 | 2016-5-20 17:58 | 只看该作者
ta1ent 发表于 2016-4-23 20:45
虽然物理量是连续变化的,但采样是离散的。
例如,10s可以量化成100个时间单位,这样就采集到100个数值。( ...

你说的对,如果要严格意义上实现,只能用占很大的缓存空间去存。但是对于小家电温度控制,基本不会有那么大的空间去存这么多的温度值。有点意思,提出来让大家讨论讨论。谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝