一些算法
一 太阳能最大功率点MPPT算法
二 一阶二阶低通数字滤波c语言算法:硬件rc低通滤波利用电容通高频(到地))阻低频(输出通过),一阶有a和1-a共2个参数,2阶有a1,a2,(1-a1-a2)共3个参数:阶低通滤波适用于较大惯性的系统,如水位,温度,低速电机等。
1 #ifndef LIMITER 2 #define LIMITER(v,n,m) (((v) < (n)) ? (n) : ((v) > (m) ? ((m) > (n) ? (m) : (v)) : (v))) 3 #endif 4 5 // flt 滤波系数: 值越大滤波越平滑 1~99,flt为旧值的权重 6 //新滤波值与上一次的滤波值及权重有关。 7 float dynamic_filter(float old, float new, int flt) 8 { 9 float rslt = 0; 10 // rslt = new; 11 // rslt = old + (new - old + (flt-1))/flt; 12 rt_enter_critical(); 13 flt = LIMITER(flt, 1, 99);/*flt如果在之间则取本身,小于1取1,大于99取99*/ 14 rslt = (old*flt + (100-flt)*new)/100; 15 rt_exit_critical(); 16 17 return rslt; 18 }