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

Dependencies:   BufferedSoftSerial2 SDFileSystem-RTOS mbed mbed-rtos INA226_ver1

Fork of keiki2016ver5 by albatross

Committer:
tsumagari
Date:
Fri Jun 30 09:52:07 2017 +0000
Branch:
SDandCadenceThread
Revision:
77:ba2dac12ce56
Parent:
57:d415d463a605
Child:
76:2ac3d145942f
7/1TF?no pc.printf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taurin 0:085b2c5e3254 1 #ifndef FUSOKUKEI_H
taurin 0:085b2c5e3254 2 #define FUSOKUKEI_H
taurin 0:085b2c5e3254 3
taurin 0:085b2c5e3254 4 #include "mbed.h"
taurin 0:085b2c5e3254 5
taurin 7:9415448ae9ca 6
tsumagari 51:f391d3a02397 7 #define AIR_K 0.14737
taurin 7:9415448ae9ca 8 #define AIR_N 1.12
taurin 0:085b2c5e3254 9 #define AIR_A 1.4314
taurin 0:085b2c5e3254 10 #define AIR_B 0.209
taurin 0:085b2c5e3254 11 #define AIR_SUM_NUM 20
taurin 0:085b2c5e3254 12 #define AIR_BUFFER 30
taurin 0:085b2c5e3254 13
taurin 0:085b2c5e3254 14 float airSpeed = 0.0;
taurin 0:085b2c5e3254 15 float airSpeed_ave = 0.0;
taurin 0:085b2c5e3254 16 float airSpeed_max = 0.0;
taurin 0:085b2c5e3254 17 int air_counter = 0;
taurin 0:085b2c5e3254 18 float air_sum[AIR_SUM_NUM] = {0.0};
taurin 0:085b2c5e3254 19
taurin 0:085b2c5e3254 20 class Fusokukei{
taurin 0:085b2c5e3254 21 protected:
taurin 0:085b2c5e3254 22
taurin 0:085b2c5e3254 23 public:
taurin 0:085b2c5e3254 24 float make_ave(float s[], int n){
taurin 0:085b2c5e3254 25 float p = 0;
taurin 0:085b2c5e3254 26 int i;
taurin 0:085b2c5e3254 27 for(i = 0; i < n; i++){
taurin 0:085b2c5e3254 28 p += s[i];
taurin 0:085b2c5e3254 29 }
taurin 0:085b2c5e3254 30 if(n != 0)
taurin 0:085b2c5e3254 31 return p / n;
taurin 0:085b2c5e3254 32 else
taurin 0:085b2c5e3254 33 return 0;
taurin 0:085b2c5e3254 34 }
taurin 0:085b2c5e3254 35
taurin 0:085b2c5e3254 36 void calcAirSpeed(float x){
tsumagari 57:d415d463a605 37 air_sum[air_counter % AIR_SUM_NUM] = 0.0529*x;//2017 5/27 校正
tsumagari 57:d415d463a605 38 /*(float)AIR_K * (float)pow((double)x, 1 / AIR_N);*/
taurin 0:085b2c5e3254 39 if(air_counter % AIR_SUM_NUM == 0)
taurin 0:085b2c5e3254 40 air_counter = 0;
taurin 0:085b2c5e3254 41 airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM);
taurin 7:9415448ae9ca 42 //airSpeed = airSpeed_ave*AIR_A+AIR_B;
taurin 7:9415448ae9ca 43 airSpeed=airSpeed_ave;
taurin 0:085b2c5e3254 44 if(airSpeed > airSpeed_max)
taurin 0:085b2c5e3254 45 airSpeed_max = airSpeed;
taurin 0:085b2c5e3254 46 air_counter++;
taurin 0:085b2c5e3254 47 }
taurin 0:085b2c5e3254 48 };
tsumagari 51:f391d3a02397 49 #endif
tsumagari 51:f391d3a02397 50 //#ifndef FUSOKUKEI_H
tsumagari 51:f391d3a02397 51 //#define FUSOKUKEI_H
tsumagari 51:f391d3a02397 52 //
tsumagari 51:f391d3a02397 53 //#include "mbed.h"
tsumagari 51:f391d3a02397 54 //
tsumagari 51:f391d3a02397 55 //
tsumagari 51:f391d3a02397 56 //#define AIR_K 4.70591884 //0.14737
tsumagari 51:f391d3a02397 57 //#define AIR_N 1.12
tsumagari 51:f391d3a02397 58 //#define AIR_A 1.4314
tsumagari 51:f391d3a02397 59 //#define AIR_B 0.209
tsumagari 51:f391d3a02397 60 //#define AIR_SUM_NUM 3
tsumagari 51:f391d3a02397 61 //#define AIR_BUFFER 30
tsumagari 51:f391d3a02397 62 //
tsumagari 51:f391d3a02397 63 //float airSpeed = 0.0;
tsumagari 51:f391d3a02397 64 //float airSpeed_ave = 0.0;
tsumagari 51:f391d3a02397 65 //float airSpeed_max = 0.0;
tsumagari 51:f391d3a02397 66 //int air_counter = 0;
tsumagari 51:f391d3a02397 67 //float air_sum[AIR_SUM_NUM] = {0.0};
tsumagari 51:f391d3a02397 68 //
tsumagari 51:f391d3a02397 69 //class Fusokukei{
tsumagari 51:f391d3a02397 70 // protected:
tsumagari 51:f391d3a02397 71 //
tsumagari 51:f391d3a02397 72 // public:
tsumagari 51:f391d3a02397 73 // float make_ave(float s[], int n){
tsumagari 51:f391d3a02397 74 // float p = 0;
tsumagari 51:f391d3a02397 75 // int i;
tsumagari 51:f391d3a02397 76 // for(i = 0; i < n; i++){
tsumagari 51:f391d3a02397 77 // p += s[i];
tsumagari 51:f391d3a02397 78 // }
tsumagari 51:f391d3a02397 79 // if(n != 0)
tsumagari 51:f391d3a02397 80 // return p / n;
tsumagari 51:f391d3a02397 81 // else
tsumagari 51:f391d3a02397 82 // return 0;
tsumagari 51:f391d3a02397 83 // }
tsumagari 51:f391d3a02397 84 //
tsumagari 51:f391d3a02397 85 // void calcAirSpeed(int x){
tsumagari 51:f391d3a02397 86 // air_sum[air_counter % AIR_SUM_NUM] = (float)AIR_K * (float)pow((double)(x/150.0), 1 / AIR_N);
tsumagari 51:f391d3a02397 87 //
tsumagari 51:f391d3a02397 88 // airSpeed_ave = make_ave(air_sum, AIR_SUM_NUM);
tsumagari 51:f391d3a02397 89 //
tsumagari 51:f391d3a02397 90 // //airSpeed = airSpeed_ave*AIR_A+AIR_B;
tsumagari 51:f391d3a02397 91 // airSpeed=airSpeed_ave;
tsumagari 51:f391d3a02397 92 // if(airSpeed > airSpeed_max)
tsumagari 51:f391d3a02397 93 // airSpeed_max = airSpeed;
tsumagari 51:f391d3a02397 94 // if(air_counter % AIR_SUM_NUM == 0){
tsumagari 51:f391d3a02397 95 // air_counter = 0;
tsumagari 51:f391d3a02397 96 // }
tsumagari 51:f391d3a02397 97 // air_counter++;
tsumagari 51:f391d3a02397 98 // }
tsumagari 51:f391d3a02397 99 //};
tsumagari 51:f391d3a02397 100 //#endif