2017年度の製作を開始します。

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Fusokukei.h

Committer:
tsumagari
Date:
2017-06-30
Branch:
SDandCadenceThread
Revision:
77:ba2dac12ce56
Parent:
57:d415d463a605
Child:
76:2ac3d145942f

File content as of revision 77:ba2dac12ce56:

#ifndef FUSOKUKEI_H
#define FUSOKUKEI_H

#include "mbed.h"


#define AIR_K 0.14737
#define AIR_N 1.12
#define AIR_A 1.4314
#define AIR_B 0.209
#define AIR_SUM_NUM 20
#define AIR_BUFFER 30

float airSpeed = 0.0;
float airSpeed_ave = 0.0;
float airSpeed_max = 0.0;
int air_counter = 0;
float air_sum[AIR_SUM_NUM] = {0.0};

class Fusokukei{
    protected:
    
    public:      
    float make_ave(float s[], int n){
        float p = 0;
        int i;
        for(i = 0; i < n; i++){
           p += s[i];    
        }
        if(n != 0)
        return p / n;    
        else
        return 0;
    }
    
    void calcAirSpeed(float x){
          air_sum[air_counter % AIR_SUM_NUM] = 0.0529*x;//2017 5/27 校正
                                                /*(float)AIR_K * (float)pow((double)x, 1 / AIR_N);*/
          if(air_counter % AIR_SUM_NUM == 0)
            air_counter = 0;
          airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM);
          //airSpeed = airSpeed_ave*AIR_A+AIR_B;
          airSpeed=airSpeed_ave;
          if(airSpeed > airSpeed_max)
            airSpeed_max = airSpeed;  
          air_counter++;
      }
};
#endif
//#ifndef FUSOKUKEI_H
//#define FUSOKUKEI_H
//
//#include "mbed.h"
//
//
//#define AIR_K 4.70591884 //0.14737
//#define AIR_N 1.12
//#define AIR_A 1.4314
//#define AIR_B 0.209
//#define AIR_SUM_NUM 3
//#define AIR_BUFFER 30
//
//float airSpeed = 0.0;
//float airSpeed_ave = 0.0;
//float airSpeed_max = 0.0;
//int air_counter = 0;
//float air_sum[AIR_SUM_NUM] = {0.0};
//
//class Fusokukei{
//    protected:
//    
//    public:      
//    float make_ave(float s[], int n){
//        float p = 0;
//        int i;
//        for(i = 0; i < n; i++){
//           p += s[i];    
//        }
//        if(n != 0)
//        return p / n;    
//        else
//        return 0;
//    }
//    
//    void calcAirSpeed(int x){
//          air_sum[air_counter % AIR_SUM_NUM] = (float)AIR_K * (float)pow((double)(x/150.0), 1 / AIR_N);
//          
//          airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM);
//          
//          //airSpeed = airSpeed_ave*AIR_A+AIR_B;
//          airSpeed=airSpeed_ave;
//          if(airSpeed > airSpeed_max)
//            airSpeed_max = airSpeed;
//          if(air_counter % AIR_SUM_NUM == 0){
//            air_counter = 0;
//          }
//          air_counter++;
//      }
//};
//#endif