1
$\begingroup$

My scenario: I want my application to stop or take some decision based on temperature. say like if my ambient is morethan 41 i want to switch off the application and we do not have an separate temperature sensor and trying to use our motherboard sensors

Sorry : i dunno if this is the right forum to post this

To understand ambient vs motherboard temperature sensors, we plotted temperature graph by varying ambient from 30 – 43. To log motherboard temperature in syslog we uses LM_SENSORS (Linux command) & Ambient in logged by user manually.

The plotted data show steady rise / dip in both motherboard temperature point A(CPU) & B(Board). For first 6 minutes there is a steady rise in CPU / board temperature and for next 6 minutes there was a steady dip in temperature and this pattern continues till end of test.

temperature Graph

Sample data file

Is there a mechanism that we will able to use this temperature info and take some decision on my application end.

$\endgroup$
5
  • $\begingroup$ The obvious thing would be to fit a straight line to your above plots, and then have your application compute the average temperature over the past, say, 20 minutes, and if it exceeds the value of the straight line at the critical temperature then kill it. However, presumably if you're also running an application then that's going to cause significant temperature spikes that will mess up your measurements...? $\endgroup$
    – lemon
    Commented May 10, 2016 at 8:16
  • $\begingroup$ I can't quite see why you would need to do anything. Your core temperature is perfectly fine, so the thermal environment on the board is OK. If you are worried about the temperature, I would rather install a better fan. Generally speaking, the silicon here is not stressed, whatsoever. If this is a reliability issue, what you have to take care of are the capacitors next to the CPU. Those are usually run far above their safe ratings on cheap motherboards. $\endgroup$
    – CuriousOne
    Commented May 10, 2016 at 8:36
  • $\begingroup$ @CuriousOne : I am just trying find data corelation between my core temperature and ambient. $\endgroup$
    – Ragav
    Commented May 10, 2016 at 9:02
  • $\begingroup$ @Ragav I believe you can get an answer form stackoverflow $\endgroup$
    – hxri
    Commented May 10, 2016 at 9:54
  • $\begingroup$ Hi Ragav. Linking to private clouds, dropbox, etc, is for various reasons not acceptable on SE, cf. this meta post. 06.10.19: Link is now dead. $\endgroup$
    – Qmechanic
    Commented Oct 6, 2019 at 10:42

1 Answer 1

0
$\begingroup$

I would suggest, as one of the commentators did, to take a moving average over the last $T$ minutes and use that as your decision metric. If $x(t)$ is your measured temperature at time $t$, then the averaged output $\bar x(t)$ is given by:

$$ \bar x(t) = \frac{1}{T}\int_{t-T}^t x(\tau) d\tau $$

In terms of discrete data samples (which is what your sensor will be generating), this could be approximated by:

$$ \bar x[k] = \frac{1}{N} \sum_{n=k-N+1}^{k} x[n] $$

where $$ N = \left\lceil \frac{T}{T_s} \right\rceil $$

and $T_s$ is the time between samples in the same time units as $T$.

For instance, if you know that the oscillations vary with a period of roughly $12$ minutes, as your plot suggests, then you can set $T = 12$ minutes and use the output of your moving average filter as your decision metric.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.