public static TireDataMaxmin GetLimitData(List <TireData> list) { var maxmin = new TireDataMaxmin(); maxmin.count = list.Count; foreach (var data in list) { for (int i = 0; i < TireData.Count(); ++i) { if (maxmin.Max[(TireDataColumn)i] < data[(TireDataColumn)i]) { maxmin.Max[(TireDataColumn)i] = data[(TireDataColumn)i]; } if (maxmin.Min[(TireDataColumn)i] > data[(TireDataColumn)i]) { maxmin.Min[(TireDataColumn)i] = data[(TireDataColumn)i]; } maxmin.Mean[(TireDataColumn)i] += data[(TireDataColumn)i]; } } for (int i = 0; i < TireData.Count(); ++i) { maxmin.Mean[(TireDataColumn)i] /= list.Count(); } return(maxmin); }
public static TireData Resolution() { TireData data = new TireData(); data.ET = 0.02; data.V = 0.05; data.N = 1; data.SA = 0.01; data.IA = 0.01; data.RL = 0.01; data.RE = 0.1; data.P = 0.1; data.FX = 1; data.FY = 1; data.FZ = 1; data.MX = 0.1; data.MZ = 0.1; data.NFX = 0.01; data.NFY = 0.01; data.RST = 0.1; data.TSTC = 0.1; data.TSTI = 0.1; data.TSTO = 0.1; data.AMBTMP = 0.1; data.SR = 0.01; data.SL = 0.01; return(data); }
public TireData Copy() { var value = new TireData(); _data.CopyTo(value._data, 0); return(value); }
public DatFileReader(string filename, int skip = 3) { DataList = new List <TireData>(); using (var sr = new System.IO.StreamReader(filename)) { uint count = 0; while (!sr.EndOfStream) { //三行読み飛ばす ++count; var line = sr.ReadLine(); if (count <= skip) { continue; } var values = line.Split('\t'); if (values.Count() < 21) { throw new Exception("データがおかしい"); } var data = new TireData(); data.ET = double.Parse(values[0]); data.V = double.Parse(values[1]); data.N = double.Parse(values[2]); data.SA = double.Parse(values[3]); data.IA = double.Parse(values[4]); data.RL = double.Parse(values[5]); data.RE = double.Parse(values[6]); data.P = double.Parse(values[7]); data.FX = double.Parse(values[8]); data.FY = double.Parse(values[9]); data.FZ = -double.Parse(values[10]); data.MX = double.Parse(values[11]); data.MZ = double.Parse(values[12]); data.NFX = double.Parse(values[13]); data.NFY = double.Parse(values[14]); data.RST = double.Parse(values[15]); data.TSTI = double.Parse(values[16]); data.TSTC = double.Parse(values[17]); data.TSTO = double.Parse(values[18]); data.AMBTMP = double.Parse(values[19]); data.SR = double.Parse(values[20]); if (values.Count() > 21) { data.SL = double.Parse(values[21]); } else { var speed = data.V / 3.6 / 100; var rps = data.N / 60; var tireSpeed = Math.PI * data.RE * 2 * rps; data.SL = (speed - tireSpeed) / speed; } DataList.Add(data); } } }
public TireDataMaxmin() { Max = new TireData(); Min = new TireData(); Mean = new TireData(); for (int i = 0; i < TireData.Count(); ++i) { Max[(TireDataColumn)i] = double.MinValue; Min[(TireDataColumn)i] = double.MaxValue; Mean[(TireDataColumn)i] = 0; } }
public bool Evaluate(TireData data) { double value = data[Column]; return(Evaluate(value)); }