一些算法

一 太阳能最大功率点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 }
View Code

 

posted on 2022-12-08 15:31  杰瑞鼠  阅读(35)  评论(0编辑  收藏  举报