38 lines
821 B
C
38 lines
821 B
C
/*
|
|
* cm_heatsink_emulator.h
|
|
*
|
|
* Created on: 14 Oct 2025
|
|
* Author: Christian L. V. Madsen (OZ1CM)
|
|
*/
|
|
|
|
#ifndef CM_HEATSINK_EMULATOR_H_
|
|
#define CM_HEATSINK_EMULATOR_H_
|
|
#include <stdio.h>
|
|
#include <stdint.h>
|
|
|
|
typedef struct {
|
|
char label[32];
|
|
float R_th; // In Kelvin/Watt or Celsius/Watt (you can mix!)
|
|
|
|
}cm_heatsink_thermalElement_t;
|
|
|
|
typedef struct {
|
|
|
|
cm_heatsink_thermalElement_t *thermalElements;
|
|
int thermalElements_Counts;
|
|
|
|
float power;
|
|
float ambientTemp;
|
|
float C_th; // Thermal capacity
|
|
|
|
// Dynamic
|
|
float heatsinkTemperature;
|
|
|
|
}cm_heatsinkEmul_t;
|
|
|
|
float cm_heatsinkEmul_getRespon(cm_heatsinkEmul_t *inst, float dt);
|
|
int cm_heatsinkEmul_init(cm_heatsinkEmul_t *inst, cm_heatsink_thermalElement_t *elements, int elements_Count, float power, float ambientTemp);
|
|
|
|
|
|
#endif /* CM_HEATSINK_EMULATOR_H_ */
|