From 6360a47bb7511b10d3868ebc70c53a24f4b103ed Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 26 Sep 2016 10:34:08 +0200 Subject: [PATCH] disable 1hz filter for time-based cycles, fix: log method: changed class name in app.config, fix: plotting shift polygons in job form, fix: plotting path for cycles in gui, not name --- VECTO/GUI/MainForm.Designer.vb | 2 +- VECTO/GUI/VectoJobForm.vb | 14 +++++++------- VECTO/app.config | 2 +- .../Models/Simulation/Impl/SimulatorFactory.cs | 18 +++++++++++++----- .../Data/DrivingCycleData.cs | 8 ++++++++ .../VectoCore/OutputData/ModalDataContainer.cs | 2 +- 6 files changed, 31 insertions(+), 15 deletions(-) diff --git a/VECTO/GUI/MainForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb index 9bb73f5934..3919df2b4f 100644 --- a/VECTO/GUI/MainForm.Designer.vb +++ b/VECTO/GUI/MainForm.Designer.vb @@ -776,7 +776,7 @@ Partial Class MainForm Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(198, 22) Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" ' - 'F_MAINForm + 'MainForm ' Me.AcceptButton = Me.btStartV3 Me.ClientSize = New System.Drawing.Size(1045, 670) diff --git a/VECTO/GUI/VectoJobForm.vb b/VECTO/GUI/VectoJobForm.vb index 6b3457089f..34b75f2b06 100644 --- a/VECTO/GUI/VectoJobForm.vb +++ b/VECTO/GUI/VectoJobForm.vb @@ -451,7 +451,7 @@ Public Class VectoJobForm Dim sb As ICycleData For Each sb In vectoJob.Cycles Dim lv0 As ListViewItem = New ListViewItem - lv0.Text = sb.Name + lv0.Text = GetRelativePath(sb.CycleData.Source, Path.GetDirectoryName(Path.GetFullPath(file))) 'sb.Name LvCycles.Items.Add(lv0) Next @@ -1006,7 +1006,6 @@ lbDlog: Public Sub UpdatePic() - TbHVCclass.Text = "" TbVehCat.Text = "" TbMass.Text = "" @@ -1119,8 +1118,8 @@ lbDlog: If gear.ShiftPolygon Is Nothing OrElse gear.ShiftPolygon.Rows.Count = 0 Then Continue For Dim shiftPolygon As ShiftPolygon = ShiftPolygonReader.Create(gear.ShiftPolygon) s = New Series - s.Points.DataBindXY(shiftPolygon.Upshift.Select(Function(x) x.AngularSpeed), - shiftPolygon.Upshift.Select(Function(x) x.Torque)) + s.Points.DataBindXY(shiftPolygon.Upshift.Select(Function(x) x.AngularSpeed.AsRPM).ToArray(), + shiftPolygon.Upshift.Select(Function(x) x.Torque.Value()).ToArray()) s.ChartType = SeriesChartType.FastLine s.BorderWidth = 2 s.Color = Color.DarkRed @@ -1128,8 +1127,8 @@ lbDlog: ' MyChart.Series.Add(s) 'MQ 2016-06-20: do not plot shift lines in engine dialog s = New Series - s.Points.DataBindXY(shiftPolygon.Downshift.Select(Function(x) x.AngularSpeed), - shiftPolygon.Downshift.Select(Function(x) x.Torque)) + s.Points.DataBindXY(shiftPolygon.Downshift.Select(Function(x) x.AngularSpeed.AsRPM).ToArray(), + shiftPolygon.Downshift.Select(Function(x) x.Torque.Value()).ToArray()) s.ChartType = SeriesChartType.FastLine s.BorderWidth = 2 s.Color = Color.DarkRed @@ -1194,7 +1193,8 @@ lbDlog: pmax = fullLoadCurve.MaxPower.Value() / 1000 'FLD0.Pfull(FLD0.EngineRatedSpeed) - TbEngTxt.Text = String.Format("{0} l {1} kw {2}", (engine.Displacement.Value() * 1000).ToString("0.0"), pmax.ToString("#"), engine.ModelName) + TbEngTxt.Text = String.Format("{0} l {1} kw {2}", (engine.Displacement.Value() * 1000).ToString("0.0"), + pmax.ToString("#"), engine.ModelName) Dim fuelConsumptionMap As FuelConsumptionMap = FuelConsumptionMapReader.Create(engine.FuelConsumptionMap) diff --git a/VECTO/app.config b/VECTO/app.config index 45ad93e0f0..ab35e83a9d 100644 --- a/VECTO/app.config +++ b/VECTO/app.config @@ -12,7 +12,7 @@ internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log"> <targets async="true"> <target xsi:type="Console" name="ConsoleLogger" error="true" /> - <target name="WarningLogger" xsi:type="MethodCall" className="VECTO.F_MAINForm, VECTO" methodName="LogMethod"> + <target name="WarningLogger" xsi:type="MethodCall" className="TUGraz.VECTO.MainForm, VECTO" methodName="LogMethod"> <parameter layout="${level}" /> <parameter layout="${message}" /> </target> diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index f3646d7ad3..8a0c5358ff 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -112,7 +112,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var i = 0; var modDataFilter = ModalResults1Hz ? new IModalDataFilter[] { new ModalDataContainer.ModalData1HzFilter() } - : new IModalDataFilter[0]; + : null; + + var warning1Hz = false; foreach (var data in DataReader.NextRun()) { var d = data; @@ -121,14 +123,18 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl d.Report.AddResult(d.Loading, d.Mission, writer); } }; + if (!data.Cycle.CycleType.IsDistanceBased() && ModalResults1Hz && !warning1Hz) { + Log.Error("Output filter for 1Hz results is only available for distance-based cycles!"); + warning1Hz = true; + } IModalDataContainer modContainer = new ModalDataContainer(data, ModWriter, addReportResult: _mode == ExecutionMode.Declaration ? addReportResult : null, writeEngineOnly: _engineOnlyMode, - filter: modDataFilter) { - WriteAdvancedAux = data.AdvancedAux != null && data.AdvancedAux.AuxiliaryAssembly == AuxiliaryModel.Advanced, - WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults - }; + filter: data.Cycle.CycleType.IsDistanceBased() ? modDataFilter : null) { + WriteAdvancedAux = data.AdvancedAux != null && data.AdvancedAux.AuxiliaryAssembly == AuxiliaryModel.Advanced, + WriteModalResults = _mode != ExecutionMode.Declaration || WriteModalResults + }; var current = i++; var builder = new PowertrainBuilder(modContainer, (writer, mass, loading) => SumData.Write(modContainer, d.JobName, string.Format("{0}-{1}", JobNumber, current), @@ -146,6 +152,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl case CycleType.MeasuredSpeedGear: run = new TimeRun(builder.Build(data)); break; + case CycleType.PTO: + throw new VectoException("PTO Cycle can not be used as main cycle!"); default: throw new ArgumentOutOfRangeException("CycleType unknown:" + data.Cycle.CycleType); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs index 75d461fe74..cfbca148fa 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/DrivingCycleData.cs @@ -46,6 +46,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data PTO } + public static class CycleTypeHelper + { + public static bool IsDistanceBased(this CycleType type) + { + return type == CycleType.DistanceBased; + } + } + public class DrivingCycleData : SimulationComponentData { internal DrivingCycleData() {} diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs index dd02c872da..3bb27c3ef3 100644 --- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs @@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.OutputData _writer = writer; _writeEngineOnly = writeEngineOnly; - _filters = filters; + _filters = filters ?? new IModalDataFilter[0]; _addReportResult = addReportResult ?? (x => { }); Data = new ModalResults(); -- GitLab