Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Verified Commit 733b1015 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

check EM and IEPC power map for duplicate entries

parent 62bdebd3
No related branches found
No related tags found
No related merge requests found
......@@ -35,7 +35,11 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
}
var entries = (from DataRow row in data.Rows select CreateEntry(row)).ToList();
var entriesZero = GetEntriesAtZeroRpm(entries);
var duplicates = entries.GroupBy(x => Tuple.Create(x.MotorSpeed, x.Torque)).Where(g => g.Count() > 1).Select(x => x.Key).ToList();
if (duplicates.Count > 0) {
throw new VectoException("Duplicate entries in EM power map: {0}", duplicates.Select(x => $"{x.Item1.AsRPM} rpm / {x.Item2}").Join());
}
var entriesZero = GetEntriesAtZeroRpm(entries);
var delaunayMap = new DelaunayMap("ElectricMotorEfficiencyMap Mechanical to Electric");
var retVal = new EfficiencyMapNew(delaunayMap);
......
......@@ -284,7 +284,15 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
internal static IList<EfficiencyMap.Entry> GetEntries(DataTable data, double ratio)
{
return (from DataRow row in data.Rows select CreateEntry(row, ratio)).ToList();
var entries = (from DataRow row in data.Rows select CreateEntry(row, ratio)).OrderBy(x => x.MotorSpeed)
.ThenBy(x => x.Torque).ToList();
var duplicates = entries.GroupBy(x => Tuple.Create(x.MotorSpeed, x.Torque)).Where(g => g.Count() > 1).Select(x => x.Key).ToList();
if (duplicates.Count > 0) {
throw new VectoException("Duplicate entries in IEPC power map: {0}", duplicates.Select(x => $"{x.Item1.AsRPM / ratio} rpm / {x.Item2 * ratio}").Join());
}
return entries;
}
private static bool HeaderIsValid(DataColumnCollection columns)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment