diff --git a/VECTO/GUI/ElectricMotorForm.Designer.vb b/VECTO/GUI/ElectricMotorForm.Designer.vb index c21aea205198e348bcd826b95ad6bf0112c9bd44..25da7c409933e02fcf6596eb39fda7b973c73165 100644 --- a/VECTO/GUI/ElectricMotorForm.Designer.vb +++ b/VECTO/GUI/ElectricMotorForm.Designer.vb @@ -60,10 +60,6 @@ Partial Class ElectricMotorForm Me.OpenWithToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.pnInertia = New System.Windows.Forms.Panel() - Me.tbDragTorqueHi = New System.Windows.Forms.TextBox() - Me.lblDragTorqueHi = New System.Windows.Forms.Label() - Me.btnBrowseDragCurveHi = New System.Windows.Forms.Button() - Me.btnDragCurveOpenHi = New System.Windows.Forms.Button() Me.btnEmMapOpenHi = New System.Windows.Forms.Button() Me.btnBrowseEmMapHi = New System.Windows.Forms.Button() Me.lblPowerMapHi = New System.Windows.Forms.Label() @@ -105,10 +101,10 @@ Partial Class ElectricMotorForm Me.lblVoltageLowUnit = New System.Windows.Forms.Label() Me.tbVoltageLow = New System.Windows.Forms.TextBox() Me.lblMaxTorqueLow = New System.Windows.Forms.Label() - Me.tbDragTorqueLow = New System.Windows.Forms.TextBox() - Me.lblDragTorqueLow = New System.Windows.Forms.Label() - Me.btnBrowseDragCurveLow = New System.Windows.Forms.Button() - Me.btnDragCurveOpenLow = New System.Windows.Forms.Button() + Me.tbDragTorque = New System.Windows.Forms.TextBox() + Me.lblDragTorque = New System.Windows.Forms.Label() + Me.btnBrowseDragCurve = New System.Windows.Forms.Button() + Me.btnDragCurveOpen = New System.Windows.Forms.Button() Me.tbMapLow = New System.Windows.Forms.TextBox() Me.lblPowerMapLow = New System.Windows.Forms.Label() Me.btnBrowseEmMapLow = New System.Windows.Forms.Button() @@ -193,7 +189,7 @@ Partial Class ElectricMotorForm ' Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.ButCancel.Location = New System.Drawing.Point(1281, 637) + Me.ButCancel.Location = New System.Drawing.Point(1281, 648) Me.ButCancel.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButCancel.Name = "ButCancel" Me.ButCancel.Size = New System.Drawing.Size(112, 35) @@ -204,7 +200,7 @@ Partial Class ElectricMotorForm 'ButOK ' Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) - Me.ButOK.Location = New System.Drawing.Point(1160, 637) + Me.ButOK.Location = New System.Drawing.Point(1160, 648) Me.ButOK.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButOK.Name = "ButOK" Me.ButOK.Size = New System.Drawing.Size(112, 35) @@ -297,7 +293,7 @@ Partial Class ElectricMotorForm ' Me.StatusStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) - Me.StatusStrip1.Location = New System.Drawing.Point(0, 677) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 688) Me.StatusStrip1.Name = "StatusStrip1" Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0) Me.StatusStrip1.Size = New System.Drawing.Size(1412, 32) @@ -370,50 +366,10 @@ Partial Class ElectricMotorForm Me.pnInertia.Size = New System.Drawing.Size(332, 46) Me.pnInertia.TabIndex = 3 ' - 'tbDragTorqueHi - ' - Me.tbDragTorqueHi.Location = New System.Drawing.Point(7, 141) - Me.tbDragTorqueHi.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.tbDragTorqueHi.Name = "tbDragTorqueHi" - Me.tbDragTorqueHi.Size = New System.Drawing.Size(607, 26) - Me.tbDragTorqueHi.TabIndex = 5 - ' - 'lblDragTorqueHi - ' - Me.lblDragTorqueHi.AutoSize = true - Me.lblDragTorqueHi.Location = New System.Drawing.Point(7, 117) - Me.lblDragTorqueHi.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) - Me.lblDragTorqueHi.Name = "lblDragTorqueHi" - Me.lblDragTorqueHi.Size = New System.Drawing.Size(143, 20) - Me.lblDragTorqueHi.TabIndex = 38 - Me.lblDragTorqueHi.Text = "Drag Torque Curve" - ' - 'btnBrowseDragCurveHi - ' - Me.btnBrowseDragCurveHi.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseDragCurveHi.Location = New System.Drawing.Point(628, 137) - Me.btnBrowseDragCurveHi.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.btnBrowseDragCurveHi.Name = "btnBrowseDragCurveHi" - Me.btnBrowseDragCurveHi.Size = New System.Drawing.Size(36, 37) - Me.btnBrowseDragCurveHi.TabIndex = 6 - Me.btnBrowseDragCurveHi.TabStop = false - Me.btnBrowseDragCurveHi.UseVisualStyleBackColor = true - ' - 'btnDragCurveOpenHi - ' - Me.btnDragCurveOpenHi.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnDragCurveOpenHi.Location = New System.Drawing.Point(662, 137) - Me.btnDragCurveOpenHi.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.btnDragCurveOpenHi.Name = "btnDragCurveOpenHi" - Me.btnDragCurveOpenHi.Size = New System.Drawing.Size(36, 37) - Me.btnDragCurveOpenHi.TabIndex = 7 - Me.btnDragCurveOpenHi.TabStop = false - Me.btnDragCurveOpenHi.UseVisualStyleBackColor = true - ' 'btnEmMapOpenHi ' Me.btnEmMapOpenHi.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnEmMapOpenHi.Location = New System.Drawing.Point(662, 200) + Me.btnEmMapOpenHi.Location = New System.Drawing.Point(662, 134) Me.btnEmMapOpenHi.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnEmMapOpenHi.Name = "btnEmMapOpenHi" Me.btnEmMapOpenHi.Size = New System.Drawing.Size(36, 37) @@ -424,7 +380,7 @@ Partial Class ElectricMotorForm 'btnBrowseEmMapHi ' Me.btnBrowseEmMapHi.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseEmMapHi.Location = New System.Drawing.Point(628, 200) + Me.btnBrowseEmMapHi.Location = New System.Drawing.Point(628, 134) Me.btnBrowseEmMapHi.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnBrowseEmMapHi.Name = "btnBrowseEmMapHi" Me.btnBrowseEmMapHi.Size = New System.Drawing.Size(36, 37) @@ -435,7 +391,7 @@ Partial Class ElectricMotorForm 'lblPowerMapHi ' Me.lblPowerMapHi.AutoSize = true - Me.lblPowerMapHi.Location = New System.Drawing.Point(7, 180) + Me.lblPowerMapHi.Location = New System.Drawing.Point(7, 114) Me.lblPowerMapHi.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblPowerMapHi.Name = "lblPowerMapHi" Me.lblPowerMapHi.Size = New System.Drawing.Size(242, 20) @@ -444,7 +400,7 @@ Partial Class ElectricMotorForm ' 'tbMapHi ' - Me.tbMapHi.Location = New System.Drawing.Point(7, 205) + Me.tbMapHi.Location = New System.Drawing.Point(7, 139) Me.tbMapHi.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMapHi.Name = "tbMapHi" Me.tbMapHi.Size = New System.Drawing.Size(607, 26) @@ -518,7 +474,7 @@ Partial Class ElectricMotorForm Me.Panel1.Controls.Add(Me.lblContTq) Me.Panel1.Controls.Add(Me.lblContTqUnit) Me.Panel1.Controls.Add(Me.tbContTqLo) - Me.Panel1.Location = New System.Drawing.Point(7, 249) + Me.Panel1.Location = New System.Drawing.Point(7, 184) Me.Panel1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel1.Name = "Panel1" Me.Panel1.Size = New System.Drawing.Size(332, 46) @@ -557,7 +513,7 @@ Partial Class ElectricMotorForm Me.Panel2.Controls.Add(Me.lblOvlTime) Me.Panel2.Controls.Add(Me.lblOvltimeUnit) Me.Panel2.Controls.Add(Me.tbOvlTimeLo) - Me.Panel2.Location = New System.Drawing.Point(7, 344) + Me.Panel2.Location = New System.Drawing.Point(7, 279) Me.Panel2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel2.Name = "Panel2" Me.Panel2.Size = New System.Drawing.Size(332, 46) @@ -635,7 +591,7 @@ Partial Class ElectricMotorForm Me.Panel4.Controls.Add(Me.lblRatedSpeed) Me.Panel4.Controls.Add(Me.lblRatedSpeedUnit) Me.Panel4.Controls.Add(Me.tbRatedSpeedLo) - Me.Panel4.Location = New System.Drawing.Point(339, 249) + Me.Panel4.Location = New System.Drawing.Point(339, 184) Me.Panel4.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel4.Name = "Panel4" Me.Panel4.Size = New System.Drawing.Size(392, 46) @@ -674,7 +630,7 @@ Partial Class ElectricMotorForm Me.pnOverloadTq.Controls.Add(Me.lblOverloadTq) Me.pnOverloadTq.Controls.Add(Me.lblOverloadTqUnit) Me.pnOverloadTq.Controls.Add(Me.tbOverloadTqLo) - Me.pnOverloadTq.Location = New System.Drawing.Point(7, 296) + Me.pnOverloadTq.Location = New System.Drawing.Point(7, 231) Me.pnOverloadTq.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnOverloadTq.Name = "pnOverloadTq" Me.pnOverloadTq.Size = New System.Drawing.Size(332, 46) @@ -713,7 +669,7 @@ Partial Class ElectricMotorForm Me.Panel6.Controls.Add(Me.lblOverloadSpeed) Me.Panel6.Controls.Add(Me.lblOverloadSpeedUnit) Me.Panel6.Controls.Add(Me.tbOvlSpeedLo) - Me.Panel6.Location = New System.Drawing.Point(339, 296) + Me.Panel6.Location = New System.Drawing.Point(339, 231) Me.Panel6.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel6.Name = "Panel6" Me.Panel6.Size = New System.Drawing.Size(392, 46) @@ -813,49 +769,49 @@ Partial Class ElectricMotorForm Me.lblMaxTorqueLow.TabIndex = 47 Me.lblMaxTorqueLow.Text = "Max Drive and Max Generation Torque Curve" ' - 'tbDragTorqueLow - ' - Me.tbDragTorqueLow.Location = New System.Drawing.Point(7, 140) - Me.tbDragTorqueLow.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.tbDragTorqueLow.Name = "tbDragTorqueLow" - Me.tbDragTorqueLow.Size = New System.Drawing.Size(607, 26) - Me.tbDragTorqueLow.TabIndex = 5 - ' - 'lblDragTorqueLow - ' - Me.lblDragTorqueLow.AutoSize = true - Me.lblDragTorqueLow.Location = New System.Drawing.Point(7, 116) - Me.lblDragTorqueLow.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) - Me.lblDragTorqueLow.Name = "lblDragTorqueLow" - Me.lblDragTorqueLow.Size = New System.Drawing.Size(143, 20) - Me.lblDragTorqueLow.TabIndex = 38 - Me.lblDragTorqueLow.Text = "Drag Torque Curve" - ' - 'btnBrowseDragCurveLow - ' - Me.btnBrowseDragCurveLow.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseDragCurveLow.Location = New System.Drawing.Point(628, 136) - Me.btnBrowseDragCurveLow.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.btnBrowseDragCurveLow.Name = "btnBrowseDragCurveLow" - Me.btnBrowseDragCurveLow.Size = New System.Drawing.Size(36, 37) - Me.btnBrowseDragCurveLow.TabIndex = 6 - Me.btnBrowseDragCurveLow.TabStop = false - Me.btnBrowseDragCurveLow.UseVisualStyleBackColor = true - ' - 'btnDragCurveOpenLow - ' - Me.btnDragCurveOpenLow.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnDragCurveOpenLow.Location = New System.Drawing.Point(662, 136) - Me.btnDragCurveOpenLow.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.btnDragCurveOpenLow.Name = "btnDragCurveOpenLow" - Me.btnDragCurveOpenLow.Size = New System.Drawing.Size(36, 37) - Me.btnDragCurveOpenLow.TabIndex = 7 - Me.btnDragCurveOpenLow.TabStop = false - Me.btnDragCurveOpenLow.UseVisualStyleBackColor = true + 'tbDragTorque + ' + Me.tbDragTorque.Location = New System.Drawing.Point(26, 247) + Me.tbDragTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbDragTorque.Name = "tbDragTorque" + Me.tbDragTorque.Size = New System.Drawing.Size(607, 26) + Me.tbDragTorque.TabIndex = 5 + ' + 'lblDragTorque + ' + Me.lblDragTorque.AutoSize = true + Me.lblDragTorque.Location = New System.Drawing.Point(26, 223) + Me.lblDragTorque.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblDragTorque.Name = "lblDragTorque" + Me.lblDragTorque.Size = New System.Drawing.Size(143, 20) + Me.lblDragTorque.TabIndex = 38 + Me.lblDragTorque.Text = "Drag Torque Curve" + ' + 'btnBrowseDragCurve + ' + Me.btnBrowseDragCurve.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon + Me.btnBrowseDragCurve.Location = New System.Drawing.Point(647, 243) + Me.btnBrowseDragCurve.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.btnBrowseDragCurve.Name = "btnBrowseDragCurve" + Me.btnBrowseDragCurve.Size = New System.Drawing.Size(36, 37) + Me.btnBrowseDragCurve.TabIndex = 6 + Me.btnBrowseDragCurve.TabStop = false + Me.btnBrowseDragCurve.UseVisualStyleBackColor = true + ' + 'btnDragCurveOpen + ' + Me.btnDragCurveOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small + Me.btnDragCurveOpen.Location = New System.Drawing.Point(681, 243) + Me.btnDragCurveOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.btnDragCurveOpen.Name = "btnDragCurveOpen" + Me.btnDragCurveOpen.Size = New System.Drawing.Size(36, 37) + Me.btnDragCurveOpen.TabIndex = 7 + Me.btnDragCurveOpen.TabStop = false + Me.btnDragCurveOpen.UseVisualStyleBackColor = true ' 'tbMapLow ' - Me.tbMapLow.Location = New System.Drawing.Point(7, 204) + Me.tbMapLow.Location = New System.Drawing.Point(7, 139) Me.tbMapLow.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMapLow.Name = "tbMapLow" Me.tbMapLow.Size = New System.Drawing.Size(607, 26) @@ -864,7 +820,7 @@ Partial Class ElectricMotorForm 'lblPowerMapLow ' Me.lblPowerMapLow.AutoSize = true - Me.lblPowerMapLow.Location = New System.Drawing.Point(7, 179) + Me.lblPowerMapLow.Location = New System.Drawing.Point(7, 114) Me.lblPowerMapLow.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblPowerMapLow.Name = "lblPowerMapLow" Me.lblPowerMapLow.Size = New System.Drawing.Size(242, 20) @@ -874,7 +830,7 @@ Partial Class ElectricMotorForm 'btnBrowseEmMapLow ' Me.btnBrowseEmMapLow.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseEmMapLow.Location = New System.Drawing.Point(628, 199) + Me.btnBrowseEmMapLow.Location = New System.Drawing.Point(628, 134) Me.btnBrowseEmMapLow.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnBrowseEmMapLow.Name = "btnBrowseEmMapLow" Me.btnBrowseEmMapLow.Size = New System.Drawing.Size(36, 37) @@ -885,7 +841,7 @@ Partial Class ElectricMotorForm 'btnEmMapOpenLow ' Me.btnEmMapOpenLow.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnEmMapOpenLow.Location = New System.Drawing.Point(662, 199) + Me.btnEmMapOpenLow.Location = New System.Drawing.Point(662, 134) Me.btnEmMapOpenLow.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnEmMapOpenLow.Name = "btnEmMapOpenLow" Me.btnEmMapOpenLow.Size = New System.Drawing.Size(36, 37) @@ -927,10 +883,10 @@ Partial Class ElectricMotorForm ' Me.tcVoltageLevels.Controls.Add(Me.tpVoltageLow) Me.tcVoltageLevels.Controls.Add(Me.tpVoltageHigh) - Me.tcVoltageLevels.Location = New System.Drawing.Point(18, 220) + Me.tcVoltageLevels.Location = New System.Drawing.Point(18, 291) Me.tcVoltageLevels.Name = "tcVoltageLevels" Me.tcVoltageLevels.SelectedIndex = 0 - Me.tcVoltageLevels.Size = New System.Drawing.Size(751, 443) + Me.tcVoltageLevels.Size = New System.Drawing.Size(751, 379) Me.tcVoltageLevels.TabIndex = 52 ' 'tpVoltageLow @@ -945,20 +901,16 @@ Partial Class ElectricMotorForm Me.tpVoltageLow.Controls.Add(Me.lblMaxTorqueLow) Me.tpVoltageLow.Controls.Add(Me.Panel4) Me.tpVoltageLow.Controls.Add(Me.tbMaxTorqueLow) - Me.tpVoltageLow.Controls.Add(Me.tbDragTorqueLow) Me.tpVoltageLow.Controls.Add(Me.Panel2) Me.tpVoltageLow.Controls.Add(Me.btnEmMapOpenLow) Me.tpVoltageLow.Controls.Add(Me.Panel1) - Me.tpVoltageLow.Controls.Add(Me.lblDragTorqueLow) Me.tpVoltageLow.Controls.Add(Me.btnBrowseEmMapLow) - Me.tpVoltageLow.Controls.Add(Me.btnBrowseDragCurveLow) Me.tpVoltageLow.Controls.Add(Me.lblPowerMapLow) - Me.tpVoltageLow.Controls.Add(Me.btnDragCurveOpenLow) Me.tpVoltageLow.Controls.Add(Me.tbMapLow) Me.tpVoltageLow.Location = New System.Drawing.Point(4, 29) Me.tpVoltageLow.Name = "tpVoltageLow" Me.tpVoltageLow.Padding = New System.Windows.Forms.Padding(3) - Me.tpVoltageLow.Size = New System.Drawing.Size(743, 580) + Me.tpVoltageLow.Size = New System.Drawing.Size(743, 346) Me.tpVoltageLow.TabIndex = 0 Me.tpVoltageLow.Text = "Voltage Level Low" Me.tpVoltageLow.UseVisualStyleBackColor = true @@ -978,17 +930,13 @@ Partial Class ElectricMotorForm Me.tpVoltageHigh.Controls.Add(Me.btnMaxTorqueCurveOpenHi) Me.tpVoltageHigh.Controls.Add(Me.lblMaxTorqueHi) Me.tpVoltageHigh.Controls.Add(Me.btnEmMapOpenHi) - Me.tpVoltageHigh.Controls.Add(Me.tbDragTorqueHi) Me.tpVoltageHigh.Controls.Add(Me.btnBrowseEmMapHi) - Me.tpVoltageHigh.Controls.Add(Me.lblDragTorqueHi) Me.tpVoltageHigh.Controls.Add(Me.lblPowerMapHi) - Me.tpVoltageHigh.Controls.Add(Me.btnBrowseDragCurveHi) Me.tpVoltageHigh.Controls.Add(Me.tbMapHi) - Me.tpVoltageHigh.Controls.Add(Me.btnDragCurveOpenHi) Me.tpVoltageHigh.Location = New System.Drawing.Point(4, 29) Me.tpVoltageHigh.Name = "tpVoltageHigh" Me.tpVoltageHigh.Padding = New System.Windows.Forms.Padding(3) - Me.tpVoltageHigh.Size = New System.Drawing.Size(743, 410) + Me.tpVoltageHigh.Size = New System.Drawing.Size(743, 346) Me.tpVoltageHigh.TabIndex = 1 Me.tpVoltageHigh.Text = "Voltage Level High" Me.tpVoltageHigh.UseVisualStyleBackColor = true @@ -998,7 +946,7 @@ Partial Class ElectricMotorForm Me.Panel5.Controls.Add(Me.Label1) Me.Panel5.Controls.Add(Me.Label2) Me.Panel5.Controls.Add(Me.tbOvlSpeedHi) - Me.Panel5.Location = New System.Drawing.Point(339, 297) + Me.Panel5.Location = New System.Drawing.Point(339, 231) Me.Panel5.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel5.Name = "Panel5" Me.Panel5.Size = New System.Drawing.Size(392, 46) @@ -1037,7 +985,7 @@ Partial Class ElectricMotorForm Me.Panel7.Controls.Add(Me.Label3) Me.Panel7.Controls.Add(Me.Label4) Me.Panel7.Controls.Add(Me.tbOverloadTqHi) - Me.Panel7.Location = New System.Drawing.Point(7, 297) + Me.Panel7.Location = New System.Drawing.Point(7, 231) Me.Panel7.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel7.Name = "Panel7" Me.Panel7.Size = New System.Drawing.Size(332, 46) @@ -1076,7 +1024,7 @@ Partial Class ElectricMotorForm Me.Panel8.Controls.Add(Me.Label5) Me.Panel8.Controls.Add(Me.Label6) Me.Panel8.Controls.Add(Me.tbRatedSpeedHi) - Me.Panel8.Location = New System.Drawing.Point(339, 250) + Me.Panel8.Location = New System.Drawing.Point(339, 184) Me.Panel8.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel8.Name = "Panel8" Me.Panel8.Size = New System.Drawing.Size(392, 46) @@ -1115,7 +1063,7 @@ Partial Class ElectricMotorForm Me.Panel9.Controls.Add(Me.Label7) Me.Panel9.Controls.Add(Me.Label8) Me.Panel9.Controls.Add(Me.tbOvlTimeHi) - Me.Panel9.Location = New System.Drawing.Point(7, 345) + Me.Panel9.Location = New System.Drawing.Point(7, 279) Me.Panel9.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel9.Name = "Panel9" Me.Panel9.Size = New System.Drawing.Size(332, 46) @@ -1154,7 +1102,7 @@ Partial Class ElectricMotorForm Me.Panel10.Controls.Add(Me.Label9) Me.Panel10.Controls.Add(Me.Label10) Me.Panel10.Controls.Add(Me.tbContTqHi) - Me.Panel10.Location = New System.Drawing.Point(7, 250) + Me.Panel10.Location = New System.Drawing.Point(7, 184) Me.Panel10.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel10.Name = "Panel10" Me.Panel10.Size = New System.Drawing.Size(332, 46) @@ -1194,7 +1142,7 @@ Partial Class ElectricMotorForm Me.AutoScaleDimensions = New System.Drawing.SizeF(9!, 20!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.CancelButton = Me.ButCancel - Me.ClientSize = New System.Drawing.Size(1412, 709) + Me.ClientSize = New System.Drawing.Size(1412, 720) Me.Controls.Add(Me.tcVoltageLevels) Me.Controls.Add(Me.Panel3) Me.Controls.Add(Me.PicBox) @@ -1204,9 +1152,13 @@ Partial Class ElectricMotorForm Me.Controls.Add(Me.StatusStrip1) Me.Controls.Add(Me.ToolStrip1) Me.Controls.Add(Me.ButCancel) + Me.Controls.Add(Me.tbDragTorque) Me.Controls.Add(Me.ButOK) Me.Controls.Add(Me.lblMakeModel) Me.Controls.Add(Me.tbMakeModel) + Me.Controls.Add(Me.lblDragTorque) + Me.Controls.Add(Me.btnDragCurveOpen) + Me.Controls.Add(Me.btnBrowseDragCurve) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Icon = CType(resources.GetObject("$this.Icon"),System.Drawing.Icon) Me.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) @@ -1278,10 +1230,6 @@ End Sub Friend WithEvents OpenWithToolStripMenuItem As ToolStripMenuItem Friend WithEvents ShowInFolderToolStripMenuItem As ToolStripMenuItem Friend WithEvents pnInertia As Panel - Friend WithEvents tbDragTorqueHi As TextBox - Friend WithEvents lblDragTorqueHi As Label - Friend WithEvents btnBrowseDragCurveHi As Button - Friend WithEvents btnDragCurveOpenHi As Button Friend WithEvents btnEmMapOpenHi As Button Friend WithEvents btnBrowseEmMapHi As Button Friend WithEvents lblPowerMapHi As Label @@ -1323,10 +1271,10 @@ End Sub Friend WithEvents lblVoltageLowUnit As Label Friend WithEvents tbVoltageLow As TextBox Friend WithEvents lblMaxTorqueLow As Label - Friend WithEvents tbDragTorqueLow As TextBox - Friend WithEvents lblDragTorqueLow As Label - Friend WithEvents btnBrowseDragCurveLow As Button - Friend WithEvents btnDragCurveOpenLow As Button + Friend WithEvents tbDragTorque As TextBox + Friend WithEvents lblDragTorque As Label + Friend WithEvents btnBrowseDragCurve As Button + Friend WithEvents btnDragCurveOpen As Button Friend WithEvents tbMapLow As TextBox Friend WithEvents lblPowerMapLow As Label Friend WithEvents btnBrowseEmMapLow As Button diff --git a/VECTO/GUI/ElectricMotorForm.vb b/VECTO/GUI/ElectricMotorForm.vb index 1a714e20f4a7e77016419e50fb7403e3aa8e77a1..409b1c430aa3006be4d98f3421ee14ff33812b55 100644 --- a/VECTO/GUI/ElectricMotorForm.vb +++ b/VECTO/GUI/ElectricMotorForm.vb @@ -27,7 +27,7 @@ Imports TUGraz.VectoCore.Utils ''' <remarks></remarks> Public Class ElectricMotorForm Private _emFile As String = "" - Public AutoSendTo As Boolean = False + Public AutoSendTo As action(of string, VehicleForm) Public JobDir As String = "" Private _changed As Boolean = False @@ -134,7 +134,7 @@ Public Class ElectricMotorForm tbMakeModel.Text = "" tbInertia.Text = "" tbMapHi.Text = "" - tbDragTorqueHi.Text = "" + tbDragTorque.Text = "" tbMaxTorqueHi.Text = "" DeclInit() @@ -175,6 +175,8 @@ Public Class ElectricMotorForm tbInertia.Text = engine.Inertia.ToGUIFormat() tbOverloadRecoveryFactor.Text = engine.OverloadRecoveryFactor.ToGUIFormat() + tbDragTorque.Text = GetRelativePath(engine.DragCurve.Source, basePath) + Dim voltageLevelLow As IElectricMotorVoltageLevel = engine.VoltageLevels.MinBy(function(level) level.VoltageLevel.Value()) Dim voltageLevelHigh As IElectricMotorVoltageLevel = engine.VoltageLevels.MaxBy(function(level) level.VoltageLevel.Value()) @@ -190,16 +192,13 @@ Public Class ElectricMotorForm tbOvlTimeHi.Text = voltageLevelHigh.OverloadTime.Value().ToGUIFormat() tbContTqHi.Text = voltageLevelHigh.ContinuousTorque.ToGUIFormat() tbRatedSpeedHi.Text = voltageLevelHigh.ContinuousTorqueSpeed.AsRPM.ToGUIFormat() - - ' tbDragTorqueHi.Text = GetRelativePath(voltageLevelHigh.DragCurve.Source, basePath) tbMaxTorqueHi.Text = GetRelativePath(voltageLevelHigh.FullLoadCurve.Source, basePath) - ' tbMapHi.Text = GetRelativePath(voltageLevelHigh.EfficiencyMap.Source, basePath) //PowerMap + tbMapHi.Text = GetRelativePath(voltageLevelHigh.PowerMap.First().PowerMap.Source, basePath) tbVoltageHi.Text = voltageLevelHigh.VoltageLevel.Value().ToGUIFormat() - ' tbDragTorqueLow.Text = GetRelativePath(voltageLevelLow.DragCurve.Source, basePath) tbMaxTorqueLow.Text = GetRelativePath(voltageLevelLow.FullLoadCurve.Source, basePath) - ' tbMapLow.Text = GetRelativePath(voltageLevelLow.EfficiencyMap.Source, basePath) //PowerMap + tbMapLow.Text = GetRelativePath(voltageLevelLow.PowerMap.First().PowerMap.Source, basePath) tbVoltageLow.Text = voltageLevelLow.VoltageLevel.Value().ToGUIFormat() DeclInit() @@ -235,6 +234,7 @@ Public Class ElectricMotorForm em.ModelName = tbMakeModel.Text If Trim(em.ModelName) = "" Then em.ModelName = "Undefined" em.MotorInertia = tbInertia.Text.ToDouble(0) + em.PathDrag = tbDragTorque.Text em.OvlTqLo = tbOverloadTqLo.Text.ToDouble(0) em.OvlSpeedLo = tbOvlSpeedLo.Text.ToDouble(0) @@ -251,12 +251,11 @@ Public Class ElectricMotorForm em.OverloadRecoveryFactor = tbOverloadRecoveryFactor.Text.ToDouble(0) em.PathMaxTorqueLow = tbMaxTorqueLow.Text - em.PathDragLow = tbDragTorqueLow.Text + em.PathMapLow = tbMapLow.Text em.VoltageLevelLow = tbVoltageLow.Text.ToDouble(0) em.PathMaxTorqueHi = tbMaxTorqueHi.Text - em.PathDragHi = tbDragTorqueHi.Text em.PathMapHi = tbMapHi.Text em.VoltageLevelHigh = tbVoltageHi.Text.ToDouble(0) @@ -265,11 +264,12 @@ Public Class ElectricMotorForm Return False End If - If AutoSendTo Then + If not AutoSendTo is nothing Then If VehicleForm.Visible Then - If UCase(FileRepl(VehicleForm.tbElectricMotor.Text, JobDir)) <> UCase(file) Then _ - VehicleForm.tbElectricMotor.Text = GetFilenameWithoutDirectory(file, JobDir) - VectoJobForm.UpdatePic() + AutoSendTo(file, VehicleForm) + 'If UCase(FileRepl(VehicleForm.tbElectricMotor.Text, JobDir)) <> UCase(file) Then _ + ' VehicleForm.tbElectricMotor.Text = GetFilenameWithoutDirectory(file, JobDir) + 'VectoJobForm.UpdatePic() End If End If @@ -334,7 +334,7 @@ Public Class ElectricMotorForm End Sub Private Sub TbMAP_TextChanged(sender As Object, e As EventArgs) _ - Handles tbDragTorqueHi.TextChanged + UpdatePic() Change() End Sub @@ -355,19 +355,6 @@ Public Class ElectricMotorForm #End Region - 'Open VMAP file - Private Sub BtMAPopen_Click(sender As Object, e As EventArgs) - Dim fldfile As String - - fldfile = FileRepl(tbDragTorqueHi.Text, GetPath(_emFile)) - - If fldfile <> NoFile AndAlso File.Exists(fldfile) Then - OpenFiles(FileRepl(tbMapHi.Text, GetPath(_emFile)), fldfile) - Else - OpenFiles(FileRepl(tbMapHi.Text, GetPath(_emFile))) - End If - End Sub - 'Save and close Private Sub ButOK_Click(sender As Object, e As EventArgs) Handles ButOK.Click @@ -392,7 +379,7 @@ Public Class ElectricMotorForm Try Dim fldFile As String = - If(Not String.IsNullOrWhiteSpace(_emFile), Path.Combine(Path.GetDirectoryName(_emFile), tbMaxTorqueHi.Text), tbDragTorqueHi.Text) + If(Not String.IsNullOrWhiteSpace(_emFile), Path.Combine(Path.GetDirectoryName(_emFile), tbMaxTorqueHi.Text), tbDragTorque.Text) If File.Exists(fldFile) Then _ fullLoadCurve = ElectricFullLoadCurveReader.Create(VectoCSVFile.Read(fldFile), 1) Catch ex As Exception @@ -407,7 +394,7 @@ Public Class ElectricMotorForm Try Dim dragFile As String = - If(Not String.IsNullOrWhiteSpace(_emFile), Path.Combine(Path.GetDirectoryName(_emFile), tbDragTorqueHi.Text), tbMapHi.Text) + If(Not String.IsNullOrWhiteSpace(_emFile), Path.Combine(Path.GetDirectoryName(_emFile), tbDragTorque.Text), tbMapHi.Text) If File.Exists(dragFile) Then dragCurve = ElectricMotorDragCurveReader.Create(VectoCSVFile.Read(dragFile), 1) Catch ex As Exception End Try @@ -428,7 +415,7 @@ Public Class ElectricMotorForm series.ChartType = SeriesChartType.FastLine series.BorderWidth = 2 series.Color = Color.DarkBlue - series.Name = "Max drive torque (" & tbDragTorqueHi.Text & ")" + series.Name = "Max drive torque (" & tbDragTorque.Text & ")" chart.Series.Add(series) series = New Series @@ -547,19 +534,7 @@ Public Class ElectricMotorForm End If End Sub - Private Sub btnDragCurveOpen_Click(sender As Object, e As EventArgs) Handles btnDragCurveOpenHi.Click - Dim theFile As String - - theFile = FileRepl(tbDragTorqueHi.Text, GetPath(_emFile)) - - If theFile <> NoFile AndAlso File.Exists(theFile) Then - OpenFiles(FileRepl(tbDragTorqueHi.Text, GetPath(_emFile)), theFile) - Else - OpenFiles(FileRepl(tbDragTorqueHi.Text, GetPath(_emFile))) - End If - End Sub - - Private Sub btnEmMapOpen_Click(sender As Object, e As EventArgs) Handles btnEmMapOpenHi.Click + Private Sub btnEmMapOpen_Click(sender As Object, e As EventArgs) Handles btnEmMapOpenHi.Click Dim theFile As String theFile = FileRepl(tbMapHi.Text, GetPath(_emFile)) @@ -576,13 +551,43 @@ Public Class ElectricMotorForm tbMaxTorqueHi.Text = GetFilenameWithoutDirectory(ElectricMachineMaxTorqueFileBrowser.Files(0), GetPath(_emFile)) End Sub - Private Sub btnBrowseDragCurve_Click(sender As Object, e As EventArgs) Handles btnBrowseDragCurveHi.Click - If ElectricMachineDragTorqueFileBrowser.OpenDialog(FileRepl(tbDragTorqueHi.Text, GetPath(_emFile))) Then _ - tbDragTorqueHi.Text = GetFilenameWithoutDirectory(ElectricMachineDragTorqueFileBrowser.Files(0), GetPath(_emFile)) - End Sub - + Private Sub btnBrowseEmMap_Click(sender As Object, e As EventArgs) Handles btnBrowseEmMapHi.Click If ElectricMachineEfficiencyMapFileBrowser.OpenDialog(FileRepl(tbMapHi.Text, GetPath(_emFile))) Then _ tbMapHi.Text = GetFilenameWithoutDirectory(ElectricMachineEfficiencyMapFileBrowser.Files(0), GetPath(_emFile)) End Sub + + Private Sub btnBrowseDragCurve_Click_1(sender As Object, e As EventArgs) Handles btnBrowseDragCurve.Click + If ElectricMachineDragTorqueFileBrowser.OpenDialog(FileRepl(tbDragTorque.Text, GetPath(_emFile))) Then _ + tbDragTorque.Text = GetFilenameWithoutDirectory(ElectricMachineDragTorqueFileBrowser.Files(0), GetPath(_emFile)) + End Sub + + Private Sub btnDragCurveOpen_Click_1(sender As Object, e As EventArgs) Handles btnDragCurveOpen.Click + Dim theFile As String + + theFile = FileRepl(tbDragTorque.Text, GetPath(_emFile)) + + If theFile <> NoFile AndAlso File.Exists(theFile) Then + OpenFiles(FileRepl(tbDragTorque.Text, GetPath(_emFile)), theFile) + Else + OpenFiles(FileRepl(tbDragTorque.Text, GetPath(_emFile))) + End If + End Sub + + Private Sub btnBrowseEmMapLow_Click(sender As Object, e As EventArgs) Handles btnBrowseEmMapLow.Click + If ElectricMachineMaxTorqueFileBrowser.OpenDialog(FileRepl(tbMaxTorqueLow.Text, GetPath(_emFile))) Then _ + tbMaxTorqueLow.Text = GetFilenameWithoutDirectory(ElectricMachineMaxTorqueFileBrowser.Files(0), GetPath(_emFile)) + End Sub + + Private Sub btnEmMapOpenLow_Click(sender As Object, e As EventArgs) Handles btnEmMapOpenLow.Click + Dim theFile As String + + theFile = FileRepl(tbMapLow.Text, GetPath(_emFile)) + + If theFile <> NoFile AndAlso File.Exists(theFile) Then + OpenFiles(FileRepl(tbMapLow.Text, GetPath(_emFile)), theFile) + Else + OpenFiles(FileRepl(tbMapLow.Text, GetPath(_emFile))) + End If + End Sub End Class diff --git a/VECTO/GUI/HybridStrategyParamsForm.Designer.vb b/VECTO/GUI/HybridStrategyParamsForm.Designer.vb index 90c1d30d22d3b75da81bdb6725d5d79dcc5d6d09..62c92631f139d84b3d7ab9fd53a9c08169fe5412 100644 --- a/VECTO/GUI/HybridStrategyParamsForm.Designer.vb +++ b/VECTO/GUI/HybridStrategyParamsForm.Designer.vb @@ -95,6 +95,10 @@ Partial Class HybridStrategyParamsForm Me.lblCostFactorSoCExponent = New System.Windows.Forms.Label() Me.lblCostFactorSoCExponentUnit = New System.Windows.Forms.Label() Me.tbCostFactorSoCExponent = New System.Windows.Forms.TextBox() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.lblGensetMinPwrFactor = New System.Windows.Forms.Label() + Me.lblGensetMinPowerFactorUnit = New System.Windows.Forms.Label() + Me.tbGensetMinOptPowerFactor = New System.Windows.Forms.TextBox() Me.ToolStrip1.SuspendLayout Me.StatusStrip1.SuspendLayout CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit @@ -109,30 +113,34 @@ Partial Class HybridStrategyParamsForm Me.Panel2.SuspendLayout Me.pnICEStartPenaltyFactor.SuspendLayout Me.pnCostFactorSoCExponent.SuspendLayout + Me.Panel3.SuspendLayout Me.SuspendLayout ' 'tbEquivalenceFactorDischarge ' - Me.tbEquivalenceFactorDischarge.Location = New System.Drawing.Point(181, 4) + Me.tbEquivalenceFactorDischarge.Location = New System.Drawing.Point(272, 6) + Me.tbEquivalenceFactorDischarge.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbEquivalenceFactorDischarge.Name = "tbEquivalenceFactorDischarge" - Me.tbEquivalenceFactorDischarge.Size = New System.Drawing.Size(57, 20) + Me.tbEquivalenceFactorDischarge.Size = New System.Drawing.Size(84, 26) Me.tbEquivalenceFactorDischarge.TabIndex = 3 ' 'lblEquivFactorUnit ' Me.lblEquivFactorUnit.AutoSize = true - Me.lblEquivFactorUnit.Location = New System.Drawing.Point(244, 7) + Me.lblEquivFactorUnit.Location = New System.Drawing.Point(366, 11) + Me.lblEquivFactorUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEquivFactorUnit.Name = "lblEquivFactorUnit" - Me.lblEquivFactorUnit.Size = New System.Drawing.Size(16, 13) + Me.lblEquivFactorUnit.Size = New System.Drawing.Size(22, 20) Me.lblEquivFactorUnit.TabIndex = 24 Me.lblEquivFactorUnit.Text = "[-]" ' 'lblEvquivFactorDischg ' Me.lblEvquivFactorDischg.AutoSize = true - Me.lblEvquivFactorDischg.Location = New System.Drawing.Point(3, 7) + Me.lblEvquivFactorDischg.Location = New System.Drawing.Point(4, 11) + Me.lblEvquivFactorDischg.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEvquivFactorDischg.Name = "lblEvquivFactorDischg" - Me.lblEvquivFactorDischg.Size = New System.Drawing.Size(150, 13) + Me.lblEvquivFactorDischg.Size = New System.Drawing.Size(221, 20) Me.lblEvquivFactorDischg.TabIndex = 0 Me.lblEvquivFactorDischg.Text = "Equivalence Factor Discharge" ' @@ -140,9 +148,10 @@ Partial Class HybridStrategyParamsForm ' Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.ButCancel.Location = New System.Drawing.Point(362, 381) + Me.ButCancel.Location = New System.Drawing.Point(543, 660) + Me.ButCancel.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButCancel.Name = "ButCancel" - Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.Size = New System.Drawing.Size(112, 35) Me.ButCancel.TabIndex = 11 Me.ButCancel.Text = "Cancel" Me.ButCancel.UseVisualStyleBackColor = true @@ -150,9 +159,10 @@ Partial Class HybridStrategyParamsForm 'ButOK ' Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) - Me.ButOK.Location = New System.Drawing.Point(281, 381) + Me.ButOK.Location = New System.Drawing.Point(422, 660) + Me.ButOK.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButOK.Name = "ButOK" - Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.Size = New System.Drawing.Size(112, 35) Me.ButOK.TabIndex = 10 Me.ButOK.Text = "Save" Me.ButOK.UseVisualStyleBackColor = true @@ -164,7 +174,8 @@ Partial Class HybridStrategyParamsForm Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1}) Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) Me.ToolStrip1.Name = "ToolStrip1" - Me.ToolStrip1.Size = New System.Drawing.Size(449, 31) + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 3, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(674, 33) Me.ToolStrip1.TabIndex = 30 Me.ToolStrip1.Text = "ToolStrip1" ' @@ -174,7 +185,7 @@ Partial Class HybridStrategyParamsForm Me.ToolStripBtNew.Image = Global.TUGraz.VECTO.My.Resources.Resources.blue_document_icon Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtNew.Name = "ToolStripBtNew" - Me.ToolStripBtNew.Size = New System.Drawing.Size(28, 28) + Me.ToolStripBtNew.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtNew.Text = "ToolStripButton1" Me.ToolStripBtNew.ToolTipText = "New" ' @@ -184,7 +195,7 @@ Partial Class HybridStrategyParamsForm Me.ToolStripBtOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtOpen.Name = "ToolStripBtOpen" - Me.ToolStripBtOpen.Size = New System.Drawing.Size(28, 28) + Me.ToolStripBtOpen.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtOpen.Text = "ToolStripButton1" Me.ToolStripBtOpen.ToolTipText = "Open..." ' @@ -194,7 +205,7 @@ Partial Class HybridStrategyParamsForm Me.ToolStripBtSave.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_icon Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtSave.Name = "ToolStripBtSave" - Me.ToolStripBtSave.Size = New System.Drawing.Size(28, 28) + Me.ToolStripBtSave.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtSave.Text = "ToolStripButton1" Me.ToolStripBtSave.ToolTipText = "Save" ' @@ -204,14 +215,14 @@ Partial Class HybridStrategyParamsForm Me.ToolStripBtSaveAs.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_as_icon Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs" - Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(28, 28) + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtSaveAs.Text = "ToolStripButton1" Me.ToolStripBtSaveAs.ToolTipText = "Save As..." ' 'ToolStripSeparator3 ' Me.ToolStripSeparator3.Name = "ToolStripSeparator3" - Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 31) + Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 33) ' 'ToolStripBtSendTo ' @@ -219,14 +230,14 @@ Partial Class HybridStrategyParamsForm Me.ToolStripBtSendTo.Image = Global.TUGraz.VECTO.My.Resources.Resources.export_icon Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo" - Me.ToolStripBtSendTo.Size = New System.Drawing.Size(28, 28) + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(34, 28) Me.ToolStripBtSendTo.Text = "Send to Job Editor" Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor" ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 31) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 33) ' 'ToolStripButton1 ' @@ -234,16 +245,17 @@ Partial Class HybridStrategyParamsForm Me.ToolStripButton1.Image = Global.TUGraz.VECTO.My.Resources.Resources.Help_icon Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" - Me.ToolStripButton1.Size = New System.Drawing.Size(28, 28) + Me.ToolStripButton1.Size = New System.Drawing.Size(34, 28) Me.ToolStripButton1.Text = "Help" ' 'StatusStrip1 ' Me.StatusStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) - Me.StatusStrip1.Location = New System.Drawing.Point(0, 407) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 702) Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(449, 22) + Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0) + Me.StatusStrip1.Size = New System.Drawing.Size(674, 32) Me.StatusStrip1.SizingGrip = false Me.StatusStrip1.TabIndex = 37 Me.StatusStrip1.Text = "StatusStrip1" @@ -251,16 +263,17 @@ Partial Class HybridStrategyParamsForm 'LbStatus ' Me.LbStatus.Name = "LbStatus" - Me.LbStatus.Size = New System.Drawing.Size(39, 17) + Me.LbStatus.Size = New System.Drawing.Size(60, 25) Me.LbStatus.Text = "Status" ' 'PictureBox1 ' Me.PictureBox1.BackColor = System.Drawing.Color.White Me.PictureBox1.Image = Global.TUGraz.VECTO.My.Resources.Resources.VECTO_ENG - Me.PictureBox1.Location = New System.Drawing.Point(0, 28) + Me.PictureBox1.Location = New System.Drawing.Point(0, 43) + Me.PictureBox1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(502, 40) + Me.PictureBox1.Size = New System.Drawing.Size(753, 62) Me.PictureBox1.TabIndex = 39 Me.PictureBox1.TabStop = false ' @@ -269,18 +282,18 @@ Partial Class HybridStrategyParamsForm Me.CmOpenFile.ImageScalingSize = New System.Drawing.Size(24, 24) Me.CmOpenFile.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OpenWithToolStripMenuItem, Me.ShowInFolderToolStripMenuItem}) Me.CmOpenFile.Name = "CmOpenFile" - Me.CmOpenFile.Size = New System.Drawing.Size(153, 48) + Me.CmOpenFile.Size = New System.Drawing.Size(203, 68) ' 'OpenWithToolStripMenuItem ' Me.OpenWithToolStripMenuItem.Name = "OpenWithToolStripMenuItem" - Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.OpenWithToolStripMenuItem.Size = New System.Drawing.Size(202, 32) Me.OpenWithToolStripMenuItem.Text = "Open with ..." ' 'ShowInFolderToolStripMenuItem ' Me.ShowInFolderToolStripMenuItem.Name = "ShowInFolderToolStripMenuItem" - Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(202, 32) Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" ' 'pnEquivFactor @@ -288,9 +301,10 @@ Partial Class HybridStrategyParamsForm Me.pnEquivFactor.Controls.Add(Me.lblEvquivFactorDischg) Me.pnEquivFactor.Controls.Add(Me.lblEquivFactorUnit) Me.pnEquivFactor.Controls.Add(Me.tbEquivalenceFactorDischarge) - Me.pnEquivFactor.Location = New System.Drawing.Point(12, 74) + Me.pnEquivFactor.Location = New System.Drawing.Point(18, 114) + Me.pnEquivFactor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnEquivFactor.Name = "pnEquivFactor" - Me.pnEquivFactor.Size = New System.Drawing.Size(288, 28) + Me.pnEquivFactor.Size = New System.Drawing.Size(432, 43) Me.pnEquivFactor.TabIndex = 0 ' 'lblTitle @@ -298,9 +312,10 @@ Partial Class HybridStrategyParamsForm Me.lblTitle.AutoSize = true Me.lblTitle.BackColor = System.Drawing.Color.White Me.lblTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 18!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) - Me.lblTitle.Location = New System.Drawing.Point(119, 35) + Me.lblTitle.Location = New System.Drawing.Point(178, 54) + Me.lblTitle.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblTitle.Name = "lblTitle" - Me.lblTitle.Size = New System.Drawing.Size(307, 29) + Me.lblTitle.Size = New System.Drawing.Size(461, 40) Me.lblTitle.TabIndex = 48 Me.lblTitle.Text = "Hybrid Strategy Parameters" ' @@ -309,34 +324,38 @@ Partial Class HybridStrategyParamsForm Me.pnMinSoC.Controls.Add(Me.lblMinSoC) Me.pnMinSoC.Controls.Add(Me.lblMinSoCUnit) Me.pnMinSoC.Controls.Add(Me.tbMinSoC) - Me.pnMinSoC.Location = New System.Drawing.Point(12, 134) + Me.pnMinSoC.Location = New System.Drawing.Point(18, 206) + Me.pnMinSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnMinSoC.Name = "pnMinSoC" - Me.pnMinSoC.Size = New System.Drawing.Size(288, 28) + Me.pnMinSoC.Size = New System.Drawing.Size(432, 43) Me.pnMinSoC.TabIndex = 2 ' 'lblMinSoC ' Me.lblMinSoC.AutoSize = true - Me.lblMinSoC.Location = New System.Drawing.Point(3, 7) + Me.lblMinSoC.Location = New System.Drawing.Point(4, 11) + Me.lblMinSoC.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMinSoC.Name = "lblMinSoC" - Me.lblMinSoC.Size = New System.Drawing.Size(47, 13) + Me.lblMinSoC.Size = New System.Drawing.Size(69, 20) Me.lblMinSoC.TabIndex = 0 Me.lblMinSoC.Text = "Min SoC" ' 'lblMinSoCUnit ' Me.lblMinSoCUnit.AutoSize = true - Me.lblMinSoCUnit.Location = New System.Drawing.Point(244, 7) + Me.lblMinSoCUnit.Location = New System.Drawing.Point(366, 11) + Me.lblMinSoCUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMinSoCUnit.Name = "lblMinSoCUnit" - Me.lblMinSoCUnit.Size = New System.Drawing.Size(21, 13) + Me.lblMinSoCUnit.Size = New System.Drawing.Size(31, 20) Me.lblMinSoCUnit.TabIndex = 24 Me.lblMinSoCUnit.Text = "[%]" ' 'tbMinSoC ' - Me.tbMinSoC.Location = New System.Drawing.Point(181, 4) + Me.tbMinSoC.Location = New System.Drawing.Point(272, 6) + Me.tbMinSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMinSoC.Name = "tbMinSoC" - Me.tbMinSoC.Size = New System.Drawing.Size(57, 20) + Me.tbMinSoC.Size = New System.Drawing.Size(84, 26) Me.tbMinSoC.TabIndex = 3 ' 'pnMaxSoC @@ -344,34 +363,38 @@ Partial Class HybridStrategyParamsForm Me.pnMaxSoC.Controls.Add(Me.lblMaxSoC) Me.pnMaxSoC.Controls.Add(Me.lblMaxSoCUnit) Me.pnMaxSoC.Controls.Add(Me.tbMaxSoC) - Me.pnMaxSoC.Location = New System.Drawing.Point(12, 164) + Me.pnMaxSoC.Location = New System.Drawing.Point(18, 252) + Me.pnMaxSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnMaxSoC.Name = "pnMaxSoC" - Me.pnMaxSoC.Size = New System.Drawing.Size(288, 28) + Me.pnMaxSoC.Size = New System.Drawing.Size(432, 43) Me.pnMaxSoC.TabIndex = 3 ' 'lblMaxSoC ' Me.lblMaxSoC.AutoSize = true - Me.lblMaxSoC.Location = New System.Drawing.Point(3, 7) + Me.lblMaxSoC.Location = New System.Drawing.Point(4, 11) + Me.lblMaxSoC.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMaxSoC.Name = "lblMaxSoC" - Me.lblMaxSoC.Size = New System.Drawing.Size(50, 13) + Me.lblMaxSoC.Size = New System.Drawing.Size(73, 20) Me.lblMaxSoC.TabIndex = 0 Me.lblMaxSoC.Text = "Max SoC" ' 'lblMaxSoCUnit ' Me.lblMaxSoCUnit.AutoSize = true - Me.lblMaxSoCUnit.Location = New System.Drawing.Point(244, 7) + Me.lblMaxSoCUnit.Location = New System.Drawing.Point(366, 11) + Me.lblMaxSoCUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMaxSoCUnit.Name = "lblMaxSoCUnit" - Me.lblMaxSoCUnit.Size = New System.Drawing.Size(21, 13) + Me.lblMaxSoCUnit.Size = New System.Drawing.Size(31, 20) Me.lblMaxSoCUnit.TabIndex = 24 Me.lblMaxSoCUnit.Text = "[%]" ' 'tbMaxSoC ' - Me.tbMaxSoC.Location = New System.Drawing.Point(181, 4) + Me.tbMaxSoC.Location = New System.Drawing.Point(272, 6) + Me.tbMaxSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMaxSoC.Name = "tbMaxSoC" - Me.tbMaxSoC.Size = New System.Drawing.Size(57, 20) + Me.tbMaxSoC.Size = New System.Drawing.Size(84, 26) Me.tbMaxSoC.TabIndex = 3 ' 'pnTargetSoC @@ -379,34 +402,38 @@ Partial Class HybridStrategyParamsForm Me.pnTargetSoC.Controls.Add(Me.lblTargetSoC) Me.pnTargetSoC.Controls.Add(Me.lblTargetSoCUnit) Me.pnTargetSoC.Controls.Add(Me.tbTargetSoC) - Me.pnTargetSoC.Location = New System.Drawing.Point(12, 194) + Me.pnTargetSoC.Location = New System.Drawing.Point(18, 298) + Me.pnTargetSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnTargetSoC.Name = "pnTargetSoC" - Me.pnTargetSoC.Size = New System.Drawing.Size(288, 28) + Me.pnTargetSoC.Size = New System.Drawing.Size(432, 43) Me.pnTargetSoC.TabIndex = 4 ' 'lblTargetSoC ' Me.lblTargetSoC.AutoSize = true - Me.lblTargetSoC.Location = New System.Drawing.Point(3, 7) + Me.lblTargetSoC.Location = New System.Drawing.Point(4, 11) + Me.lblTargetSoC.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblTargetSoC.Name = "lblTargetSoC" - Me.lblTargetSoC.Size = New System.Drawing.Size(61, 13) + Me.lblTargetSoC.Size = New System.Drawing.Size(90, 20) Me.lblTargetSoC.TabIndex = 0 Me.lblTargetSoC.Text = "Target SoC" ' 'lblTargetSoCUnit ' Me.lblTargetSoCUnit.AutoSize = true - Me.lblTargetSoCUnit.Location = New System.Drawing.Point(244, 7) + Me.lblTargetSoCUnit.Location = New System.Drawing.Point(366, 11) + Me.lblTargetSoCUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblTargetSoCUnit.Name = "lblTargetSoCUnit" - Me.lblTargetSoCUnit.Size = New System.Drawing.Size(21, 13) + Me.lblTargetSoCUnit.Size = New System.Drawing.Size(31, 20) Me.lblTargetSoCUnit.TabIndex = 24 Me.lblTargetSoCUnit.Text = "[%]" ' 'tbTargetSoC ' - Me.tbTargetSoC.Location = New System.Drawing.Point(181, 4) + Me.tbTargetSoC.Location = New System.Drawing.Point(272, 6) + Me.tbTargetSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbTargetSoC.Name = "tbTargetSoC" - Me.tbTargetSoC.Size = New System.Drawing.Size(57, 20) + Me.tbTargetSoC.Size = New System.Drawing.Size(84, 26) Me.tbTargetSoC.TabIndex = 3 ' 'pnAuxBufferTime @@ -414,34 +441,38 @@ Partial Class HybridStrategyParamsForm Me.pnAuxBufferTime.Controls.Add(Me.lblAuxBufferTime) Me.pnAuxBufferTime.Controls.Add(Me.lblAuxBufferTimeUnit) Me.pnAuxBufferTime.Controls.Add(Me.tbauxBufferTime) - Me.pnAuxBufferTime.Location = New System.Drawing.Point(12, 254) + Me.pnAuxBufferTime.Location = New System.Drawing.Point(18, 391) + Me.pnAuxBufferTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnAuxBufferTime.Name = "pnAuxBufferTime" - Me.pnAuxBufferTime.Size = New System.Drawing.Size(288, 28) + Me.pnAuxBufferTime.Size = New System.Drawing.Size(432, 43) Me.pnAuxBufferTime.TabIndex = 6 ' 'lblAuxBufferTime ' Me.lblAuxBufferTime.AutoSize = true - Me.lblAuxBufferTime.Location = New System.Drawing.Point(3, 7) + Me.lblAuxBufferTime.Location = New System.Drawing.Point(4, 11) + Me.lblAuxBufferTime.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblAuxBufferTime.Name = "lblAuxBufferTime" - Me.lblAuxBufferTime.Size = New System.Drawing.Size(82, 13) + Me.lblAuxBufferTime.Size = New System.Drawing.Size(122, 20) Me.lblAuxBufferTime.TabIndex = 0 Me.lblAuxBufferTime.Text = "Aux Buffer Time" ' 'lblAuxBufferTimeUnit ' Me.lblAuxBufferTimeUnit.AutoSize = true - Me.lblAuxBufferTimeUnit.Location = New System.Drawing.Point(244, 7) + Me.lblAuxBufferTimeUnit.Location = New System.Drawing.Point(366, 11) + Me.lblAuxBufferTimeUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblAuxBufferTimeUnit.Name = "lblAuxBufferTimeUnit" - Me.lblAuxBufferTimeUnit.Size = New System.Drawing.Size(18, 13) + Me.lblAuxBufferTimeUnit.Size = New System.Drawing.Size(25, 20) Me.lblAuxBufferTimeUnit.TabIndex = 24 Me.lblAuxBufferTimeUnit.Text = "[s]" ' 'tbauxBufferTime ' - Me.tbauxBufferTime.Location = New System.Drawing.Point(181, 4) + Me.tbauxBufferTime.Location = New System.Drawing.Point(272, 6) + Me.tbauxBufferTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbauxBufferTime.Name = "tbauxBufferTime" - Me.tbauxBufferTime.Size = New System.Drawing.Size(57, 20) + Me.tbauxBufferTime.Size = New System.Drawing.Size(84, 26) Me.tbauxBufferTime.TabIndex = 3 ' 'pnAuxBufferChgTime @@ -449,34 +480,38 @@ Partial Class HybridStrategyParamsForm Me.pnAuxBufferChgTime.Controls.Add(Me.Label1) Me.pnAuxBufferChgTime.Controls.Add(Me.lblAuxBufferChgTimeUnit) Me.pnAuxBufferChgTime.Controls.Add(Me.tbAuxBufferChargeTime) - Me.pnAuxBufferChgTime.Location = New System.Drawing.Point(12, 284) + Me.pnAuxBufferChgTime.Location = New System.Drawing.Point(18, 437) + Me.pnAuxBufferChgTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnAuxBufferChgTime.Name = "pnAuxBufferChgTime" - Me.pnAuxBufferChgTime.Size = New System.Drawing.Size(288, 28) + Me.pnAuxBufferChgTime.Size = New System.Drawing.Size(432, 43) Me.pnAuxBufferChgTime.TabIndex = 7 ' 'Label1 ' Me.Label1.AutoSize = true - Me.Label1.Location = New System.Drawing.Point(3, 7) + Me.Label1.Location = New System.Drawing.Point(4, 11) + Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(119, 13) + Me.Label1.Size = New System.Drawing.Size(178, 20) Me.Label1.TabIndex = 0 Me.Label1.Text = "Aux Buffer Charge Time" ' 'lblAuxBufferChgTimeUnit ' Me.lblAuxBufferChgTimeUnit.AutoSize = true - Me.lblAuxBufferChgTimeUnit.Location = New System.Drawing.Point(244, 7) + Me.lblAuxBufferChgTimeUnit.Location = New System.Drawing.Point(366, 11) + Me.lblAuxBufferChgTimeUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblAuxBufferChgTimeUnit.Name = "lblAuxBufferChgTimeUnit" - Me.lblAuxBufferChgTimeUnit.Size = New System.Drawing.Size(18, 13) + Me.lblAuxBufferChgTimeUnit.Size = New System.Drawing.Size(25, 20) Me.lblAuxBufferChgTimeUnit.TabIndex = 24 Me.lblAuxBufferChgTimeUnit.Text = "[s]" ' 'tbAuxBufferChargeTime ' - Me.tbAuxBufferChargeTime.Location = New System.Drawing.Point(181, 4) + Me.tbAuxBufferChargeTime.Location = New System.Drawing.Point(272, 6) + Me.tbAuxBufferChargeTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbAuxBufferChargeTime.Name = "tbAuxBufferChargeTime" - Me.tbAuxBufferChargeTime.Size = New System.Drawing.Size(57, 20) + Me.tbAuxBufferChargeTime.Size = New System.Drawing.Size(84, 26) Me.tbAuxBufferChargeTime.TabIndex = 3 ' 'Panel1 @@ -484,34 +519,38 @@ Partial Class HybridStrategyParamsForm Me.Panel1.Controls.Add(Me.lblMinIceOnTime) Me.Panel1.Controls.Add(Me.lblMinIceOnTimeUnit) Me.Panel1.Controls.Add(Me.tbMinICEOnTime) - Me.Panel1.Location = New System.Drawing.Point(12, 224) + Me.Panel1.Location = New System.Drawing.Point(18, 345) + Me.Panel1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(288, 28) + Me.Panel1.Size = New System.Drawing.Size(432, 43) Me.Panel1.TabIndex = 5 ' 'lblMinIceOnTime ' Me.lblMinIceOnTime.AutoSize = true - Me.lblMinIceOnTime.Location = New System.Drawing.Point(3, 7) + Me.lblMinIceOnTime.Location = New System.Drawing.Point(4, 11) + Me.lblMinIceOnTime.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMinIceOnTime.Name = "lblMinIceOnTime" - Me.lblMinIceOnTime.Size = New System.Drawing.Size(87, 13) + Me.lblMinIceOnTime.Size = New System.Drawing.Size(128, 20) Me.lblMinIceOnTime.TabIndex = 0 Me.lblMinIceOnTime.Text = "Min ICE On Time" ' 'lblMinIceOnTimeUnit ' Me.lblMinIceOnTimeUnit.AutoSize = true - Me.lblMinIceOnTimeUnit.Location = New System.Drawing.Point(244, 7) + Me.lblMinIceOnTimeUnit.Location = New System.Drawing.Point(366, 11) + Me.lblMinIceOnTimeUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMinIceOnTimeUnit.Name = "lblMinIceOnTimeUnit" - Me.lblMinIceOnTimeUnit.Size = New System.Drawing.Size(18, 13) + Me.lblMinIceOnTimeUnit.Size = New System.Drawing.Size(25, 20) Me.lblMinIceOnTimeUnit.TabIndex = 24 Me.lblMinIceOnTimeUnit.Text = "[s]" ' 'tbMinICEOnTime ' - Me.tbMinICEOnTime.Location = New System.Drawing.Point(181, 4) + Me.tbMinICEOnTime.Location = New System.Drawing.Point(272, 6) + Me.tbMinICEOnTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMinICEOnTime.Name = "tbMinICEOnTime" - Me.tbMinICEOnTime.Size = New System.Drawing.Size(57, 20) + Me.tbMinICEOnTime.Size = New System.Drawing.Size(84, 26) Me.tbMinICEOnTime.TabIndex = 3 ' 'Panel2 @@ -519,34 +558,38 @@ Partial Class HybridStrategyParamsForm Me.Panel2.Controls.Add(Me.EquivalenceFactorChg) Me.Panel2.Controls.Add(Me.lblEquivFactorChargeUnit) Me.Panel2.Controls.Add(Me.tbEquivalenceFactorCharge) - Me.Panel2.Location = New System.Drawing.Point(12, 104) + Me.Panel2.Location = New System.Drawing.Point(18, 160) + Me.Panel2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(288, 28) + Me.Panel2.Size = New System.Drawing.Size(432, 43) Me.Panel2.TabIndex = 1 ' 'EquivalenceFactorChg ' Me.EquivalenceFactorChg.AutoSize = true - Me.EquivalenceFactorChg.Location = New System.Drawing.Point(3, 7) + Me.EquivalenceFactorChg.Location = New System.Drawing.Point(4, 11) + Me.EquivalenceFactorChg.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.EquivalenceFactorChg.Name = "EquivalenceFactorChg" - Me.EquivalenceFactorChg.Size = New System.Drawing.Size(136, 13) + Me.EquivalenceFactorChg.Size = New System.Drawing.Size(201, 20) Me.EquivalenceFactorChg.TabIndex = 0 Me.EquivalenceFactorChg.Text = "Equivalence Factor Charge" ' 'lblEquivFactorChargeUnit ' Me.lblEquivFactorChargeUnit.AutoSize = true - Me.lblEquivFactorChargeUnit.Location = New System.Drawing.Point(244, 7) + Me.lblEquivFactorChargeUnit.Location = New System.Drawing.Point(366, 11) + Me.lblEquivFactorChargeUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEquivFactorChargeUnit.Name = "lblEquivFactorChargeUnit" - Me.lblEquivFactorChargeUnit.Size = New System.Drawing.Size(16, 13) + Me.lblEquivFactorChargeUnit.Size = New System.Drawing.Size(22, 20) Me.lblEquivFactorChargeUnit.TabIndex = 24 Me.lblEquivFactorChargeUnit.Text = "[-]" ' 'tbEquivalenceFactorCharge ' - Me.tbEquivalenceFactorCharge.Location = New System.Drawing.Point(181, 4) + Me.tbEquivalenceFactorCharge.Location = New System.Drawing.Point(272, 6) + Me.tbEquivalenceFactorCharge.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbEquivalenceFactorCharge.Name = "tbEquivalenceFactorCharge" - Me.tbEquivalenceFactorCharge.Size = New System.Drawing.Size(57, 20) + Me.tbEquivalenceFactorCharge.Size = New System.Drawing.Size(84, 26) Me.tbEquivalenceFactorCharge.TabIndex = 3 ' 'pnICEStartPenaltyFactor @@ -554,34 +597,38 @@ Partial Class HybridStrategyParamsForm Me.pnICEStartPenaltyFactor.Controls.Add(Me.lblICEStartPenaltyFactor) Me.pnICEStartPenaltyFactor.Controls.Add(Me.lblICEStartPenaltyFactorUnit) Me.pnICEStartPenaltyFactor.Controls.Add(Me.tbICEStartPenaltyFactor) - Me.pnICEStartPenaltyFactor.Location = New System.Drawing.Point(12, 314) + Me.pnICEStartPenaltyFactor.Location = New System.Drawing.Point(18, 483) + Me.pnICEStartPenaltyFactor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnICEStartPenaltyFactor.Name = "pnICEStartPenaltyFactor" - Me.pnICEStartPenaltyFactor.Size = New System.Drawing.Size(288, 28) + Me.pnICEStartPenaltyFactor.Size = New System.Drawing.Size(432, 43) Me.pnICEStartPenaltyFactor.TabIndex = 8 ' 'lblICEStartPenaltyFactor ' Me.lblICEStartPenaltyFactor.AutoSize = true - Me.lblICEStartPenaltyFactor.Location = New System.Drawing.Point(3, 7) + Me.lblICEStartPenaltyFactor.Location = New System.Drawing.Point(4, 11) + Me.lblICEStartPenaltyFactor.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblICEStartPenaltyFactor.Name = "lblICEStartPenaltyFactor" - Me.lblICEStartPenaltyFactor.Size = New System.Drawing.Size(114, 13) + Me.lblICEStartPenaltyFactor.Size = New System.Drawing.Size(172, 20) Me.lblICEStartPenaltyFactor.TabIndex = 0 Me.lblICEStartPenaltyFactor.Text = "ICE start penalty factor" ' 'lblICEStartPenaltyFactorUnit ' Me.lblICEStartPenaltyFactorUnit.AutoSize = true - Me.lblICEStartPenaltyFactorUnit.Location = New System.Drawing.Point(244, 7) + Me.lblICEStartPenaltyFactorUnit.Location = New System.Drawing.Point(366, 11) + Me.lblICEStartPenaltyFactorUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblICEStartPenaltyFactorUnit.Name = "lblICEStartPenaltyFactorUnit" - Me.lblICEStartPenaltyFactorUnit.Size = New System.Drawing.Size(16, 13) + Me.lblICEStartPenaltyFactorUnit.Size = New System.Drawing.Size(22, 20) Me.lblICEStartPenaltyFactorUnit.TabIndex = 24 Me.lblICEStartPenaltyFactorUnit.Text = "[-]" ' 'tbICEStartPenaltyFactor ' - Me.tbICEStartPenaltyFactor.Location = New System.Drawing.Point(181, 4) + Me.tbICEStartPenaltyFactor.Location = New System.Drawing.Point(272, 6) + Me.tbICEStartPenaltyFactor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbICEStartPenaltyFactor.Name = "tbICEStartPenaltyFactor" - Me.tbICEStartPenaltyFactor.Size = New System.Drawing.Size(57, 20) + Me.tbICEStartPenaltyFactor.Size = New System.Drawing.Size(84, 26) Me.tbICEStartPenaltyFactor.TabIndex = 3 ' 'pnCostFactorSoCExponent @@ -589,43 +636,87 @@ Partial Class HybridStrategyParamsForm Me.pnCostFactorSoCExponent.Controls.Add(Me.lblCostFactorSoCExponent) Me.pnCostFactorSoCExponent.Controls.Add(Me.lblCostFactorSoCExponentUnit) Me.pnCostFactorSoCExponent.Controls.Add(Me.tbCostFactorSoCExponent) - Me.pnCostFactorSoCExponent.Location = New System.Drawing.Point(12, 344) + Me.pnCostFactorSoCExponent.Location = New System.Drawing.Point(18, 529) + Me.pnCostFactorSoCExponent.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnCostFactorSoCExponent.Name = "pnCostFactorSoCExponent" - Me.pnCostFactorSoCExponent.Size = New System.Drawing.Size(288, 28) + Me.pnCostFactorSoCExponent.Size = New System.Drawing.Size(432, 43) Me.pnCostFactorSoCExponent.TabIndex = 9 ' 'lblCostFactorSoCExponent ' Me.lblCostFactorSoCExponent.AutoSize = true - Me.lblCostFactorSoCExponent.Location = New System.Drawing.Point(3, 7) + Me.lblCostFactorSoCExponent.Location = New System.Drawing.Point(4, 11) + Me.lblCostFactorSoCExponent.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblCostFactorSoCExponent.Name = "lblCostFactorSoCExponent" - Me.lblCostFactorSoCExponent.Size = New System.Drawing.Size(132, 13) + Me.lblCostFactorSoCExponent.Size = New System.Drawing.Size(199, 20) Me.lblCostFactorSoCExponent.TabIndex = 0 Me.lblCostFactorSoCExponent.Text = "Cost Factor SoC Exponent" ' 'lblCostFactorSoCExponentUnit ' Me.lblCostFactorSoCExponentUnit.AutoSize = true - Me.lblCostFactorSoCExponentUnit.Location = New System.Drawing.Point(244, 7) + Me.lblCostFactorSoCExponentUnit.Location = New System.Drawing.Point(366, 11) + Me.lblCostFactorSoCExponentUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblCostFactorSoCExponentUnit.Name = "lblCostFactorSoCExponentUnit" - Me.lblCostFactorSoCExponentUnit.Size = New System.Drawing.Size(16, 13) + Me.lblCostFactorSoCExponentUnit.Size = New System.Drawing.Size(22, 20) Me.lblCostFactorSoCExponentUnit.TabIndex = 24 Me.lblCostFactorSoCExponentUnit.Text = "[-]" ' 'tbCostFactorSoCExponent ' - Me.tbCostFactorSoCExponent.Location = New System.Drawing.Point(181, 4) + Me.tbCostFactorSoCExponent.Location = New System.Drawing.Point(272, 6) + Me.tbCostFactorSoCExponent.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbCostFactorSoCExponent.Name = "tbCostFactorSoCExponent" - Me.tbCostFactorSoCExponent.Size = New System.Drawing.Size(57, 20) + Me.tbCostFactorSoCExponent.Size = New System.Drawing.Size(84, 26) Me.tbCostFactorSoCExponent.TabIndex = 3 ' + 'Panel3 + ' + Me.Panel3.Controls.Add(Me.lblGensetMinPwrFactor) + Me.Panel3.Controls.Add(Me.lblGensetMinPowerFactorUnit) + Me.Panel3.Controls.Add(Me.tbGensetMinOptPowerFactor) + Me.Panel3.Location = New System.Drawing.Point(18, 582) + Me.Panel3.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(432, 43) + Me.Panel3.TabIndex = 25 + ' + 'lblGensetMinPwrFactor + ' + Me.lblGensetMinPwrFactor.AutoSize = true + Me.lblGensetMinPwrFactor.Location = New System.Drawing.Point(4, 11) + Me.lblGensetMinPwrFactor.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblGensetMinPwrFactor.Name = "lblGensetMinPwrFactor" + Me.lblGensetMinPwrFactor.Size = New System.Drawing.Size(244, 20) + Me.lblGensetMinPwrFactor.TabIndex = 0 + Me.lblGensetMinPwrFactor.Text = "Genset min optimal Power Factor" + ' + 'lblGensetMinPowerFactorUnit + ' + Me.lblGensetMinPowerFactorUnit.AutoSize = true + Me.lblGensetMinPowerFactorUnit.Location = New System.Drawing.Point(366, 11) + Me.lblGensetMinPowerFactorUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblGensetMinPowerFactorUnit.Name = "lblGensetMinPowerFactorUnit" + Me.lblGensetMinPowerFactorUnit.Size = New System.Drawing.Size(22, 20) + Me.lblGensetMinPowerFactorUnit.TabIndex = 24 + Me.lblGensetMinPowerFactorUnit.Text = "[-]" + ' + 'tbGensetMinOptPowerFactor + ' + Me.tbGensetMinOptPowerFactor.Location = New System.Drawing.Point(272, 6) + Me.tbGensetMinOptPowerFactor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbGensetMinOptPowerFactor.Name = "tbGensetMinOptPowerFactor" + Me.tbGensetMinOptPowerFactor.Size = New System.Drawing.Size(84, 26) + Me.tbGensetMinOptPowerFactor.TabIndex = 3 + ' 'HybridStrategyParamsForm ' Me.AcceptButton = Me.ButOK - Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!) + Me.AutoScaleDimensions = New System.Drawing.SizeF(9!, 20!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.CancelButton = Me.ButCancel - Me.ClientSize = New System.Drawing.Size(449, 429) + Me.ClientSize = New System.Drawing.Size(674, 734) + Me.Controls.Add(Me.Panel3) Me.Controls.Add(Me.pnCostFactorSoCExponent) Me.Controls.Add(Me.pnICEStartPenaltyFactor) Me.Controls.Add(Me.Panel2) @@ -644,6 +735,7 @@ Partial Class HybridStrategyParamsForm Me.Controls.Add(Me.ButOK) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Icon = CType(resources.GetObject("$this.Icon"),System.Drawing.Icon) + Me.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.MaximizeBox = false Me.Name = "HybridStrategyParamsForm" Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide @@ -675,6 +767,8 @@ Partial Class HybridStrategyParamsForm Me.pnICEStartPenaltyFactor.PerformLayout Me.pnCostFactorSoCExponent.ResumeLayout(false) Me.pnCostFactorSoCExponent.PerformLayout + Me.Panel3.ResumeLayout(false) + Me.Panel3.PerformLayout Me.ResumeLayout(false) Me.PerformLayout @@ -737,4 +831,8 @@ End Sub Friend WithEvents lblCostFactorSoCExponent As Label Friend WithEvents lblCostFactorSoCExponentUnit As Label Friend WithEvents tbCostFactorSoCExponent As TextBox + Friend WithEvents Panel3 As Panel + Friend WithEvents lblGensetMinPwrFactor As Label + Friend WithEvents lblGensetMinPowerFactorUnit As Label + Friend WithEvents tbGensetMinOptPowerFactor As TextBox End Class diff --git a/VECTO/GUI/HybridStrategyParamsForm.vb b/VECTO/GUI/HybridStrategyParamsForm.vb index c672b3b46e3226aff88d99c30150afc67b6f5762..3778f2a61760d1e08755e3a56dec636b85612cf8 100644 --- a/VECTO/GUI/HybridStrategyParamsForm.vb +++ b/VECTO/GUI/HybridStrategyParamsForm.vb @@ -179,6 +179,7 @@ Public Class HybridStrategyParamsForm tbICEStartPenaltyFactor.Text = strategyParams.ICEStartPenaltyFactor.ToGUIFormat() tbCostFactorSoCExponent.Text = if(Double.IsNaN(strategyParams.CostFactorSOCExpponent), 5, strategyParams.CostFactorSOCExpponent).ToGUIFormat() + tbGensetMinOptPowerFactor.Text = if (double.IsNaN(strategyParams.GensetMinOptPowerFactor), "", strategyParams.GensetMinOptPowerFactor.ToGUIFormat()) DeclInit() REESSFileBrowser.UpdateHistory(file) @@ -221,6 +222,7 @@ Public Class HybridStrategyParamsForm strategyParams.AuxiliaryBufferChgTime = tbAuxBufferChargeTime.Text.ToDouble(0) strategyParams.ICEStartPenaltyFactor = tbICEStartPenaltyFactor.Text.ToDouble() strategyParams.CostFactorSOCExpponent = tbCostFactorSoCExponent.Text.ToDouble(5) + strategyParams.GensetMinOptPowerFactor = 1 If Not strategyParams.SaveFile Then MsgBox("Cannot save to " & file, MsgBoxStyle.Critical) diff --git a/VECTO/GUI/VectoJobForm.vb b/VECTO/GUI/VectoJobForm.vb index 0b89f90d1a319d15ea9d0e7decf46466f55277cd..ee4ab6efbcc0841f046ad616d2f4ce007ab8b47f 100644 --- a/VECTO/GUI/VectoJobForm.vb +++ b/VECTO/GUI/VectoJobForm.vb @@ -101,6 +101,10 @@ Public Class VectoJobForm lblTitle.Text = prefix + "Parallel Hybrid Vehicle" gbElectricAux.Enabled = True GrAuxMech.Enabled = True + case VectoSimulationJobType.SerialHybridVehicle + lblTitle.Text = prefix + "Serial Hybrid Vehicle" + gbElectricAux.Enabled = true + GrAuxMech.Enabled = true Case VectoSimulationJobType.BatteryElectricVehicle lblTitle.Text = prefix + "Battery Electric Vehicle" gbElectricAux.Enabled = True @@ -471,7 +475,7 @@ Public Class VectoJobForm Else TbShiftStrategyParams.Text = GetRelativePath(inputData.DriverInputData.GearshiftInputData.Source, _basePath) End If - If (JobType = VectoSimulationJobType.ParallelHybridVehicle) Then + If (JobType = VectoSimulationJobType.ParallelHybridVehicle OrElse JobType = VectoSimulationJobType.SerialHybridVehicle) Then tbHybridStrategyParams.Text = GetRelativePath(inputData.JobInputData.HybridStrategyParameters.Source, _basePath) End If diff --git a/VECTO/GUI/VehicleForm.Designer.vb b/VECTO/GUI/VehicleForm.Designer.vb index ae21a2d56dbba296fbfa23f62f421773ab93f583..68f644fe74914bbff80e6b65ac6bf070c755536e 100644 --- a/VECTO/GUI/VehicleForm.Designer.vb +++ b/VECTO/GUI/VehicleForm.Designer.vb @@ -210,6 +210,20 @@ Partial Class VehicleForm Me.cbLegislativeClass = New System.Windows.Forms.ComboBox() Me.Label21 = New System.Windows.Forms.Label() Me.lblTitle = New System.Windows.Forms.Label() + Me.tpGensetComponents = New System.Windows.Forms.TabPage() + Me.gbGenSet = New System.Windows.Forms.GroupBox() + Me.btnGenSetLossMap = New System.Windows.Forms.Button() + Me.tbGenSetADC = New System.Windows.Forms.TextBox() + Me.lblGenSetADC = New System.Windows.Forms.Label() + Me.tbGenSetRatio = New System.Windows.Forms.TextBox() + Me.lblGenSetRatio = New System.Windows.Forms.Label() + Me.tbGenSetCount = New System.Windows.Forms.TextBox() + Me.lblGenSetCount = New System.Windows.Forms.Label() + Me.pnGenSetEM = New System.Windows.Forms.Panel() + Me.btnOpenGenSetEM = New System.Windows.Forms.Button() + Me.btnBrowseGenSetEM = New System.Windows.Forms.Button() + Me.tbGenSetEM = New System.Windows.Forms.TextBox() + Me.tbGenSetICE = New System.Windows.Forms.TextBox() Me.GroupBox6.SuspendLayout Me.ToolStrip1.SuspendLayout Me.GroupBox7.SuspendLayout @@ -248,78 +262,90 @@ Partial Class VehicleForm Me.pnPTO.SuspendLayout Me.gbPTODrive.SuspendLayout Me.gbPTO.SuspendLayout + Me.tpGensetComponents.SuspendLayout + Me.gbGenSet.SuspendLayout + Me.pnGenSetEM.SuspendLayout Me.SuspendLayout ' 'Label1 ' Me.Label1.AutoSize = true - Me.Label1.Location = New System.Drawing.Point(6, 22) + Me.Label1.Location = New System.Drawing.Point(9, 34) + Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(177, 13) + Me.Label1.Size = New System.Drawing.Size(264, 20) Me.Label1.TabIndex = 0 Me.Label1.Text = "Corrected Actual Curb Mass Vehicle" ' 'TbMass ' - Me.TbMass.Location = New System.Drawing.Point(188, 19) + Me.TbMass.Location = New System.Drawing.Point(282, 29) + Me.TbMass.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbMass.Name = "TbMass" - Me.TbMass.Size = New System.Drawing.Size(57, 20) + Me.TbMass.Size = New System.Drawing.Size(84, 26) Me.TbMass.TabIndex = 0 ' 'Label2 ' Me.Label2.AutoSize = true - Me.Label2.Location = New System.Drawing.Point(128, 31) + Me.Label2.Location = New System.Drawing.Point(192, 48) + Me.Label2.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(45, 13) + Me.Label2.Size = New System.Drawing.Size(66, 20) Me.Label2.TabIndex = 2 Me.Label2.Text = "Loading" ' 'TbLoad ' - Me.TbLoad.Location = New System.Drawing.Point(182, 28) + Me.TbLoad.Location = New System.Drawing.Point(273, 43) + Me.TbLoad.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbLoad.Name = "TbLoad" - Me.TbLoad.Size = New System.Drawing.Size(57, 20) + Me.TbLoad.Size = New System.Drawing.Size(84, 26) Me.TbLoad.TabIndex = 1 ' 'Label3 ' Me.Label3.AutoSize = true - Me.Label3.Location = New System.Drawing.Point(75, 6) + Me.Label3.Location = New System.Drawing.Point(112, 9) + Me.Label3.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(38, 13) + Me.Label3.Size = New System.Drawing.Size(55, 20) Me.Label3.TabIndex = 8 Me.Label3.Text = "Cd x A" ' 'TBcdA ' - Me.TBcdA.Location = New System.Drawing.Point(119, 3) + Me.TBcdA.Location = New System.Drawing.Point(178, 5) + Me.TBcdA.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TBcdA.Name = "TBcdA" - Me.TBcdA.Size = New System.Drawing.Size(57, 20) + Me.TBcdA.Size = New System.Drawing.Size(84, 26) Me.TBcdA.TabIndex = 0 ' 'Label13 ' Me.Label13.AutoSize = true - Me.Label13.Location = New System.Drawing.Point(136, 6) + Me.Label13.Location = New System.Drawing.Point(204, 9) + Me.Label13.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label13.Name = "Label13" - Me.Label13.Size = New System.Drawing.Size(40, 13) + Me.Label13.Size = New System.Drawing.Size(59, 20) Me.Label13.TabIndex = 6 Me.Label13.Text = "Radius" ' 'TBrdyn ' - Me.TBrdyn.Location = New System.Drawing.Point(185, 3) + Me.TBrdyn.Location = New System.Drawing.Point(278, 5) + Me.TBrdyn.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TBrdyn.Name = "TBrdyn" - Me.TBrdyn.Size = New System.Drawing.Size(57, 20) + Me.TBrdyn.Size = New System.Drawing.Size(84, 26) Me.TBrdyn.TabIndex = 0 ' 'ButOK ' Me.ButOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) - Me.ButOK.Location = New System.Drawing.Point(498, 577) + Me.ButOK.Location = New System.Drawing.Point(747, 888) + Me.ButOK.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButOK.Name = "ButOK" - Me.ButOK.Size = New System.Drawing.Size(75, 23) + Me.ButOK.Size = New System.Drawing.Size(112, 35) Me.ButOK.TabIndex = 6 Me.ButOK.Text = "Save" Me.ButOK.UseVisualStyleBackColor = true @@ -328,9 +354,10 @@ Partial Class VehicleForm ' Me.ButCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.ButCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.ButCancel.Location = New System.Drawing.Point(579, 577) + Me.ButCancel.Location = New System.Drawing.Point(868, 888) + Me.ButCancel.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButCancel.Name = "ButCancel" - Me.ButCancel.Size = New System.Drawing.Size(75, 23) + Me.ButCancel.Size = New System.Drawing.Size(112, 35) Me.ButCancel.TabIndex = 7 Me.ButCancel.Text = "Cancel" Me.ButCancel.UseVisualStyleBackColor = true @@ -338,27 +365,30 @@ Partial Class VehicleForm 'Label14 ' Me.Label14.AutoSize = true - Me.Label14.Location = New System.Drawing.Point(247, 22) + Me.Label14.Location = New System.Drawing.Point(370, 34) + Me.Label14.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label14.Name = "Label14" - Me.Label14.Size = New System.Drawing.Size(25, 13) + Me.Label14.Size = New System.Drawing.Size(34, 20) Me.Label14.TabIndex = 24 Me.Label14.Text = "[kg]" ' 'Label31 ' Me.Label31.AutoSize = true - Me.Label31.Location = New System.Drawing.Point(241, 31) + Me.Label31.Location = New System.Drawing.Point(362, 48) + Me.Label31.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label31.Name = "Label31" - Me.Label31.Size = New System.Drawing.Size(25, 13) + Me.Label31.Size = New System.Drawing.Size(34, 20) Me.Label31.TabIndex = 24 Me.Label31.Text = "[kg]" ' 'Label35 ' Me.Label35.AutoSize = true - Me.Label35.Location = New System.Drawing.Point(244, 6) + Me.Label35.Location = New System.Drawing.Point(366, 9) + Me.Label35.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label35.Name = "Label35" - Me.Label35.Size = New System.Drawing.Size(29, 13) + Me.Label35.Size = New System.Drawing.Size(43, 20) Me.Label35.TabIndex = 24 Me.Label35.Text = "[mm]" ' @@ -367,18 +397,20 @@ Partial Class VehicleForm Me.CbCdMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.CbCdMode.FormattingEnabled = true Me.CbCdMode.Items.AddRange(New Object() {"No Correction", "Speed dependent (User-defined)", "Speed dependent (Declaration Mode)", "Vair & Beta Input"}) - Me.CbCdMode.Location = New System.Drawing.Point(6, 19) + Me.CbCdMode.Location = New System.Drawing.Point(9, 29) + Me.CbCdMode.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.CbCdMode.Name = "CbCdMode" - Me.CbCdMode.Size = New System.Drawing.Size(267, 21) + Me.CbCdMode.Size = New System.Drawing.Size(398, 28) Me.CbCdMode.TabIndex = 0 ' 'TbCdFile ' Me.TbCdFile.Anchor = System.Windows.Forms.AnchorStyles.None Me.TbCdFile.Enabled = false - Me.TbCdFile.Location = New System.Drawing.Point(9, 65) + Me.TbCdFile.Location = New System.Drawing.Point(14, 100) + Me.TbCdFile.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbCdFile.Name = "TbCdFile" - Me.TbCdFile.Size = New System.Drawing.Size(210, 20) + Me.TbCdFile.Size = New System.Drawing.Size(313, 26) Me.TbCdFile.TabIndex = 1 ' 'BtCdFileBrowse @@ -386,9 +418,10 @@ Partial Class VehicleForm Me.BtCdFileBrowse.Anchor = System.Windows.Forms.AnchorStyles.None Me.BtCdFileBrowse.Enabled = false Me.BtCdFileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.BtCdFileBrowse.Location = New System.Drawing.Point(225, 62) + Me.BtCdFileBrowse.Location = New System.Drawing.Point(338, 95) + Me.BtCdFileBrowse.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.BtCdFileBrowse.Name = "BtCdFileBrowse" - Me.BtCdFileBrowse.Size = New System.Drawing.Size(24, 24) + Me.BtCdFileBrowse.Size = New System.Drawing.Size(36, 37) Me.BtCdFileBrowse.TabIndex = 2 Me.BtCdFileBrowse.UseVisualStyleBackColor = true ' @@ -399,9 +432,11 @@ Partial Class VehicleForm Me.GroupBox6.Controls.Add(Me.CbCdMode) Me.GroupBox6.Controls.Add(Me.BtCdFileBrowse) Me.GroupBox6.Controls.Add(Me.TbCdFile) - Me.GroupBox6.Location = New System.Drawing.Point(290, 84) + Me.GroupBox6.Location = New System.Drawing.Point(435, 129) + Me.GroupBox6.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox6.Name = "GroupBox6" - Me.GroupBox6.Size = New System.Drawing.Size(281, 96) + Me.GroupBox6.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox6.Size = New System.Drawing.Size(422, 148) Me.GroupBox6.TabIndex = 3 Me.GroupBox6.TabStop = false Me.GroupBox6.Text = "Cross Wind Correction" @@ -411,18 +446,20 @@ Partial Class VehicleForm Me.BtCdFileOpen.Anchor = System.Windows.Forms.AnchorStyles.None Me.BtCdFileOpen.Enabled = false Me.BtCdFileOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.BtCdFileOpen.Location = New System.Drawing.Point(249, 62) + Me.BtCdFileOpen.Location = New System.Drawing.Point(374, 95) + Me.BtCdFileOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.BtCdFileOpen.Name = "BtCdFileOpen" - Me.BtCdFileOpen.Size = New System.Drawing.Size(24, 24) + Me.BtCdFileOpen.Size = New System.Drawing.Size(36, 37) Me.BtCdFileOpen.TabIndex = 3 Me.BtCdFileOpen.UseVisualStyleBackColor = true ' 'LbCdMode ' Me.LbCdMode.AutoSize = true - Me.LbCdMode.Location = New System.Drawing.Point(6, 47) + Me.LbCdMode.Location = New System.Drawing.Point(9, 72) + Me.LbCdMode.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.LbCdMode.Name = "LbCdMode" - Me.LbCdMode.Size = New System.Drawing.Size(59, 13) + Me.LbCdMode.Size = New System.Drawing.Size(87, 20) Me.LbCdMode.TabIndex = 28 Me.LbCdMode.Text = "LbCdMode" Me.LbCdMode.TextAlign = System.Drawing.ContentAlignment.TopRight @@ -434,7 +471,8 @@ Partial Class VehicleForm Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripBtNew, Me.ToolStripBtOpen, Me.ToolStripBtSave, Me.ToolStripBtSaveAs, Me.ToolStripSeparator3, Me.ToolStripBtSendTo, Me.ToolStripSeparator1, Me.ToolStripButton1}) Me.ToolStrip1.Location = New System.Drawing.Point(0, 0) Me.ToolStrip1.Name = "ToolStrip1" - Me.ToolStrip1.Size = New System.Drawing.Size(666, 33) + Me.ToolStrip1.Padding = New System.Windows.Forms.Padding(0, 0, 3, 0) + Me.ToolStrip1.Size = New System.Drawing.Size(999, 38) Me.ToolStrip1.TabIndex = 29 Me.ToolStrip1.Text = "ToolStrip1" ' @@ -444,7 +482,7 @@ Partial Class VehicleForm Me.ToolStripBtNew.Image = Global.TUGraz.VECTO.My.Resources.Resources.blue_document_icon Me.ToolStripBtNew.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtNew.Name = "ToolStripBtNew" - Me.ToolStripBtNew.Size = New System.Drawing.Size(34, 28) + Me.ToolStripBtNew.Size = New System.Drawing.Size(34, 33) Me.ToolStripBtNew.Text = "ToolStripButton1" Me.ToolStripBtNew.ToolTipText = "New" ' @@ -454,7 +492,7 @@ Partial Class VehicleForm Me.ToolStripBtOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon Me.ToolStripBtOpen.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtOpen.Name = "ToolStripBtOpen" - Me.ToolStripBtOpen.Size = New System.Drawing.Size(34, 28) + Me.ToolStripBtOpen.Size = New System.Drawing.Size(34, 33) Me.ToolStripBtOpen.Text = "ToolStripButton1" Me.ToolStripBtOpen.ToolTipText = "Open..." ' @@ -464,7 +502,7 @@ Partial Class VehicleForm Me.ToolStripBtSave.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_icon Me.ToolStripBtSave.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtSave.Name = "ToolStripBtSave" - Me.ToolStripBtSave.Size = New System.Drawing.Size(34, 28) + Me.ToolStripBtSave.Size = New System.Drawing.Size(34, 33) Me.ToolStripBtSave.Text = "ToolStripButton1" Me.ToolStripBtSave.ToolTipText = "Save" ' @@ -474,14 +512,14 @@ Partial Class VehicleForm Me.ToolStripBtSaveAs.Image = Global.TUGraz.VECTO.My.Resources.Resources.Actions_document_save_as_icon Me.ToolStripBtSaveAs.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtSaveAs.Name = "ToolStripBtSaveAs" - Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(34, 28) + Me.ToolStripBtSaveAs.Size = New System.Drawing.Size(34, 33) Me.ToolStripBtSaveAs.Text = "ToolStripButton1" Me.ToolStripBtSaveAs.ToolTipText = "Save As..." ' 'ToolStripSeparator3 ' Me.ToolStripSeparator3.Name = "ToolStripSeparator3" - Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 33) + Me.ToolStripSeparator3.Size = New System.Drawing.Size(6, 38) ' 'ToolStripBtSendTo ' @@ -489,14 +527,14 @@ Partial Class VehicleForm Me.ToolStripBtSendTo.Image = Global.TUGraz.VECTO.My.Resources.Resources.export_icon Me.ToolStripBtSendTo.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripBtSendTo.Name = "ToolStripBtSendTo" - Me.ToolStripBtSendTo.Size = New System.Drawing.Size(34, 28) + Me.ToolStripBtSendTo.Size = New System.Drawing.Size(34, 33) Me.ToolStripBtSendTo.Text = "Send to Job Editor" Me.ToolStripBtSendTo.ToolTipText = "Send to Job Editor" ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 33) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 38) ' 'ToolStripButton1 ' @@ -504,16 +542,18 @@ Partial Class VehicleForm Me.ToolStripButton1.Image = Global.TUGraz.VECTO.My.Resources.Resources.Help_icon Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta Me.ToolStripButton1.Name = "ToolStripButton1" - Me.ToolStripButton1.Size = New System.Drawing.Size(34, 28) + Me.ToolStripButton1.Size = New System.Drawing.Size(34, 33) Me.ToolStripButton1.Text = "Help" ' 'GroupBox7 ' Me.GroupBox7.Controls.Add(Me.PnRt) Me.GroupBox7.Controls.Add(Me.CbRtType) - Me.GroupBox7.Location = New System.Drawing.Point(6, 76) + Me.GroupBox7.Location = New System.Drawing.Point(9, 117) + Me.GroupBox7.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox7.Name = "GroupBox7" - Me.GroupBox7.Size = New System.Drawing.Size(279, 111) + Me.GroupBox7.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox7.Size = New System.Drawing.Size(418, 171) Me.GroupBox7.TabIndex = 1 Me.GroupBox7.TabStop = false Me.GroupBox7.Text = "Retarder Losses" @@ -526,16 +566,18 @@ Partial Class VehicleForm Me.PnRt.Controls.Add(Me.Label45) Me.PnRt.Controls.Add(Me.LbRtRatio) Me.PnRt.Controls.Add(Me.TbRtRatio) - Me.PnRt.Location = New System.Drawing.Point(3, 42) + Me.PnRt.Location = New System.Drawing.Point(4, 65) + Me.PnRt.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PnRt.Name = "PnRt" - Me.PnRt.Size = New System.Drawing.Size(268, 63) + Me.PnRt.Size = New System.Drawing.Size(402, 97) Me.PnRt.TabIndex = 1 ' 'Label15 ' - Me.Label15.Location = New System.Drawing.Point(6, 23) + Me.Label15.Location = New System.Drawing.Point(9, 35) + Me.Label15.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label15.Name = "Label15" - Me.Label15.Size = New System.Drawing.Size(201, 16) + Me.Label15.Size = New System.Drawing.Size(302, 25) Me.Label15.TabIndex = 15 Me.Label15.Text = "Retarder Loss Map" Me.Label15.TextAlign = System.Drawing.ContentAlignment.BottomLeft @@ -544,35 +586,39 @@ Partial Class VehicleForm ' Me.BtRtBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles) Me.BtRtBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.BtRtBrowse.Location = New System.Drawing.Point(236, 39) + Me.BtRtBrowse.Location = New System.Drawing.Point(354, 60) + Me.BtRtBrowse.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.BtRtBrowse.Name = "BtRtBrowse" - Me.BtRtBrowse.Size = New System.Drawing.Size(24, 24) + Me.BtRtBrowse.Size = New System.Drawing.Size(36, 37) Me.BtRtBrowse.TabIndex = 2 Me.BtRtBrowse.UseVisualStyleBackColor = true ' 'TbRtPath ' Me.TbRtPath.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles) - Me.TbRtPath.Location = New System.Drawing.Point(6, 41) + Me.TbRtPath.Location = New System.Drawing.Point(9, 63) + Me.TbRtPath.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbRtPath.Name = "TbRtPath" - Me.TbRtPath.Size = New System.Drawing.Size(224, 20) + Me.TbRtPath.Size = New System.Drawing.Size(334, 26) Me.TbRtPath.TabIndex = 1 ' 'Label45 ' Me.Label45.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.Label45.AutoSize = true - Me.Label45.Location = New System.Drawing.Point(232, 5) + Me.Label45.Location = New System.Drawing.Point(348, 8) + Me.Label45.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label45.Name = "Label45" - Me.Label45.Size = New System.Drawing.Size(16, 13) + Me.Label45.Size = New System.Drawing.Size(22, 20) Me.Label45.TabIndex = 10 Me.Label45.Text = "[-]" ' 'LbRtRatio ' - Me.LbRtRatio.Location = New System.Drawing.Point(4, 5) + Me.LbRtRatio.Location = New System.Drawing.Point(6, 8) + Me.LbRtRatio.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.LbRtRatio.Name = "LbRtRatio" - Me.LbRtRatio.Size = New System.Drawing.Size(167, 17) + Me.LbRtRatio.Size = New System.Drawing.Size(250, 26) Me.LbRtRatio.TabIndex = 1 Me.LbRtRatio.Text = "Ratio" Me.LbRtRatio.TextAlign = System.Drawing.ContentAlignment.TopRight @@ -580,9 +626,10 @@ Partial Class VehicleForm 'TbRtRatio ' Me.TbRtRatio.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) - Me.TbRtRatio.Location = New System.Drawing.Point(174, 3) + Me.TbRtRatio.Location = New System.Drawing.Point(261, 5) + Me.TbRtRatio.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbRtRatio.Name = "TbRtRatio" - Me.TbRtRatio.Size = New System.Drawing.Size(56, 20) + Me.TbRtRatio.Size = New System.Drawing.Size(82, 26) Me.TbRtRatio.TabIndex = 0 ' 'CbRtType @@ -590,34 +637,38 @@ Partial Class VehicleForm Me.CbRtType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.CbRtType.FormattingEnabled = true Me.CbRtType.Items.AddRange(New Object() {"Included in Transmission Loss Maps", "Primary Retarder", "Secondary Retarder"}) - Me.CbRtType.Location = New System.Drawing.Point(6, 19) + Me.CbRtType.Location = New System.Drawing.Point(9, 29) + Me.CbRtType.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.CbRtType.Name = "CbRtType" - Me.CbRtType.Size = New System.Drawing.Size(266, 21) + Me.CbRtType.Size = New System.Drawing.Size(397, 28) Me.CbRtType.TabIndex = 0 ' 'Label46 ' Me.Label46.AutoSize = true - Me.Label46.Location = New System.Drawing.Point(32, 5) + Me.Label46.Location = New System.Drawing.Point(48, 8) + Me.Label46.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label46.Name = "Label46" - Me.Label46.Size = New System.Drawing.Size(145, 13) + Me.Label46.Size = New System.Drawing.Size(213, 20) Me.Label46.TabIndex = 31 Me.Label46.Text = "Curb Mass Extra Trailer/Body" ' 'Label50 ' Me.Label50.AutoSize = true - Me.Label50.Location = New System.Drawing.Point(241, 5) + Me.Label50.Location = New System.Drawing.Point(362, 8) + Me.Label50.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label50.Name = "Label50" - Me.Label50.Size = New System.Drawing.Size(25, 13) + Me.Label50.Size = New System.Drawing.Size(34, 20) Me.Label50.TabIndex = 24 Me.Label50.Text = "[kg]" ' 'TbMassExtra ' - Me.TbMassExtra.Location = New System.Drawing.Point(182, 2) + Me.TbMassExtra.Location = New System.Drawing.Point(273, 3) + Me.TbMassExtra.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbMassExtra.Name = "TbMassExtra" - Me.TbMassExtra.Size = New System.Drawing.Size(57, 20) + Me.TbMassExtra.Size = New System.Drawing.Size(84, 26) Me.TbMassExtra.TabIndex = 0 ' 'GroupBox8 @@ -626,9 +677,11 @@ Partial Class VehicleForm Me.GroupBox8.Controls.Add(Me.ButAxlRem) Me.GroupBox8.Controls.Add(Me.LvRRC) Me.GroupBox8.Controls.Add(Me.ButAxlAdd) - Me.GroupBox8.Location = New System.Drawing.Point(6, 186) + Me.GroupBox8.Location = New System.Drawing.Point(9, 286) + Me.GroupBox8.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox8.Name = "GroupBox8" - Me.GroupBox8.Size = New System.Drawing.Size(564, 151) + Me.GroupBox8.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox8.Size = New System.Drawing.Size(846, 232) Me.GroupBox8.TabIndex = 4 Me.GroupBox8.TabStop = false Me.GroupBox8.Text = "Axles / Wheels" @@ -636,18 +689,20 @@ Partial Class VehicleForm 'Label6 ' Me.Label6.AutoSize = true - Me.Label6.Location = New System.Drawing.Point(450, 121) + Me.Label6.Location = New System.Drawing.Point(675, 186) + Me.Label6.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(106, 13) + Me.Label6.Size = New System.Drawing.Size(158, 20) Me.Label6.TabIndex = 3 Me.Label6.Text = "(Double-Click to Edit)" ' 'ButAxlRem ' Me.ButAxlRem.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon - Me.ButAxlRem.Location = New System.Drawing.Point(29, 122) + Me.ButAxlRem.Location = New System.Drawing.Point(44, 188) + Me.ButAxlRem.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButAxlRem.Name = "ButAxlRem" - Me.ButAxlRem.Size = New System.Drawing.Size(24, 24) + Me.ButAxlRem.Size = New System.Drawing.Size(36, 37) Me.ButAxlRem.TabIndex = 2 Me.ButAxlRem.UseVisualStyleBackColor = true ' @@ -659,10 +714,11 @@ Partial Class VehicleForm Me.LvRRC.FullRowSelect = true Me.LvRRC.GridLines = true Me.LvRRC.HideSelection = false - Me.LvRRC.Location = New System.Drawing.Point(6, 19) + Me.LvRRC.Location = New System.Drawing.Point(9, 29) + Me.LvRRC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.LvRRC.MultiSelect = false Me.LvRRC.Name = "LvRRC" - Me.LvRRC.Size = New System.Drawing.Size(552, 102) + Me.LvRRC.Size = New System.Drawing.Size(826, 155) Me.LvRRC.TabIndex = 0 Me.LvRRC.TabStop = false Me.LvRRC.UseCompatibleStateImageBehavior = false @@ -710,9 +766,10 @@ Partial Class VehicleForm 'ButAxlAdd ' Me.ButAxlAdd.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon - Me.ButAxlAdd.Location = New System.Drawing.Point(5, 122) + Me.ButAxlAdd.Location = New System.Drawing.Point(8, 188) + Me.ButAxlAdd.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.ButAxlAdd.Name = "ButAxlAdd" - Me.ButAxlAdd.Size = New System.Drawing.Size(24, 24) + Me.ButAxlAdd.Size = New System.Drawing.Size(36, 37) Me.ButAxlAdd.TabIndex = 1 Me.ButAxlAdd.UseVisualStyleBackColor = true ' @@ -722,9 +779,10 @@ Partial Class VehicleForm Me.PnWheelDiam.Controls.Add(Me.TBrdyn) Me.PnWheelDiam.Controls.Add(Me.Label35) Me.PnWheelDiam.Dock = System.Windows.Forms.DockStyle.Fill - Me.PnWheelDiam.Location = New System.Drawing.Point(3, 16) + Me.PnWheelDiam.Location = New System.Drawing.Point(4, 24) + Me.PnWheelDiam.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PnWheelDiam.Name = "PnWheelDiam" - Me.PnWheelDiam.Size = New System.Drawing.Size(272, 31) + Me.PnWheelDiam.Size = New System.Drawing.Size(409, 48) Me.PnWheelDiam.TabIndex = 0 ' 'CbAxleConfig @@ -732,9 +790,10 @@ Partial Class VehicleForm Me.CbAxleConfig.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.CbAxleConfig.FormattingEnabled = true Me.CbAxleConfig.Items.AddRange(New Object() {"-", "4x2", "4x4", "6x2", "6x4", "6x6", "8x2", "8x4", "8x6", "8x8"}) - Me.CbAxleConfig.Location = New System.Drawing.Point(153, 80) + Me.CbAxleConfig.Location = New System.Drawing.Point(230, 123) + Me.CbAxleConfig.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.CbAxleConfig.Name = "CbAxleConfig" - Me.CbAxleConfig.Size = New System.Drawing.Size(60, 21) + Me.CbAxleConfig.Size = New System.Drawing.Size(88, 28) Me.CbAxleConfig.TabIndex = 1 ' 'CbCat @@ -742,44 +801,49 @@ Partial Class VehicleForm Me.CbCat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.CbCat.FormattingEnabled = true Me.CbCat.Items.AddRange(New Object() {"-", "Rigid Truck", "Tractor", "City Bus", "Interurban Bus", "Coach"}) - Me.CbCat.Location = New System.Drawing.Point(12, 80) + Me.CbCat.Location = New System.Drawing.Point(18, 123) + Me.CbCat.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.CbCat.Name = "CbCat" - Me.CbCat.Size = New System.Drawing.Size(135, 21) + Me.CbCat.Size = New System.Drawing.Size(200, 28) Me.CbCat.TabIndex = 0 ' 'Label5 ' Me.Label5.AutoSize = true - Me.Label5.Location = New System.Drawing.Point(31, 108) + Me.Label5.Location = New System.Drawing.Point(46, 166) + Me.Label5.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(116, 13) + Me.Label5.Size = New System.Drawing.Size(170, 20) Me.Label5.TabIndex = 2 Me.Label5.Text = "Technically Permissible" ' 'Label9 ' Me.Label9.AutoSize = true - Me.Label9.Location = New System.Drawing.Point(197, 114) + Me.Label9.Location = New System.Drawing.Point(296, 175) + Me.Label9.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(16, 13) + Me.Label9.Size = New System.Drawing.Size(22, 20) Me.Label9.TabIndex = 3 Me.Label9.Text = "[t]" Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'TbMassMass ' - Me.TbMassMass.Location = New System.Drawing.Point(153, 111) + Me.TbMassMass.Location = New System.Drawing.Point(230, 171) + Me.TbMassMass.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbMassMass.Name = "TbMassMass" - Me.TbMassMass.Size = New System.Drawing.Size(42, 20) + Me.TbMassMass.Size = New System.Drawing.Size(61, 26) Me.TbMassMass.TabIndex = 2 ' 'StatusStrip1 ' Me.StatusStrip1.ImageScalingSize = New System.Drawing.Size(24, 24) Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LbStatus}) - Me.StatusStrip1.Location = New System.Drawing.Point(0, 593) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 930) Me.StatusStrip1.Name = "StatusStrip1" - Me.StatusStrip1.Size = New System.Drawing.Size(666, 32) + Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0) + Me.StatusStrip1.Size = New System.Drawing.Size(999, 32) Me.StatusStrip1.SizingGrip = false Me.StatusStrip1.TabIndex = 36 Me.StatusStrip1.Text = "StatusStrip1" @@ -792,10 +856,11 @@ Partial Class VehicleForm ' 'TbHDVclass ' - Me.TbHDVclass.Location = New System.Drawing.Point(153, 141) + Me.TbHDVclass.Location = New System.Drawing.Point(230, 217) + Me.TbHDVclass.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.TbHDVclass.Name = "TbHDVclass" Me.TbHDVclass.ReadOnly = true - Me.TbHDVclass.Size = New System.Drawing.Size(42, 20) + Me.TbHDVclass.Size = New System.Drawing.Size(61, 26) Me.TbHDVclass.TabIndex = 3 Me.TbHDVclass.TabStop = false Me.TbHDVclass.TextAlign = System.Windows.Forms.HorizontalAlignment.Center @@ -806,9 +871,11 @@ Partial Class VehicleForm Me.GroupBox1.Controls.Add(Me.TbMass) Me.GroupBox1.Controls.Add(Me.Label1) Me.GroupBox1.Controls.Add(Me.Label14) - Me.GroupBox1.Location = New System.Drawing.Point(6, 6) + Me.GroupBox1.Location = New System.Drawing.Point(9, 9) + Me.GroupBox1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(278, 118) + Me.GroupBox1.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox1.Size = New System.Drawing.Size(417, 182) Me.GroupBox1.TabIndex = 0 Me.GroupBox1.TabStop = false Me.GroupBox1.Text = "Masses / Loading" @@ -821,17 +888,20 @@ Partial Class VehicleForm Me.PnLoad.Controls.Add(Me.TbMassExtra) Me.PnLoad.Controls.Add(Me.Label50) Me.PnLoad.Controls.Add(Me.Label46) - Me.PnLoad.Location = New System.Drawing.Point(6, 43) + Me.PnLoad.Location = New System.Drawing.Point(9, 66) + Me.PnLoad.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PnLoad.Name = "PnLoad" - Me.PnLoad.Size = New System.Drawing.Size(269, 58) + Me.PnLoad.Size = New System.Drawing.Size(404, 89) Me.PnLoad.TabIndex = 1 ' 'GrAirRes ' Me.GrAirRes.Controls.Add(Me.PnCdATrTr) - Me.GrAirRes.Location = New System.Drawing.Point(290, 6) + Me.GrAirRes.Location = New System.Drawing.Point(435, 9) + Me.GrAirRes.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GrAirRes.Name = "GrAirRes" - Me.GrAirRes.Size = New System.Drawing.Size(280, 72) + Me.GrAirRes.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GrAirRes.Size = New System.Drawing.Size(420, 111) Me.GrAirRes.TabIndex = 2 Me.GrAirRes.TabStop = false Me.GrAirRes.Text = "Air Resistance" @@ -845,42 +915,47 @@ Partial Class VehicleForm Me.PnCdATrTr.Controls.Add(Me.Label38) Me.PnCdATrTr.Controls.Add(Me.Label3) Me.PnCdATrTr.Dock = System.Windows.Forms.DockStyle.Fill - Me.PnCdATrTr.Location = New System.Drawing.Point(3, 16) + Me.PnCdATrTr.Location = New System.Drawing.Point(4, 24) + Me.PnCdATrTr.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PnCdATrTr.Name = "PnCdATrTr" - Me.PnCdATrTr.Size = New System.Drawing.Size(274, 53) + Me.PnCdATrTr.Size = New System.Drawing.Size(412, 82) Me.PnCdATrTr.TabIndex = 0 ' 'tbVehicleHeight ' - Me.tbVehicleHeight.Location = New System.Drawing.Point(119, 29) + Me.tbVehicleHeight.Location = New System.Drawing.Point(178, 45) + Me.tbVehicleHeight.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbVehicleHeight.Name = "tbVehicleHeight" - Me.tbVehicleHeight.Size = New System.Drawing.Size(57, 20) + Me.tbVehicleHeight.Size = New System.Drawing.Size(84, 26) Me.tbVehicleHeight.TabIndex = 1 ' 'Label11 ' Me.Label11.AutoSize = true - Me.Label11.Location = New System.Drawing.Point(182, 32) + Me.Label11.Location = New System.Drawing.Point(273, 49) + Me.Label11.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label11.Name = "Label11" - Me.Label11.Size = New System.Drawing.Size(21, 13) + Me.Label11.Size = New System.Drawing.Size(30, 20) Me.Label11.TabIndex = 27 Me.Label11.Text = "[m]" ' 'Label20 ' Me.Label20.AutoSize = true - Me.Label20.Location = New System.Drawing.Point(75, 32) + Me.Label20.Location = New System.Drawing.Point(112, 49) + Me.Label20.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label20.Name = "Label20" - Me.Label20.Size = New System.Drawing.Size(38, 13) + Me.Label20.Size = New System.Drawing.Size(56, 20) Me.Label20.TabIndex = 26 Me.Label20.Text = "Height" ' 'Label38 ' Me.Label38.AutoSize = true - Me.Label38.Location = New System.Drawing.Point(182, 6) + Me.Label38.Location = New System.Drawing.Point(273, 9) + Me.Label38.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label38.Name = "Label38" - Me.Label38.Size = New System.Drawing.Size(24, 13) + Me.Label38.Size = New System.Drawing.Size(35, 20) Me.Label38.TabIndex = 24 Me.Label38.Text = "[m²]" ' @@ -888,9 +963,10 @@ Partial Class VehicleForm ' Me.PictureBox1.BackColor = System.Drawing.Color.White Me.PictureBox1.Image = Global.TUGraz.VECTO.My.Resources.Resources.VECTO_VEH - Me.PictureBox1.Location = New System.Drawing.Point(0, 28) + Me.PictureBox1.Location = New System.Drawing.Point(0, 43) + Me.PictureBox1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(604, 40) + Me.PictureBox1.Size = New System.Drawing.Size(906, 62) Me.PictureBox1.TabIndex = 37 Me.PictureBox1.TabStop = false ' @@ -917,9 +993,11 @@ Partial Class VehicleForm 'GroupBox3 ' Me.GroupBox3.Controls.Add(Me.PnWheelDiam) - Me.GroupBox3.Location = New System.Drawing.Point(6, 130) + Me.GroupBox3.Location = New System.Drawing.Point(9, 200) + Me.GroupBox3.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(278, 50) + Me.GroupBox3.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox3.Size = New System.Drawing.Size(417, 77) Me.GroupBox3.TabIndex = 1 Me.GroupBox3.TabStop = false Me.GroupBox3.Text = "Dynamic Tyre Radius" @@ -928,9 +1006,11 @@ Partial Class VehicleForm ' Me.GroupBox2.Controls.Add(Me.pnAngledriveFields) Me.GroupBox2.Controls.Add(Me.cbAngledriveType) - Me.GroupBox2.Location = New System.Drawing.Point(291, 76) + Me.GroupBox2.Location = New System.Drawing.Point(436, 117) + Me.GroupBox2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(282, 111) + Me.GroupBox2.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox2.Size = New System.Drawing.Size(423, 171) Me.GroupBox2.TabIndex = 3 Me.GroupBox2.TabStop = false Me.GroupBox2.Text = "Angledrive" @@ -943,35 +1023,39 @@ Partial Class VehicleForm Me.pnAngledriveFields.Controls.Add(Me.tbAngledriveRatio) Me.pnAngledriveFields.Controls.Add(Me.btAngledriveLossMapBrowse) Me.pnAngledriveFields.Controls.Add(Me.tbAngledriveLossMapPath) - Me.pnAngledriveFields.Location = New System.Drawing.Point(3, 42) + Me.pnAngledriveFields.Location = New System.Drawing.Point(4, 65) + Me.pnAngledriveFields.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnAngledriveFields.Name = "pnAngledriveFields" - Me.pnAngledriveFields.Size = New System.Drawing.Size(272, 63) + Me.pnAngledriveFields.Size = New System.Drawing.Size(408, 97) Me.pnAngledriveFields.TabIndex = 1 ' 'Label4 ' Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.Label4.AutoSize = true - Me.Label4.Location = New System.Drawing.Point(246, 6) + Me.Label4.Location = New System.Drawing.Point(369, 9) + Me.Label4.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(16, 13) + Me.Label4.Size = New System.Drawing.Size(22, 20) Me.Label4.TabIndex = 16 Me.Label4.Text = "[-]" ' 'Label12 ' - Me.Label12.Location = New System.Drawing.Point(6, 23) + Me.Label12.Location = New System.Drawing.Point(9, 35) + Me.Label12.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label12.Name = "Label12" - Me.Label12.Size = New System.Drawing.Size(263, 16) + Me.Label12.Size = New System.Drawing.Size(394, 25) Me.Label12.TabIndex = 17 Me.Label12.Text = "Transmission Loss Map or Efficiency Value [0..1]" Me.Label12.TextAlign = System.Drawing.ContentAlignment.BottomLeft ' 'Label10 ' - Me.Label10.Location = New System.Drawing.Point(139, 6) + Me.Label10.Location = New System.Drawing.Point(208, 9) + Me.Label10.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(44, 18) + Me.Label10.Size = New System.Drawing.Size(66, 28) Me.Label10.TabIndex = 15 Me.Label10.Text = "Ratio" Me.Label10.TextAlign = System.Drawing.ContentAlignment.TopRight @@ -979,45 +1063,50 @@ Partial Class VehicleForm 'tbAngledriveRatio ' Me.tbAngledriveRatio.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) - Me.tbAngledriveRatio.Location = New System.Drawing.Point(188, 4) + Me.tbAngledriveRatio.Location = New System.Drawing.Point(282, 6) + Me.tbAngledriveRatio.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbAngledriveRatio.Name = "tbAngledriveRatio" - Me.tbAngledriveRatio.Size = New System.Drawing.Size(56, 20) + Me.tbAngledriveRatio.Size = New System.Drawing.Size(82, 26) Me.tbAngledriveRatio.TabIndex = 0 ' 'btAngledriveLossMapBrowse ' Me.btAngledriveLossMapBrowse.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles) Me.btAngledriveLossMapBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btAngledriveLossMapBrowse.Location = New System.Drawing.Point(245, 39) + Me.btAngledriveLossMapBrowse.Location = New System.Drawing.Point(368, 60) + Me.btAngledriveLossMapBrowse.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btAngledriveLossMapBrowse.Name = "btAngledriveLossMapBrowse" - Me.btAngledriveLossMapBrowse.Size = New System.Drawing.Size(24, 24) + Me.btAngledriveLossMapBrowse.Size = New System.Drawing.Size(36, 37) Me.btAngledriveLossMapBrowse.TabIndex = 2 Me.btAngledriveLossMapBrowse.UseVisualStyleBackColor = true ' 'tbAngledriveLossMapPath ' Me.tbAngledriveLossMapPath.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles) - Me.tbAngledriveLossMapPath.Location = New System.Drawing.Point(6, 41) + Me.tbAngledriveLossMapPath.Location = New System.Drawing.Point(9, 63) + Me.tbAngledriveLossMapPath.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbAngledriveLossMapPath.Name = "tbAngledriveLossMapPath" - Me.tbAngledriveLossMapPath.Size = New System.Drawing.Size(239, 20) + Me.tbAngledriveLossMapPath.Size = New System.Drawing.Size(356, 26) Me.tbAngledriveLossMapPath.TabIndex = 1 ' 'cbAngledriveType ' Me.cbAngledriveType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cbAngledriveType.FormattingEnabled = true - Me.cbAngledriveType.Location = New System.Drawing.Point(6, 19) + Me.cbAngledriveType.Location = New System.Drawing.Point(9, 29) + Me.cbAngledriveType.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbAngledriveType.Name = "cbAngledriveType" - Me.cbAngledriveType.Size = New System.Drawing.Size(266, 21) + Me.cbAngledriveType.Size = New System.Drawing.Size(397, 28) Me.cbAngledriveType.TabIndex = 0 ' 'PicVehicle ' Me.PicVehicle.BackColor = System.Drawing.Color.LightGray Me.PicVehicle.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.PicVehicle.Location = New System.Drawing.Point(281, 70) + Me.PicVehicle.Location = New System.Drawing.Point(422, 108) + Me.PicVehicle.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.PicVehicle.Name = "PicVehicle" - Me.PicVehicle.Size = New System.Drawing.Size(300, 88) + Me.PicVehicle.Size = New System.Drawing.Size(449, 134) Me.PicVehicle.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage Me.PicVehicle.TabIndex = 39 Me.PicVehicle.TabStop = false @@ -1025,42 +1114,47 @@ Partial Class VehicleForm 'Label8 ' Me.Label8.AutoSize = true - Me.Label8.Location = New System.Drawing.Point(85, 144) + Me.Label8.Location = New System.Drawing.Point(128, 222) + Me.Label8.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(62, 13) + Me.Label8.Size = New System.Drawing.Size(93, 20) Me.Label8.TabIndex = 10 Me.Label8.Text = "HDV Group" ' 'cbPTOType ' Me.cbPTOType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbPTOType.Location = New System.Drawing.Point(6, 17) + Me.cbPTOType.Location = New System.Drawing.Point(9, 26) + Me.cbPTOType.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbPTOType.Name = "cbPTOType" - Me.cbPTOType.Size = New System.Drawing.Size(550, 21) + Me.cbPTOType.Size = New System.Drawing.Size(823, 28) Me.cbPTOType.TabIndex = 0 Me.ToolTip1.SetToolTip(Me.cbPTOType, "Transmission type to the PTO consumer") ' 'tbPTOCycle ' - Me.tbPTOCycle.Location = New System.Drawing.Point(6, 71) + Me.tbPTOCycle.Location = New System.Drawing.Point(9, 109) + Me.tbPTOCycle.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbPTOCycle.Name = "tbPTOCycle" - Me.tbPTOCycle.Size = New System.Drawing.Size(239, 20) + Me.tbPTOCycle.Size = New System.Drawing.Size(356, 26) Me.tbPTOCycle.TabIndex = 2 Me.ToolTip1.SetToolTip(Me.tbPTOCycle, "PTO Consumer Loss Map") ' 'tbPTOLossMap ' - Me.tbPTOLossMap.Location = New System.Drawing.Point(6, 24) + Me.tbPTOLossMap.Location = New System.Drawing.Point(9, 37) + Me.tbPTOLossMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbPTOLossMap.Name = "tbPTOLossMap" - Me.tbPTOLossMap.Size = New System.Drawing.Size(239, 20) + Me.tbPTOLossMap.Size = New System.Drawing.Size(356, 26) Me.tbPTOLossMap.TabIndex = 0 Me.ToolTip1.SetToolTip(Me.tbPTOLossMap, "PTO Consumer Loss Map") ' 'tbPTODrive ' - Me.tbPTODrive.Location = New System.Drawing.Point(6, 183) + Me.tbPTODrive.Location = New System.Drawing.Point(9, 282) + Me.tbPTODrive.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbPTODrive.Name = "tbPTODrive" - Me.tbPTODrive.Size = New System.Drawing.Size(239, 20) + Me.tbPTODrive.Size = New System.Drawing.Size(356, 26) Me.tbPTODrive.TabIndex = 5 Me.ToolTip1.SetToolTip(Me.tbPTODrive, "PTO Consumer Loss Map") ' @@ -1069,13 +1163,15 @@ Partial Class VehicleForm Me.tcVehicleComponents.Controls.Add(Me.tpGeneral) Me.tcVehicleComponents.Controls.Add(Me.tpPowertrain) Me.tcVehicleComponents.Controls.Add(Me.tpElectricComponents) + Me.tcVehicleComponents.Controls.Add(Me.tpGensetComponents) Me.tcVehicleComponents.Controls.Add(Me.tpTorqueLimits) Me.tcVehicleComponents.Controls.Add(Me.tpADAS) Me.tcVehicleComponents.Controls.Add(Me.tpRoadSweeper) - Me.tcVehicleComponents.Location = New System.Drawing.Point(6, 173) + Me.tcVehicleComponents.Location = New System.Drawing.Point(8, 266) + Me.tcVehicleComponents.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tcVehicleComponents.Name = "tcVehicleComponents" Me.tcVehicleComponents.SelectedIndex = 0 - Me.tcVehicleComponents.Size = New System.Drawing.Size(656, 400) + Me.tcVehicleComponents.Size = New System.Drawing.Size(984, 615) Me.tcVehicleComponents.TabIndex = 5 ' 'tpGeneral @@ -1085,10 +1181,11 @@ Partial Class VehicleForm Me.tpGeneral.Controls.Add(Me.GroupBox6) Me.tpGeneral.Controls.Add(Me.GroupBox8) Me.tpGeneral.Controls.Add(Me.GrAirRes) - Me.tpGeneral.Location = New System.Drawing.Point(4, 22) + Me.tpGeneral.Location = New System.Drawing.Point(4, 29) + Me.tpGeneral.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tpGeneral.Name = "tpGeneral" - Me.tpGeneral.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3) - Me.tpGeneral.Size = New System.Drawing.Size(648, 374) + Me.tpGeneral.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tpGeneral.Size = New System.Drawing.Size(976, 582) Me.tpGeneral.TabIndex = 0 Me.tpGeneral.Text = "General" Me.tpGeneral.UseVisualStyleBackColor = true @@ -1099,10 +1196,11 @@ Partial Class VehicleForm Me.tpPowertrain.Controls.Add(Me.GroupBox9) Me.tpPowertrain.Controls.Add(Me.GroupBox7) Me.tpPowertrain.Controls.Add(Me.GroupBox2) - Me.tpPowertrain.Location = New System.Drawing.Point(4, 22) + Me.tpPowertrain.Location = New System.Drawing.Point(4, 29) + Me.tpPowertrain.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tpPowertrain.Name = "tpPowertrain" - Me.tpPowertrain.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3) - Me.tpPowertrain.Size = New System.Drawing.Size(648, 374) + Me.tpPowertrain.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tpPowertrain.Size = New System.Drawing.Size(976, 579) Me.tpPowertrain.TabIndex = 1 Me.tpPowertrain.Text = "Powertrain" Me.tpPowertrain.UseVisualStyleBackColor = true @@ -1110,9 +1208,11 @@ Partial Class VehicleForm 'GroupBox4 ' Me.GroupBox4.Controls.Add(Me.Panel1) - Me.GroupBox4.Location = New System.Drawing.Point(6, 7) + Me.GroupBox4.Location = New System.Drawing.Point(9, 11) + Me.GroupBox4.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox4.Name = "GroupBox4" - Me.GroupBox4.Size = New System.Drawing.Size(279, 63) + Me.GroupBox4.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox4.Size = New System.Drawing.Size(418, 97) Me.GroupBox4.TabIndex = 0 Me.GroupBox4.TabStop = false Me.GroupBox4.Text = "Vehicle Idling Speed" @@ -1123,33 +1223,37 @@ Partial Class VehicleForm Me.Panel1.Controls.Add(Me.Label18) Me.Panel1.Controls.Add(Me.Label19) Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill - Me.Panel1.Location = New System.Drawing.Point(3, 16) + Me.Panel1.Location = New System.Drawing.Point(4, 24) + Me.Panel1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(273, 44) + Me.Panel1.Size = New System.Drawing.Size(410, 68) Me.Panel1.TabIndex = 0 ' 'tbVehIdlingSpeed ' - Me.tbVehIdlingSpeed.Location = New System.Drawing.Point(173, 3) + Me.tbVehIdlingSpeed.Location = New System.Drawing.Point(260, 5) + Me.tbVehIdlingSpeed.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbVehIdlingSpeed.Name = "tbVehIdlingSpeed" - Me.tbVehIdlingSpeed.Size = New System.Drawing.Size(57, 20) + Me.tbVehIdlingSpeed.Size = New System.Drawing.Size(84, 26) Me.tbVehIdlingSpeed.TabIndex = 0 ' 'Label18 ' Me.Label18.AutoSize = true - Me.Label18.Location = New System.Drawing.Point(233, 6) + Me.Label18.Location = New System.Drawing.Point(350, 9) + Me.Label18.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label18.Name = "Label18" - Me.Label18.Size = New System.Drawing.Size(30, 13) + Me.Label18.Size = New System.Drawing.Size(44, 20) Me.Label18.TabIndex = 24 Me.Label18.Text = "[rpm]" ' 'Label19 ' Me.Label19.AutoSize = true - Me.Label19.Location = New System.Drawing.Point(73, 6) + Me.Label19.Location = New System.Drawing.Point(110, 9) + Me.Label19.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label19.Name = "Label19" - Me.Label19.Size = New System.Drawing.Size(94, 13) + Me.Label19.Size = New System.Drawing.Size(140, 20) Me.Label19.TabIndex = 8 Me.Label19.Text = "Engine Idle Speed" ' @@ -1157,9 +1261,11 @@ Partial Class VehicleForm ' Me.GroupBox9.Controls.Add(Me.cbTankSystem) Me.GroupBox9.Controls.Add(Me.Label23) - Me.GroupBox9.Location = New System.Drawing.Point(306, 7) + Me.GroupBox9.Location = New System.Drawing.Point(459, 11) + Me.GroupBox9.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.GroupBox9.Name = "GroupBox9" - Me.GroupBox9.Size = New System.Drawing.Size(264, 63) + Me.GroupBox9.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.GroupBox9.Size = New System.Drawing.Size(396, 97) Me.GroupBox9.TabIndex = 2 Me.GroupBox9.TabStop = false Me.GroupBox9.Text = "Tank System" @@ -1167,16 +1273,18 @@ Partial Class VehicleForm 'cbTankSystem ' Me.cbTankSystem.FormattingEnabled = true - Me.cbTankSystem.Location = New System.Drawing.Point(9, 33) + Me.cbTankSystem.Location = New System.Drawing.Point(14, 51) + Me.cbTankSystem.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbTankSystem.Name = "cbTankSystem" - Me.cbTankSystem.Size = New System.Drawing.Size(247, 21) + Me.cbTankSystem.Size = New System.Drawing.Size(368, 28) Me.cbTankSystem.TabIndex = 1 ' 'Label23 ' Me.Label23.AutoSize = true Me.Label23.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) - Me.Label23.Location = New System.Drawing.Point(6, 16) + Me.Label23.Location = New System.Drawing.Point(9, 25) + Me.Label23.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label23.Name = "Label23" Me.Label23.Size = New System.Drawing.Size(277, 20) Me.Label23.TabIndex = 0 @@ -1186,12 +1294,13 @@ Partial Class VehicleForm ' Me.tpElectricComponents.Controls.Add(Me.gbBattery) Me.tpElectricComponents.Controls.Add(Me.gpElectricMotor) - Me.tpElectricComponents.Location = New System.Drawing.Point(4, 22) + Me.tpElectricComponents.Location = New System.Drawing.Point(4, 29) + Me.tpElectricComponents.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tpElectricComponents.Name = "tpElectricComponents" - Me.tpElectricComponents.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3) - Me.tpElectricComponents.Size = New System.Drawing.Size(648, 374) + Me.tpElectricComponents.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tpElectricComponents.Size = New System.Drawing.Size(976, 582) Me.tpElectricComponents.TabIndex = 4 - Me.tpElectricComponents.Text = "Electric Components" + Me.tpElectricComponents.Text = "Electric Powertrain Components" Me.tpElectricComponents.UseVisualStyleBackColor = true ' 'gbBattery @@ -1203,9 +1312,11 @@ Partial Class VehicleForm Me.gbBattery.Controls.Add(Me.lblInitialSoCUnit) Me.gbBattery.Controls.Add(Me.tbInitialSoC) Me.gbBattery.Controls.Add(Me.lblInitialSoC) - Me.gbBattery.Location = New System.Drawing.Point(6, 175) + Me.gbBattery.Location = New System.Drawing.Point(9, 269) + Me.gbBattery.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbBattery.Name = "gbBattery" - Me.gbBattery.Size = New System.Drawing.Size(633, 187) + Me.gbBattery.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbBattery.Size = New System.Drawing.Size(950, 288) Me.gbBattery.TabIndex = 2 Me.gbBattery.TabStop = false Me.gbBattery.Text = "Electric Energy Storage system" @@ -1218,10 +1329,11 @@ Partial Class VehicleForm Me.lvREESSPacks.FullRowSelect = true Me.lvREESSPacks.GridLines = true Me.lvREESSPacks.HideSelection = false - Me.lvREESSPacks.Location = New System.Drawing.Point(6, 45) + Me.lvREESSPacks.Location = New System.Drawing.Point(9, 69) + Me.lvREESSPacks.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.lvREESSPacks.MultiSelect = false Me.lvREESSPacks.Name = "lvREESSPacks" - Me.lvREESSPacks.Size = New System.Drawing.Size(553, 102) + Me.lvREESSPacks.Size = New System.Drawing.Size(828, 155) Me.lvREESSPacks.TabIndex = 31 Me.lvREESSPacks.TabStop = false Me.lvREESSPacks.UseCompatibleStateImageBehavior = false @@ -1245,53 +1357,59 @@ Partial Class VehicleForm 'btnAddReessPack ' Me.btnAddReessPack.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon - Me.btnAddReessPack.Location = New System.Drawing.Point(6, 153) + Me.btnAddReessPack.Location = New System.Drawing.Point(9, 235) + Me.btnAddReessPack.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnAddReessPack.Name = "btnAddReessPack" - Me.btnAddReessPack.Size = New System.Drawing.Size(24, 24) + Me.btnAddReessPack.Size = New System.Drawing.Size(36, 37) Me.btnAddReessPack.TabIndex = 1 Me.btnAddReessPack.UseVisualStyleBackColor = true ' 'lblEditReessPack ' Me.lblEditReessPack.AutoSize = true - Me.lblEditReessPack.Location = New System.Drawing.Point(451, 159) + Me.lblEditReessPack.Location = New System.Drawing.Point(676, 245) + Me.lblEditReessPack.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEditReessPack.Name = "lblEditReessPack" - Me.lblEditReessPack.Size = New System.Drawing.Size(106, 13) + Me.lblEditReessPack.Size = New System.Drawing.Size(158, 20) Me.lblEditReessPack.TabIndex = 30 Me.lblEditReessPack.Text = "(Double-Click to Edit)" ' 'btnRemoveReessPack ' Me.btnRemoveReessPack.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon - Me.btnRemoveReessPack.Location = New System.Drawing.Point(33, 153) + Me.btnRemoveReessPack.Location = New System.Drawing.Point(50, 235) + Me.btnRemoveReessPack.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnRemoveReessPack.Name = "btnRemoveReessPack" - Me.btnRemoveReessPack.Size = New System.Drawing.Size(24, 24) + Me.btnRemoveReessPack.Size = New System.Drawing.Size(36, 37) Me.btnRemoveReessPack.TabIndex = 2 Me.btnRemoveReessPack.UseVisualStyleBackColor = true ' 'lblInitialSoCUnit ' Me.lblInitialSoCUnit.AutoSize = true - Me.lblInitialSoCUnit.Location = New System.Drawing.Point(269, 22) + Me.lblInitialSoCUnit.Location = New System.Drawing.Point(404, 34) + Me.lblInitialSoCUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblInitialSoCUnit.Name = "lblInitialSoCUnit" - Me.lblInitialSoCUnit.Size = New System.Drawing.Size(21, 13) + Me.lblInitialSoCUnit.Size = New System.Drawing.Size(31, 20) Me.lblInitialSoCUnit.TabIndex = 27 Me.lblInitialSoCUnit.Text = "[%]" ' 'tbInitialSoC ' - Me.tbInitialSoC.Location = New System.Drawing.Point(204, 19) + Me.tbInitialSoC.Location = New System.Drawing.Point(306, 29) + Me.tbInitialSoC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbInitialSoC.Name = "tbInitialSoC" - Me.tbInitialSoC.Size = New System.Drawing.Size(59, 20) + Me.tbInitialSoC.Size = New System.Drawing.Size(86, 26) Me.tbInitialSoC.TabIndex = 0 ' 'lblInitialSoC ' Me.lblInitialSoC.AutoSize = true - Me.lblInitialSoC.Location = New System.Drawing.Point(7, 22) + Me.lblInitialSoC.Location = New System.Drawing.Point(10, 34) + Me.lblInitialSoC.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblInitialSoC.Name = "lblInitialSoC" Me.lblInitialSoC.RightToLeft = System.Windows.Forms.RightToLeft.Yes - Me.lblInitialSoC.Size = New System.Drawing.Size(54, 13) + Me.lblInitialSoC.Size = New System.Drawing.Size(81, 20) Me.lblInitialSoC.TabIndex = 25 Me.lblInitialSoC.Text = "Initial SoC" ' @@ -1308,12 +1426,14 @@ Partial Class VehicleForm Me.gpElectricMotor.Controls.Add(Me.lblEmCount) Me.gpElectricMotor.Controls.Add(Me.lblEmPosition) Me.gpElectricMotor.Controls.Add(Me.pnElectricMotor) - Me.gpElectricMotor.Location = New System.Drawing.Point(6, 6) + Me.gpElectricMotor.Location = New System.Drawing.Point(9, 9) + Me.gpElectricMotor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gpElectricMotor.Name = "gpElectricMotor" - Me.gpElectricMotor.Size = New System.Drawing.Size(633, 163) + Me.gpElectricMotor.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gpElectricMotor.Size = New System.Drawing.Size(950, 251) Me.gpElectricMotor.TabIndex = 0 Me.gpElectricMotor.TabStop = false - Me.gpElectricMotor.Text = "Electric Motor" + Me.gpElectricMotor.Text = "Electric Machine" ' 'gbRatiosPerGear ' @@ -1321,9 +1441,11 @@ Partial Class VehicleForm Me.gbRatiosPerGear.Controls.Add(Me.btnAddEMRatio) Me.gbRatiosPerGear.Controls.Add(Me.Label29) Me.gbRatiosPerGear.Controls.Add(Me.btnRemoveEMRatio) - Me.gbRatiosPerGear.Location = New System.Drawing.Point(444, 12) + Me.gbRatiosPerGear.Location = New System.Drawing.Point(666, 18) + Me.gbRatiosPerGear.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbRatiosPerGear.Name = "gbRatiosPerGear" - Me.gbRatiosPerGear.Size = New System.Drawing.Size(181, 145) + Me.gbRatiosPerGear.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbRatiosPerGear.Size = New System.Drawing.Size(272, 223) Me.gbRatiosPerGear.TabIndex = 1 Me.gbRatiosPerGear.TabStop = false Me.gbRatiosPerGear.Text = "Transmission Ratio per Gear" @@ -1336,10 +1458,11 @@ Partial Class VehicleForm Me.lvRatioPerGear.FullRowSelect = true Me.lvRatioPerGear.GridLines = true Me.lvRatioPerGear.HideSelection = false - Me.lvRatioPerGear.Location = New System.Drawing.Point(6, 16) + Me.lvRatioPerGear.Location = New System.Drawing.Point(9, 25) + Me.lvRatioPerGear.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.lvRatioPerGear.MultiSelect = false Me.lvRatioPerGear.Name = "lvRatioPerGear" - Me.lvRatioPerGear.Size = New System.Drawing.Size(169, 94) + Me.lvRatioPerGear.Size = New System.Drawing.Size(252, 142) Me.lvRatioPerGear.TabIndex = 7 Me.lvRatioPerGear.TabStop = false Me.lvRatioPerGear.UseCompatibleStateImageBehavior = false @@ -1358,27 +1481,30 @@ Partial Class VehicleForm 'btnAddEMRatio ' Me.btnAddEMRatio.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon - Me.btnAddEMRatio.Location = New System.Drawing.Point(6, 116) + Me.btnAddEMRatio.Location = New System.Drawing.Point(9, 178) + Me.btnAddEMRatio.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnAddEMRatio.Name = "btnAddEMRatio" - Me.btnAddEMRatio.Size = New System.Drawing.Size(24, 24) + Me.btnAddEMRatio.Size = New System.Drawing.Size(36, 37) Me.btnAddEMRatio.TabIndex = 4 Me.btnAddEMRatio.UseVisualStyleBackColor = true ' 'Label29 ' Me.Label29.AutoSize = true - Me.Label29.Location = New System.Drawing.Point(71, 121) + Me.Label29.Location = New System.Drawing.Point(106, 186) + Me.Label29.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label29.Name = "Label29" - Me.Label29.Size = New System.Drawing.Size(106, 13) + Me.Label29.Size = New System.Drawing.Size(158, 20) Me.Label29.TabIndex = 6 Me.Label29.Text = "(Double-Click to Edit)" ' 'btnRemoveEMRatio ' Me.btnRemoveEMRatio.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon - Me.btnRemoveEMRatio.Location = New System.Drawing.Point(33, 116) + Me.btnRemoveEMRatio.Location = New System.Drawing.Point(50, 178) + Me.btnRemoveEMRatio.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnRemoveEMRatio.Name = "btnRemoveEMRatio" - Me.btnRemoveEMRatio.Size = New System.Drawing.Size(24, 24) + Me.btnRemoveEMRatio.Size = New System.Drawing.Size(36, 37) Me.btnRemoveEMRatio.TabIndex = 5 Me.btnRemoveEMRatio.UseVisualStyleBackColor = true ' @@ -1386,74 +1512,83 @@ Partial Class VehicleForm ' Me.btnEmADCLossMap.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles) Me.btnEmADCLossMap.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnEmADCLossMap.Location = New System.Drawing.Point(414, 127) + Me.btnEmADCLossMap.Location = New System.Drawing.Point(621, 195) + Me.btnEmADCLossMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnEmADCLossMap.Name = "btnEmADCLossMap" - Me.btnEmADCLossMap.Size = New System.Drawing.Size(24, 24) + Me.btnEmADCLossMap.Size = New System.Drawing.Size(36, 37) Me.btnEmADCLossMap.TabIndex = 5 Me.btnEmADCLossMap.UseVisualStyleBackColor = true ' 'tbEmADCLossMap ' - Me.tbEmADCLossMap.Location = New System.Drawing.Point(204, 131) + Me.tbEmADCLossMap.Location = New System.Drawing.Point(306, 202) + Me.tbEmADCLossMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbEmADCLossMap.Name = "tbEmADCLossMap" - Me.tbEmADCLossMap.Size = New System.Drawing.Size(202, 20) + Me.tbEmADCLossMap.Size = New System.Drawing.Size(301, 26) Me.tbEmADCLossMap.TabIndex = 4 ' 'lblEmADCLossmap ' Me.lblEmADCLossmap.AutoSize = true - Me.lblEmADCLossmap.Location = New System.Drawing.Point(7, 134) + Me.lblEmADCLossmap.Location = New System.Drawing.Point(10, 206) + Me.lblEmADCLossmap.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEmADCLossmap.Name = "lblEmADCLossmap" - Me.lblEmADCLossmap.Size = New System.Drawing.Size(100, 13) + Me.lblEmADCLossmap.Size = New System.Drawing.Size(148, 20) Me.lblEmADCLossmap.TabIndex = 25 Me.lblEmADCLossmap.Text = "Loss Map EM ADC:" ' 'tbRatioEm ' - Me.tbRatioEm.Location = New System.Drawing.Point(204, 105) + Me.tbRatioEm.Location = New System.Drawing.Point(306, 162) + Me.tbRatioEm.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbRatioEm.Name = "tbRatioEm" - Me.tbRatioEm.Size = New System.Drawing.Size(59, 20) + Me.tbRatioEm.Size = New System.Drawing.Size(86, 26) Me.tbRatioEm.TabIndex = 3 ' 'lblRatioEm ' Me.lblRatioEm.AutoSize = true - Me.lblRatioEm.Location = New System.Drawing.Point(7, 108) + Me.lblRatioEm.Location = New System.Drawing.Point(10, 166) + Me.lblRatioEm.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblRatioEm.Name = "lblRatioEm" - Me.lblRatioEm.Size = New System.Drawing.Size(79, 13) + Me.lblRatioEm.Size = New System.Drawing.Size(117, 20) Me.lblRatioEm.TabIndex = 23 Me.lblRatioEm.Text = "Ratio EM ADC:" ' 'tbEmCount ' - Me.tbEmCount.Location = New System.Drawing.Point(204, 79) + Me.tbEmCount.Location = New System.Drawing.Point(306, 122) + Me.tbEmCount.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbEmCount.Name = "tbEmCount" - Me.tbEmCount.Size = New System.Drawing.Size(59, 20) + Me.tbEmCount.Size = New System.Drawing.Size(86, 26) Me.tbEmCount.TabIndex = 2 ' 'cbEmPos ' Me.cbEmPos.FormattingEnabled = true - Me.cbEmPos.Location = New System.Drawing.Point(142, 52) + Me.cbEmPos.Location = New System.Drawing.Point(213, 80) + Me.cbEmPos.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbEmPos.Name = "cbEmPos" - Me.cbEmPos.Size = New System.Drawing.Size(121, 21) + Me.cbEmPos.Size = New System.Drawing.Size(180, 28) Me.cbEmPos.TabIndex = 1 ' 'lblEmCount ' Me.lblEmCount.AutoSize = true - Me.lblEmCount.Location = New System.Drawing.Point(7, 82) + Me.lblEmCount.Location = New System.Drawing.Point(10, 126) + Me.lblEmCount.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEmCount.Name = "lblEmCount" - Me.lblEmCount.Size = New System.Drawing.Size(83, 13) + Me.lblEmCount.Size = New System.Drawing.Size(123, 20) Me.lblEmCount.TabIndex = 20 Me.lblEmCount.Text = "Number of EMs:" ' 'lblEmPosition ' Me.lblEmPosition.AutoSize = true - Me.lblEmPosition.Location = New System.Drawing.Point(7, 56) + Me.lblEmPosition.Location = New System.Drawing.Point(10, 86) + Me.lblEmPosition.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEmPosition.Name = "lblEmPosition" - Me.lblEmPosition.Size = New System.Drawing.Size(47, 13) + Me.lblEmPosition.Size = New System.Drawing.Size(69, 20) Me.lblEmPosition.TabIndex = 19 Me.lblEmPosition.Text = "Position:" ' @@ -1462,27 +1597,30 @@ Partial Class VehicleForm Me.pnElectricMotor.Controls.Add(Me.btnOpenElectricMotor) Me.pnElectricMotor.Controls.Add(Me.btnBrowseElectricMotor) Me.pnElectricMotor.Controls.Add(Me.tbElectricMotor) - Me.pnElectricMotor.Location = New System.Drawing.Point(6, 19) + Me.pnElectricMotor.Location = New System.Drawing.Point(9, 29) + Me.pnElectricMotor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnElectricMotor.Name = "pnElectricMotor" - Me.pnElectricMotor.Size = New System.Drawing.Size(432, 27) + Me.pnElectricMotor.Size = New System.Drawing.Size(648, 42) Me.pnElectricMotor.TabIndex = 0 ' 'btnOpenElectricMotor ' - Me.btnOpenElectricMotor.Location = New System.Drawing.Point(4, 3) + Me.btnOpenElectricMotor.Location = New System.Drawing.Point(6, 5) + Me.btnOpenElectricMotor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnOpenElectricMotor.Name = "btnOpenElectricMotor" - Me.btnOpenElectricMotor.Size = New System.Drawing.Size(94, 21) + Me.btnOpenElectricMotor.Size = New System.Drawing.Size(141, 32) Me.btnOpenElectricMotor.TabIndex = 0 - Me.btnOpenElectricMotor.Text = "Electric Motor" + Me.btnOpenElectricMotor.Text = "Electric Machine" Me.btnOpenElectricMotor.UseVisualStyleBackColor = true ' 'btnBrowseElectricMotor ' Me.btnBrowseElectricMotor.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) Me.btnBrowseElectricMotor.Image = CType(resources.GetObject("btnBrowseElectricMotor.Image"),System.Drawing.Image) - Me.btnBrowseElectricMotor.Location = New System.Drawing.Point(406, 2) + Me.btnBrowseElectricMotor.Location = New System.Drawing.Point(609, 3) + Me.btnBrowseElectricMotor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnBrowseElectricMotor.Name = "btnBrowseElectricMotor" - Me.btnBrowseElectricMotor.Size = New System.Drawing.Size(24, 24) + Me.btnBrowseElectricMotor.Size = New System.Drawing.Size(36, 37) Me.btnBrowseElectricMotor.TabIndex = 2 Me.btnBrowseElectricMotor.UseVisualStyleBackColor = true ' @@ -1490,9 +1628,10 @@ Partial Class VehicleForm ' Me.tbElectricMotor.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) - Me.tbElectricMotor.Location = New System.Drawing.Point(104, 4) + Me.tbElectricMotor.Location = New System.Drawing.Point(156, 6) + Me.tbElectricMotor.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbElectricMotor.Name = "tbElectricMotor" - Me.tbElectricMotor.Size = New System.Drawing.Size(296, 20) + Me.tbElectricMotor.Size = New System.Drawing.Size(442, 26) Me.tbElectricMotor.TabIndex = 1 ' 'tpTorqueLimits @@ -1500,9 +1639,10 @@ Partial Class VehicleForm Me.tpTorqueLimits.Controls.Add(Me.gbPropulsionTorque) Me.tpTorqueLimits.Controls.Add(Me.gbEMTorqueLimits) Me.tpTorqueLimits.Controls.Add(Me.bgVehicleTorqueLimits) - Me.tpTorqueLimits.Location = New System.Drawing.Point(4, 22) + Me.tpTorqueLimits.Location = New System.Drawing.Point(4, 29) + Me.tpTorqueLimits.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tpTorqueLimits.Name = "tpTorqueLimits" - Me.tpTorqueLimits.Size = New System.Drawing.Size(648, 374) + Me.tpTorqueLimits.Size = New System.Drawing.Size(976, 579) Me.tpTorqueLimits.TabIndex = 2 Me.tpTorqueLimits.Text = "Torque Limits" Me.tpTorqueLimits.UseVisualStyleBackColor = true @@ -1511,9 +1651,11 @@ Partial Class VehicleForm ' Me.gbPropulsionTorque.Controls.Add(Me.btnPropulsionTorqueLimit) Me.gbPropulsionTorque.Controls.Add(Me.tbPropulsionTorqueLimit) - Me.gbPropulsionTorque.Location = New System.Drawing.Point(3, 236) + Me.gbPropulsionTorque.Location = New System.Drawing.Point(4, 363) + Me.gbPropulsionTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbPropulsionTorque.Name = "gbPropulsionTorque" - Me.gbPropulsionTorque.Size = New System.Drawing.Size(407, 52) + Me.gbPropulsionTorque.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbPropulsionTorque.Size = New System.Drawing.Size(610, 80) Me.gbPropulsionTorque.TabIndex = 2 Me.gbPropulsionTorque.TabStop = false Me.gbPropulsionTorque.Text = "Propulsion Torque Limit" @@ -1521,26 +1663,30 @@ Partial Class VehicleForm 'btnPropulsionTorqueLimit ' Me.btnPropulsionTorqueLimit.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnPropulsionTorqueLimit.Location = New System.Drawing.Point(331, 17) + Me.btnPropulsionTorqueLimit.Location = New System.Drawing.Point(496, 26) + Me.btnPropulsionTorqueLimit.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnPropulsionTorqueLimit.Name = "btnPropulsionTorqueLimit" - Me.btnPropulsionTorqueLimit.Size = New System.Drawing.Size(24, 24) + Me.btnPropulsionTorqueLimit.Size = New System.Drawing.Size(36, 37) Me.btnPropulsionTorqueLimit.TabIndex = 1 Me.btnPropulsionTorqueLimit.UseVisualStyleBackColor = true ' 'tbPropulsionTorqueLimit ' - Me.tbPropulsionTorqueLimit.Location = New System.Drawing.Point(6, 20) + Me.tbPropulsionTorqueLimit.Location = New System.Drawing.Point(9, 31) + Me.tbPropulsionTorqueLimit.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbPropulsionTorqueLimit.Name = "tbPropulsionTorqueLimit" - Me.tbPropulsionTorqueLimit.Size = New System.Drawing.Size(319, 20) + Me.tbPropulsionTorqueLimit.Size = New System.Drawing.Size(476, 26) Me.tbPropulsionTorqueLimit.TabIndex = 0 ' 'gbEMTorqueLimits ' Me.gbEMTorqueLimits.Controls.Add(Me.btnEmTorqueLimits) Me.gbEMTorqueLimits.Controls.Add(Me.tbEmTorqueLimits) - Me.gbEMTorqueLimits.Location = New System.Drawing.Point(3, 178) + Me.gbEMTorqueLimits.Location = New System.Drawing.Point(4, 274) + Me.gbEMTorqueLimits.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbEMTorqueLimits.Name = "gbEMTorqueLimits" - Me.gbEMTorqueLimits.Size = New System.Drawing.Size(407, 52) + Me.gbEMTorqueLimits.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbEMTorqueLimits.Size = New System.Drawing.Size(610, 80) Me.gbEMTorqueLimits.TabIndex = 1 Me.gbEMTorqueLimits.TabStop = false Me.gbEMTorqueLimits.Text = "Electric Machine Torque Limits" @@ -1548,17 +1694,19 @@ Partial Class VehicleForm 'btnEmTorqueLimits ' Me.btnEmTorqueLimits.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnEmTorqueLimits.Location = New System.Drawing.Point(331, 17) + Me.btnEmTorqueLimits.Location = New System.Drawing.Point(496, 26) + Me.btnEmTorqueLimits.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnEmTorqueLimits.Name = "btnEmTorqueLimits" - Me.btnEmTorqueLimits.Size = New System.Drawing.Size(24, 24) + Me.btnEmTorqueLimits.Size = New System.Drawing.Size(36, 37) Me.btnEmTorqueLimits.TabIndex = 1 Me.btnEmTorqueLimits.UseVisualStyleBackColor = true ' 'tbEmTorqueLimits ' - Me.tbEmTorqueLimits.Location = New System.Drawing.Point(6, 20) + Me.tbEmTorqueLimits.Location = New System.Drawing.Point(9, 31) + Me.tbEmTorqueLimits.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbEmTorqueLimits.Name = "tbEmTorqueLimits" - Me.tbEmTorqueLimits.Size = New System.Drawing.Size(319, 20) + Me.tbEmTorqueLimits.Size = New System.Drawing.Size(476, 26) Me.tbEmTorqueLimits.TabIndex = 0 ' 'bgVehicleTorqueLimits @@ -1567,9 +1715,11 @@ Partial Class VehicleForm Me.bgVehicleTorqueLimits.Controls.Add(Me.btAddMaxTorqueEntry) Me.bgVehicleTorqueLimits.Controls.Add(Me.Label17) Me.bgVehicleTorqueLimits.Controls.Add(Me.btDelMaxTorqueEntry) - Me.bgVehicleTorqueLimits.Location = New System.Drawing.Point(3, 9) + Me.bgVehicleTorqueLimits.Location = New System.Drawing.Point(4, 14) + Me.bgVehicleTorqueLimits.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.bgVehicleTorqueLimits.Name = "bgVehicleTorqueLimits" - Me.bgVehicleTorqueLimits.Size = New System.Drawing.Size(407, 163) + Me.bgVehicleTorqueLimits.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.bgVehicleTorqueLimits.Size = New System.Drawing.Size(610, 251) Me.bgVehicleTorqueLimits.TabIndex = 0 Me.bgVehicleTorqueLimits.TabStop = false Me.bgVehicleTorqueLimits.Text = "ICE Torque Limits" @@ -1582,10 +1732,11 @@ Partial Class VehicleForm Me.lvTorqueLimits.FullRowSelect = true Me.lvTorqueLimits.GridLines = true Me.lvTorqueLimits.HideSelection = false - Me.lvTorqueLimits.Location = New System.Drawing.Point(6, 19) + Me.lvTorqueLimits.Location = New System.Drawing.Point(9, 29) + Me.lvTorqueLimits.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.lvTorqueLimits.MultiSelect = false Me.lvTorqueLimits.Name = "lvTorqueLimits" - Me.lvTorqueLimits.Size = New System.Drawing.Size(282, 102) + Me.lvTorqueLimits.Size = New System.Drawing.Size(421, 155) Me.lvTorqueLimits.TabIndex = 7 Me.lvTorqueLimits.TabStop = false Me.lvTorqueLimits.UseCompatibleStateImageBehavior = false @@ -1604,37 +1755,41 @@ Partial Class VehicleForm 'btAddMaxTorqueEntry ' Me.btAddMaxTorqueEntry.Image = Global.TUGraz.VECTO.My.Resources.Resources.plus_circle_icon - Me.btAddMaxTorqueEntry.Location = New System.Drawing.Point(6, 127) + Me.btAddMaxTorqueEntry.Location = New System.Drawing.Point(9, 195) + Me.btAddMaxTorqueEntry.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btAddMaxTorqueEntry.Name = "btAddMaxTorqueEntry" - Me.btAddMaxTorqueEntry.Size = New System.Drawing.Size(24, 24) + Me.btAddMaxTorqueEntry.Size = New System.Drawing.Size(36, 37) Me.btAddMaxTorqueEntry.TabIndex = 4 Me.btAddMaxTorqueEntry.UseVisualStyleBackColor = true ' 'Label17 ' Me.Label17.AutoSize = true - Me.Label17.Location = New System.Drawing.Point(182, 124) + Me.Label17.Location = New System.Drawing.Point(273, 191) + Me.Label17.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label17.Name = "Label17" - Me.Label17.Size = New System.Drawing.Size(106, 13) + Me.Label17.Size = New System.Drawing.Size(158, 20) Me.Label17.TabIndex = 6 Me.Label17.Text = "(Double-Click to Edit)" ' 'btDelMaxTorqueEntry ' Me.btDelMaxTorqueEntry.Image = Global.TUGraz.VECTO.My.Resources.Resources.minus_circle_icon - Me.btDelMaxTorqueEntry.Location = New System.Drawing.Point(30, 127) + Me.btDelMaxTorqueEntry.Location = New System.Drawing.Point(45, 195) + Me.btDelMaxTorqueEntry.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btDelMaxTorqueEntry.Name = "btDelMaxTorqueEntry" - Me.btDelMaxTorqueEntry.Size = New System.Drawing.Size(24, 24) + Me.btDelMaxTorqueEntry.Size = New System.Drawing.Size(36, 37) Me.btDelMaxTorqueEntry.TabIndex = 5 Me.btDelMaxTorqueEntry.UseVisualStyleBackColor = true ' 'tpADAS ' Me.tpADAS.Controls.Add(Me.gbADAS) - Me.tpADAS.Location = New System.Drawing.Point(4, 22) + Me.tpADAS.Location = New System.Drawing.Point(4, 29) + Me.tpADAS.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tpADAS.Name = "tpADAS" - Me.tpADAS.Padding = New System.Windows.Forms.Padding(3, 3, 3, 3) - Me.tpADAS.Size = New System.Drawing.Size(648, 374) + Me.tpADAS.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tpADAS.Size = New System.Drawing.Size(976, 579) Me.tpADAS.TabIndex = 3 Me.tpADAS.Text = "ADAS" Me.tpADAS.UseVisualStyleBackColor = true @@ -1647,9 +1802,11 @@ Partial Class VehicleForm Me.gbADAS.Controls.Add(Me.Label22) Me.gbADAS.Controls.Add(Me.cbEngineStopStart) Me.gbADAS.Controls.Add(Me.lblPCC) - Me.gbADAS.Location = New System.Drawing.Point(6, 6) + Me.gbADAS.Location = New System.Drawing.Point(9, 9) + Me.gbADAS.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbADAS.Name = "gbADAS" - Me.gbADAS.Size = New System.Drawing.Size(565, 136) + Me.gbADAS.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbADAS.Size = New System.Drawing.Size(848, 209) Me.gbADAS.TabIndex = 0 Me.gbADAS.TabStop = false Me.gbADAS.Text = "ADAS Options" @@ -1657,9 +1814,10 @@ Partial Class VehicleForm 'cbAtEcoRollReleaseLockupClutch ' Me.cbAtEcoRollReleaseLockupClutch.AutoSize = true - Me.cbAtEcoRollReleaseLockupClutch.Location = New System.Drawing.Point(265, 19) + Me.cbAtEcoRollReleaseLockupClutch.Location = New System.Drawing.Point(398, 29) + Me.cbAtEcoRollReleaseLockupClutch.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbAtEcoRollReleaseLockupClutch.Name = "cbAtEcoRollReleaseLockupClutch" - Me.cbAtEcoRollReleaseLockupClutch.Size = New System.Drawing.Size(250, 21) + Me.cbAtEcoRollReleaseLockupClutch.Size = New System.Drawing.Size(356, 24) Me.cbAtEcoRollReleaseLockupClutch.TabIndex = 3 Me.cbAtEcoRollReleaseLockupClutch.Text = "AT Gearbox: Eco-Roll Release Lockup Clutch" Me.cbAtEcoRollReleaseLockupClutch.UseVisualStyleBackColor = true @@ -1667,34 +1825,38 @@ Partial Class VehicleForm 'cbPcc ' Me.cbPcc.FormattingEnabled = true - Me.cbPcc.Location = New System.Drawing.Point(18, 104) + Me.cbPcc.Location = New System.Drawing.Point(27, 160) + Me.cbPcc.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbPcc.Name = "cbPcc" - Me.cbPcc.Size = New System.Drawing.Size(179, 21) + Me.cbPcc.Size = New System.Drawing.Size(266, 28) Me.cbPcc.TabIndex = 2 ' 'cbEcoRoll ' Me.cbEcoRoll.FormattingEnabled = true - Me.cbEcoRoll.Location = New System.Drawing.Point(18, 58) + Me.cbEcoRoll.Location = New System.Drawing.Point(27, 89) + Me.cbEcoRoll.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbEcoRoll.Name = "cbEcoRoll" - Me.cbEcoRoll.Size = New System.Drawing.Size(179, 21) + Me.cbEcoRoll.Size = New System.Drawing.Size(266, 28) Me.cbEcoRoll.TabIndex = 1 ' 'Label22 ' Me.Label22.AutoSize = true - Me.Label22.Location = New System.Drawing.Point(6, 42) + Me.Label22.Location = New System.Drawing.Point(9, 65) + Me.Label22.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label22.Name = "Label22" - Me.Label22.Size = New System.Drawing.Size(47, 13) + Me.Label22.Size = New System.Drawing.Size(69, 20) Me.Label22.TabIndex = 6 Me.Label22.Text = "Eco-Roll" ' 'cbEngineStopStart ' Me.cbEngineStopStart.AutoSize = true - Me.cbEngineStopStart.Location = New System.Drawing.Point(6, 19) + Me.cbEngineStopStart.Location = New System.Drawing.Point(9, 29) + Me.cbEngineStopStart.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbEngineStopStart.Name = "cbEngineStopStart" - Me.cbEngineStopStart.Size = New System.Drawing.Size(210, 21) + Me.cbEngineStopStart.Size = New System.Drawing.Size(297, 24) Me.cbEngineStopStart.TabIndex = 0 Me.cbEngineStopStart.Text = "Engine Stop/Start during vehicle stop" Me.cbEngineStopStart.UseVisualStyleBackColor = true @@ -1702,9 +1864,10 @@ Partial Class VehicleForm 'lblPCC ' Me.lblPCC.AutoSize = true - Me.lblPCC.Location = New System.Drawing.Point(6, 88) + Me.lblPCC.Location = New System.Drawing.Point(9, 135) + Me.lblPCC.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblPCC.Name = "lblPCC" - Me.lblPCC.Size = New System.Drawing.Size(122, 13) + Me.lblPCC.Size = New System.Drawing.Size(181, 20) Me.lblPCC.TabIndex = 3 Me.lblPCC.Text = "Predictive Cruise Control" ' @@ -1712,9 +1875,10 @@ Partial Class VehicleForm ' Me.tpRoadSweeper.Controls.Add(Me.pnPTO) Me.tpRoadSweeper.Controls.Add(Me.gbPTO) - Me.tpRoadSweeper.Location = New System.Drawing.Point(4, 22) + Me.tpRoadSweeper.Location = New System.Drawing.Point(4, 29) + Me.tpRoadSweeper.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tpRoadSweeper.Name = "tpRoadSweeper" - Me.tpRoadSweeper.Size = New System.Drawing.Size(648, 374) + Me.tpRoadSweeper.Size = New System.Drawing.Size(976, 579) Me.tpRoadSweeper.TabIndex = 4 Me.tpRoadSweeper.Text = "PTO" Me.tpRoadSweeper.UseVisualStyleBackColor = true @@ -1731,9 +1895,10 @@ Partial Class VehicleForm Me.pnPTO.Controls.Add(Me.btPTOLossMapBrowse) Me.pnPTO.Controls.Add(Me.Label7) Me.pnPTO.Controls.Add(Me.tbPTOLossMap) - Me.pnPTO.Location = New System.Drawing.Point(5, 73) + Me.pnPTO.Location = New System.Drawing.Point(8, 112) + Me.pnPTO.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnPTO.Name = "pnPTO" - Me.pnPTO.Size = New System.Drawing.Size(566, 211) + Me.pnPTO.Size = New System.Drawing.Size(849, 325) Me.pnPTO.TabIndex = 1 ' 'gbPTODrive @@ -1744,9 +1909,11 @@ Partial Class VehicleForm Me.gbPTODrive.Controls.Add(Me.tbPtoEngineSpeed) Me.gbPTODrive.Controls.Add(Me.Label25) Me.gbPTODrive.Controls.Add(Me.Label24) - Me.gbPTODrive.Location = New System.Drawing.Point(3, 99) + Me.gbPTODrive.Location = New System.Drawing.Point(4, 152) + Me.gbPTODrive.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbPTODrive.Name = "gbPTODrive" - Me.gbPTODrive.Size = New System.Drawing.Size(556, 55) + Me.gbPTODrive.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbPTODrive.Size = New System.Drawing.Size(834, 85) Me.gbPTODrive.TabIndex = 4 Me.gbPTODrive.TabStop = false Me.gbPTODrive.Text = "Working operation settings (PTO mode 2)" @@ -1754,69 +1921,77 @@ Partial Class VehicleForm 'Label27 ' Me.Label27.AutoSize = true - Me.Label27.Location = New System.Drawing.Point(446, 24) + Me.Label27.Location = New System.Drawing.Point(669, 37) + Me.Label27.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label27.Name = "Label27" - Me.Label27.Size = New System.Drawing.Size(20, 13) + Me.Label27.Size = New System.Drawing.Size(26, 20) Me.Label27.TabIndex = 6 Me.Label27.Text = "[#]" Me.Label27.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'tbPtoGear ' - Me.tbPtoGear.Location = New System.Drawing.Point(371, 21) + Me.tbPtoGear.Location = New System.Drawing.Point(556, 32) + Me.tbPtoGear.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbPtoGear.Name = "tbPtoGear" - Me.tbPtoGear.Size = New System.Drawing.Size(70, 20) + Me.tbPtoGear.Size = New System.Drawing.Size(103, 26) Me.tbPtoGear.TabIndex = 1 ' 'Label26 ' Me.Label26.AutoSize = true - Me.Label26.Location = New System.Drawing.Point(196, 24) + Me.Label26.Location = New System.Drawing.Point(294, 37) + Me.Label26.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label26.Name = "Label26" - Me.Label26.Size = New System.Drawing.Size(30, 13) + Me.Label26.Size = New System.Drawing.Size(44, 20) Me.Label26.TabIndex = 4 Me.Label26.Text = "[rpm]" Me.Label26.TextAlign = System.Drawing.ContentAlignment.MiddleLeft ' 'tbPtoEngineSpeed ' - Me.tbPtoEngineSpeed.Location = New System.Drawing.Point(120, 21) + Me.tbPtoEngineSpeed.Location = New System.Drawing.Point(180, 32) + Me.tbPtoEngineSpeed.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbPtoEngineSpeed.Name = "tbPtoEngineSpeed" - Me.tbPtoEngineSpeed.Size = New System.Drawing.Size(70, 20) + Me.tbPtoEngineSpeed.Size = New System.Drawing.Size(103, 26) Me.tbPtoEngineSpeed.TabIndex = 0 ' 'Label25 ' Me.Label25.AutoSize = true - Me.Label25.Location = New System.Drawing.Point(297, 24) + Me.Label25.Location = New System.Drawing.Point(446, 37) + Me.Label25.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label25.Name = "Label25" - Me.Label25.Size = New System.Drawing.Size(68, 13) + Me.Label25.Size = New System.Drawing.Size(103, 20) Me.Label25.TabIndex = 1 Me.Label25.Text = "Gear number" ' 'Label24 ' Me.Label24.AutoSize = true - Me.Label24.Location = New System.Drawing.Point(7, 24) + Me.Label24.Location = New System.Drawing.Point(10, 37) + Me.Label24.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label24.Name = "Label24" - Me.Label24.Size = New System.Drawing.Size(97, 13) + Me.Label24.Size = New System.Drawing.Size(143, 20) Me.Label24.TabIndex = 0 Me.Label24.Text = "Min. Engine Speed" ' 'btPTOCycleDrive ' Me.btPTOCycleDrive.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btPTOCycleDrive.Location = New System.Drawing.Point(245, 181) + Me.btPTOCycleDrive.Location = New System.Drawing.Point(368, 278) + Me.btPTOCycleDrive.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btPTOCycleDrive.Name = "btPTOCycleDrive" - Me.btPTOCycleDrive.Size = New System.Drawing.Size(24, 24) + Me.btPTOCycleDrive.Size = New System.Drawing.Size(36, 37) Me.btPTOCycleDrive.TabIndex = 6 Me.btPTOCycleDrive.UseVisualStyleBackColor = true ' 'Label28 ' - Me.Label28.Location = New System.Drawing.Point(3, 164) + Me.Label28.Location = New System.Drawing.Point(4, 252) + Me.Label28.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label28.Name = "Label28" - Me.Label28.Size = New System.Drawing.Size(266, 16) + Me.Label28.Size = New System.Drawing.Size(399, 25) Me.Label28.TabIndex = 21 Me.Label28.Text = "PTO Cycle during driving (PTO mode 3) (.vptor)" Me.Label28.TextAlign = System.Drawing.ContentAlignment.BottomLeft @@ -1824,17 +1999,19 @@ Partial Class VehicleForm 'btPTOCycle ' Me.btPTOCycle.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btPTOCycle.Location = New System.Drawing.Point(245, 69) + Me.btPTOCycle.Location = New System.Drawing.Point(368, 106) + Me.btPTOCycle.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btPTOCycle.Name = "btPTOCycle" - Me.btPTOCycle.Size = New System.Drawing.Size(24, 24) + Me.btPTOCycle.Size = New System.Drawing.Size(36, 37) Me.btPTOCycle.TabIndex = 3 Me.btPTOCycle.UseVisualStyleBackColor = true ' 'Label16 ' - Me.Label16.Location = New System.Drawing.Point(3, 52) + Me.Label16.Location = New System.Drawing.Point(4, 80) + Me.Label16.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label16.Name = "Label16" - Me.Label16.Size = New System.Drawing.Size(266, 16) + Me.Label16.Size = New System.Drawing.Size(399, 25) Me.Label16.TabIndex = 18 Me.Label16.Text = "PTO Cycle during standstill (PTO mode 1) (.vptoc)" Me.Label16.TextAlign = System.Drawing.ContentAlignment.BottomLeft @@ -1842,17 +2019,19 @@ Partial Class VehicleForm 'btPTOLossMapBrowse ' Me.btPTOLossMapBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btPTOLossMapBrowse.Location = New System.Drawing.Point(245, 22) + Me.btPTOLossMapBrowse.Location = New System.Drawing.Point(368, 34) + Me.btPTOLossMapBrowse.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btPTOLossMapBrowse.Name = "btPTOLossMapBrowse" - Me.btPTOLossMapBrowse.Size = New System.Drawing.Size(24, 24) + Me.btPTOLossMapBrowse.Size = New System.Drawing.Size(36, 37) Me.btPTOLossMapBrowse.TabIndex = 1 Me.btPTOLossMapBrowse.UseVisualStyleBackColor = true ' 'Label7 ' - Me.Label7.Location = New System.Drawing.Point(3, 5) + Me.Label7.Location = New System.Drawing.Point(4, 8) + Me.Label7.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(201, 16) + Me.Label7.Size = New System.Drawing.Size(302, 25) Me.Label7.TabIndex = 15 Me.Label7.Text = "PTO Consumer Loss Map (.vptoi)" Me.Label7.TextAlign = System.Drawing.ContentAlignment.BottomLeft @@ -1860,9 +2039,11 @@ Partial Class VehicleForm 'gbPTO ' Me.gbPTO.Controls.Add(Me.cbPTOType) - Me.gbPTO.Location = New System.Drawing.Point(5, 10) + Me.gbPTO.Location = New System.Drawing.Point(8, 15) + Me.gbPTO.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.gbPTO.Name = "gbPTO" - Me.gbPTO.Size = New System.Drawing.Size(564, 57) + Me.gbPTO.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbPTO.Size = New System.Drawing.Size(846, 88) Me.gbPTO.TabIndex = 0 Me.gbPTO.TabStop = false Me.gbPTO.Text = "PTO Design Variant" @@ -1871,17 +2052,19 @@ Partial Class VehicleForm ' Me.cbLegislativeClass.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cbLegislativeClass.FormattingEnabled = true - Me.cbLegislativeClass.Location = New System.Drawing.Point(220, 140) + Me.cbLegislativeClass.Location = New System.Drawing.Point(330, 215) + Me.cbLegislativeClass.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.cbLegislativeClass.Name = "cbLegislativeClass" - Me.cbLegislativeClass.Size = New System.Drawing.Size(52, 21) + Me.cbLegislativeClass.Size = New System.Drawing.Size(76, 28) Me.cbLegislativeClass.TabIndex = 4 ' 'Label21 ' Me.Label21.AutoSize = true - Me.Label21.Location = New System.Drawing.Point(32, 123) + Me.Label21.Location = New System.Drawing.Point(48, 189) + Me.Label21.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.Label21.Name = "Label21" - Me.Label21.Size = New System.Drawing.Size(112, 13) + Me.Label21.Size = New System.Drawing.Size(167, 20) Me.Label21.TabIndex = 42 Me.Label21.Text = "Maximum Laden Mass" ' @@ -1890,19 +2073,171 @@ Partial Class VehicleForm Me.lblTitle.AutoSize = true Me.lblTitle.BackColor = System.Drawing.Color.White Me.lblTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 18!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) - Me.lblTitle.Location = New System.Drawing.Point(121, 34) + Me.lblTitle.Location = New System.Drawing.Point(182, 52) + Me.lblTitle.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblTitle.Name = "lblTitle" Me.lblTitle.Size = New System.Drawing.Size(242, 40) Me.lblTitle.TabIndex = 43 Me.lblTitle.Text = "Vehicle TITLE" + ' + 'tpGensetComponents + ' + Me.tpGensetComponents.Controls.Add(Me.tbGenSetICE) + Me.tpGensetComponents.Controls.Add(Me.gbGenSet) + Me.tpGensetComponents.Location = New System.Drawing.Point(4, 29) + Me.tpGensetComponents.Name = "tpGensetComponents" + Me.tpGensetComponents.Size = New System.Drawing.Size(976, 582) + Me.tpGensetComponents.TabIndex = 5 + Me.tpGensetComponents.Text = "GenSet Components" + Me.tpGensetComponents.UseVisualStyleBackColor = true + ' + 'gbGenSet + ' + Me.gbGenSet.Controls.Add(Me.btnGenSetLossMap) + Me.gbGenSet.Controls.Add(Me.tbGenSetADC) + Me.gbGenSet.Controls.Add(Me.lblGenSetADC) + Me.gbGenSet.Controls.Add(Me.tbGenSetRatio) + Me.gbGenSet.Controls.Add(Me.lblGenSetRatio) + Me.gbGenSet.Controls.Add(Me.tbGenSetCount) + Me.gbGenSet.Controls.Add(Me.lblGenSetCount) + Me.gbGenSet.Controls.Add(Me.pnGenSetEM) + Me.gbGenSet.Location = New System.Drawing.Point(9, 9) + Me.gbGenSet.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbGenSet.Name = "gbGenSet" + Me.gbGenSet.Padding = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.gbGenSet.Size = New System.Drawing.Size(950, 207) + Me.gbGenSet.TabIndex = 1 + Me.gbGenSet.TabStop = false + Me.gbGenSet.Text = "Electric Machine" + ' + 'btnGenSetLossMap + ' + Me.btnGenSetLossMap.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left),System.Windows.Forms.AnchorStyles) + Me.btnGenSetLossMap.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon + Me.btnGenSetLossMap.Location = New System.Drawing.Point(618, 160) + Me.btnGenSetLossMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.btnGenSetLossMap.Name = "btnGenSetLossMap" + Me.btnGenSetLossMap.Size = New System.Drawing.Size(36, 37) + Me.btnGenSetLossMap.TabIndex = 5 + Me.btnGenSetLossMap.UseVisualStyleBackColor = true + ' + 'tbGenSetADC + ' + Me.tbGenSetADC.Location = New System.Drawing.Point(307, 165) + Me.tbGenSetADC.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbGenSetADC.Name = "tbGenSetADC" + Me.tbGenSetADC.Size = New System.Drawing.Size(301, 26) + Me.tbGenSetADC.TabIndex = 4 + ' + 'lblGenSetADC + ' + Me.lblGenSetADC.AutoSize = true + Me.lblGenSetADC.Location = New System.Drawing.Point(11, 169) + Me.lblGenSetADC.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblGenSetADC.Name = "lblGenSetADC" + Me.lblGenSetADC.Size = New System.Drawing.Size(148, 20) + Me.lblGenSetADC.TabIndex = 25 + Me.lblGenSetADC.Text = "Loss Map EM ADC:" + ' + 'tbGenSetRatio + ' + Me.tbGenSetRatio.Location = New System.Drawing.Point(307, 125) + Me.tbGenSetRatio.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbGenSetRatio.Name = "tbGenSetRatio" + Me.tbGenSetRatio.Size = New System.Drawing.Size(86, 26) + Me.tbGenSetRatio.TabIndex = 3 + ' + 'lblGenSetRatio + ' + Me.lblGenSetRatio.AutoSize = true + Me.lblGenSetRatio.Location = New System.Drawing.Point(11, 129) + Me.lblGenSetRatio.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblGenSetRatio.Name = "lblGenSetRatio" + Me.lblGenSetRatio.Size = New System.Drawing.Size(117, 20) + Me.lblGenSetRatio.TabIndex = 23 + Me.lblGenSetRatio.Text = "Ratio EM ADC:" + ' + 'tbGenSetCount + ' + Me.tbGenSetCount.Location = New System.Drawing.Point(307, 85) + Me.tbGenSetCount.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbGenSetCount.Name = "tbGenSetCount" + Me.tbGenSetCount.Size = New System.Drawing.Size(86, 26) + Me.tbGenSetCount.TabIndex = 2 + ' + 'lblGenSetCount + ' + Me.lblGenSetCount.AutoSize = true + Me.lblGenSetCount.Location = New System.Drawing.Point(11, 89) + Me.lblGenSetCount.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblGenSetCount.Name = "lblGenSetCount" + Me.lblGenSetCount.Size = New System.Drawing.Size(123, 20) + Me.lblGenSetCount.TabIndex = 20 + Me.lblGenSetCount.Text = "Number of EMs:" + ' + 'pnGenSetEM + ' + Me.pnGenSetEM.Controls.Add(Me.btnOpenGenSetEM) + Me.pnGenSetEM.Controls.Add(Me.btnBrowseGenSetEM) + Me.pnGenSetEM.Controls.Add(Me.tbGenSetEM) + Me.pnGenSetEM.Location = New System.Drawing.Point(9, 29) + Me.pnGenSetEM.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.pnGenSetEM.Name = "pnGenSetEM" + Me.pnGenSetEM.Size = New System.Drawing.Size(648, 42) + Me.pnGenSetEM.TabIndex = 0 + ' + 'btnOpenGenSetEM + ' + Me.btnOpenGenSetEM.Location = New System.Drawing.Point(6, 5) + Me.btnOpenGenSetEM.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.btnOpenGenSetEM.Name = "btnOpenGenSetEM" + Me.btnOpenGenSetEM.Size = New System.Drawing.Size(141, 32) + Me.btnOpenGenSetEM.TabIndex = 0 + Me.btnOpenGenSetEM.Text = "Electric Machine" + Me.btnOpenGenSetEM.UseVisualStyleBackColor = true + ' + 'btnBrowseGenSetEM + ' + Me.btnBrowseGenSetEM.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) + Me.btnBrowseGenSetEM.Image = CType(resources.GetObject("btnBrowseGenSetEM.Image"),System.Drawing.Image) + Me.btnBrowseGenSetEM.Location = New System.Drawing.Point(609, 3) + Me.btnBrowseGenSetEM.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.btnBrowseGenSetEM.Name = "btnBrowseGenSetEM" + Me.btnBrowseGenSetEM.Size = New System.Drawing.Size(36, 37) + Me.btnBrowseGenSetEM.TabIndex = 2 + Me.btnBrowseGenSetEM.UseVisualStyleBackColor = true + ' + 'tbGenSetEM + ' + Me.tbGenSetEM.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right),System.Windows.Forms.AnchorStyles) + Me.tbGenSetEM.Location = New System.Drawing.Point(156, 6) + Me.tbGenSetEM.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbGenSetEM.Name = "tbGenSetEM" + Me.tbGenSetEM.Size = New System.Drawing.Size(442, 26) + Me.tbGenSetEM.TabIndex = 1 + ' + 'tbGenSetICE + ' + Me.tbGenSetICE.BackColor = System.Drawing.SystemColors.Window + Me.tbGenSetICE.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.tbGenSetICE.Font = New System.Drawing.Font("Microsoft Sans Serif", 12!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0,Byte)) + Me.tbGenSetICE.Location = New System.Drawing.Point(18, 236) + Me.tbGenSetICE.Multiline = true + Me.tbGenSetICE.Name = "tbGenSetICE" + Me.tbGenSetICE.ReadOnly = true + Me.tbGenSetICE.Size = New System.Drawing.Size(708, 130) + Me.tbGenSetICE.TabIndex = 3 + Me.tbGenSetICE.Text = "Note: The internal combustion engine of the GenSet is configured in the Job-Edito"& _ + "r dialog." ' 'VehicleForm ' Me.AcceptButton = Me.ButOK - Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!) + Me.AutoScaleDimensions = New System.Drawing.SizeF(9!, 20!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.CancelButton = Me.ButCancel - Me.ClientSize = New System.Drawing.Size(666, 625) + Me.ClientSize = New System.Drawing.Size(999, 962) Me.Controls.Add(Me.lblTitle) Me.Controls.Add(Me.Label21) Me.Controls.Add(Me.cbLegislativeClass) @@ -1922,6 +2257,7 @@ Partial Class VehicleForm Me.Controls.Add(Me.ToolStrip1) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.Icon = CType(resources.GetObject("$this.Icon"),System.Drawing.Icon) + Me.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.MaximizeBox = false Me.Name = "VehicleForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen @@ -1986,6 +2322,12 @@ Partial Class VehicleForm Me.gbPTODrive.ResumeLayout(false) Me.gbPTODrive.PerformLayout Me.gbPTO.ResumeLayout(false) + Me.tpGensetComponents.ResumeLayout(false) + Me.tpGensetComponents.PerformLayout + Me.gbGenSet.ResumeLayout(false) + Me.gbGenSet.PerformLayout + Me.pnGenSetEM.ResumeLayout(false) + Me.pnGenSetEM.PerformLayout Me.ResumeLayout(false) Me.PerformLayout @@ -2182,5 +2524,19 @@ End Sub Friend WithEvents btnAddReessPack As Button Friend WithEvents lblEditReessPack As Label Friend WithEvents btnRemoveReessPack As Button + Friend WithEvents tpGensetComponents As TabPage + Friend WithEvents gbGenSet As GroupBox + Friend WithEvents btnGenSetLossMap As Button + Friend WithEvents tbGenSetADC As TextBox + Friend WithEvents lblGenSetADC As Label + Friend WithEvents tbGenSetRatio As TextBox + Friend WithEvents lblGenSetRatio As Label + Friend WithEvents tbGenSetCount As TextBox + Friend WithEvents lblGenSetCount As Label + Friend WithEvents pnGenSetEM As Panel + Friend WithEvents btnOpenGenSetEM As Button + Friend WithEvents btnBrowseGenSetEM As Button + Friend WithEvents tbGenSetEM As TextBox + Friend WithEvents tbGenSetICE As TextBox '>>>>>>> VECTO_CERT/master End Class diff --git a/VECTO/GUI/VehicleForm.resx b/VECTO/GUI/VehicleForm.resx index 21bc7df44d5386f57f7760ba29fcb84cca3113b2..29854c5744c9c53e592da2016f17bc434e366b68 100644 --- a/VECTO/GUI/VehicleForm.resx +++ b/VECTO/GUI/VehicleForm.resx @@ -146,6 +146,24 @@ MvyBNUWhqMw/j7ryi+Dlu+KwfDcVcNNYEOfx6E2Ypq0iVKN6GYNxZRLG3iVSQXnOcRSk+EGadxK1j4Jx IMsZPhXOsE+2QnPZOcPmP9MtD+d0SMPkXTVCDLdeRadciPjIg7H6V3sNXzAYtrEMjmW0udxCZFZmjLZO eyX/NDkNOcG9FD9vY/yfYTB+A9kMOLKC3dXwAAAAAElFTkSuQmCC +</value> + </data> + <data name="btnBrowseGenSetEM.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAtVJREFUOE+FkmtIk2EYhhc6zU1zyjyAlZn5Q0QS6k/EMDDSQiuzkmxM5wpEA00S + zTzbsozQEDUyVKjQbejUPGQSyyjUmofysFRKU/M859J5qORu77s1KX/0wPXju7/vvp4X3o/RVsHv7pDy + 0VklwIfaCPTXCzHQEPkXn5pEUDWJNH31kRGMf4eUocvF7GAShlqjQZ6H3qZjYUICQGliVfscvc+EGmNt + c0hhY/kONpYMrC/cwowqiYowchcYNaKRoa7mDDyfcuFRYpdnrBsEv7S3KT8XCTkUkq/3xGOj9xrQn0Cp + qQrGvnJ7uJTuwK58G4VJ8GMhh25eV29Ccp0yDmvd8SZBV7UA7sW2R5wfWsO+0ApO2ewMKlibE2N11siM + GCt6SL7YEQtdZxxUShECq7wQ9MQLZKnTfbbcqpQJuwxLDRWsTN+EbiobuslsLBsh+eybK3j/WgBfmQeq + 1RKcqPalAgexlYIIrNMtQAVLE1lYGs/Cd8JYJrR6SK5ovoCzjTzI1VLE9gjgVsiBYza7jJvHAhGwkpkG + gfZrJhZHM6D5QtBf4ed0yKSnENLEg0L3AlHKIBxq2Ik9BRy4FNrA4bFBYJlgbhCQgno4DeqhNMwPpuFb + TyICan3waqUF0coAHGtxpwJvuSPcJBwqYBUzwby8TUEF84OpmFOlYnYghR69XcLHUdl+RLX7I6TVc4uA + W8aCZZy5hhnO8KECUpzuu4Gpj8lU0FgShuIHgeAVucK/0d0k8KzgwjGXje0xZiPMS/oyGVIgxcme65jo + MvyBNUWhqMw/j7ryi+Dlu+KwfDcVcNNYEOfx6E2Ypq0iVKN6GYNxZRLG3iVSQXnOcRSk+EGadxK1j4Jx + IMsZPhXOsE+2QnPZOcPmP9MtD+d0SMPkXTVCDLdeRadciPjIg7H6V3sNXzAYtrEMjmW0udxCZFZmjLZO + eyX/NDkNOcG9FD9vY/yfYTB+A9kMOLKC3dXwAAAAAElFTkSuQmCC </value> </data> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb index 0cf78a6137a92906d9969f11a9e86a03b1149bc2..189ff5c8cbf65622e9b6bb783133eee6e4a1876b 100644 --- a/VECTO/GUI/VehicleForm.vb +++ b/VECTO/GUI/VehicleForm.vb @@ -480,14 +480,14 @@ Public Class VehicleForm tbAngledriveLossMapPath.Text = If(angledrive.LossMap Is Nothing, "", GetRelativePath(angledrive.LossMap.Source, basePath)) - If (vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle) Then + If (vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then lvREESSPacks.Items.Clear() For Each entry As IElectricStorageEngineeringInputData In vehicle.Components.ElectricStorage.ElectricStorageElements.OrderBy(function(x) x.StringId) lvREESSPacks.Items.Add(CreateREESSPackListViewItem(GetRelativePath(entry.REESSPack.DataSource.SourceFile, basePath), entry.Count, entry.StringId)) Next tbInitialSoC.Text = (vehicle.InitialSOC * 100).ToGUIFormat() - Dim em As ElectricMachineEntry(Of IElectricMotorEngineeringInputData) = vehicle.Components.ElectricMachines.Entries.First() + Dim em As ElectricMachineEntry(Of IElectricMotorEngineeringInputData) = vehicle.Components.ElectricMachines.Entries.First(Function(x) x.Position <> PowertrainPosition.GEN) tbElectricMotor.Text = GetRelativePath(em.ElectricMachine.DataSource.SourceFile, basePath) tbEmCount.Text = em.Count.ToGUIFormat() tbEmADCLossMap.Text = If(em.MechanicalTransmissionLossMap Is Nothing, em.MechanicalTransmissionEfficiency.ToGUIFormat(), @@ -506,6 +506,15 @@ Public Class VehicleForm End If + if (vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + Dim gen As ElectricMachineEntry(Of IElectricMotorEngineeringInputData) = vehicle.Components.ElectricMachines.Entries.First(Function(x) x.Position = PowertrainPosition.GEN) + tbGenSetEM.Text = GetRelativePath(gen.ElectricMachine.DataSource.SourceFile, basePath) + tbGenSetCount.Text = gen.Count.ToGUIFormat() + tbGenSetADC.Text = If(gen.MechanicalTransmissionLossMap Is Nothing, gen.MechanicalTransmissionEfficiency.ToGUIFormat(), + GetRelativePath(gen.MechanicalTransmissionLossMap.Source, basePath)) + tbGenSetRatio.Text = gen.RatioADC.ToGUIFormat() + End If + If (vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle) Then 'tbMaxDrivetrainPwr.Text = vehicle.MaxDrivetrainPower.ConvertToKiloWatt().Value.ToXMLFormat(2) 'ToDo ElectricMotorTorqueLimits changed @@ -550,6 +559,7 @@ Public Class VehicleForm cbEngineStopStart.Enabled = True cbEcoRoll.DataSource = [Enum].GetValues(GetType(EcoRollType)).Cast(Of EcoRollType).Select(Function(ecoRoll) New With {Key .Value = ecoRoll, .Label = ecoRoll.GetName()}).ToList() gbEMTorqueLimits.Enabled = false + tpGensetComponents.Visible = False Case VectoSimulationJobType.ParallelHybridVehicle lblTitle.Text = "Parallel Hybrid Vehicle" cbEmPos.DataSource = [Enum].GetValues(GetType(PowertrainPosition)).Cast(Of PowertrainPosition).Where(Function(x) x.IsParallelHybrid()).Select(Function(x) New With {Key .Value = x, .Label = x.GetLabel()}).ToList() @@ -557,6 +567,17 @@ Public Class VehicleForm 'cbEngineStopStart.Enabled = False 'cbEcoRoll.DataSource = [Enum].GetValues(GetType(EcoRollType)).Cast(Of EcoRollType).Select(Function(ecoRoll) New With {Key .Value = ecoRoll, .Label = ecoRoll.GetName()}).ToList() gbEMTorqueLimits.Enabled = True + tpGensetComponents.Visible = False + case VectoSimulationJobType.SerialHybridVehicle + lblTitle.Text = "Serial Hybrid Vehicle" + cbEmPos.DataSource = [enum].GetValues(GetType(PowertrainPosition)).cast(of PowertrainPosition).where(function(x) x.IsSerialHybrid()).select(Function(x) New With {Key .Value = x, .Label = x.GetLabel()}).ToList() + tpPowertrain.Enabled = true + tpTorqueLimits.Enabled = False + cbEngineStopStart.Checked = False + cbEngineStopStart.Enabled = False + cbEcoRoll.DataSource = New EcoRollType() {EcoRollType.None}.Select(Function(ecoRoll) New With {Key .Value = ecoRoll, .Label = ecoRoll.GetName()}).ToList() + gbEMTorqueLimits.Enabled = False + tpGensetComponents.Visible = True Case VectoSimulationJobType.BatteryElectricVehicle lblTitle.Text = "Battery Electric Vehicle" tpPowertrain.Enabled = False @@ -566,6 +587,7 @@ Public Class VehicleForm cbEngineStopStart.Enabled = False cbEcoRoll.DataSource = New EcoRollType() {EcoRollType.None}.Select(Function(ecoRoll) New With {Key .Value = ecoRoll, .Label = ecoRoll.GetName()}).ToList() gbEMTorqueLimits.Enabled = False + tpGensetComponents.Visible = False End Select End Sub @@ -629,7 +651,7 @@ Public Class VehicleForm veh.Axles.Add(a0) Next - If (VehicleType = VectoSimulationJobType.ConventionalVehicle OrElse VehicleType = VectoSimulationJobType.ParallelHybridVehicle) Then + If (VehicleType = VectoSimulationJobType.ConventionalVehicle OrElse VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then veh.RetarderType = CType(CbRtType.SelectedValue, RetarderType) veh.RetarderRatio = TbRtRatio.Text.ToDouble(0) veh.RetarderLossMapFile.Init(GetPath(file), TbRtPath.Text) @@ -655,7 +677,7 @@ Public Class VehicleForm veh.VehicleTankSystem = CType(If(cbTankSystem.SelectedIndex > 0, cbTankSystem.SelectedValue, Nothing), TankSystem?) End If - If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse VehicleType = VectoSimulationJobType.BatteryElectricVehicle) Then + If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then For Each reess As ListViewItem In lvREESSPacks.Items veh.ReessPacks.Add(tuple.Create(reess.SubItems(REESPackTbl.ReessFile).Text, reess.SubItems(REESPackTbl.Count).Text.ToInt(), reess.SubItems(REESPackTbl.StringId).Text.ToInt())) Next @@ -684,6 +706,27 @@ Public Class VehicleForm End If End If + if (VehicleType = VectoSimulationJobType.SerialHybridVehicle) then + If tbGenSetEM.Text = "" then + MsgBox("Generator File is required.") + tcVehicleComponents.SelectedTab = tpGensetComponents + tbGenSetEM.Focus() + return false + End If + veh.GenSetEMFile.Init(GetPath(file), tbGenSetEM.Text) + veh.GenSetPosition = PowertrainPosition.GEN + veh.GenSetCount = tbGenSetCount.Text.ToInt(1) + veh.GenSetRatio = tbGenSetRatio.Text.ToDouble(1) + 'veh.ElectricMotorMechEff = tbEmADCLossMap.Text.ToDouble() + If tbGenSetADC.Text = "" then + MsgBox("Loss Map GenSet ADC is required.") + tcVehicleComponents.SelectedTab = tpGensetComponents + tbGenSetADC.Focus() + return false + End If + veh.GenSetMechLossMap.Init(GetPath(file), tbGenSetADC.Text) + End If + If (VehicleType = VectoSimulationJobType.ParallelHybridVehicle) AndAlso not String.IsNullOrWhiteSpace(tbEmTorqueLimits.Text) Then veh.EmTorqueLimitsFile.Init(GetPath(file), tbEmTorqueLimits.Text) End If @@ -1144,7 +1187,11 @@ Public Class VehicleForm 'Thus Veh-file is returned ElectricMotorForm.JobDir = GetPath(_vehFile) - ElectricMotorForm.AutoSendTo = True + ElectricMotorForm.AutoSendTo = sub(file, vehicleForm) + If UCase(FileRepl(VehicleForm.tbElectricMotor.Text, JobDir)) <> UCase(file) Then _ + VehicleForm.tbElectricMotor.Text = GetFilenameWithoutDirectory(file, JobDir) + VectoJobForm.UpdatePic() + End sub If Not Trim(f) = "" Then If Not File.Exists(f) Then @@ -1287,5 +1334,51 @@ Public Class VehicleForm lvREESSPacks.SelectedItems(0).Remove() End Sub + + Private Sub btnOpenGenSetEM_Click(sender As Object, e As EventArgs) Handles btnOpenGenSetEM.Click + Dim f As String + f = FileRepl(tbGenSetEM.Text, GetPath(_vehFile)) + + 'Thus Veh-file is returned + ElectricMotorForm.JobDir = GetPath(_vehFile) + ElectricMotorForm.AutoSendTo = sub(file, vehicleForm) + If UCase(FileRepl(VehicleForm.tbGenSetEM.Text, JobDir)) <> UCase(file) Then _ + VehicleForm.tbGenSetEM.Text = GetFilenameWithoutDirectory(file, JobDir) + VectoJobForm.UpdatePic() + End sub + + If Not Trim(f) = "" Then + If Not File.Exists(f) Then + MsgBox("File not found!") + Exit Sub + End If + End If + + If Not ElectricMotorForm.Visible Then + ElectricMotorForm.Show() + Else + If ElectricMotorForm.WindowState = FormWindowState.Minimized Then ElectricMotorForm.WindowState = FormWindowState.Normal + ElectricMotorForm.BringToFront() + End If + + If Not Trim(f) = "" Then + Try + ElectricMotorForm.OpenElectricMachineFile(f) + Catch ex As Exception + MsgBox(ex.Message, MsgBoxStyle.OkOnly, "Error loading Vehicle File") + End Try + End If + End Sub + + Private Sub btnBrowseGenSetEM_Click(sender As Object, e As EventArgs) Handles btnBrowseGenSetEM.Click + If ElectricMotorFileBrowser.OpenDialog(FileRepl(tbGenSetEM.Text, GetPath(_vehFile))) Then + tbGenSetEM.Text = GetFilenameWithoutDirectory(ElectricMotorFileBrowser.Files(0), GetPath(_vehFile)) + End If + End Sub + + Private Sub btnGenSetLossMap_Click(sender As Object, e As EventArgs) Handles btnGenSetLossMap.Click + If EmADCLossMapFileBrowser.OpenDialog(FileRepl(tbGenSetADC.Text, GetPath(_vehFile))) Then _ + tbGenSetADC.Text = GetFilenameWithoutDirectory(EmADCLossMapFileBrowser.Files(0), GetPath(_vehFile)) + End Sub End Class diff --git a/VECTO/Input Files/ElectricMachine.vb b/VECTO/Input Files/ElectricMachine.vb index f02becf574194693f6949440cb808e22cd8e187c..4671c0d8960ca6f9a44448cdb3fd73ac6d2adfa0 100644 --- a/VECTO/Input Files/ElectricMachine.vb +++ b/VECTO/Input Files/ElectricMachine.vb @@ -18,12 +18,11 @@ Public Class ElectricMachine public VoltageLevelLow As Double Private ReadOnly _fullLoadCurvePathLow As SubPath - Private ReadOnly _dragCurvePathLow As SubPath + Private ReadOnly _dragCurvePath As SubPath Private ReadOnly _efficiencyMapLow As SubPath public VoltageLevelHigh as Double Private ReadOnly _fullLoadCurvePathHi As SubPath - Private ReadOnly _dragCurvePathHi As SubPath Private ReadOnly _efficiencyMapHi As SubPath ''' <summary> @@ -61,11 +60,10 @@ Public Class ElectricMachine _filePath = "" _fullLoadCurvePathLow = New SubPath - _dragCurvePathLow = New SubPath() + _dragCurvePath = New SubPath() _efficiencyMapLow = New SubPath() _fullLoadCurvePathHi = New SubPath - _dragCurvePathHi = New SubPath() _efficiencyMapHi = New SubPath() SetDefault() @@ -220,11 +218,11 @@ Public Class ElectricMachine Return VectoCSVFile.Read(_fullLoadCurvePathLow.FullPath) End Get End Property - protected ReadOnly Property DragCurvLow As TableData + public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve Get - If Not File.Exists(_dragCurvePathLow.FullPath) Then _ + If Not File.Exists(_dragCurvePath.FullPath) Then _ Throw New VectoException("Drag Curve is missing or invalid") - Return VectoCSVFile.Read(_dragCurvePathLow.FullPath) + Return VectoCSVFile.Read(_dragCurvePath.FullPath) End Get End Property protected ReadOnly Property EfficiencyMapLow As TableData @@ -241,14 +239,8 @@ Public Class ElectricMachine Return VectoCSVFile.Read(_fullLoadCurvePathHi.FullPath) End Get End Property - protected ReadOnly Property DragCurvHi As TableData - Get - If Not File.Exists(_dragCurvePathHi.FullPath) Then _ - Throw New VectoException("Drag Curve is missing or invalid") - Return VectoCSVFile.Read(_dragCurvePathHi.FullPath) - End Get - End Property - protected ReadOnly Property EfficiencyMapHi As TableData + + protected ReadOnly Property PowerMapHi As TableData Get If Not File.Exists(_efficiencyMapHi.FullPath) Then _ Throw New VectoException("Drag Curve is missing or invalid") @@ -327,8 +319,6 @@ Public Class ElectricMachine ' End Get 'End Property - Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve - Public Property PathMaxTorqueLow(Optional ByVal original As Boolean = False) As String Get If original Then @@ -342,16 +332,16 @@ Public Class ElectricMachine End Set End Property - Public Property PathDragLow(Optional ByVal original As Boolean = False) As String + Public Property PathDrag(Optional ByVal original As Boolean = False) As String Get If original Then - Return _dragCurvePathLow.OriginalPath + Return _dragCurvePath.OriginalPath Else - Return _dragCurvePathLow.FullPath + Return _dragCurvePath.FullPath End If End Get Set(ByVal value As String) - _dragCurvePathLow.Init(_myPath, value) + _dragCurvePath.Init(_myPath, value) End Set End Property @@ -381,18 +371,6 @@ Public Class ElectricMachine End Set End Property - Public Property PathDragHi(Optional ByVal original As Boolean = False) As String - Get - If original Then - Return _dragCurvePathHi.OriginalPath - Else - Return _dragCurvePathHi.FullPath - End If - End Get - Set(ByVal value As String) - _dragCurvePathHi.Init(_myPath, value) - End Set - End Property Public Property PathMapHi(Optional ByVal original As Boolean = False) As String Get diff --git a/VECTO/Input Files/HybridStrategyParams.vb b/VECTO/Input Files/HybridStrategyParams.vb index 61be6293a7aff475c31bc8ef2d3077d3b01339b0..b560bfa0ae54df5f42be292b5a484c1d65af1aa0 100644 --- a/VECTO/Input Files/HybridStrategyParams.vb +++ b/VECTO/Input Files/HybridStrategyParams.vb @@ -104,6 +104,8 @@ Public Class HybridStrategyParams Public Property ICEStartPenaltyFactor As Double Implements IHybridStrategyParameters.ICEStartPenaltyFactor Public Property CostFactorSOCExpponent As Double Implements IHybridStrategyParameters.CostFactorSOCExpponent + Public Property GensetMinOptPowerFactor As Double Implements IHybridStrategyParameters.GensetMinOptPowerFactor + Public Property AuxiliaryBufferTime As Double diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index a84b744a4a8a2f1e33af319f809845756f67445b..1deb616710589563fa3b0fe9f03e9d49dfa51183 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -80,6 +80,7 @@ Public Class Vehicle Public VehicleTankSystem As TankSystem? Public ReadOnly ElectricMotorFile As SubPath + Public ReadOnly GenSetEMFile As SubPath public ReadOnly ReessPacks As List(Of Tuple(Of String, Integer, Integer)) @@ -88,6 +89,13 @@ Public Class Vehicle Public ElectricMotorRatio As Double 'Public ElectricMotorMechEff As Double Public ElectricMotorMechLossMap As SubPath + Public GenSetMechLossMap As SubPath + + Public GenSetPosition As PowertrainPosition + Public GenSetCount As Integer + Public GenSetRatio As Double + 'Public ElectricMotorMechEff As Double + Public GenSetLossMap As SubPath public GearDuringPTODrive As UInteger? Public EngineSpeedDuringPTODrive As PerSecond @@ -111,6 +119,8 @@ Public Class Vehicle PtoCycleDriving = new SubPath() ElectricMotorFile = New SubPath() ElectricMotorMechLossMap = new SubPath() + GenSetEMFile = new SubPath() + GenSetMechLossMap = new SubPath() SetDefault() End Sub @@ -236,6 +246,9 @@ Public Class Vehicle ElectricMotorFile.Clear() ElectricMotorMechLossMap.Clear() + GenSetEMFile.Clear() + GenSetMechLossMap.Clear() + SavedInDeclMode = False End Sub @@ -771,7 +784,7 @@ Public Class Vehicle Public ReadOnly Property IVehicleComponentsDeclaration_ElectricStorage As IElectricStorageSystemDeclarationInputData Implements IVehicleComponentsDeclaration.ElectricStorage Public ReadOnly Property ElectricMachines As IElectricMachinesEngineeringInputData Implements IVehicleComponentsEngineering.ElectricMachines Get - Return New ElectricMachineWrapper(Me) + Return New ElectricMachinesWrapper(Me) End Get End Property @@ -1000,8 +1013,8 @@ Public Class ElectricStorageWrapper Public ReadOnly Property StorageType As REESSType Implements IREESSPackInputData.StorageType End Class -Public Class ElectricMachineWrapper - Implements IElectricMachinesEngineeringInputData, IElectricMotorEngineeringInputData +Public Class ElectricMachinesWrapper + Implements IElectricMachinesEngineeringInputData ', IElectricMotorEngineeringInputData Protected Vehicle As Vehicle @@ -1012,22 +1025,33 @@ Public Class ElectricMachineWrapper Public ReadOnly Property Entries As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) Implements IElectricMachinesDeclarationInputData.Entries Get - Return New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData))(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData)() { + Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData))(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData)() { New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { - .ElectricMachine = Me, + .ElectricMachine = new ElectricMachineWrapper(Vehicle.ElectricMotorFile), .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), - .MechanicalTransmissionLossMap = VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), .Position = Vehicle.ElectricMotorPosition, .RatioADC = Vehicle.ElectricMotorRatio, .RatioPerGear = vehicle.ElectricMotorPerGearRatios, .Count = Vehicle.ElectricMotorCount}}) + + if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + retval.Add(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { + .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), + .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Nothing,VectoCSVFile.Read(Vehicle.GenSetMechLossMap.FullPath)), + .Position = PowertrainPosition.GEN, + .RatioADC = Vehicle.GenSetRatio, + .Count = Vehicle.GenSetCount}) + End If + Return retval End Get End Property Public ReadOnly Property IElectricMachinesEngineeringInputData_Entries As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) Implements IElectricMachinesEngineeringInputData.Entries Get - Return New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() { + Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData))(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() { New ElectricMachineEntry(Of IElectricMotorEngineeringInputData)() With { - .ElectricMachine = Me, + .ElectricMachine = new ElectricMachineWrapper(Vehicle.ElectricMotorFile), .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), .Position = Vehicle.ElectricMotorPosition, @@ -1035,31 +1059,53 @@ Public Class ElectricMachineWrapper .RatioPerGear = Vehicle.ElectricMotorPerGearRatios, .Count = Vehicle.ElectricMotorCount}}) + if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + retval.Add(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData) With { + .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), + .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), + .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Nothing,VectoCSVFile.Read(Vehicle.GenSetMechLossMap.FullPath)), + .Position = PowertrainPosition.GEN, + .RatioADC = Vehicle.GenSetRatio, + .Count = Vehicle.GenSetCount}) + End If + Return retval End Get End Property - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource - Get - Return New DataSource() With { - .SourceFile = Vehicle.ElectricMotorFile.FullPath} - End Get - End Property - Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer - Public ReadOnly Property Model As String Implements IComponentInputData.Model - Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + +End Class + +Public Class ElectricMachineWrapper + Implements IElectricMotorEngineeringInputData + + Private EMFile As SubPath + + Public Sub New(em As SubPath) + EMFile = em + End Sub + + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Get + Return New DataSource() With { + .SourceFile = EMFile.FullPath} + End Get + End Property + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue Public ReadOnly Property VoltageLevels As IList(Of IElectricMotorVoltageLevel) Implements IElectricMotorDeclarationInputData.VoltageLevels - Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IElectricMotorDeclarationInputData.ElectricMachineType - Public ReadOnly Property R85RatedPower As Watt Implements IElectricMotorDeclarationInputData.R85RatedPower - Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia - Public ReadOnly Property DcDcConverterIncluded As Boolean Implements IElectricMotorDeclarationInputData.DcDcConverterIncluded - Public ReadOnly Property IHPCType As String Implements IElectricMotorDeclarationInputData.IHPCType - Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve - Public ReadOnly Property Conditioning As TableData Implements IElectricMotorDeclarationInputData.Conditioning + Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IElectricMotorDeclarationInputData.ElectricMachineType + Public ReadOnly Property R85RatedPower As Watt Implements IElectricMotorDeclarationInputData.R85RatedPower + Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia + Public ReadOnly Property DcDcConverterIncluded As Boolean Implements IElectricMotorDeclarationInputData.DcDcConverterIncluded + Public ReadOnly Property IHPCType As String Implements IElectricMotorDeclarationInputData.IHPCType + Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve + Public ReadOnly Property Conditioning As TableData Implements IElectricMotorDeclarationInputData.Conditioning Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorEngineeringInputData.OverloadRecoveryFactor End Class \ No newline at end of file diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs index d15fd87f43cb4c85baf9b505697f8289ab3ee4d5..cf22747ae4f9c6c49c51144aab4d1303f6de176f 100644 --- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs +++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs @@ -80,6 +80,9 @@ namespace TUGraz.VectoCommon.InputData double ICEStartPenaltyFactor { get; } double CostFactorSOCExpponent { get; } + + // serial hybrid only: factor applied to the max propulsion power which the genset needs to provide in the optimal operating point + double GensetMinOptPowerFactor { get; } } public interface IVehicleEngineeringInputData : IVehicleDeclarationInputData diff --git a/VectoCommon/VectoCommon/Models/GearboxType.cs b/VectoCommon/VectoCommon/Models/GearboxType.cs index 3e3e0383a439c46e2012046afe7214ae25b31328..d5c29e4951b12de86a2cc8e7beee76c12eb8a026 100644 --- a/VectoCommon/VectoCommon/Models/GearboxType.cs +++ b/VectoCommon/VectoCommon/Models/GearboxType.cs @@ -66,11 +66,11 @@ namespace TUGraz.VectoCommon.Models [DebuggerStepThrough] public static bool AutomaticTransmission(this GearboxType type) => - type == GearboxType.ATPowerSplit || type == GearboxType.ATSerial; + type == GearboxType.ATPowerSplit || type == GearboxType.ATSerial || type == GearboxType.APTN; [DebuggerStepThrough] public static bool ManualTransmission(this GearboxType type) => - type == GearboxType.MT || type == GearboxType.AMT || type == GearboxType.APTN; + type == GearboxType.MT || type == GearboxType.AMT; public static Second TractionInterruption(this GearboxType type) { diff --git a/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs b/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs index f4a3875d70aec7a8071fe851deaa8abf16e09c00..9ec99a3d867fe4fe872d163daf96a9a1d0d89615 100644 --- a/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs +++ b/VectoCommon/VectoCommon/Models/HybridStrategyResponse.cs @@ -31,6 +31,7 @@ namespace TUGraz.VectoCommon.Models { public HybridResultEntry EvaluatedSolution { get; set; } public bool GearboxEngaged { get; set; } public bool ProhibitGearshift { get; set; } + public PerSecond GenSetSpeed { get; set; } } [DebuggerDisplay("{U,nq}: {Score,nq} - G{Gear,nq} - {IgnoreReason,nq}")] diff --git a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs index cf25a4c8e7714f609364984a89ec29a3a2921368..c148b9c1b1bdb805aded353982b98b65007676a6 100644 --- a/VectoCommon/VectoCommon/Models/PowertrainPosition.cs +++ b/VectoCommon/VectoCommon/Models/PowertrainPosition.cs @@ -18,6 +18,7 @@ namespace TUGraz.VectoCommon.InputData { BatteryElectricE4, BatteryElectricE3, BatteryElectricE2, + } public static class PowertrainPositionHelper @@ -86,5 +87,10 @@ namespace TUGraz.VectoCommon.InputData { return false; } } + + public static bool IsSerialHybrid(this PowertrainPosition pos) + { + return IsBatteryElectric(pos); + } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs index 9cf63d391c083355aef1e582b2f68bcb3f3a5fbc..0f32c57405e1b2b44bb52ede35500e90ab4976f8 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs @@ -29,15 +29,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON OverloadTorque = entry.GetEx<double>("OverloadTorque").SI<NewtonMeter>(), OverloadTestSpeed = entry.GetEx<double>("OverloadTorqueSpeed").RPMtoRad(), OverloadTime = entry.GetValueOrDefault<double>("OverloadTime")?.SI<Second>() ?? 0.SI<Second>(), - PowerMap = new List<IElectricMotorPowerMap>() { + PowerMap = ReadPowermap(entry), + // DragCurve = ReadTableData(entry.GetEx<string>("DragCurve"), "ElectricMotor DragCurve"), + FullLoadCurve = ReadTableData(entry.GetEx<string>("FullLoadCurve"), "ElectricMotor FullLoadCurve") + }).Cast<IElectricMotorVoltageLevel>().ToList(); + } + + protected virtual IList<IElectricMotorPowerMap> ReadPowermap(JToken entry) + { + //if (entry.) + var powermap = entry["EfficiencyMap"]; + + if (!powermap.HasValues) { + return new List<IElectricMotorPowerMap>() { new JSONElectricMotorPowerMap() { Gear = 0, PowerMap = ReadTableData(entry.GetEx<string>("EfficiencyMap"), "ElectricMotor Map") } - }, - // DragCurve = ReadTableData(entry.GetEx<string>("DragCurve"), "ElectricMotor DragCurve"), - FullLoadCurve = ReadTableData(entry.GetEx<string>("FullLoadCurve"), "ElectricMotor FullLoadCurve") - }).Cast<IElectricMotorVoltageLevel>().ToList(); + }; + } + + return powermap.Select(x => new JSONElectricMotorPowerMap() { + Gear = (((JProperty) x).Name).ToInt(), + PowerMap = ReadTableData((x as JProperty).Value.Value<string>(), "ElectricMotor Map") + }).Cast<IElectricMotorPowerMap>().ToList(); } #endregion diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs index 88d689d7812466f37baf1bc36479ce8778e3f1c1..2309583af933986c7985a94a16fdf31e9ad5d700 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONHybridStrategyParameters.cs @@ -4,9 +4,9 @@ using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCore.InputData.FileIO.JSON { - public class JSONHybridStrategyParameters : JSONFile, IHybridStrategyParameters + public class JSONHybridStrategyParametersParallelHybrid : JSONFile, IHybridStrategyParameters { - public JSONHybridStrategyParameters(JObject json, string filename, bool tolerateMissing) : base(json, filename, tolerateMissing) + public JSONHybridStrategyParametersParallelHybrid(JObject json, string filename, bool tolerateMissing) : base(json, filename, tolerateMissing) { } public double EquivalenceFactorDischarge => @@ -32,5 +32,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public double ICEStartPenaltyFactor => Body["ICEStartPenaltyFactor"] == null ? 0 : Body.GetEx<double>("ICEStartPenaltyFactor"); public double CostFactorSOCExpponent => Body["CostFactorSOCExponent"] == null ? double.NaN : Body.GetEx<double>("CostFactorSOCExponent"); + public double GensetMinOptPowerFactor => double.NaN; + } + + // --------------------- + + public class JSONHybridStrategyParametersSerialHybrid : JSONFile, IHybridStrategyParameters + { + public JSONHybridStrategyParametersSerialHybrid(JObject data, string filename, bool tolerateMissing = false) : base(data, filename, tolerateMissing) { } + + #region Implementation of IHybridStrategyParameters + + public double EquivalenceFactorDischarge => double.NaN; + public double EquivalenceFactorCharge => double.NaN; + public double MinSoC => Body.GetEx<double>("MinSoC") / 100.0; + + public double MaxSoC => double.NaN; + public double TargetSoC => Body.GetEx<double>("TargetSoC") / 100.0; + public Second MinimumICEOnTime => null; + public Second AuxBufferTime => null; + public Second AuxBufferChargeTime => null; + public double ICEStartPenaltyFactor => double.NaN; + public double CostFactorSOCExpponent => double.NaN; + public double GensetMinOptPowerFactor => Body.GetEx<double>("GensetMinOptPowerFactor"); + + #endregion } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs index 979c23b4d93a9bbb43fae8a487923020fb68d36a..82b2b4b73e7ad8ff4d083e0c52939c91ed9cf002 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs @@ -1013,6 +1013,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #endregion } + // -------------------------- public class JSONInputDataCompletedBusFactorMethodV7 : JSONFile, IDeclarationInputDataProvider, IDeclarationJobInputData { @@ -1070,9 +1071,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #endregion } - public class JSONInputDataV8_Hybrid : JSONInputDataV5 + // -------------------------- + + public class JSONInputDataV8_ParallelHybrid : JSONInputDataV5 { - public JSONInputDataV8_Hybrid(JObject data, string filename, bool tolerateMissing = false) : base(data, filename, tolerateMissing) { } + public JSONInputDataV8_ParallelHybrid(JObject data, string filename, bool tolerateMissing = false) : base(data, filename, tolerateMissing) { } public override VectoSimulationJobType JobType => VectoSimulationJobType.ParallelHybridVehicle; @@ -1082,6 +1085,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON Path.Combine(BasePath, Body.GetEx<string>("HybridStrategyParams")), false); } + // -------------------------- + public class JSONInputDataV9_BEV : AbstractJSONInputData { @@ -1089,7 +1094,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON tolerateMissing) { VehicleData = ReadVehicle(); - if (Body[JsonKeys.Vehicle_GearboxFile] != null) { Gearbox = ReadGearbox(); AxleGear = Gearbox as IAxleGearInputData; @@ -1106,6 +1110,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON : JSONInputDataFactory.ReadShiftParameters(Path.Combine(BasePath, Body.GetEx<string>("TCU")), false); } + // -------------------------- + + public class JSONInputDataV11_SerialHybrid : AbstractJSONInputData + { + + public JSONInputDataV11_SerialHybrid(JObject data, string filename, bool tolerateMissing = false) : base(data, filename, + tolerateMissing) + { + VehicleData = ReadVehicle(); + Engine = ReadEngine(); + if (Body[JsonKeys.Vehicle_GearboxFile] != null) { + Gearbox = ReadGearbox(); + AxleGear = Gearbox as IAxleGearInputData; + TorqueConverter = Gearbox as ITorqueConverterEngineeringInputData; + //GearshiftInputData = Gearbox as IGearshiftEngineeringInputData; + } + } + + public override IHybridStrategyParameters HybridStrategyParameters => + Body["HybridStrategyParams"] == null + ? null : JSONInputDataFactory.ReadHybridStrategyParameters( + Path.Combine(BasePath, Body.GetEx<string>("HybridStrategyParams")), false); + + public override VectoSimulationJobType JobType => VectoSimulationJobType.SerialHybridVehicle; + + public override IGearshiftEngineeringInputData GearshiftInputData => + Body["TCU"] == null + ? null + : JSONInputDataFactory.ReadShiftParameters(Path.Combine(BasePath, Body.GetEx<string>("TCU")), false); + + + } + + // -------------------------- public class JSONInputDataV10_PrimaryAndStageInputBus : JSONFile, IInputDataProvider, IMultistagePrimaryAndStageInputDataProvider { diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs index 7977d7b8b17fc5598490b29548883045ed9d935c..ee7398b57abf412bcfeeb3f1c0b1b05d693b87a0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputDataFactory.cs @@ -99,11 +99,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON case 7: return new JSONInputDataCompletedBusFactorMethodV7(json, filename, tolerateMissing); case 8: - return new JSONInputDataV8_Hybrid(json, filename, tolerateMissing); + return new JSONInputDataV8_ParallelHybrid(json, filename, tolerateMissing); case 9: return new JSONInputDataV9_BEV(json, filename, tolerateMissing); case 10: return new JSONInputDataV10_PrimaryAndStageInputBus(json, filename, tolerateMissing); + case 11: + return new JSONInputDataV11_SerialHybrid(json, filename, tolerateMissing); default: throw new VectoException("Job-File: Unsupported FileVersion. Got: {0} ", version); } @@ -183,7 +185,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON var version = ReadVersion(json); switch (version) { case 1: - return new JSONHybridStrategyParameters(json, filename, tolerateMissing); + return new JSONHybridStrategyParametersParallelHybrid(json, filename, tolerateMissing); + case 2: + return new JSONHybridStrategyParametersSerialHybrid(json, filename, tolerateMissing); default: throw new VectoException("HybridStrategyParameter-File: Unsupported FileVersion. Got {0}", version); diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index d34603e5d125066ad7be1861f811bc63d45d820d..d2975f87878d0531f9554425ce3e9223dd0805e1 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -78,6 +78,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON switch (Body.GetEx<String>("PowertrainConfiguration")) { case "ParallelHybrid": return VectoSimulationJobType.ParallelHybridVehicle; case "BatteryElectric": return VectoSimulationJobType.BatteryElectricVehicle; + case "SerialHybrid": return VectoSimulationJobType.SerialHybridVehicle; default: throw new VectoException("Invalid parameter value {0}", Body.GetEx<String>("PowertrainConfiguration")); } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs index 745d4549541d54165c5fa1edbb724bf901432023..17f31db33e864065fbfb885246932bca6c58027f 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLElectricStorageSystemDeclarationInputData.cs @@ -112,7 +112,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider ElementExists(XMLNames.Battery_SOCmax) ? GetDouble(XMLNames.Battery_SOCmax) : (double?)null; public virtual BatteryType BatteryType => GetString(XMLNames.REESS_BatteryType).ParseEnum<BatteryType>(); - public virtual AmpereSecond Capacity => GetDouble(XMLNames.REESS_RatedCapacity).SI<AmpereSecond>() * 3600; + public virtual AmpereSecond Capacity => GetDouble(XMLNames.REESS_RatedCapacity).SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(); public virtual bool ConnectorsSubsystemsIncluded => GetBool(XMLNames.REESS_ConnectorsSubsystemsIncluded); public virtual bool JunctionboxIncluded => GetBool(XMLNames.REESS_JunctionboxIncluded); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index 6c7da046d6eccc0ebbf30ed7ccf7e1cf0cccf133..142f3cdf27c7acd84c172f23798ee925992705e4 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -206,7 +206,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter } retVal.Inertia = engine.Inertia + - (gbx != null && gbx.Type.AutomaticTransmission() ? torqueConverter.Inertia : 0.SI<KilogramSquareMeter>()); + (gbx != null && gbx.Type.AutomaticTransmission() + ? (gbx.Type == GearboxType.APTN ? 0.SI<KilogramSquareMeter>() : torqueConverter.Inertia) + : 0.SI<KilogramSquareMeter>()); retVal.EngineStartTime = engine.EngineStartTime ?? DeclarationData.Engine.DefaultEngineStartTime; var limits = torqueLimits.ToDictionary(e => e.Gear); var numGears = gbx?.Gears.Count ?? 0; @@ -321,7 +323,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var gears = new Dictionary<uint, GearData>(); ShiftPolygon tcShiftPolygon = null; - if (gearbox.Type.AutomaticTransmission()) { + if (gearbox.Type.AutomaticTransmission() && gearbox.Type != GearboxType.APTN) { tcShiftPolygon = torqueConverter.ShiftPolygon != null ? ShiftPolygonReader.Create(torqueConverter.ShiftPolygon) : DeclarationData.TorqueConverter.ComputeShiftPolygon(engineData.FullLoadCurves[0]); @@ -356,7 +358,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter retVal.Gears = gears; - if (retVal.Type.AutomaticTransmission()) { + if (retVal.Type.AutomaticTransmission() && retVal.Type != GearboxType.APTN) { var ratio = double.IsNaN(retVal.Gears[1].Ratio) ? 1 : retVal.Gears[1].TorqueConverterRatio / retVal.Gears[1].Ratio; retVal.PowershiftShiftTime = gearbox.PowershiftShiftTime; retVal.TorqueConverterData = TorqueConverterDataReader.Create( @@ -398,7 +400,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter IGearboxEngineeringInputData gearbox, IGearshiftEngineeringInputData gearshiftData, GearboxData retVal) { retVal.Inertia = gearbox.Type.ManualTransmission() ? gearbox.Inertia : 0.SI<KilogramSquareMeter>(); - retVal.TractionInterruption = gearbox.TractionInterruption; + retVal.TractionInterruption = gearbox.Type == GearboxType.APTN ? 0.SI<Second>() : gearbox.TractionInterruption; } @@ -873,8 +875,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter WarnEngineeringMode("Electric motor"); } - if (electricMachines.Entries.Select(x => x.Position).Distinct().Count() > 1) { - throw new VectoException("multiple electric motors are not supported at the moment"); + if (electricMachines.Entries.Select(x => x.Position).Where(x => x != PowertrainPosition.GEN).Distinct().Count() > 1) { + throw new VectoException("multiple electric propulsion motors are not supported at the moment"); } return electricMachines.Entries @@ -901,7 +903,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Voltage = entry.VoltageLevel, ContinuousTorque = entry.ContinuousTorque * count, ContinuousTorqueSpeed = entry.ContinuousTorqueSpeed, - OverloadTorque = entry.OverloadTorque ?? 0.SI<NewtonMeter>() * count, + OverloadTorque = (entry.OverloadTorque ?? 0.SI<NewtonMeter>()) * count, OverloadTestSpeed = entry.OverloadTestSpeed ?? 0.RPMtoRad(), OverloadTime = entry.OverloadTime, FullLoadCurve = fullLoadCurveCombined, @@ -947,6 +949,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter MaxPropulsionTorque = torqueLimit, ICEStartPenaltyFactor = hybridStrategyParameters.ICEStartPenaltyFactor, CostFactorSOCExponent = double.IsNaN(hybridStrategyParameters.CostFactorSOCExpponent) ? 5 : hybridStrategyParameters.CostFactorSOCExpponent, + GensetMinOptPowerFactor = double.IsNaN(hybridStrategyParameters.GensetMinOptPowerFactor) ? 0 : hybridStrategyParameters.GensetMinOptPowerFactor, }; return retVal; } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs index e8c249af168970033b953dbf60a4ea4fd68ca9fe..c1c1e070535c4fd577defe8788fe085d5db6ddd8 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs @@ -73,11 +73,154 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl return GetConventionalVehicleRunData(); case VectoSimulationJobType.BatteryElectricVehicle: return GetBatteryElectricVehicleRunData(); + case VectoSimulationJobType.SerialHybridVehicle: + return GetSerialHybridRunData(); default: throw new ArgumentOutOfRangeException(); } } + private IEnumerable<VectoRunData> GetSerialHybridRunData() + { + var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; + var engineModes = engine.EngineModes; + + for (var modeIdx = 0; modeIdx < engineModes.Count; modeIdx++) { + var engineMode = engineModes[modeIdx]; + foreach (var cycle in InputDataProvider.JobInputData.Cycles) { + var dao = new EngineeringDataAdapter(); + var driver = dao.CreateDriverData(InputDataProvider.DriverInputData); + if (InputDataProvider.JobInputData.JobType != VectoSimulationJobType.ConventionalVehicle) { + driver.EngineStopStart.UtilityFactorDriving = 1; + driver.EngineStopStart.UtilityFactorStandstill = 1; + } + + var vehicle = InputDataProvider.JobInputData.Vehicle; + var engineData = dao.CreateEngineData(vehicle, engineMode); + engineData.FuelMode = modeIdx; + + var axlegearData = vehicle.Components.AxleGearInputData != null + ? dao.CreateAxleGearData(vehicle.Components.AxleGearInputData) + : null; + var electricMachinesData = dao.CreateElectricMachines(vehicle.Components.ElectricMachines, vehicle.ElectricMotorTorqueLimits); + + GearboxData gearboxData = null; + ShiftStrategyParameters gearshiftParams = null; + var angledriveData = dao.CreateAngledriveData(vehicle.Components.AngledriveInputData); + if (electricMachinesData.Any(x => x.Item1 == PowertrainPosition.BatteryElectricE2)) { + // gearbox required! + gearshiftParams = dao.CreateGearshiftData( + InputDataProvider.JobInputData.Vehicle.Components.GearboxInputData.Type, InputDataProvider.DriverInputData.GearshiftInputData, + axlegearData.AxleGear.Ratio * (angledriveData?.Angledrive.Ratio ?? 1.0), null); + var tmpRunData = new VectoRunData() { + JobType = VectoSimulationJobType.SerialHybridVehicle, + GearboxData = new GearboxData() { + Type = vehicle.Components.GearboxInputData.Type, + }, + GearshiftParameters = gearshiftParams, + ElectricMachinesData = electricMachinesData, + //VehicleData = dao.CreateVehicleData(vehicle) + }; + var tempVehicle = dao.CreateVehicleData(vehicle); + var tmpStrategy = PowertrainBuilder.GetShiftStrategy(new SimplePowertrainContainer(tmpRunData)); + gearboxData = dao.CreateGearboxData( + InputDataProvider, new VectoRunData() { + JobType = VectoSimulationJobType.SerialHybridVehicle, + VehicleData = tempVehicle, + AxleGearData = axlegearData, + ElectricMachinesData = electricMachinesData + }, tmpStrategy); + angledriveData = dao.CreateAngledriveData(vehicle.Components.AngledriveInputData); + + } + + if (gearshiftParams == null) { + gearshiftParams = new ShiftStrategyParameters() { + StartSpeed = DeclarationData.GearboxTCU.StartSpeed, + StartAcceleration = DeclarationData.GearboxTCU.StartAcceleration, + TimeBetweenGearshifts = DeclarationData.Gearbox.MinTimeBetweenGearshifts, + DownshiftAfterUpshiftDelay = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay, + UpshiftAfterDownshiftDelay = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay, + UpshiftMinAcceleration = DeclarationData.Gearbox.UpshiftMinAcceleration, + }; + } + + var crossWindRequired = vehicle.Components.AirdragInputData.CrossWindCorrectionMode == + CrossWindCorrectionMode.VAirBetaLookupTable; + var ptoTransmissionData = + dao.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); + + if (InputDataProvider.JobInputData.Vehicle.PTO_DriveGear != null && + InputDataProvider.JobInputData.Vehicle.PTO_DriveEngineSpeed != null) { + driver.PTODriveMinSpeed = InputDataProvider.JobInputData.Vehicle.PTO_DriveEngineSpeed / + axlegearData.AxleGear.Ratio / + gearboxData.Gears[InputDataProvider.JobInputData.Vehicle.PTO_DriveGear.Gear].Ratio / + (angledriveData?.Angledrive.Ratio ?? 1.0) * vehicle.DynamicTyreRadius; + driver.PTODriveRoadsweepingGear = InputDataProvider.JobInputData.Vehicle.PTO_DriveGear; + engineData.PTORoadSweepEngineSpeed = + InputDataProvider.JobInputData.Vehicle.PTO_DriveEngineSpeed; + } + + var ptoCycleWhileDrive = + InputDataProvider.JobInputData.Vehicle.Components.PTOTransmissionInputData + .PTOCycleWhileDriving != null + ? DrivingCycleDataReader.ReadFromDataTable( + InputDataProvider.JobInputData.Vehicle.Components.PTOTransmissionInputData + .PTOCycleWhileDriving, + "PTO During Drive", false) + : null; + + + var drivingCycle = CyclesCache.GetOrAdd(cycle.CycleData.Source, _ => DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired)); + + var electricMachines = + dao.CreateElectricMachines(vehicle.Components.ElectricMachines, + vehicle.ElectricMotorTorqueLimits) ?? + new List<Tuple<PowertrainPosition, ElectricMotorData>>(); + var battery = dao.CreateBatteryData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); + var superCap = dao.CreateSuperCapData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); + + + var jobType = VectoSimulationJobType.SerialHybridVehicle; + + var vehicleData = dao.CreateVehicleData(vehicle); + + var hybridParameters = dao.CreateHybridStrategyParameters(InputDataProvider.JobInputData.HybridStrategyParameters, + null, engineData); + yield return new VectoRunData { + JobName = InputDataProvider.JobInputData.JobName, + JobType = jobType, + EngineData = engineData, + GearboxData = gearboxData, + AxleGearData = axlegearData, + AngledriveData = angledriveData, + VehicleData = vehicleData, + AirdragData = dao.CreateAirdragData(vehicle.Components.AirdragInputData, vehicle), + DriverData = driver, + Aux = dao.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData), + BusAuxiliaries = + dao.CreateBusAuxiliariesData(vehicle.Components.AuxiliaryInputData, vehicleData, jobType), + Retarder = dao.CreateRetarderData(vehicle.Components.RetarderInputData), + PTO = ptoTransmissionData, + Cycle = new DrivingCycleProxy(drivingCycle, cycle.Name), + ExecutionMode = ExecutionMode.Engineering, + PTOCycleWhileDrive = ptoCycleWhileDrive, + + ElectricMachinesData = electricMachines, + HybridStrategyParameters = hybridParameters, + BatteryData = battery, + SuperCapData = superCap, + SimulationType = SimulationType.DistanceCycle | SimulationType.MeasuredSpeedCycle | + SimulationType.PWheel, + GearshiftParameters = gearshiftParams, + ElectricAuxDemand = InputDataProvider.JobInputData.Vehicle.Components.AuxiliaryInputData + .Auxiliaries.ElectricPowerDemand, + }; + } + } + + } + private IEnumerable<VectoRunData> GetBatteryElectricVehicleRunData() { foreach (var cycle in InputDataProvider.JobInputData.Cycles) @@ -107,8 +250,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl }, GearshiftParameters = gearshiftParams, ElectricMachinesData = electricMachinesData, - //VehicleData = dao.CreateVehicleData(vehicle) - }; + //VehicleData = dao.CreateVehicleData(vehicle) + }; var tempVehicle = dao.CreateVehicleData(vehicle); var tmpStrategy = PowertrainBuilder.GetShiftStrategy(new SimplePowertrainContainer(tmpRunData)); gearboxData = dao.CreateGearboxData( @@ -147,14 +290,14 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl AirdragData = dao.CreateAirdragData(vehicle.Components.AirdragInputData, vehicle), DriverData = driver, Aux = dao.CreateAuxiliaryData(vehicle.Components.AuxiliaryInputData), - BusAuxiliaries = dao.CreateBusAuxiliariesData(vehicle.Components.AuxiliaryInputData, vehicleData, VectoSimulationJobType.BatteryElectricVehicle), - Retarder = dao.CreateRetarderData(vehicle.Components.RetarderInputData), + BusAuxiliaries = dao.CreateBusAuxiliariesData(vehicle.Components.AuxiliaryInputData, vehicleData, VectoSimulationJobType.BatteryElectricVehicle), + Retarder = dao.CreateRetarderData(vehicle.Components.RetarderInputData), //PTO = ptoTransmissionData, Cycle = new DrivingCycleProxy(drivingCycle, cycle.Name), ExecutionMode = ExecutionMode.Engineering, - ElectricMachinesData = electricMachinesData, - //HybridStrategyParameters = dao.CreateHybridStrategyParameters(InputDataProvider.JobInputData.HybridStrategyParameters), - BatteryData = dao.CreateBatteryData(vehicle.Components.ElectricStorage, vehicle.InitialSOC), + ElectricMachinesData = electricMachinesData, + //HybridStrategyParameters = dao.CreateHybridStrategyParameters(InputDataProvider.JobInputData.HybridStrategyParameters), + BatteryData = dao.CreateBatteryData(vehicle.Components.ElectricStorage, vehicle.InitialSOC), SuperCapData = dao.CreateSuperCapData(vehicle.Components.ElectricStorage, vehicle.InitialSOC), SimulationType = SimulationType.DistanceCycle | SimulationType.MeasuredSpeedCycle | SimulationType.PWheel, GearshiftParameters = gearshiftParams, @@ -174,8 +317,10 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl foreach (var cycle in InputDataProvider.JobInputData.Cycles) { var dao = new EngineeringDataAdapter(); var driver = dao.CreateDriverData(InputDataProvider.DriverInputData); - if (InputDataProvider.JobInputData.JobType != VectoSimulationJobType.ConventionalVehicle) + if (InputDataProvider.JobInputData.JobType != VectoSimulationJobType.ConventionalVehicle) { driver.EngineStopStart.UtilityFactorDriving = 1; + } + var vehicle = InputDataProvider.JobInputData.Vehicle; var engineData = dao.CreateEngineData(vehicle, engineMode); engineData.FuelMode = modeIdx; @@ -225,18 +370,18 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl var drivingCycle = CyclesCache.GetOrAdd(cycle.CycleData.Source, _=> DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired)); var electricMachines = - dao.CreateElectricMachines(vehicle.Components.ElectricMachines, - vehicle.ElectricMotorTorqueLimits) ?? - new List<Tuple<PowertrainPosition, ElectricMotorData>>(); - var battery = dao.CreateBatteryData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); + dao.CreateElectricMachines(vehicle.Components.ElectricMachines, + vehicle.ElectricMotorTorqueLimits) ?? + new List<Tuple<PowertrainPosition, ElectricMotorData>>(); + var battery = dao.CreateBatteryData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); var superCap = dao.CreateSuperCapData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); - - var jobType = electricMachines.Count > 0 && (battery != null || superCap != null) - ? VectoSimulationJobType.ParallelHybridVehicle - : VectoSimulationJobType.ConventionalVehicle; + + var jobType = electricMachines.Count > 0 && (battery != null || superCap != null) + ? VectoSimulationJobType.ParallelHybridVehicle + : VectoSimulationJobType.ConventionalVehicle; - var vehicleData = dao.CreateVehicleData(vehicle); + var vehicleData = dao.CreateVehicleData(vehicle); var gearshiftParams = dao.CreateGearshiftData( gearboxData.Type, InputDataProvider.DriverInputData.GearshiftInputData, @@ -252,15 +397,15 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl UpshiftMinAcceleration = DeclarationData.Gearbox.UpshiftMinAcceleration, }; } - + var hybridParameters = jobType == VectoSimulationJobType.ParallelHybridVehicle - ? dao.CreateHybridStrategyParameters(InputDataProvider.JobInputData.HybridStrategyParameters, - vehicle.BoostingLimitations, engineData) - : null; - yield return new VectoRunData { + ? dao.CreateHybridStrategyParameters(InputDataProvider.JobInputData.HybridStrategyParameters, + vehicle.BoostingLimitations, engineData) + : null; + yield return new VectoRunData { JobName = InputDataProvider.JobInputData.JobName, - JobType = jobType, - EngineData = engineData, + JobType = jobType, + EngineData = engineData, GearboxData = gearboxData, AxleGearData = axlegearData, AngledriveData = angledriveData, @@ -276,9 +421,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ExecutionMode = ExecutionMode.Engineering, PTOCycleWhileDrive = ptoCycleWhileDrive, - ElectricMachinesData = electricMachines, - HybridStrategyParameters = hybridParameters, - BatteryData = battery, + ElectricMachinesData = electricMachines, + HybridStrategyParameters = hybridParameters, + BatteryData = battery, SuperCapData = superCap, SimulationType = SimulationType.DistanceCycle | SimulationType.MeasuredSpeedCycle | SimulationType.PWheel, diff --git a/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs b/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs index 6241b2ba4c6654602803c9718672e255a2467604..140efb62cfc0fb95ce2d5375fcdba714a8b96fb6 100644 --- a/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs +++ b/VectoCore/VectoCore/Models/Simulation/Data/ModalResultField.cs @@ -415,7 +415,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Data [ModalResultField(typeof(SI), caption: "P_E2_mech [kW]", outputFactor: 1e-3)] P_electricMotor_mech_B2, - // --> + + [ModalResultField(typeof(SI), caption: "P_GEN_mech [kW]", outputFactor: 1e-3)] + P_electricMotor_mech_Gen, + + // --> [ModalResultField(typeof(SI), caption: "P_REESS_T [kW]", outputFactor: 1e-3)] P_reess_terminal, [ModalResultField(typeof(SI), caption: "P_REESS_int [kW]", outputFactor: 1e-3)] P_reess_int, diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs index 715e43c85e5e655ad7657a03a8ccb82a863e8eec..72d333eee4ad10b01d233ee50332d4b7f98b4d81 100644 --- a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs +++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs @@ -74,6 +74,8 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus IRESSInfo BatteryInfo { get; } + IElectricSystemInfo ElectricSystemInfo { get; } + ITorqueConverterInfo TorqueConverterInfo { get; } ITorqueConverterControl TorqueConverterCtl { get; } @@ -98,5 +100,7 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus bool HasElectricMotor { get; } PowertrainPosition[] ElectricMotorPositions { get; } + + VectoSimulationJobType VehicleArchitecutre { get; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs index 6da75642290ea0dd9a3d6a25539b4c61a28431d2..9c65c7585e9c48cee154e80b36d6d46c8d9b00dc 100644 --- a/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs +++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IElectricMotorInfo.cs @@ -13,5 +13,7 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus Watt DragPower(Volt volt, PerSecond electricMotorSpeed); Watt MaxPowerDrive(Volt volt, PerSecond inAngularVelocity); NewtonMeter GetTorqueForElectricPower(Volt volt, Watt electricPower, PerSecond avgEmSpeed, Second dt); + + bool DeRatingActive { get; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs index 3a363abd3abfcedd74e5808fc3dc96c2aa375dfc..d2b1379ec1550d6139d663c702fa8d296f6cc1eb 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PCCEcoRollEngineStopPreprocessor.cs @@ -142,7 +142,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl criterion: response => { var r = (ResponseDryRun)response; return (r.Gearbox?.PowerRequest ?? r.ElectricMotor?.TotalTorqueDemand * r.ElectricMotor?.AvgDrivetrainSpeed).Value(); - } + }, + searcher: this ); } catch (VectoSearchAbortedException) { return gradient; diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index a464d94aa519c295a1c710619c8eb1cb5c90d0b9..e8c6f276bc060e44369d0528263ed26f5137eaa4 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -327,13 +327,15 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl case VectoSimulationJobType.ConventionalVehicle: return BuildFullPowertrainConventional(data); case VectoSimulationJobType.ParallelHybridVehicle: - return BuildFullPowertrainHybrid(data); - case VectoSimulationJobType.BatteryElectricVehicle: + return BuildFullPowertrainParallelHybrid(data); + case VectoSimulationJobType.SerialHybridVehicle: + return BuildFullPowertrainSerialHybrid(data); + case VectoSimulationJobType.BatteryElectricVehicle: return BuildBatteryElectricPowertrain(data); case VectoSimulationJobType.EngineOnlySimulation: return BuildEngineOnly(data); default: - throw new ArgumentOutOfRangeException(); + throw new ArgumentOutOfRangeException($"unknown job type: {data.JobType}"); } } @@ -372,7 +374,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl } - private IVehicleContainer BuildFullPowertrainHybrid(VectoRunData data) + private IVehicleContainer BuildFullPowertrainParallelHybrid(VectoRunData data) { if (data.Cycle.CycleType != CycleType.DistanceBased) { throw new VectoException("CycleType must be DistanceBased"); @@ -486,6 +488,136 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl return container; } + private IVehicleContainer BuildFullPowertrainSerialHybrid(VectoRunData data) + { + if (data.Cycle.CycleType != CycleType.DistanceBased) { + throw new VectoException("CycleType must be DistanceBased"); + } + + var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data }; + var es = new ElectricSystem(container); + + if (data.BatteryData != null) { + if (data.BatteryData.InitialSoC < data.BatteryData.Batteries.Min(x => x.Item2.MinSOC)) { + throw new VectoException("Battery: Initial SoC has to be higher than min SoC"); + } + var battery = new BatterySystem(container, data.BatteryData); + battery.Initialize(data.BatteryData.InitialSoC); + es.Connect(battery); + } + + if (data.SuperCapData != null) { + if (data.SuperCapData.InitialSoC < data.SuperCapData.MinVoltage / data.SuperCapData.MaxVoltage) { + throw new VectoException("SuperCap: Initial SoC has to be higher than min SoC"); + } + var superCap = new SuperCap(container, data.SuperCapData); + superCap.Initialize(data.SuperCapData.InitialSoC); + es.Connect(superCap); + } + + //var battery = new Battery(container, data.BatteryData); + //battery.Initialize(data.BatteryData.InitialSoC); + //es.Connect(battery); + var strategy = data.GearboxData != null && data.GearboxData.Type.AutomaticTransmission() + ? (IHybridControlStrategy)new SerialHybridStrategyAT(data, container) + : new SerialHybridStrategy(data, container); + + var aux = new ElectricAuxiliary(container); + aux.AddConstant("P_aux_el", data.ElectricAuxDemand ?? 0.SI<Watt>()); + es.Connect(aux); + + var ctl = new SerialHybridController(container, strategy, es); + + var engine = new StopStartCombustionEngine(container, data.EngineData); + + var idleController = engine.IdleController; + ctl.Engine = engine; + + var cycle = new DistanceBasedDrivingCycle(container, data.Cycle); + var powertrain = cycle + .AddComponent(new Driver(container, data.DriverData, new DefaultDriverStrategy(container))) + .AddComponent(new Vehicle(container, data.VehicleData, data.AirdragData)) + .AddComponent(new Wheels(container, data.VehicleData.DynamicTyreRadius, + data.VehicleData.WheelsInertia)) + .AddComponent(ctl) + .AddComponent(new Brakes(container)); + + var pos = data.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1; + IElectricMotor em; + switch (pos) { + case PowertrainPosition.HybridPositionNotSet: + throw new VectoException("invalid powertrain position"); + case PowertrainPosition.HybridP0: + case PowertrainPosition.HybridP1: + case PowertrainPosition.HybridP2: + case PowertrainPosition.HybridP3: + case PowertrainPosition.HybridP4: + throw new VectoException("Serial Hybrid Vehicle does not support parallel powertrain configurations"); + case PowertrainPosition.BatteryElectricE4: + em = GetElectricMachine(PowertrainPosition.BatteryElectricE4, data.ElectricMachinesData, container, es, ctl); + powertrain.AddComponent(em); + new DummyGearboxInfo(container, new GearshiftPosition(0)); + new DummyAxleGearInfo(container); + new ATClutchInfo(container); + break; + case PowertrainPosition.BatteryElectricE3: + em = GetElectricMachine(PowertrainPosition.BatteryElectricE3, data.ElectricMachinesData, container, es, ctl); + powertrain.AddComponent(new AxleGear(container, data.AxleGearData)) + .AddComponent(em); + new DummyGearboxInfo(container, new GearshiftPosition(0)); + new ATClutchInfo(container); + break; + case PowertrainPosition.BatteryElectricE2 when data.GearboxData.Type != GearboxType.APTN: + var shiftstrategy = new PEVAMTShiftStrategy(container); + em = GetElectricMachine(PowertrainPosition.BatteryElectricE2, data.ElectricMachinesData, + container, es, ctl); + powertrain.AddComponent(new AxleGear(container, data.AxleGearData)) + .AddComponent(new PEVGearbox(container, shiftstrategy)) + .AddComponent(em); + new ATClutchInfo(container); + break; + + case PowertrainPosition.BatteryElectricE2 when data.GearboxData.Type == GearboxType.APTN: + var strategyAPTN = new APTNShiftStrategy(container); + em = GetElectricMachine(PowertrainPosition.BatteryElectricE2, data.ElectricMachinesData, + container, es, ctl); + powertrain.AddComponent(new AxleGear(container, data.AxleGearData)) + .AddComponent(new APTNGearbox(container, strategyAPTN)) + .AddComponent(em); + new ATClutchInfo(container); + break; + + default: + throw new ArgumentOutOfRangeException(nameof(pos), pos, null); + } + + if (data.BusAuxiliaries != null) { + if (container.BusAux is BusAuxiliariesAdapter busAux) { + var auxCfg = data.BusAuxiliaries; + var electricStorage = auxCfg.ElectricalUserInputsConfig.AlternatorType == AlternatorType.Smart + ? new SimpleBattery(container, auxCfg.ElectricalUserInputsConfig.ElectricStorageCapacity, auxCfg.ElectricalUserInputsConfig.StoredEnergyEfficiency) + : (ISimpleBattery)new NoBattery(container); + busAux.ElectricStorage = electricStorage; + if (data.BusAuxiliaries.ElectricalUserInputsConfig.ConnectESToREESS) { + var dcdc = new DCDCConverter(container, + data.BusAuxiliaries.ElectricalUserInputsConfig.DCDCEfficiency); + busAux.DCDCConverter = dcdc; + es.Connect(dcdc); + } + + } else { + throw new VectoException("BusAux data set but no BusAux component found!"); + } + } + + ctl.GenSet.AddComponent(GetElectricMachine(PowertrainPosition.GEN, data.ElectricMachinesData, container, + es, ctl)) + .AddComponent(engine, idleController) + .AddAuxiliaries(container, data); + + return container; + } + private IVehicleContainer BuildBatteryElectricPowertrain(VectoRunData data) { if (data.Cycle.CycleType != CycleType.DistanceBased) { @@ -614,8 +746,12 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl container.ModData?.AddElectricMotor(pos); ctl.AddElectricMotor(pos, motorData.Item2); var motor = new ElectricMotor(container, motorData.Item2, ctl.ElectricMotorControl(pos), pos); - motor.Connect(es); - return motor; + if (pos == PowertrainPosition.GEN) { + es.Connect(new GensetChargerAdapter(motor)); + } else { + motor.Connect(es); + } + return motor; } private static IElectricMotor GetElectricMachine(PowertrainPosition pos, @@ -677,6 +813,117 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl .AddAuxiliaries(container, data); } + public void BuildSimpleSerialHybridPowertrain(VectoRunData data, VehicleContainer container) + { + var es = new ElectricSystem(container); + if (data.BatteryData != null) { + var battery = new BatterySystem(container, data.BatteryData); + battery.Initialize(data.BatteryData.InitialSoC); + es.Connect(battery); + } + + if (data.SuperCapData != null) { + var superCap = new SuperCap(container, data.SuperCapData); + superCap.Initialize(data.SuperCapData.InitialSoC); + es.Connect(superCap); + } + + //var battery = new Battery(container, data.BatteryData); + //battery.Initialize(data.BatteryData.InitialSoC); + //es.Connect(battery); + + var aux = new ElectricAuxiliary(container); + aux.AddConstant("P_aux_el", data.ElectricAuxDemand ?? 0.SI<Watt>()); + es.Connect(aux); + es.Connect(new GensetChargerAdapter(null)); + + var ctl = new SimpleHybridController(container, es); + + var pos = data.ElectricMachinesData.Select(x => x.Item1).First(x => x != PowertrainPosition.GEN); + + var vehicle = new Vehicle(container, data.VehicleData, data.AirdragData); + var powertrain = vehicle + .AddComponent(new Wheels(container, data.VehicleData.DynamicTyreRadius, + data.VehicleData.WheelsInertia)) + .AddComponent(ctl) + .AddComponent(new Brakes(container)); + + switch (pos) { + case PowertrainPosition.HybridPositionNotSet: + throw new VectoException("invalid powertrain position"); + case PowertrainPosition.BatteryElectricE2: + var gearbox = data.GearboxData.Type.AutomaticTransmission() + ? (IHybridControlledGearbox)new APTNGearbox(container, ctl.ShiftStrategy) + : new Gearbox(container, ctl.ShiftStrategy); + powertrain = powertrain.AddComponent(new AxleGear(container, data.AxleGearData)) + .AddComponent(data.AngledriveData != null + ? new Angledrive(container, data.AngledriveData) + : null) + .AddComponent((IGearbox)gearbox, data.Retarder, container) + .AddComponent(GetElectricMachine(PowertrainPosition.BatteryElectricE2, data.ElectricMachinesData, + container, + es, ctl)); + ctl.Gearbox = gearbox; + if (data.GearboxData.Type.AutomaticTransmission()) { + new DummyEngineInfo(container); + } + break; + case PowertrainPosition.BatteryElectricE3: + powertrain = powertrain.AddComponent(new AxleGear(container, data.AxleGearData)) + .AddComponent(GetElectricMachine(PowertrainPosition.BatteryElectricE3, data.ElectricMachinesData, + container, + es, ctl)); + new DummyGearboxInfo(container); + //new MockEngineInfo(container); + new ATClutchInfo(container); + break; + case PowertrainPosition.BatteryElectricE4: + powertrain = powertrain.AddComponent(GetElectricMachine(PowertrainPosition.BatteryElectricE4, data.ElectricMachinesData, + container, + es, ctl)); + new DummyGearboxInfo(container); + //new MockEngineInfo(container); + new ATClutchInfo(container); + break; + case PowertrainPosition.HybridP0: + case PowertrainPosition.HybridP1: + case PowertrainPosition.HybridP2_5: + case PowertrainPosition.HybridP2: + case PowertrainPosition.HybridP3: + case PowertrainPosition.HybridP4: + + throw new VectoException("testcase does not support parallel powertrain configurations"); + default: + throw new ArgumentOutOfRangeException(nameof(pos), pos, null); + } + + } + + public void BuildSimpleGenSet(VectoRunData data, VehicleContainer container) + { + var es = new ElectricSystem(container); + if (data.BatteryData != null) { + var battery = new BatterySystem(container, data.BatteryData); + battery.Initialize(data.BatteryData.InitialSoC); + es.Connect(battery); + } + + if (data.SuperCapData != null) { + var superCap = new SuperCap(container, data.SuperCapData); + superCap.Initialize(data.SuperCapData.InitialSoC); + es.Connect(superCap); + } + + //var ctl = new SimpleHybridController(container, es); + var ctl = new GensetMotorController(container, es); + + var genSet = GetElectricMachine(PowertrainPosition.GEN, data.ElectricMachinesData, container, es, ctl) + .AddComponent(new StopStartCombustionEngine(container, data.EngineData)); + + new ATClutchInfo(container); + new DummyGearboxInfo(container, new GearshiftPosition(0)); + } + public void BuildSimpleHybridPowertrain(VectoRunData data, VehicleContainer container) { //if (data.Cycle.CycleType != CycleType.DistanceBased) { @@ -714,7 +961,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl throw new VectoException("Gearbox can not be used for parallel hybrid"); } - var ctl = new SimpleHybridController(container, es, clutch); + var ctl = new SimpleHybridController(container, es); ctl.Gearbox = gbx; ctl.Engine = engine; @@ -814,6 +1061,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var aux = new ElectricAuxiliary(container); aux.AddConstant("P_aux_el", data.ElectricAuxDemand ?? 0.SI<Watt>()); es.Connect(aux); + es.Charger = new SimpleCharger(); var ctl = new DummyElectricMotorControl(); var powertrain = vehicle @@ -830,7 +1078,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl powertrain = powertrain.AddComponent(GetSimpleGearbox(container, data), data.Retarder, container); } - powertrain.AddComponent(GetElectricMachine(data.ElectricMachinesData[0].Item1, data.ElectricMachinesData, container, es, ctl)); + powertrain.AddComponent(GetElectricMachine(data.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item1, data.ElectricMachinesData, container, es, ctl)); // TODO: MQ 2018-11-19: engineering mode needs AUX power from cycle, use face cycle... // should be a reference/proxy to the main driving cyle. but how to access it? @@ -1017,19 +1265,19 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl switch (runData.GearboxData.Type) { case GearboxType.AMT: - if (runData.JobType == VectoSimulationJobType.ConventionalVehicle) { - runData.ShiftStrategy = AMTShiftStrategyOptimized.Name; - return new AMTShiftStrategyOptimized(container); - } - - if (runData.JobType == VectoSimulationJobType.BatteryElectricVehicle) { - runData.ShiftStrategy = PEVAMTShiftStrategy.Name; - return new PEVAMTShiftStrategy(container); + switch (runData.JobType) { + case VectoSimulationJobType.ConventionalVehicle: + runData.ShiftStrategy = AMTShiftStrategyOptimized.Name; + return new AMTShiftStrategyOptimized(container); + case VectoSimulationJobType.BatteryElectricVehicle: + case VectoSimulationJobType.SerialHybridVehicle: + runData.ShiftStrategy = PEVAMTShiftStrategy.Name; + return new PEVAMTShiftStrategy(container); + default: + throw new VectoException( + "no default gearshift strategy available for gearbox type {0} and job type {1}", + runData.GearboxData.Type, runData.JobType); } - - throw new VectoException( - "no default gearshift strategy available for gearbox type {0} and job type {1}", - runData.GearboxData.Type, runData.JobType); //return new AMTShiftStrategy(runData, container); case GearboxType.MT: runData.ShiftStrategy = MTShiftStrategy.Name; @@ -1059,7 +1307,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl private static IGearbox GetSimpleGearbox(IVehicleContainer container, VectoRunData runData) { - if (runData.GearboxData.Type.AutomaticTransmission()) { + if (runData.GearboxData.Type.AutomaticTransmission() && runData.GearboxData.Type != GearboxType.APTN) { new ATClutchInfo(container); return new ATGearbox(container, null); } @@ -1069,6 +1317,31 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl } + public class SimpleCharger : IElectricChargerPort + { + #region Implementation of IElectricChargerPort + + public Watt ChargingPower { get; set; } + + public SimpleCharger() + { + ChargingPower = 0.SI<Watt>(); + } + + public Watt Initialize() + { + ChargingPower = 0.SI<Watt>(); + return ChargingPower; + } + + public Watt PowerDemand(Second absTime, Second dt, Watt powerDemandEletricMotor, Watt auxPower, bool dryRun) + { + return ChargingPower; + } + + #endregion + } + internal class DummyEngineInfo : VectoSimulationComponent, IEngineInfo, IEngineControl { public DummyEngineInfo(VehicleContainer container) : base(container) @@ -1141,6 +1414,27 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl } } + public class GensetMotorController : IElectricMotorControl + { + public GensetMotorController(IVehicleContainer container, ElectricSystem es) + { + + } + + #region Implementation of IElectricMotorControl + + public NewtonMeter MechanicalAssistPower(Second absTime, Second dt, NewtonMeter outTorque, PerSecond prevOutAngularVelocity, + PerSecond currOutAngularVelocity, NewtonMeter maxDriveTorque, NewtonMeter maxRecuperationTorque, + PowertrainPosition position, bool dryRun) + { + return EMTorque; + } + + public NewtonMeter EMTorque { get; set; } + + #endregion + } + public class DummyElectricMotorControl : IElectricMotorControl { #region Implementation of IElectricMotorControl diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs index f68482bbe36ce839ec6f8bf63c7c85efdfc20456..f4d29946420a3a182ea5c811692d3073a194345c 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs @@ -79,9 +79,11 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl public IRESSInfo BatteryInfo { get; protected set; } public ITorqueConverterInfo TorqueConverterInfo { get; protected set; } - public virtual ITorqueConverterControl TorqueConverterCtl { get; private set; } + public virtual ITorqueConverterControl TorqueConverterCtl { get; protected set; } - public IDCDCConverter DCDCConverter { get; private set; } + public IDCDCConverter DCDCConverter { get; protected set; } + + public IElectricSystemInfo ElectricSystemInfo { get; protected set; } public virtual bool IsTestPowertrain => false; @@ -150,6 +152,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl if (component is IRESSInfo c14) { BatteryInfo = c14; } if (component is BusAuxiliariesAdapter c15) { BusAux = c15; } if (component is IDCDCConverter c16) { DCDCConverter = c16; } + if (component is IElectricSystemInfo c24) { ElectricSystemInfo = c24; } if (component is IEngineInfo c17){ EngineInfo = c17; @@ -246,6 +249,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl public PowertrainPosition[] ElectricMotorPositions => ElectricMotors.Keys.ToArray(); + public VectoSimulationJobType VehicleArchitecutre => RunData.JobType; + public virtual bool HasCombustionEngine { get; private set; } public virtual bool HasGearbox { get; private set; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs index 823cc7d8563d7e63eb422fc1e24d4004ce94d7d0..4df9c70a3c7a034acd0af0f875d48f3ab0616bad 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/EfficiencyMap.cs @@ -161,7 +161,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricMotor criterion: x => { var myX = (EfficiencyResult)x; return (myX.ElectricalPower - batPower).Value(); - }); + }, + searcher: this); var tmp = LookupElectricPower(avgSpeed, retVal, true); if ((tmp.ElectricalPower - batPower).IsGreater(Constants.SimulationSettings.InterpolateSearchTolerance)) { // searched operating point is not accurate enough... @@ -176,7 +177,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricMotor criterion: x => { var myX = (EfficiencyResult)x; return (myX.ElectricalPower - batPower).Value() * 1e3; - }); + }, + searcher: this); } return retVal; } catch (VectoSearchFailedException vsfe) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs index 9cfa95a43e1b42704a656a743d0175a60877f288..0563309743251e976ff8ef1de19ab021204235e9 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs @@ -76,7 +76,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data interval: 10.SI<NewtonMeter>(), getYValue: x => (Watt)x - electricPower, evaluateFunction: x => LookupElectricPower(voltage, avgSpeed, x, true).ElectricalPower, - criterion: x => ((Watt)x - electricPower).Value() + criterion: x => ((Watt)x - electricPower).Value(), + searcher: this ); return searchResult; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs index eb4c7d5c00c0c8d2280800b9a0a7356cdd9e31d2..8b6ea8c8f7d0ab14e4515f1cf212b1f375c3d7af 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/GearboxData.cs @@ -114,15 +114,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data var result = new List<ValidationResult>(); if (gearboxData.Gears.Any(g => g.Value.HasTorqueConverter)) { - if (!gearboxData.Type.AutomaticTransmission()) { + if (!gearboxData.Type.AutomaticTransmission() || gearboxData.Type == GearboxType.APTN) { return new ValidationResult("Torque Converter can only be used with AT gearbox model"); } } else { - if (gearboxData.Type.AutomaticTransmission()) { + if (gearboxData.Type.AutomaticTransmission() && gearboxData.Type != GearboxType.APTN) { return new ValidationResult("AT gearbox model requires torque converter"); } } - if (gearboxData.Type.AutomaticTransmission()) { + if (gearboxData.Type.AutomaticTransmission() && gearboxData.Type != GearboxType.APTN) { gearboxData.TorqueConverterData.RequiredSpeedRatio = Math.Round(gearboxData.Gears[1].TorqueConverterRatio / gearboxData.Gears[1].Ratio, 4) * 0.95; result.AddRange(gearboxData.TorqueConverterData.Validate(mode, jobType, emPos, gearboxData.Type, emsMission)); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs index 411fe2d83ad47e481f6ac65eb20c4949335431b0..13b66e4008ad65ca6aae88310f9e6eabb07f3c12 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/HybridStrategyParameters.cs @@ -26,5 +26,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data { //public Watt MaxDrivetrainPower { get; set; } public double CostFactorSOCExponent { get; internal set; } + + // serial hybrid only: factor applied to the max propulsion power which the genset needs to provide in the optimal operating point + public double GensetMinOptPowerFactor { get; set; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/ElectricSystem.cs b/VectoCore/VectoCore/Models/SimulationComponent/ElectricSystem.cs index 3cecf2e8b025422c005393c32dd18d3861b6ee51..2e3c4eec48c75de0ddecb430416d0dd6eed10732 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/ElectricSystem.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/ElectricSystem.cs @@ -15,7 +15,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent protected readonly List<IElectricAuxPort> Consumers = new List<IElectricAuxPort>(); - protected IElectricChargerPort Charger; + protected internal IElectricChargerPort Charger; protected IElectricEnergyStorage Battery; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/IElectricEnergyStorage.cs b/VectoCore/VectoCore/Models/SimulationComponent/IElectricEnergyStorage.cs index d3b35cbfb0bc8137aa61ada58366f22162d4b7bb..8a860cbf9a337185cf483d2eabd2c3dab7ebf78b 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/IElectricEnergyStorage.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/IElectricEnergyStorage.cs @@ -2,6 +2,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.Connector.Ports.Impl; using TUGraz.VectoCore.Models.Simulation.DataBus; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; namespace TUGraz.VectoCore.Models.SimulationComponent { @@ -21,6 +22,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent public interface IElectricSystem : IElectricSystemInfo { IElectricSystemResponse Request(Second absTime, Second dt, Watt powerDemand, bool dryRun = false); + void Connect(IElectricChargerPort charger); } public interface IElectricEnergyStorage : IBatteryProvider, IRESSInfo diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs index bcded50386b16b534646e01f50173cf6cf3c6a06..f0c00dce38b4517a0c5e4f8ae07c961331689625 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNGearbox.cs @@ -13,9 +13,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public class APTNGearbox : Gearbox { public APTNGearbox(IVehicleContainer container, IShiftStrategy strategy) : base(container, strategy) - { - ModelData.TractionInterruption = 0.SI<Second>(); - } + { } public override IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs index 948787726f44537174bc1c327010d5fd63fd1308..c2166b8895b10ee83c88a922765ce2a897922789 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/APTNShiftStrategy.cs @@ -6,7 +6,27 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { public class APTNShiftStrategy : PEVAMTShiftStrategy { - public APTNShiftStrategy(IVehicleContainer dataBus) : base(dataBus) { } + public APTNShiftStrategy(IVehicleContainer dataBus) : base(dataBus, false) + { + //VelocityDropData.Data = new[] { + // new VelocitySpeedGearshiftPreprocessor.Entry() { + // StartVelocity = 0.KMPHtoMeterPerSecond(), EndVelocity = 0.KMPHtoMeterPerSecond(), Gradient = VectoMath.InclinationToAngle(-20), + // }, + // new VelocitySpeedGearshiftPreprocessor.Entry() { + // StartVelocity = 0.KMPHtoMeterPerSecond(), EndVelocity = 0.KMPHtoMeterPerSecond(), Gradient = VectoMath.InclinationToAngle(20), + // }, + // new VelocitySpeedGearshiftPreprocessor.Entry() { + // StartVelocity = 200.KMPHtoMeterPerSecond(), EndVelocity = 200.KMPHtoMeterPerSecond(), Gradient = VectoMath.InclinationToAngle(-20), + // }, + // new VelocitySpeedGearshiftPreprocessor.Entry() { + // StartVelocity = 200.KMPHtoMeterPerSecond(), EndVelocity = 200.KMPHtoMeterPerSecond(), Gradient = VectoMath.InclinationToAngle(20), + // }, + //}; + if (dataBus.RunData.VehicleData == null) { + return; + } + SetupVelocityDropPreprocessor(dataBus); + } public new static string Name => "APT-N"; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs index 79f76c00a893cd75fa0965ea3240f9af8663f334..ac304a412001432e5035395607bea58fa378b933 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CombustionEngine.cs @@ -718,7 +718,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Constants.SimulationSettings.EngineIdlingSearchInterval, getYValue: result => ((ResponseDryRun)result).DeltaDragLoad, evaluateFunction: n => RequestPort.Request(absTime, dt, 0.SI<NewtonMeter>(), n, true), - criterion: result => ((ResponseDryRun)result).DeltaDragLoad.Value()); + criterion: result => ((ResponseDryRun)result).DeltaDragLoad.Value(), + searcher: this); Log.Debug("Found operating point for idling. absTime: {0}, dt: {1}, torque: {2}, angularSpeed: {3}", absTime, dt, 0.SI<NewtonMeter>(), angularSpeed); if (angularSpeed < _engine.ModelData.IdleSpeed) { @@ -732,7 +733,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Constants.SimulationSettings.EngineIdlingSearchInterval, getYValue: result => ((ResponseDryRun)result).DeltaFullLoad, evaluateFunction: n => RequestPort.Request(absTime, dt, 0.SI<NewtonMeter>(), n, true), - criterion: result => ((ResponseDryRun)result).DeltaFullLoad.Value()); + criterion: result => ((ResponseDryRun)result).DeltaFullLoad.Value(), + searcher: this); Log.Debug("Found operating point for idling. absTime: {0}, dt: {1}, torque: {2}, angularSpeed: {3}", absTime, dt, 0.SI<NewtonMeter>(), angularSpeed2); angularSpeed2 = angularSpeed2.LimitTo(_engine.ModelData.IdleSpeed, engineMaxSpeed); @@ -787,7 +789,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Constants.SimulationSettings.EngineIdlingSearchInterval, getYValue: result => ((ResponseDryRun)result).DeltaDragLoad, evaluateFunction: n => RequestPort.Request(absTime, dt, 0.SI<NewtonMeter>(), n, true), - criterion: result => ((ResponseDryRun)result).DeltaDragLoad.Value()); + criterion: result => ((ResponseDryRun)result).DeltaDragLoad.Value(), + searcher: this); Log.Debug("Found operating point for idling. absTime: {0}, dt: {1}, torque: {2}, angularSpeed: {3}", absTime, dt, 0.SI<NewtonMeter>(), angularSpeed); retVal = RequestPort.Request(absTime, dt, 0.SI<NewtonMeter>(), angularSpeed, false); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs index a30715f3873a4573a9e9dd91b4d094dcfa0e5647..dd37bc17dcad64c08544385ca33ae49909f8e021 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs @@ -390,7 +390,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Constants.SimulationSettings.EngineIdlingSearchInterval, getYValue: result => ((ResponseDryRun)result).DeltaDragLoad, evaluateFunction: n => NextComponent.Request(absTime, dt, 0.SI<NewtonMeter>(), n, true), - criterion: result => ((ResponseDryRun)result).DeltaDragLoad.Value()); + criterion: result => ((ResponseDryRun)result).DeltaDragLoad.Value(), + searcher: this); } catch (VectoException) { Log.Warn("CycleGearbox could not find motoring speed for disengaged state."); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs index 404d035726afcba1f8d2fe9d4f95a33a4f7141e6..25f68f9dcdcf3f88b8e0ea31cbf5ee63aa8fab9d 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs @@ -116,7 +116,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var modData = new ModalDataContainer(data, null, null); var builder = new PowertrainBuilder(modData); var testContainer = new SimplePowertrainContainer(data); - if (data.JobType != VectoSimulationJobType.BatteryElectricVehicle) + if (data.JobType != VectoSimulationJobType.BatteryElectricVehicle && data.JobType != VectoSimulationJobType.SerialHybridVehicle) builder.BuildSimplePowertrain(data, testContainer); else { builder.BuildSimplePowertrainElectric(data, testContainer); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index d99bce15fddcbf80aa93105f7a0aa2b133a16483..59c6a7b267bf1b068a7674b73eecbd147da1f0b1 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -589,7 +589,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl criterion: tOp => { var t = (Tuple<Tuple<TorqueConverterOperatingPoint, NewtonMeter>, NewtonMeter, NewtonMeter>)tOp; return GetTCDelta(t.Item1, t.Item2, t.Item3).Value(); - }); + }, + searcher: this); } catch (Exception e) { Log.Error(e, "Failed to find engine speed for valid torque converter operating point! absTime: {0}", absTime); @@ -670,7 +671,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var r = (ResponseDryRun)resp; return (tcOp.Item1.OutTorque - r.TorqueConverter.TorqueConverterTorqueDemand).Value(); - } + }, + searcher: this ); return acceleration; } @@ -1081,7 +1083,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return DataBus.GearboxInfo.GearboxType.AutomaticTransmission() && response.DeltaDragLoad.Value().IsSmallerOrEqual(-double.MaxValue / 20); }, - forceLineSearch: DataBus.GearboxInfo.GearboxType.AutomaticTransmission() && !DataBus.GearboxInfo.TCLocked); + forceLineSearch: DataBus.GearboxInfo.GearboxType.AutomaticTransmission() && !DataBus.GearboxInfo.TCLocked, + searcher: this); return operatingPoint; } catch (VectoSearchFailedException vse) { @@ -1116,7 +1119,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl : response.Gearbox.PowerRequest; return Math.Min(delta.Value(), 0); }, - forceLineSearch: true); + forceLineSearch: true, + searcher: this); return operatingPoint; } catch (Exception e2) { Log.Error("Failed to find operating point for braking power (attempt 2)! absTime: {0} {1}", absTime, e2); @@ -1206,7 +1210,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return true; } return r != null && !actionRoll && !allowDistanceDecrease && !ds.IsEqual(r.Driver.OperatingPoint.SimulationDistance); - }); + }, + searcher: this); return ComputeTimeInterval(retVal.Acceleration, retVal.SimulationDistance); } catch (VectoException ve) { switch (ve) { @@ -1278,7 +1283,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return r != null && !allowDistanceDecrease && !ds.IsEqual(r.Driver.OperatingPoint.SimulationDistance); }, - forceLineSearch: true); + forceLineSearch: true, + searcher: this); return ComputeTimeInterval(retVal.Acceleration, retVal.SimulationDistance); } catch (VectoException ve2) { Log.Error(ve2); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DummyGearboxInfo.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DummyGearboxInfo.cs index 32b108d69df67cce0396ff904cdd21bc1771f0fb..74ee79b2c1000f1b4084ef1899fc9d936ffccc2a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DummyGearboxInfo.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DummyGearboxInfo.cs @@ -11,9 +11,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { public class DummyGearboxInfo : VectoSimulationComponent, IGearboxInfo { - public DummyGearboxInfo(VehicleContainer container) : base(container) + public DummyGearboxInfo(VehicleContainer container, GearshiftPosition gear = null) : base(container) { - + Gear = gear ?? new GearshiftPosition(1); } #region Overrides of VectoSimulationComponent @@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public GearboxType GearboxType => GearboxType.AMT; - public GearshiftPosition Gear => new GearshiftPosition(1); + public GearshiftPosition Gear { get; } public bool TCLocked => true; @@ -49,7 +49,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public GearData GetGearData(uint gear) { - throw new NotImplementedException(); + return new GearData() { + MaxSpeed = null, + }; } public GearshiftPosition NextGear => throw new NotImplementedException(); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs index 62a47f71cc22183862a882d4e19a06afc22501ec..5cb6d4c91f7b483ccada5ce965fbd1426bc55358 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs @@ -18,14 +18,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public class ElectricMotor : StatefulProviderComponent<ElectricMotorState, ITnOutPort, ITnInPort, ITnOutPort>, IPowerTrainComponent, IElectricMotor, ITnOutPort, ITnInPort { - protected IElectricSystem ElectricPower; - internal IElectricMotorControl Control { get; } + protected internal IElectricSystem ElectricPower; + internal IElectricMotorControl Control { get; set; } protected ElectricMotorData ModelData; private PerSecond _maxSpeed; protected internal Joule ThermalBuffer = 0.SI<Joule>(); - protected internal bool DeRatingActive; + public bool DeRatingActive { get; protected internal set; } + public Joule OverloadBuffer { get; } public NewtonMeter ContinuousTorque { get; } @@ -292,6 +293,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl emTorque < 0 ? electricSupplyResponse.MaxPowerDrive : electricSupplyResponse.MaxPowerDrag, electricSupplyResponse.ConsumerPower); } + + if (Position == PowertrainPosition.GEN && emOff && !DataBus.EngineCtl.CombustionEngineOn) { + emTorqueDt = 0.SI<NewtonMeter>(); + } var inTorqueDt = outTorque + emTorqueDt; IResponse retVal; @@ -442,7 +447,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } - protected NewtonMeter ConvertEmTorqueToDrivetrain(PerSecond emSpeed, NewtonMeter emTorque) + protected internal NewtonMeter ConvertEmTorqueToDrivetrain(PerSecond emSpeed, NewtonMeter emTorque) { var dtTorque = ModelData.TransmissionLossMap.GetOutTorque(emSpeed, emTorque); @@ -456,7 +461,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl criterion: r => { var i = r as NewtonMeter; return (i - emTorque).Value() * 1e3; - }); + }, + searcher: this); } return dtTorque; @@ -562,6 +568,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ElectricPower = powersupply; } + protected internal PerSecond ConvertEmSpeedToDrivetrain(PerSecond emSpeed) + { + return emSpeed / ModelData.RatioADC; + } } public class ElectricMotorState // : SimpleComponentState diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/GensetChargerAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/GensetChargerAdapter.cs new file mode 100644 index 0000000000000000000000000000000000000000..0a38a67fde8b6c1647d3bb04f5f4c5081a9982ea --- /dev/null +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/GensetChargerAdapter.cs @@ -0,0 +1,79 @@ +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Connector.Ports.Impl; + +namespace TUGraz.VectoCore.Models.SimulationComponent.Impl +{ + public class GensetChargerAdapter : IElectricChargerPort + { + protected IElectricSystem es; + protected Watt PowerGenerated; + + public GensetChargerAdapter(ElectricMotor motor) + { + es = new ChargeElectricSystem(this); + motor?.Connect(es); + PowerGenerated = 0.SI<Watt>(); + } + + #region Implementation of IElectricChargerPort + + public Watt Initialize() + { + PowerGenerated = 0.SI<Watt>(); + return PowerGenerated; + } + + public Watt PowerDemand(Second absTime, Second dt, Watt powerDemandEletricMotor, Watt auxPower, bool dryRun) + { + return PowerGenerated; + } + + public Watt ChargingPower + { + set { PowerGenerated = value; } + } + + #endregion + + public class ChargeElectricSystem : IElectricSystem + { + protected GensetChargerAdapter Adapter; + + + public ChargeElectricSystem(GensetChargerAdapter adapter) + { + Adapter = adapter; + } + + #region Implementation of IElectricSystemInfo + + public Watt ElectricAuxPower => 0.SI<Watt>(); + public Watt ChargePower => 0.SI<Watt>(); + public Watt BatteryPower => 0.SI<Watt>(); + public Watt ConsumerPower => 0.SI<Watt>(); + public IElectricSystemResponse Request(Second absTime, Second dt, Watt powerDemand, bool dryRun = false) + { + if (!dryRun) { + Adapter.PowerGenerated = powerDemand; + } + + return new ElectricSystemResponseSuccess(this) { + RESSResponse = new RESSResponseSuccess(this) { + MaxChargePower = double.MaxValue.SI<Watt>(), + MaxDischargePower = -double.MaxValue.SI<Watt>(), + AbsTime = absTime, + }, + ConsumerPower = powerDemand + }; + } + + public void Connect(IElectricChargerPort charger) + { + throw new System.NotImplementedException(); + } + + #endregion + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs index 631fd2c9821f2833aa9c45a0d6bacebaeec11dc6..22c140fce2d05af5ea80f7c4cf5c97a6351cddc3 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/MeasuredSpeedDrivingCycle.cs @@ -193,7 +193,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl getYValue: result => ((ResponseDryRun)result).DeltaEngineSpeed, // ReSharper disable once AccessToModifiedClosure evaluateFunction: x => NextComponent.Request(absTime, dt, x, gradient, true), - criterion: y => ((ResponseDryRun)y).DeltaEngineSpeed.Value()); + criterion: y => ((ResponseDryRun)y).DeltaEngineSpeed.Value(), + searcher: this); Log.Info("Found operating point for driver acceleration. absTime: {0}, dt: {1}, acceleration: {2}, gradient: {3}", absTime, dt, acceleration, gradient); break; @@ -240,7 +241,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl }, criterion: y => DataBus.ClutchInfo.ClutchClosed(absTime) ? ((ResponseDryRun)y).DeltaDragLoad.Value() - : ((ResponseDryRun)y).Gearbox.PowerRequest.Value()); + : ((ResponseDryRun)y).Gearbox.PowerRequest.Value(), + searcher: this); Log.Info( "Found operating point for braking. absTime: {0}, dt: {1}, acceleration: {2}, gradient: {3}, BrakePower: {4}", absTime, dt, acceleration, gradient, DataBus.Brakes.BrakePower); @@ -254,7 +256,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Constants.SimulationSettings.OperatingPointInitialSearchIntervalAccelerating, getYValue: result => ((ResponseDryRun)result).DeltaFullLoad, evaluateFunction: x => NextComponent.Request(absTime, dt, x, gradient, true), - criterion: y => ((ResponseDryRun)y).DeltaFullLoad.Value()); + criterion: y => ((ResponseDryRun)y).DeltaFullLoad.Value(), + searcher: this); } var response = NextComponent.Request(absTime, dt, acceleration, gradient, false); @@ -270,7 +273,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl getYValue: result => ((ResponseDryRun)result).DeltaFullLoad, evaluateFunction: x => NextComponent.Request(absTime, dt, x, gradient, true), criterion: - y => ((ResponseDryRun)y).DeltaFullLoad.Value()); + y => ((ResponseDryRun)y).DeltaFullLoad.Value(), + searcher: this); Log.Info( "Found operating point for driver acceleration. absTime: {0}, dt: {1}, acceleration: {2}, gradient: {3}", absTime, dt, acceleration, gradient); @@ -286,7 +290,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl }, criterion: y => DataBus.ClutchInfo.ClutchClosed(absTime) ? ((ResponseDryRun)y).DeltaDragLoad.Value() - : ((ResponseDryRun)y).Gearbox.PowerRequest.Value()); + : ((ResponseDryRun)y).Gearbox.PowerRequest.Value(), + searcher: this); Log.Info( "Found operating point for braking. absTime: {0}, dt: {1}, acceleration: {2}, gradient: {3}, BrakePower: {4}", absTime, dt, acceleration, gradient, DataBus.Brakes.BrakePower); @@ -300,7 +305,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl Constants.SimulationSettings.OperatingPointInitialSearchIntervalAccelerating, getYValue: result => ((ResponseDryRun)result).DeltaFullLoad, evaluateFunction: x => NextComponent.Request(absTime, dt, x, gradient, true), - criterion: y => ((ResponseDryRun)y).DeltaFullLoad.Value()); + criterion: y => ((ResponseDryRun)y).DeltaFullLoad.Value(), + searcher: this); } } var response = NextComponent.Request(absTime, dt, acceleration, gradient, false); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs index cb842a7c3d271c086da251995c3d80f5bbbc2cf6..9505ec1ede76c37b1e2b73574d0a97a9c6b4fe2e 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PEVAMTShiftStrategy.cs @@ -19,13 +19,14 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; using TUGraz.VectoCore.Models.SimulationComponent.Strategies; using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { public class PEVAMTShiftStrategy : LoggingObject, IShiftStrategy { - protected readonly IDataBus DataBus; + protected IDataBus DataBus; protected readonly GearboxData GearboxModelData; protected Gearbox _gearbox; @@ -44,7 +45,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private SI TransmissionRatio; private ShiftStrategyParameters GearshiftParams; private GearList GearList; - private Dictionary<uint, ShiftPolygon> DeRatedShiftpolygons; + private Dictionary<uint, ShiftPolygon> DeRatedShiftpolygons; + private SimpleCharger TestContainerElectricSystemCharger; public static string Name => "AMT - EffShift (BEV)"; @@ -52,42 +54,49 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected bool DriveOffStandstill { get; set; } - public PEVAMTShiftStrategy(IVehicleContainer dataBus) + public PEVAMTShiftStrategy(IVehicleContainer dataBus) : this(dataBus, false) { + if (dataBus.RunData.VehicleData == null) { + return; + } + SetupVelocityDropPreprocessor(dataBus); + } + + protected PEVAMTShiftStrategy(IVehicleContainer dataBus, bool dummy) + { + DataBus = dataBus; var runData = dataBus.RunData; shiftStrategyParameters = runData.GearshiftParameters; if (runData.VehicleData == null) { return; } - GearboxModelData = dataBus.RunData.GearboxData; - GearshiftParams = dataBus.RunData.GearshiftParameters; + GearboxModelData = runData.GearboxData; + GearshiftParams = runData.GearshiftParameters; GearList = GearboxModelData.GearList; MaxStartGear = GearList.Reverse().First(); - VoltageLevels = dataBus.RunData.ElectricMachinesData + VoltageLevels = runData.ElectricMachinesData .FirstOrDefault(x => x.Item1 == PowertrainPosition.BatteryElectricE2)?.Item2.EfficiencyData; - DataBus = dataBus; + TransmissionRatio = runData.AxleGearData.AxleGear.Ratio * - (runData.AngledriveData?.Angledrive.Ratio ?? 1.0) / - runData.VehicleData.DynamicTyreRadius; - //var minEngineSpeed = (runData.EngineData.FullLoadCurves[0].RatedSpeed - runData.EngineData.IdleSpeed) * - // Constants.SimulationSettings.ClutchClosingSpeedNorm + runData.EngineData.IdleSpeed; + (runData.AngledriveData?.Angledrive.Ratio ?? 1.0) / + runData.VehicleData.DynamicTyreRadius; + //var minEngineSpeed = (runData.EngineData.FullLoadCurves[0].RatedSpeed - runData.EngineData.IdleSpeed) * + // Constants.SimulationSettings.ClutchClosingSpeedNorm + runData.EngineData.IdleSpeed; + + - - if (shiftStrategyParameters == null) { throw new VectoException("Parameters for shift strategy missing!"); } - SetupVelocityDropPreprocessor(dataBus); - - DeRatedShiftpolygons = CalculateDeratedShiftLines(runData.ElectricMachinesData.First(x => x.Item1 == PowertrainPosition.BatteryElectricE2).Item2, - runData.GearboxData.InputData.Gears, runData.VehicleData.DynamicTyreRadius, - runData.AxleGearData.AxleGear.Ratio, runData.GearboxData.Type); - } + DeRatedShiftpolygons = CalculateDeratedShiftLines(runData.ElectricMachinesData.First(x => x.Item1 == PowertrainPosition.BatteryElectricE2).Item2, + runData.GearboxData.InputData.Gears, runData.VehicleData.DynamicTyreRadius, + runData.AxleGearData.AxleGear.Ratio, runData.GearboxData.Type); + } - private void SetupVelocityDropPreprocessor(IVehicleContainer dataBus) + protected void SetupVelocityDropPreprocessor(IVehicleContainer dataBus) { var runData = dataBus.RunData; // MQ: 2019-11-29 - fuel used here has no effect as this is the modDatacontainer for the test-powertrain only! @@ -99,6 +108,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl TestContainerBattery = TestContainer.BatteryInfo as Battery; TestContainerBatterySystem = TestContainer.BatteryInfo as BatterySystem; TestContainerSuperCap = TestContainer.BatteryInfo as SuperCap; + TestContainerElectricSystemCharger = (TestContainer.ElectricSystemInfo as ElectricSystem)?.Charger as SimpleCharger; TestContainerElectricMotor = TestContainer.ElectricMotorInfo(PowertrainPosition.BatteryElectricE2) as ElectricMotor; if (TestContainerGbx == null) { @@ -114,7 +124,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl dataBus.AddPreprocessor( new VelocitySpeedGearshiftPreprocessorE2(VelocityDropData, runData.GearboxData.TractionInterruption, TestContainer, -grad, grad, 2)); - } #region Implementation of IShiftPolygonCalculator @@ -584,6 +593,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } TestContainerSuperCap?.Initialize(DataBus.BatteryInfo.StateOfCharge); + if (TestContainerElectricSystemCharger != null) { + TestContainerElectricSystemCharger.ChargingPower = (DataBus.ElectricSystemInfo.ChargePower); + } + //var pos = ModelData.ElectricMachinesData.FirstOrDefault().Item1; TestContainerElectricMotor.ThermalBuffer = (DataBus.ElectricMotorInfo(PowertrainPosition.BatteryElectricE2) as ElectricMotor).ThermalBuffer; @@ -604,6 +617,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return InitStartGear(absTime, outTorque, outAngularVelocity); } + var emE2 = DataBus.ElectricMotorInfo(PowertrainPosition.BatteryElectricE2) as ElectricMotor; + if (emE2 is null) { + throw new VectoException("PEV Shift Strategy requires electric motor at position E2"); + } + + var emCtl = emE2.Control; + emE2.Control = new PEVInitControl(DataBus as IVehicleContainer); foreach (var gear in GearList.Reverse()) { //for (var gear = (uint)GearboxModelData.Gears.Count; gear > 1; gear--) { var response = _gearbox.Initialize(absTime, gear, outTorque, outAngularVelocity); @@ -617,6 +637,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return gear; } } + emE2.Control = emCtl; // fallback: return first gear _nextGear = GearList.First(); return _nextGear; @@ -628,6 +649,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var emSpeeds = new Dictionary<GearshiftPosition, Tuple<PerSecond, PerSecond, double>>(); + + var emE2 = DataBus.ElectricMotorInfo(PowertrainPosition.BatteryElectricE2) as ElectricMotor; + if (emE2 is null) { + throw new VectoException("PEV Shift Strategy requires electric motor at position E2"); + } + + var emCtl = emE2.Control; + emE2.Control = new PEVInitControl(DataBus as IVehicleContainer); foreach (var gear in GearList.Reverse()) { //for (var gear = (uint)GearboxModelData.Gears.Count; gear >= 1; gear--) { var inAngularSpeed = outAngularVelocity * GearboxModelData.Gears[gear.Gear].Ratio; @@ -656,6 +685,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl } } + emE2.Control = emCtl; + if (emSpeeds.Any()) { var optimum = emSpeeds.MaxBy(x => x.Key.Gear); //x => VectoMath.Abs(x.Value.Item2 - FullLoadCurve.MaxSpeed * 0.5)); _nextGear = optimum.Key; @@ -665,6 +696,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return _nextGear; } + + protected bool IsBelowDownShiftCurve(GearshiftPosition gear, NewtonMeter inTorque, PerSecond inEngineSpeed, bool deRatingActive) @@ -703,10 +736,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private ShiftPolygon GetShiftpolygon(GearshiftPosition gear, bool deRatingActive) { - if (deRatingActive) { - return DeRatedShiftpolygons[gear.Gear]; - } - return GearboxModelData.Gears[gear.Gear].ShiftPolygon; + if (deRatingActive) { + return DeRatedShiftpolygons[gear.Gear]; + } + return GearboxModelData.Gears[gear.Gear].ShiftPolygon; } protected bool IsBelowDownshiftCurve(ShiftPolygon shiftPolygon, NewtonMeter emTorque, PerSecond emSpeed) @@ -776,11 +809,52 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public void WriteModalResults(IModalDataContainer container) { } + #endregion - #region Implementation of IShiftPolygonCalculator + private class PEVInitControl : IElectricMotorControl + { + protected IDataBus DataBus; + protected ElectricMotorData ElectricMotorData; + + public PEVInitControl(IVehicleContainer dataBus) + { + DataBus = dataBus; + ElectricMotorData = dataBus.RunData.ElectricMachinesData + .First(x => x.Item1 == PowertrainPosition.BatteryElectricE2).Item2; + } + + #region Implementation of IElectricMotorControl + + public NewtonMeter MechanicalAssistPower(Second absTime, Second dt, NewtonMeter outTorque, PerSecond prevOutAngularVelocity, + PerSecond currOutAngularVelocity, NewtonMeter maxDriveTorque, NewtonMeter maxRecuperationTorque, + PowertrainPosition position, bool dryRun) + { + if (!DataBus.GearboxInfo.GearEngaged(absTime) && DataBus.DriverInfo.DrivingAction == DrivingAction.Roll) { + var avgSpeed = (prevOutAngularVelocity + currOutAngularVelocity) / 2; + var inertiaTorqueLoss = avgSpeed.IsEqual(0) + ? 0.SI<NewtonMeter>() + : Formulas.InertiaPower(currOutAngularVelocity, prevOutAngularVelocity, ElectricMotorData.Inertia, dt) / avgSpeed; + //var dragTorque = ElectricMotorData.DragCurve.Lookup() + return (-inertiaTorqueLoss); //.LimitTo(maxDriveTorque, maxRecuperationTorque); + } + if (DataBus.DriverInfo.DrivingAction == DrivingAction.Coast || + DataBus.DriverInfo.DrivingAction == DrivingAction.Roll) { + return null; + } - - #endregion + if (DataBus.VehicleInfo.VehicleSpeed.IsSmallerOrEqual(Constants.SimulationSettings.ClutchDisengageWhenHaltingSpeed) && outTorque.IsSmaller(0)) { + return null; + } + + if (maxDriveTorque == null) { + return null; + } + + return (-outTorque).LimitTo(maxDriveTorque, maxRecuperationTorque ?? VectoMath.Max(maxDriveTorque, 0.SI<NewtonMeter>())); + } + + #endregion + } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs index 1c8ee412bba22725e1a01068789efb6c0db3d9c3..693fe029533d2430580a1815dac2fdffd9019170 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/PowertrainDrivingCycle.cs @@ -127,7 +127,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var torque = SearchAlgorithm.Search(CycleIterator.LeftSample.Torque, r.Delta, torqueInterval, getYValue: result => ((ResponseDryRun)result).DeltaDragLoad, evaluateFunction: t => NextComponent.Request(absTime, dt, t, angularVelocity, true), - criterion: y => ((ResponseDryRun)y).DeltaDragLoad.Value()); + criterion: y => ((ResponseDryRun)y).DeltaDragLoad.Value(), + searcher: this); response = NextComponent.Request(absTime, dt, torque, angularVelocity, false); CurrentState.InTorque = torque; break; @@ -135,7 +136,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var torque2 = SearchAlgorithm.Search(CycleIterator.LeftSample.Torque, r.Delta, 50.SI<NewtonMeter>(), getYValue: result => ((ResponseDryRun)result).DeltaFullLoad, evaluateFunction: t => NextComponent.Request(absTime, dt, t, angularVelocity, true), - criterion: y => ((ResponseDryRun)y).DeltaFullLoad.Value()); + criterion: y => ((ResponseDryRun)y).DeltaFullLoad.Value(), + searcher: this); response = NextComponent.Request(absTime, dt, torque2, angularVelocity, false); CurrentState.InAngularVelocity = angularVelocity; CurrentState.InTorque = torque2; @@ -145,7 +147,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl 1.RPMtoRad(), getYValue: result => ((ResponseDryRun)result).DeltaEngineSpeed, evaluateFunction: x => NextComponent.Request(absTime, dt, CurrentState.InTorque, x, true), - criterion: y => ((ResponseDryRun)y).DeltaEngineSpeed.Value()); + criterion: y => ((ResponseDryRun)y).DeltaEngineSpeed.Value(), + searcher: this); break; case ResponseFailTimeInterval r: dt = r.DeltaT; diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SerialHybridController.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SerialHybridController.cs new file mode 100644 index 0000000000000000000000000000000000000000..29bb9d27537c772ef892168bd30782ae0f3f19b0 --- /dev/null +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SerialHybridController.cs @@ -0,0 +1,328 @@ +using System; +using System.Collections.Generic; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Connector.Ports; +using TUGraz.VectoCore.Models.Connector.Ports.Impl; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.Models.SimulationComponent.Impl +{ + public class SerialHybridController : StatefulProviderComponent<SerialHybridController.HybridControllerState, + ITnOutPort, ITnInPort, ITnOutPort>, IHybridController, ITnOutPort, ITnInPort + { + protected readonly Dictionary<PowertrainPosition, ElectricMotorController> _electricMotorCtl; + + private Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>> _electricMotorTorque = + new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>>(); + + protected readonly IHybridControlStrategy _hybridStrategy; + + private HybridStrategyResponse CurrentStrategySettings = null; + + protected DebugData DebugData = new DebugData(); + + protected ITnOutPort GenSetPort; + + public SerialHybridController(IVehicleContainer container, IHybridControlStrategy strategy, IElectricSystem es) : base(container) + { + GenSet = new TnInPortWrapper(this); + _electricMotorCtl = new Dictionary<PowertrainPosition, ElectricMotorController>(); + //_shiftStrategy = container.RunData.GearboxData.Type.AutomaticTransmission() + // ? new HybridController.HybridCtlATShiftStrategy(this, container) + // : new HybridController.HybridCtlShiftStrategy(this, container); + _hybridStrategy = strategy; + strategy.Controller = this; + + ElectricSystem = es; + } + + + + public IHybridControlStrategy Strategy => _hybridStrategy; + + public IElectricSystem ElectricSystem { get; } + + + public IHybridControlledGearbox Gearbox { protected get; set; } + public ICombustionEngine Engine { protected get; set; } + + //public + + #region Overrides of VectoSimulationComponent + + protected override void DoWriteModalResults(Second time, Second simulationInterval, IModalDataContainer container) + { + Strategy.WriteModalResults(time, simulationInterval, container); + } + + #endregion + + #region Implementation of ITnOutPort + + public IResponse Request(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, bool dryRun) + { + var retry = false; + var retryCount = 0; + IResponse retVal; + do { + if (retryCount > 10) { + throw new VectoException("SerialHybridStrategy: retry count exceeded! {0}", DebugData); + } + + retry = false; + + var strategyResponse = Strategy.Request(absTime, dt, outTorque, outAngularVelocity, dryRun); + + if (strategyResponse is HybridStrategyLimitedResponse ovl) { + if (dryRun) { + return new ResponseDryRun(this) { + DeltaDragLoad = ovl.Delta, + DeltaFullLoad = ovl.Delta, + // TODO! delta full/drag torque + DeltaEngineSpeed = ovl.DeltaEngineSpeed, + Gearbox = { + InputTorque = ovl.GearboxResponse?.InputTorque, + InputSpeed = ovl.GearboxResponse?.InputSpeed, + OutputTorque = ovl.GearboxResponse?.OutputTorque, + OutputSpeed = ovl.GearboxResponse?.OutputSpeed, + PowerRequest = ovl.GearboxResponse?.PowerRequest, + Gear = ovl.GearboxResponse?.Gear + } + + }; + } + + return new ResponseOverload(this) { + Delta = ovl.Delta + }; + } + + var strategySettings = strategyResponse as HybridStrategyResponse; + ApplyStrategySettings(strategySettings); + CurrentStrategySettings = strategySettings; + if (!dryRun) { + CurrentState.SetState(outTorque, outAngularVelocity, outTorque, outAngularVelocity); + CurrentState.StrategyResponse = strategySettings; + } + + // Todo: re-think for S2 configuration.... + //if (!dryRun && /*!DataBus.EngineInfo.EngineOn &&*/ strategySettings.ShiftRequired) { + // DataBus.GearboxCtl.TriggerGearshift(absTime, dt); + // _shiftStrategy.SetNextGear(strategySettings.NextGear); + // SelectedGear = strategySettings.NextGear; + // if (!DataBus.GearboxInfo.GearboxType.AutomaticTransmission()) { + // return new ResponseGearShift(this); + // } + //} + + var gensetResponse = GenSetPort.Request(absTime, dt, 0.SI<NewtonMeter>(), + strategySettings.GenSetSpeed, dryRun); + + if (!(gensetResponse is ResponseSuccess || gensetResponse is ResponseDryRun)) { + throw new VectoException("Invalid operating point for Genset provided by strategy! {0}", + gensetResponse); + } + + var gear = DataBus.GearboxInfo.Gear; + retVal = NextComponent.Request(absTime, dt, outTorque, outAngularVelocity, dryRun); + DebugData.Add(new { + DrivingAction = DataBus.DriverInfo.DrivingAction, + StrategySettings = strategySettings, + Response = retVal, + DryRun = dryRun + }); + + if (DataBus.GearboxInfo.GearboxType.AutomaticTransmission() && !gear.Equals(DataBus.GearboxInfo.Gear)) { + retryCount++; + retry = true; + Strategy.OperatingpointChangedDuringRequest(absTime, dt, outTorque, outAngularVelocity, dryRun, + retVal); + continue; + } + + if (retVal is ResponseDifferentGearEngaged) { + retryCount++; + retry = true; + Strategy.OperatingpointChangedDuringRequest(absTime, dt, outTorque, outAngularVelocity, dryRun, + retVal); + continue; + } + retVal.HybridController.StrategySettings = strategySettings; + + } while (retry); + + var modifiedResponse = + Strategy.AmendResponse(retVal, absTime, dt, outTorque, outAngularVelocity, dryRun); + + return modifiedResponse; + } + + private void ApplyStrategySettings(HybridStrategyResponse strategySettings) + { + if (Gearbox != null) { + Gearbox.SwitchToNeutral = strategySettings.GearboxInNeutral; + } + + Engine.CombustionEngineOn = strategySettings.CombustionEngineOn; + _electricMotorTorque = strategySettings.MechanicalAssistPower; + //if (DataBus.VehicleInfo.VehicleStopped && strategySettings.NextGear.Gear != 0) { + //_shiftStrategy.SetNextGear(strategySettings.NextGear); + //} + } + + protected override void DoCommitSimulationStep(Second time, Second simulationInterval) + { + base.DoCommitSimulationStep(time, simulationInterval); + Strategy.CommitSimulationStep(time, simulationInterval); + DebugData = new DebugData(); + } + + public IResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) + { + PreviousState.SetState(outTorque, outAngularVelocity, outTorque, outAngularVelocity); + var strategyResponse = Strategy.Initialize(outTorque, outAngularVelocity); + PreviousState.StrategyResponse = strategyResponse as HybridStrategyResponse; + _electricMotorTorque = PreviousState.StrategyResponse.MechanicalAssistPower; + + DuringInitialize = true; + + var retVal = NextComponent.Initialize(outTorque, outAngularVelocity); + if (DataBus.GearboxInfo != null) { + SelectedGear = DataBus.GearboxInfo.Gear; + } + + + GenSetPort.Initialize(0.SI<NewtonMeter>(), DataBus.EngineInfo.EngineIdleSpeed); + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineOn = false; + + DuringInitialize = false; + + return retVal; + } + + protected bool DuringInitialize { get; set; } + + #endregion + + #region Implementation of IHybridControllerInfo + + public GearshiftPosition SelectedGear { get; protected set; } + public PerSecond ICESpeed { get; } + public bool GearboxEngaged { get; } + public Second SimulationInterval => CurrentStrategySettings.SimulationInterval; + public PerSecond ElectricMotorSpeed(PowertrainPosition pos) + { + return CurrentStrategySettings.MechanicalAssistPower[pos].Item1; + } + + #endregion + + #region Implementation of IHybridControllerCtl + + public void RepeatDrivingAction(Second absTime) + { + Strategy.RepeatDrivingAction(absTime); + } + + #endregion + + #region Implementation of IHybridController + + public IShiftStrategy ShiftStrategy { get; } + SimpleComponentState IHybridController.PreviousState => PreviousState; + public ITnInProvider GenSet { get; } + + public IElectricMotorControl ElectricMotorControl(PowertrainPosition pos) + { + return _electricMotorCtl[pos]; + } + + public void AddElectricMotor(PowertrainPosition pos, ElectricMotorData motorData) + { + if (_electricMotorCtl.ContainsKey(pos)) { + throw new VectoException("Electric motor already registered as position {0}", pos); + } + + _electricMotorCtl[pos] = new ElectricMotorController(this, motorData); + } + + + + #endregion + + private NewtonMeter MechanicalAssistPower(PowertrainPosition pos, Second absTime, Second dt, + NewtonMeter outTorque, PerSecond prevOutAngularVelocity, PerSecond currOutAngularVelocity, NewtonMeter maxDriveTorque, NewtonMeter maxRecuperationTorque, bool dryRun) + { + if (DuringInitialize && pos == PowertrainPosition.BatteryElectricE2) { + return (-outTorque).LimitTo(maxDriveTorque, maxRecuperationTorque ?? VectoMath.Max(maxDriveTorque, 0.SI<NewtonMeter>())); + } + + return _electricMotorTorque[pos]?.Item2; + } + + ///======================================================================================= + + public class HybridControllerState : SimpleComponentState + { + public HybridStrategyResponse StrategyResponse { get; set; } + } + + ///======================================================================================= + private class TnInPortWrapper : ITnInProvider, ITnInPort + { + protected SerialHybridController Controller; + + public TnInPortWrapper(SerialHybridController ctl) + { + Controller = ctl; + } + + #region Implementation of ITnInProvider + + public ITnInPort InPort() + { + return this; + } + + #endregion + + #region Implementation of ITnInPort + + public void Connect(ITnOutPort other) + { + Controller.GenSetPort = other; + } + + #endregion + } + + ///======================================================================================= + + public class ElectricMotorController : IElectricMotorControl + { + protected SerialHybridController _controller; + protected ElectricMotorData ElectricMotorData; + + public ElectricMotorController(SerialHybridController hybridController, ElectricMotorData motorData) + { + _controller = hybridController; + ElectricMotorData = motorData; + } + + public NewtonMeter MechanicalAssistPower(Second absTime, Second dt, NewtonMeter outTorque, + PerSecond prevOutAngularVelocity, PerSecond currOutAngularVelocity, + NewtonMeter maxDriveTorque, NewtonMeter maxRecuperationTorque, PowertrainPosition position, bool dryRun) + { + return _controller.MechanicalAssistPower(position, absTime, dt, outTorque, prevOutAngularVelocity, + currOutAngularVelocity, maxDriveTorque, maxRecuperationTorque, dryRun); + } + } + + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimpleHybridController.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimpleHybridController.cs index 357c0e28a0458b9b13ddbc25c8aea2043223dc75..e294003b24e6bbed7eeffb352f5fd30c74f04f11 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimpleHybridController.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimpleHybridController.cs @@ -23,7 +23,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { private Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>> _electricMotorTorque = new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>>(); - public SimpleHybridController(VehicleContainer container, ElectricSystem es, SwitchableClutch clutch) : base(container) + public SimpleHybridController(VehicleContainer container, ElectricSystem es) : base(container) { ElectricSystem = es; //this.clutch = clutch; @@ -117,8 +117,13 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { public void ApplyStrategySettings(HybridStrategyResponse strategySettings) { - Gearbox.SwitchToNeutral = strategySettings.GearboxInNeutral; - Engine.CombustionEngineOn = strategySettings.CombustionEngineOn; + if (Gearbox != null) { + Gearbox.SwitchToNeutral = strategySettings.GearboxInNeutral; + } + + if (Engine != null) { + Engine.CombustionEngineOn = strategySettings.CombustionEngineOn; + } _electricMotorTorque = strategySettings.MechanicalAssistPower; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs index 1d94509c1fe9b6a5f361782cca641afacd26156d..f910fa535413d41bf50afa4c4151199798964654 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Vehicle.cs @@ -87,7 +87,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected virtual void SetMaxVehicleSpeed() { - if (DataBus.PowertrainInfo.HasCombustionEngine) { + if (DataBus.PowertrainInfo.VehicleArchitecutre != VectoSimulationJobType.SerialHybridVehicle && DataBus.PowertrainInfo.HasCombustionEngine) { if (DataBus.GearboxInfo == null || DataBus.AxlegearInfo == null) { throw new VectoException("Powertrain with combustion engine requires gearbox and axlegear!"); //return; @@ -101,7 +101,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl if (DataBus.PowertrainInfo.HasElectricMotor) { - var positions = DataBus.PowertrainInfo.ElectricMotorPositions; + var positions = DataBus.PowertrainInfo.ElectricMotorPositions.Where(x => x != PowertrainPosition.GEN).ToArray(); + ; if (positions.Length > 1) { throw new VectoException("Multiple electrical machines are currently not supported"); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs index 806ce19c832edc5f0ddb06c8689c8a2afb10e8f4..f4262e239e04a49afc0021c172ca5f764a2e4559 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/VelocitySpeedGearshiftPreprocessor.cs @@ -152,6 +152,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { var simulationInterval = TractionInterruption; + if (simulationInterval.IsEqual(0)) { + return vehicle.VehicleSpeed; + } + var acceleration = 0.SI<MeterPerSquareSecond>(); var absTime = 0.SI<Second>(); var initialResponse = vehicle.Request(absTime, simulationInterval, acceleration, gradient); @@ -176,7 +180,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl abortCriterion: (response, cnt) => { var r = (ResponseDryRun)response; return r != null && (vehicle.VehicleSpeed + r.Driver.Acceleration * simulationInterval) < 0.KMPHtoMeterPerSecond(); - } + }, + searcher: this ); var step = vehicle.Request(absTime, simulationInterval, acceleration, gradient); if (!(step is ResponseSuccess)) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs new file mode 100644 index 0000000000000000000000000000000000000000..7f6ba0eaee898f818765cd56d62ecdadbb7f86ae --- /dev/null +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/GensetPreprocessor.cs @@ -0,0 +1,193 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.Models.Connector.Ports.Impl; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricMotor; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies +{ + public class GensetPreprocessor : ISimulationPreprocessor + { + protected TestGenset Genset; + private CombustionEngineData IceData; + private ElectricMotorData EmData; + protected GenSetCharacteristics OptimalPoints; + + public GensetPreprocessor(GenSetCharacteristics optimalPoints, TestGenset testGenSet, CombustionEngineData engineData, + ElectricMotorData electricMotorData) + { + Genset = testGenSet; + IceData = engineData; + EmData = electricMotorData; + OptimalPoints = optimalPoints; + } + + #region Implementation of ISimulationPreprocessor + + public void RunPreprocessing() + { + var voltage = EmData.EfficiencyData.VoltageLevels.First().Voltage; + + IterateElectricPower(voltage); + + MaxElectricPower(voltage, false); + + MaxElectricPower(voltage, true); + + } + + + private void MaxElectricPower(Volt voltage, bool emDerated) + { + var continuousTq = emDerated ? Genset.ElectricMotor.ContinuousTorque : double.MaxValue.SI<NewtonMeter>(); + var maxSpeed = VectoMath.Min(EmData.EfficiencyData.MaxSpeed, + IceData.FullLoadCurves[0].FullLoadEntries.Select(x => x.EngineSpeed).Max()); + var emFldDrivetrain = new ElectricMotorFullLoadCurve(EmData.EfficiencyData.VoltageLevels[0].FullLoadCurve + .FullLoadEntries.Select(x => + new ElectricMotorFullLoadCurve.FullLoadEntry() { + FullGenerationTorque = + Genset.ElectricMotor.ConvertEmTorqueToDrivetrain(x.MotorSpeed, VectoMath.Min(continuousTq ,x.FullGenerationTorque)), + FullDriveTorque = + Genset.ElectricMotor.ConvertEmTorqueToDrivetrain(x.MotorSpeed, VectoMath.Max(-continuousTq, x.FullDriveTorque)), + MotorSpeed = Genset.ElectricMotor.ConvertEmSpeedToDrivetrain(x.MotorSpeed) + }).Where(x => x.MotorSpeed.IsSmallerOrEqual(maxSpeed)).ToList()); + if (!emFldDrivetrain.FullLoadEntries.Any(x => x.MotorSpeed.IsEqual(maxSpeed))) { + emFldDrivetrain.FullLoadEntries.Add(new ElectricMotorFullLoadCurve.FullLoadEntry() { + FullGenerationTorque = + Genset.ElectricMotor.ConvertEmTorqueToDrivetrain(maxSpeed, VectoMath.Min(continuousTq, emFldDrivetrain.FullGenerationTorque(maxSpeed))), + FullDriveTorque = + Genset.ElectricMotor.ConvertEmTorqueToDrivetrain(maxSpeed, VectoMath.Max(-continuousTq, emFldDrivetrain.FullLoadDriveTorque(maxSpeed))), + MotorSpeed = maxSpeed + }); + } + var iceFld = new ElectricMotorFullLoadCurve(IceData.FullLoadCurves[0].FullLoadEntries.Select(x => + new ElectricMotorFullLoadCurve.FullLoadEntry() { + FullDriveTorque = -x.TorqueFullLoad, + FullGenerationTorque = 0.SI<NewtonMeter>(), + MotorSpeed = x.EngineSpeed + }).Where(x => x.MotorSpeed.IsSmallerOrEqual(maxSpeed)).ToList()); + if (!iceFld.FullLoadEntries.Any(x => x.MotorSpeed.IsEqual(maxSpeed))) { + iceFld.FullLoadEntries.Add(new ElectricMotorFullLoadCurve.FullLoadEntry() { + FullDriveTorque = -IceData.FullLoadCurves[0].FullLoadStationaryTorque(maxSpeed), + FullGenerationTorque = 0.SI<NewtonMeter>(), + MotorSpeed = maxSpeed + }); + } + + var combinedFldEntries = AbstractSimulationDataAdapter.IntersectEMFullLoadCurves(iceFld, emFldDrivetrain).FullLoadEntries.Select(x => + new EngineFullLoadCurve.FullLoadCurveEntry() { + EngineSpeed = x.MotorSpeed, + TorqueFullLoad = -x.FullDriveTorque, + TorqueDrag = 0.SI<NewtonMeter>() + }).Where(x => x.EngineSpeed > IceData.IdleSpeed && x.EngineSpeed < IceData.FullLoadCurves[0].N95hSpeed).ToList(); + + var combinedFld = new EngineFullLoadCurve(combinedFldEntries, null); + var absTime = 0.SI<Second>(); + var dt = 1.SI<Second>(); + + var ratedSpeed = combinedFld.RatedSpeed; + Genset.ElectricMotorCtl.EMTorque = combinedFld.FullLoadStationaryTorque(ratedSpeed); + Genset.ElectricMotor.Initialize(combinedFld.FullLoadStationaryTorque(ratedSpeed), ratedSpeed); + var response = Genset.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), ratedSpeed); + + if (response is ResponseSuccess) { + var fc = IceData.Fuels.Sum(x => + x.ConsumptionMap.GetFuelConsumptionValue(response.Engine.TotalTorqueDemand, + response.Engine.EngineSpeed)); + var tmp = new GenSetOperatingPoint() { + ICEOn = true, + ElectricPower = response.ElectricSystem.ConsumerPower, + ICESpeed = ratedSpeed, + ICETorque = Genset.ElectricMotorCtl.EMTorque, + FuelConsumption = fc, + AvgEmDrivetrainSpeed = response.ElectricMotor.AngularVelocity, + EMTorque = response.ElectricMotor.TorqueRequestEmMap + }; + if (emDerated) { + OptimalPoints.MaxPowerDeRated = tmp; + } else { + OptimalPoints.MaxPower = tmp; + } + } + } + + private void IterateElectricPower(Volt voltage) + { + var maxPower = IceData.FullLoadCurves[0].MaxPower; + + var speedRange = IceData.FullLoadCurves[0].RatedSpeed - IceData.IdleSpeed; + var maxSpeedNorm = (IceData.FullLoadCurves[0].N95hSpeed - IceData.IdleSpeed) / speedRange; + + var absTime = 0.SI<Second>(); + var dt = 1.SI<Second>(); + + var tolerance = 0.5 / 100; + + Genset.Battery?.Initialize(Genset.Battery.MinSoC); + if (Genset.BatterySystem != null) { + foreach (var bsKey in Genset.BatterySystem.Batteries.Keys) { + for (var i = 0; i < Genset.BatterySystem.Batteries[bsKey].Batteries.Count; i++) { + Genset.BatterySystem.Batteries[bsKey].Batteries[i] + .Initialize(Genset.BatterySystem.MinSoC); + } + } + } + + Genset.SuperCap?.Initialize(Genset.SuperCap.MinSoC); + + var stepsPwr = 0.05; + for (var i = stepsPwr; i <= 1; i += stepsPwr) { + var pwr = i * maxPower; + var stepsSpeed = 0.05; + var genPts = new List<GenSetOperatingPoint>(); + var responses = new List<Tuple<PerSecond, IResponse>>(); + for (var n = 0.0; n <= maxSpeedNorm; n += stepsSpeed) { + var speed = n * speedRange + IceData.IdleSpeed; + + try { + Genset.ElectricMotor.Initialize(0.SI<NewtonMeter>(), speed); + var tq = Genset.ElectricMotor.GetTorqueForElectricPower(voltage, pwr, speed * EmData.RatioADC, dt); + + if (tq == null || tq.IsSmallerOrEqual(0)) { + continue; + } + + Genset.ElectricMotorCtl.EMTorque = tq; + + var response = Genset.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), speed); + responses.Add(Tuple.Create(speed, response)); + if (response is ResponseSuccess) { + var fc = IceData.Fuels.Sum(x => + x.ConsumptionMap.GetFuelConsumptionValue(response.Engine.TotalTorqueDemand, + response.Engine.EngineSpeed)); + genPts.Add(new GenSetOperatingPoint() { + ICEOn = true, + ElectricPower = pwr, + ICESpeed = speed, + ICETorque = tq, + FuelConsumption = fc, + AvgEmDrivetrainSpeed = response.ElectricMotor.AngularVelocity, + EMTorque = response.ElectricMotor.TorqueRequestEmMap + }); + } + } catch (Exception) { } + } + + if (genPts.Any()) { + var min = genPts.MinBy(x => x.FuelConsumption.Value()).FuelConsumption; + OptimalPoints.OptimalPoints[pwr] = genPts.Where(x => x.FuelConsumption / min < (1 + tolerance)).ToList(); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs index ca55fe5b8753a06585c50b01e4b305021e045ab0..eb8278df26ef59e67dfcf51b21d43ffa5a6b4c9a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs @@ -958,7 +958,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies var r = (IResponse)resp; var deltaMaxTq = r.Engine.TotalTorqueDemand - r.Engine.DynamicFullLoadTorque; return (deltaMaxTq * avgEngineSpeed).Value(); - }); + }, + searcher: this); var rqMaxTorque = RequestDryRun(absTime, dt, maxTorque, outAngularVelocity, currentGear, maxEmDriveSetting); // limiting to ICE FLD with max propulsion - delta gearbox torque var rqMaxGbxInTq = GetGearboxInTorqueLimitedVehiclePorpTorque(rqMaxTorque, emPos); @@ -1238,7 +1239,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies deltaDragLoad = response.Gearbox.InputTorque; } return deltaDragLoad.Value(); - } + }, + searcher: this ); if (emRecuperationTq.IsBetween( firstResponse.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), firstResponse.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>())) { @@ -1923,7 +1925,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies var response = r as IResponse; return response.Engine.TorqueOutDemand.Value(); }, - abortCriterion: (r, c) => r == null + abortCriterion: (r, c) => r == null, + searcher: this ); if (emTorqueICEOff.IsBetween( firstResponse.ElectricMotor.MaxDriveTorque, VectoMath.Min(0.SI<NewtonMeter>(), firstResponse.ElectricMotor.MaxRecuperationTorque))) { @@ -1962,7 +1965,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies var response = r as IResponse; return (response.Engine.TotalTorqueDemand - response.Engine.DynamicFullLoadTorque).Value(); }, - abortCriterion: (r, c) => r == null + abortCriterion: (r, c) => r == null, + searcher: this ); if (emTorqueICEMax.IsBetween(maxEmTorque, 0.SI<NewtonMeter>())) { // only consider where EM is recuperating @@ -2018,7 +2022,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies var response = r as IResponse; return response.Engine.TorqueOutDemand.Value(); }, - abortCriterion: (r, c) => r == null + abortCriterion: (r, c) => r == null, + searcher: this ); if (emTorqueICEOff.IsBetween(maxEmTorqueRecuperate, 0.SI<NewtonMeter>())) { // only consider where EM is recuperating diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs new file mode 100644 index 0000000000000000000000000000000000000000..3ba4c0729c59f3606524a750998f452632590059 --- /dev/null +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/SerialHybridStrategy.cs @@ -0,0 +1,986 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics; +using TUGraz.VectoCore.Models.Connector.Ports.Impl; +using TUGraz.VectoCore.Models.Simulation; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.DataBus; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies +{ + + public class SerialHybridStrategyAT : AbstractSerialHybridStrategy<APTNGearbox> + { + public SerialHybridStrategyAT(VectoRunData runData, IVehicleContainer container) : base(runData, container) { } + + #region Overrides of AbstractSerialHybridStrategy<ATGearbox> + + protected override DrivetrainDemand GetDrivetrainPowerDemand(Second absTime, Second dt, NewtonMeter outTorque, + PerSecond outAngularVelocity, GenSetOperatingPoint maxPowerGenset) + { + if (TestPowertrain.Gearbox != null) { + var gearboxInfo = DataBus.GearboxInfo as APTNGearbox; + if (gearboxInfo == null) { + throw new VectoException("AT Gearbox Required!"); + } + var currentGear = DataBus.VehicleInfo.VehicleStopped + ? gearboxInfo.NextGear + : DataBus.GearboxInfo.Gear; + + TestPowertrain.Gearbox.PreviousState.InAngularVelocity = + gearboxInfo.PreviousState.InAngularVelocity; + TestPowertrain.Gearbox.Disengaged = gearboxInfo.Disengaged; + TestPowertrain.Gearbox.DisengageGearbox = gearboxInfo.DisengageGearbox; + TestPowertrain.Gearbox.Gear = currentGear; + TestPowertrain.Gearbox._nextGear = gearboxInfo.NextGear; + } + TestPowertrain.Container.VehiclePort.Initialize(DataBus.VehicleInfo.VehicleSpeed, DataBus.DrivingCycleInfo.RoadGradient ?? 0.SI<Radian>()); + (TestPowertrain.Container.VehicleInfo as Vehicle).PreviousState.Velocity = + (DataBus.VehicleInfo as Vehicle).PreviousState.Velocity; + + TestPowertrain.ElectricMotor.ThermalBuffer = + (DataBus.ElectricMotorInfo(EmPosition) as ElectricMotor).ThermalBuffer; + TestPowertrain.ElectricMotor.DeRatingActive = + (DataBus.ElectricMotorInfo(EmPosition) as ElectricMotor).DeRatingActive; + + TestPowertrain.Battery?.Initialize(DataBus.BatteryInfo.StateOfCharge); + if (TestPowertrain.Battery != null) { + TestPowertrain.Battery.PreviousState.PulseDuration = + (DataBus.BatteryInfo as Battery).PreviousState.PulseDuration; + TestPowertrain.Battery.PreviousState.PowerDemand = + (DataBus.BatteryInfo as Battery).PreviousState.PowerDemand; + } + if (TestPowertrain.BatterySystem != null) { + var batSystem = DataBus.BatteryInfo as BatterySystem; + foreach (var bsKey in batSystem.Batteries.Keys) { + for (var i = 0; i < batSystem.Batteries[bsKey].Batteries.Count; i++) { + TestPowertrain.BatterySystem.Batteries[bsKey].Batteries[i] + .Initialize(batSystem.Batteries[bsKey].Batteries[i].StateOfCharge); + } + } + TestPowertrain.BatterySystem.PreviousState.PulseDuration = + (DataBus.BatteryInfo as BatterySystem).PreviousState.PulseDuration; + TestPowertrain.BatterySystem.PreviousState.PowerDemand = (DataBus.BatteryInfo as BatterySystem).PreviousState.PowerDemand; + } + + TestPowertrain.Charger.ChargingPower = maxPowerGenset.ElectricPower; + TestPowertrain.HybridController.Initialize(Controller.PreviousState.OutTorque, + Controller.PreviousState.OutAngularVelocity); + + if (TestPowertrain.Gearbox != null) { + var gearboxInfo = DataBus.GearboxInfo as APTNGearbox; + TestPowertrain.Gearbox.PreviousState.OutAngularVelocity = gearboxInfo.PreviousState.OutAngularVelocity; + TestPowertrain.Gearbox.PreviousState.InAngularVelocity = gearboxInfo.PreviousState.InAngularVelocity; + } + + TestPowertrain.Brakes.BrakePower = DataBus.Brakes.BrakePower; + var testResponse = + TestPowertrain.HybridController.NextComponent.Request(absTime, dt, outTorque, outAngularVelocity, false); + + TestPowertrain.HybridController.ApplyStrategySettings(new HybridStrategyResponse() { + CombustionEngineOn = false, + MechanicalAssistPower = new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>>() { + { + EmPosition, + Tuple.Create(testResponse.ElectricMotor.AvgDrivetrainSpeed, -testResponse.ElectricMotor.TorqueRequest) + } + } + }); + var testResponse2 = + TestPowertrain.HybridController.NextComponent.Request(absTime, dt, outTorque, outAngularVelocity, + false); + return new DrivetrainDemand() { + AvgEmDrivetrainSpeed = testResponse2.ElectricMotor.AvgDrivetrainSpeed, + EmTorqueDemand = testResponse2.ElectricMotor.TorqueRequest, + ElectricPowerDemand = testResponse2.ElectricSystem.ConsumerPower, + Response = testResponse2 + }; + } + + + #endregion + } + + // ======================================================================= + + + public class SerialHybridStrategy : AbstractSerialHybridStrategy<Gearbox> + { + + + + + public SerialHybridStrategy(VectoRunData runData, IVehicleContainer container) : base(runData, container) { } + + + + + protected override DrivetrainDemand GetDrivetrainPowerDemand(Second absTime, Second dt, NewtonMeter outTorque, + PerSecond outAngularVelocity, GenSetOperatingPoint maxPowerGenset) + { + if (TestPowertrain.Gearbox != null) { + var currentGear = DataBus.VehicleInfo.VehicleStopped + ? (DataBus.GearboxInfo as Gearbox).NextGear + : DataBus.GearboxInfo.Gear; + + TestPowertrain.Gearbox.PreviousState.InAngularVelocity = + (DataBus.GearboxInfo as Gearbox).PreviousState.InAngularVelocity; + TestPowertrain.Gearbox.Disengaged = (DataBus.GearboxInfo as Gearbox).Disengaged; + TestPowertrain.Gearbox.DisengageGearbox = (DataBus.GearboxInfo as Gearbox).DisengageGearbox; + TestPowertrain.Gearbox.Gear = currentGear; + TestPowertrain.Gearbox._nextGear = (DataBus.GearboxInfo as Gearbox).NextGear; + } + TestPowertrain.Container.VehiclePort.Initialize(DataBus.VehicleInfo.VehicleSpeed, DataBus.DrivingCycleInfo.RoadGradient ?? 0.SI<Radian>()); + + TestPowertrain.ElectricMotor.ThermalBuffer = + (DataBus.ElectricMotorInfo(EmPosition) as ElectricMotor).ThermalBuffer; + TestPowertrain.ElectricMotor.DeRatingActive = + (DataBus.ElectricMotorInfo(EmPosition) as ElectricMotor).DeRatingActive; + + TestPowertrain.Battery?.Initialize(DataBus.BatteryInfo.StateOfCharge); + if (TestPowertrain.Battery != null) { + TestPowertrain.Battery.PreviousState.PulseDuration = + (DataBus.BatteryInfo as Battery).PreviousState.PulseDuration; + TestPowertrain.Battery.PreviousState.PowerDemand = + (DataBus.BatteryInfo as Battery).PreviousState.PowerDemand; + } + if (TestPowertrain.BatterySystem != null) { + var batSystem = DataBus.BatteryInfo as BatterySystem; + foreach (var bsKey in batSystem.Batteries.Keys) { + for (var i = 0; i < batSystem.Batteries[bsKey].Batteries.Count; i++) { + TestPowertrain.BatterySystem.Batteries[bsKey].Batteries[i] + .Initialize(batSystem.Batteries[bsKey].Batteries[i].StateOfCharge); + } + } + TestPowertrain.BatterySystem.PreviousState.PulseDuration = + (DataBus.BatteryInfo as BatterySystem).PreviousState.PulseDuration; + TestPowertrain.BatterySystem.PreviousState.PowerDemand = (DataBus.BatteryInfo as BatterySystem).PreviousState.PowerDemand; + } + + TestPowertrain.Charger.ChargingPower = maxPowerGenset.ElectricPower; + TestPowertrain.HybridController.Initialize(Controller.PreviousState.OutTorque, + Controller.PreviousState.OutAngularVelocity); + TestPowertrain.Brakes.BrakePower = DataBus.Brakes.BrakePower; + var testResponse = + TestPowertrain.HybridController.NextComponent.Request(absTime, dt, outTorque, outAngularVelocity, false); + + TestPowertrain.HybridController.ApplyStrategySettings(new HybridStrategyResponse() { + CombustionEngineOn = false, + MechanicalAssistPower = new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>>() { + { + EmPosition, + Tuple.Create(testResponse.ElectricMotor.AvgDrivetrainSpeed, -testResponse.ElectricMotor.TorqueRequest) + } + } + }); + var testResponse2 = + TestPowertrain.HybridController.NextComponent.Request(absTime, dt, outTorque, outAngularVelocity, + false); + return new DrivetrainDemand() { + AvgEmDrivetrainSpeed = testResponse2.ElectricMotor.AvgDrivetrainSpeed, + EmTorqueDemand = testResponse2.ElectricMotor.TorqueRequest, + ElectricPowerDemand = testResponse2.ElectricSystem.ConsumerPower, + Response = testResponse2 + }; + } + + } + + // ======================================================================= + + public abstract class AbstractSerialHybridStrategy<T> : LoggingObject, IHybridControlStrategy where T : class, IHybridControlledGearbox, IGearbox + { + + public enum StateMachineState + { + Undefined, + Acc_S0, // GEN = 0 + Acc_S1, // P_GEN = P_opt, SoC <= SoC_min && P_demand < P_opt || SoC >= SoC_min && SoC <= SoC_target && P_demand <= P_opt + Acc_S2, // P_GEN = P_max, SoC <= S + Acc_S3, // P_GEN = P_max, P_drive = P_GEN + + Break_S0, + Break_S1, + Break_S2, + } + + public enum GensetState + { + Off = 1, + OptimalPoint, + MaximalPoint, + OptimalPointDeRated, + MaximalPointDeRated, + } + + protected VectoRunData ModelData; + protected IDataBus DataBus; + + protected HybridStrategyParameters StrategyParameters; + + //protected Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>> ElectricMotorsOff; + + protected StrategyState CurrentState = new StrategyState(); + protected StrategyState PreviousState = new StrategyState(); + + protected TestPowertrain<T> TestPowertrain; + protected TestGenset TestGenSet; + protected GenSetCharacteristics GenSetCharacteristics; + + protected PowertrainPosition EmPosition; + + protected DryRunSolutionState DryRunSolution { get; set; } + + + public AbstractSerialHybridStrategy (VectoRunData runData, IVehicleContainer container) + { + DataBus = container; + ModelData = runData; + if (ModelData.ElectricMachinesData.Select(x => x.Item1).Where(x => x != PowertrainPosition.GEN).Distinct().Count() > 1) { + throw new VectoException("More than one electric motors are currently not supported"); + } + StrategyParameters = ModelData.HybridStrategyParameters; + if (StrategyParameters == null) { + throw new VectoException("Model parameters for hybrid strategy required!"); + } + + //ElectricMotorsOff = ModelData.ElectricMachinesData + // .Select(x => new KeyValuePair<PowertrainPosition, NewtonMeter>(x.Item1, null)) + // .ToDictionary(x => x.Key, x => new Tuple<PerSecond, NewtonMeter>(null, x.Value)); + + var emDtData = runData.ElectricMachinesData.First(x => x.Item1 != PowertrainPosition.GEN).Item2; + var minGensetPower = emDtData.EfficiencyData.VoltageLevels.First().FullLoadCurve.MaxPower * StrategyParameters.GensetMinOptPowerFactor; + + GenSetCharacteristics = new GenSetCharacteristics(minGensetPower); + + + // create testcontainer + var modData = new ModalDataContainer(runData, null, null); + var builder = new PowertrainBuilder(modData); + var testContainer = new SimplePowertrainContainer(runData); + builder.BuildSimpleSerialHybridPowertrain(runData, testContainer); + + TestPowertrain = new TestPowertrain<T>(testContainer, DataBus); + + var gensetContainer = new SimplePowertrainContainer(runData); + builder.BuildSimpleGenSet(runData, gensetContainer); + TestGenSet = new TestGenset(gensetContainer, DataBus); + + + container.AddPreprocessor(new GensetPreprocessor(GenSetCharacteristics ,TestGenSet, runData.EngineData, + runData.ElectricMachinesData.FirstOrDefault(x => x.Item1 == PowertrainPosition.GEN)?.Item2)); + } + + + public virtual IHybridStrategyResponse Initialize(NewtonMeter outTorque, PerSecond outAngularVelocity) + { + EmPosition = DataBus.PowertrainInfo.ElectricMotorPositions.FirstOrDefault(x => + x != PowertrainPosition.GEN); + + var retVal = new HybridStrategyResponse() { MechanicalAssistPower = new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>>() }; + + foreach (var em in ModelData.ElectricMachinesData) { + retVal.MechanicalAssistPower[em.Item1] = null; + } + + GenSetCharacteristics.ContinuousTorque = + (DataBus.ElectricMotorInfo(PowertrainPosition.GEN) as ElectricMotor).ContinuousTorque; + + PreviousState.AngularVelocity = outAngularVelocity; + PreviousState.SMState = DataBus.BatteryInfo.StateOfCharge > StrategyParameters.TargetSoC + ? StateMachineState.Acc_S0 + : DataBus.BatteryInfo.StateOfCharge > StrategyParameters.MinSoC + ? StateMachineState.Acc_S1 + : StateMachineState.Acc_S2; + CurrentState.SMState = PreviousState.SMState; + return retVal; + } + + public virtual IHybridStrategyResponse Request(Second absTime, Second dt, NewtonMeter outTorque, + PerSecond outAngularVelocity, + bool dryRun) + { + + if (DryRunSolution != null && DryRunSolution.DrivingAction != DataBus.DriverInfo.DrivingAction) { + DryRunSolution = null; + } + + if (dryRun && DryRunSolution != null && DryRunSolution.DrivingAction == DataBus.DriverInfo.DrivingAction) { + var tmp = new HybridStrategyResponse() { + SimulationInterval = dt, + CombustionEngineOn = DryRunSolution.GenSet.ICEOn, + MechanicalAssistPower = DryRunSolution.Settings, + GenSetSpeed = DryRunSolution.GenSet.ICESpeed, + }; + return tmp; + } + var gensetDeRated = DataBus.ElectricMotorInfo(PowertrainPosition.GEN).DeRatingActive; + + var maxPowerGenset = gensetDeRated + ? ApproachGensetOperatingPoint(absTime, dt, GenSetCharacteristics.MaxPowerDeRated, + GensetState.MaximalPointDeRated) + : ApproachGensetOperatingPoint(absTime, dt, GenSetCharacteristics.MaxPower, GensetState.MaximalPoint); //GetMaxElectricPowerGenerated(absTime, dt, TODO); + + var drivetrainDemand = GetDrivetrainPowerDemand(absTime, dt, outTorque, outAngularVelocity, maxPowerGenset); + var emResponse = drivetrainDemand.Response.ElectricMotor; + + switch (DataBus.DriverInfo.DrivingAction) { + case DrivingAction.Halt: + case DrivingAction.Roll: + case DrivingAction.Coast: + case DrivingAction.Accelerate: + CurrentState.SMState = GetStateAccelerate(drivetrainDemand, maxPowerGenset, dt); + break; + case DrivingAction.Brake: + CurrentState.SMState = GetStateBrake(drivetrainDemand); + break; + default: + throw new ArgumentOutOfRangeException(); + } + + GenSetOperatingPoint genSetOperatingPoint; + var emTorque = GetMechanicalAssistPower(absTime, dt, emResponse.TorqueRequest, emResponse, emResponse.AngularVelocity /* potentially not correct! */); + GensetState gensetState; + + switch (CurrentState.SMState) { + case StateMachineState.Acc_S0: + genSetOperatingPoint = GensetOff; + gensetState = GensetState.Off; + // update drivetrain demand if genset uses a different operating point - we are above target SoC, battery might get full + var tmp = GensetOff; + tmp.ElectricPower = 0.SI<Watt>(); + drivetrainDemand = GetDrivetrainPowerDemand(absTime, dt, outTorque, outAngularVelocity, tmp); + emResponse = drivetrainDemand.Response.ElectricMotor; + //emTorque = (-emResponse.TorqueRequest).LimitTo(emResponse.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + // emResponse.MaxRecuperationTorque ?? 0.SI<NewtonMeter>()); + emTorque = GetMechanicalAssistPower(absTime, dt, emResponse.TorqueRequest, emResponse, emResponse.AngularVelocity /* potentially not correct! */); + break; + case StateMachineState.Acc_S1: + var optimalPoint = gensetDeRated ? + GenSetCharacteristics.OptimalPointDeRated + : GenSetCharacteristics.OptimalPoint; + gensetState = gensetDeRated ? + GensetState.OptimalPointDeRated + : GensetState.OptimalPoint; + if (drivetrainDemand.Response.ElectricSystem.MaxPowerDrag.IsSmallerOrEqual(0)) { + genSetOperatingPoint = GensetOff; + gensetState = GensetState.Off; + break; + } + + genSetOperatingPoint = ApproachGensetOperatingPoint(absTime, dt, optimalPoint, gensetState); + break; + case StateMachineState.Acc_S2: + gensetState = gensetDeRated ? + GensetState.MaximalPointDeRated + : GensetState.MaximalPoint; + if (drivetrainDemand.Response.ElectricSystem.MaxPowerDrag.IsSmallerOrEqual(0)) { + genSetOperatingPoint = GensetOff; + gensetState = GensetState.Off; + break; + } + genSetOperatingPoint = MaxGensetPower(absTime, dt, drivetrainDemand, maxPowerGenset, gensetState); + break; + case StateMachineState.Acc_S3: + gensetState = gensetDeRated ? + GensetState.MaximalPointDeRated + : GensetState.MaximalPoint; + genSetOperatingPoint = MaxGensetPower(absTime, dt, drivetrainDemand, maxPowerGenset, gensetState); + emTorque = TestPowertrain.ElectricMotor.GetTorqueForElectricPower( + DataBus.BatteryInfo.InternalVoltage, drivetrainDemand.Response.ElectricSystem.MaxPowerDrive, + drivetrainDemand.Response.ElectricMotor.AngularVelocity, dt); + if (emTorque == null) { + emTorque = -emResponse.MaxDriveTorque; + } else { + // multiply with -1 here because the following method again changes the sign... + emTorque *= -1; + } + emTorque = GetMechanicalAssistPower(absTime, dt, emTorque, emResponse, emResponse.AngularVelocity /* potentially not correct! */); + break; + case StateMachineState.Break_S0: + case StateMachineState.Break_S1: + case StateMachineState.Break_S2: + if (DataBus.BatteryInfo.StateOfCharge >= StrategyParameters.TargetSoC) { + genSetOperatingPoint = GensetOff; + gensetState = GensetState.Off; + break; + } + + var optimalPointBr = gensetDeRated ? + GenSetCharacteristics.OptimalPointDeRated + : GenSetCharacteristics.OptimalPoint; + gensetState = DataBus.EngineInfo.EngineOn + ? (gensetDeRated + ? GensetState.OptimalPointDeRated + : GensetState.OptimalPoint) + : GensetState.Off; + + genSetOperatingPoint = DataBus.EngineInfo.EngineOn ? ApproachGensetOperatingPoint(absTime, dt, optimalPointBr, gensetState) : GensetOff; + + // update drivetrain demand if genset uses a different operating point - we are above target SoC, battery might get full + var tmpBr = GensetOff; + tmpBr.ElectricPower = 0.SI<Watt>(); + drivetrainDemand = GetDrivetrainPowerDemand(absTime, dt, outTorque, outAngularVelocity, tmpBr); + emResponse = drivetrainDemand.Response.ElectricMotor; + + emTorque = GetMechanicalAssistPower(absTime, dt, emResponse.TorqueRequest, emResponse, emResponse.AngularVelocity); + + if (emTorque != null && genSetOperatingPoint.ElectricPower != null && (genSetOperatingPoint.ElectricPower + drivetrainDemand.ElectricPowerDemand).IsGreater(drivetrainDemand.Response.ElectricSystem.MaxPowerDrag)) { + // em recuperates and genset is still on, but battery cannot be charged with both (probably full) - switch off genset. + gensetState = GensetState.Off; + genSetOperatingPoint = GensetOff; + } + + break; + default: + throw new ArgumentOutOfRangeException(); + } + + var setting = new Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>>() { + { + EmPosition, + Tuple.Create(drivetrainDemand.AvgEmDrivetrainSpeed, emTorque) + }, { + PowertrainPosition.GEN, + Tuple.Create(genSetOperatingPoint.AvgEmDrivetrainSpeed, genSetOperatingPoint.ICETorque) + }, + } + ; + + DryRunSolution = new DryRunSolutionState(DataBus.DriverInfo.DrivingAction, setting, genSetOperatingPoint); + + + + var retVal = new HybridStrategyResponse() { + SimulationInterval = dt, + CombustionEngineOn = genSetOperatingPoint.ICEOn, + MechanicalAssistPower = setting, + GenSetSpeed = genSetOperatingPoint.ICESpeed + }; + + CurrentState.Response = retVal; + CurrentState.GensetState = gensetState; + return retVal; + } + + protected abstract DrivetrainDemand GetDrivetrainPowerDemand(Second absTime, Second dt, NewtonMeter outTorque, + PerSecond outAngularVelocity, GenSetOperatingPoint maxPowerGenset); + + protected virtual NewtonMeter GetMechanicalAssistPower(Second absTime, Second dt, NewtonMeter emOutTorque, ElectricMotorResponse emResponse, PerSecond currOutAngularVelocity) + { + if (!DataBus.GearboxInfo.GearEngaged(absTime) && DataBus.DriverInfo.DrivingAction == DrivingAction.Roll) { + var em = DataBus.ElectricMotorInfo(EmPosition); + var avgSpeed = (em.ElectricMotorSpeed + currOutAngularVelocity) / 2; + var inertiaTorqueLoss = avgSpeed.IsEqual(0) + ? 0.SI<NewtonMeter>() + : Formulas.InertiaPower(currOutAngularVelocity, em.ElectricMotorSpeed, ModelData.ElectricMachinesData.First(x => x.Item1 == EmPosition).Item2.Inertia, dt) / avgSpeed; + //var dragTorque = ElectricMotorData.DragCurve.Lookup() + return (-inertiaTorqueLoss); //.LimitTo(maxDriveTorque, maxRecuperationTorque); + } + + if (DataBus.DriverInfo.DrivingAction == DrivingAction.Coast || + DataBus.DriverInfo.DrivingAction == DrivingAction.Roll) { + return null; + } + + if (DataBus.VehicleInfo.VehicleSpeed.IsSmallerOrEqual(Constants.SimulationSettings.ClutchDisengageWhenHaltingSpeed) && emOutTorque.IsSmaller(0)) { + return null; + } + + if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake && emResponse.MaxRecuperationTorque == null) { + // cannot recuperate any more... + return null; + } + + return (-emOutTorque).LimitTo(emResponse.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + emResponse.MaxRecuperationTorque ?? 0.SI<NewtonMeter>()); + } + + #region Implementation of IHybridControlStrategy + + protected GenSetOperatingPoint MaxGensetPower(Second absTime, Second dt, + DrivetrainDemand drivetrainDemand, + GenSetOperatingPoint maxPowerGenset, GensetState gensetState) + { + var electricPowerDemand = drivetrainDemand.ElectricPowerDemand; + + var gensetLimit = DataBus.ElectricMotorInfo(PowertrainPosition.GEN).DeRatingActive + ? GenSetCharacteristics.MaxPowerDeRated + : GenSetCharacteristics.MaxPower; + if (maxPowerGenset.ElectricPower.IsSmaller(gensetLimit.ElectricPower)) { + gensetLimit = maxPowerGenset; + } + + return ApproachGensetOperatingPoint(absTime, dt, gensetLimit, gensetState); + + } + + public GenSetOperatingPoint GensetOff => new + GenSetOperatingPoint + { + ICEOn = false, + ICESpeed = ModelData.EngineData.IdleSpeed, + ICETorque = null, + EMTorque = null + }; + + public GenSetOperatingPoint GensetIdle => new GenSetOperatingPoint() { + ICEOn = true, + ICESpeed = ModelData.EngineData.IdleSpeed, + ICETorque = 0.SI<NewtonMeter>(), + EMTorque = null, + }; + + + public class DrivetrainDemand + { + public PerSecond AvgEmDrivetrainSpeed { get; set; } + public NewtonMeter EmTorqueDemand { get; set; } + + public Watt ElectricPowerDemand { get; set; } + public IResponse Response { get; set; } + } + + protected virtual StateMachineState GetStateAccelerate(DrivetrainDemand drivetrainDemand, + GenSetOperatingPoint maxPowerGenset, Second dt) + { + var reqBatteryPower = maxPowerGenset.ElectricPower + drivetrainDemand.ElectricPowerDemand; + if (DataBus.BatteryInfo.StateOfCharge.IsEqual(StrategyParameters.MinSoC, 0.01) && reqBatteryPower < 0 && drivetrainDemand.ElectricPowerDemand < drivetrainDemand.Response.ElectricSystem.MaxPowerDrive) { + return StateMachineState.Acc_S3; + } + + var optimalGensetPoint = DataBus.ElectricMotorInfo(PowertrainPosition.GEN).DeRatingActive + ? GenSetCharacteristics.OptimalPointDeRated + : GenSetCharacteristics.OptimalPoint; + switch (PreviousState.SMState) { + case StateMachineState.Acc_S0: + if (DataBus.BatteryInfo.StateOfCharge < StrategyParameters.MinSoC) { + return -drivetrainDemand.ElectricPowerDemand < + optimalGensetPoint.ElectricPower + ? StateMachineState.Acc_S1 + : StateMachineState.Acc_S2; + } + + break; + case StateMachineState.Acc_S1: + if (/*DataBus.BatteryInfo.StateOfCharge >= StrategyParameters.MinSoC &&*/ + DataBus.BatteryInfo.StateOfCharge < StrategyParameters.TargetSoC + && -drivetrainDemand.ElectricPowerDemand > + optimalGensetPoint.ElectricPower) { + return StateMachineState.Acc_S2; + } + + if (DataBus.BatteryInfo.StateOfCharge >= StrategyParameters.TargetSoC) { + return StateMachineState.Acc_S0; + } + + break; + case StateMachineState.Acc_S2: + if (DataBus.BatteryInfo.StateOfCharge >= StrategyParameters.TargetSoC) { + return StateMachineState.Acc_S0; + } + + if (DataBus.BatteryInfo.StateOfCharge >= StrategyParameters.MinSoC && + DataBus.BatteryInfo.StateOfCharge < StrategyParameters.TargetSoC + && -drivetrainDemand.ElectricPowerDemand <= + optimalGensetPoint.ElectricPower) { + return StateMachineState.Acc_S1; + } + break; + case StateMachineState.Break_S0: + return StateMachineState.Acc_S0; + case StateMachineState.Break_S1: + return StateMachineState.Acc_S1; + case StateMachineState.Break_S2: + return StateMachineState.Acc_S2; + default: + throw new ArgumentOutOfRangeException(); + } + + return PreviousState.SMState; + } + + protected virtual StateMachineState GetStateBrake(DrivetrainDemand drivetrainDemand) + { + switch (PreviousState.SMState) { + case StateMachineState.Acc_S0: + return StateMachineState.Break_S0; + case StateMachineState.Acc_S1: + return StateMachineState.Break_S1; + case StateMachineState.Acc_S2: + return StateMachineState.Break_S2; + case StateMachineState.Acc_S3: + return StateMachineState.Break_S2; + case StateMachineState.Break_S0: + break; + case StateMachineState.Break_S1: + break; + case StateMachineState.Break_S2: + break; + default: + throw new ArgumentOutOfRangeException(); + } + + return PreviousState.SMState; + } + + + protected GenSetOperatingPoint ApproachGensetOperatingPoint(Second absTime, Second dt, GenSetOperatingPoint op, + GensetState gensetState) + { + TestGenSet.CombustionEngine.Initialize( + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineTorque, + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineSpeed); + TestGenSet.CombustionEngine.PreviousState.EngineOn = //true; + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineOn; + TestGenSet.CombustionEngine.PreviousState.EnginePower = + (DataBus.EngineInfo as CombustionEngine).PreviousState.EnginePower; + TestGenSet.CombustionEngine.PreviousState.dt = (DataBus.EngineInfo as CombustionEngine).PreviousState.dt; + TestGenSet.CombustionEngine.PreviousState.EngineSpeed = + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineSpeed; + TestGenSet.CombustionEngine.PreviousState.EngineTorque = + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineTorque; + TestGenSet.CombustionEngine.PreviousState.EngineTorqueOut = + (DataBus.EngineInfo as CombustionEngine).PreviousState.EngineTorqueOut; + TestGenSet.CombustionEngine.PreviousState.DynamicFullLoadTorque = + (DataBus.EngineInfo as CombustionEngine).PreviousState.DynamicFullLoadTorque; + + switch (TestGenSet.CombustionEngine.EngineAux) { + case EngineAuxiliary engineAux: + engineAux.PreviousState.AngularSpeed = + ((DataBus.EngineInfo as CombustionEngine).EngineAux as EngineAuxiliary).PreviousState + .AngularSpeed; + break; + case BusAuxiliariesAdapter busAux: + busAux.PreviousState.AngularSpeed = + ((DataBus.EngineInfo as CombustionEngine).EngineAux as BusAuxiliariesAdapter).PreviousState + .AngularSpeed; + if (busAux.ElectricStorage is SimpleBattery bat) { + bat.SOC = ((DataBus.EngineInfo as CombustionEngine).EngineAux as BusAuxiliariesAdapter) + .ElectricStorage + .SOC; + } + + break; + } + TestGenSet.ElectricMotor.ThermalBuffer = + (DataBus.ElectricMotorInfo(PowertrainPosition.GEN) as ElectricMotor).ThermalBuffer; + TestGenSet.ElectricMotor.DeRatingActive = + (DataBus.ElectricMotorInfo(PowertrainPosition.GEN) as ElectricMotor).DeRatingActive; + TestGenSet.ElectricMotor.PreviousState.DrivetrainSpeed = (DataBus.ElectricMotorInfo(PowertrainPosition.GEN) as ElectricMotor).PreviousState.DrivetrainSpeed; + TestGenSet.ElectricMotor.PreviousState.EMSpeed = (DataBus.ElectricMotorInfo(PowertrainPosition.GEN) as ElectricMotor).PreviousState.EMSpeed; + + if (TestPowertrain.BatterySystem != null) { + var batSystem = DataBus.BatteryInfo as BatterySystem; + foreach (var bsKey in batSystem.Batteries.Keys) { + for (var i = 0; i < batSystem.Batteries[bsKey].Batteries.Count; i++) { + TestPowertrain.BatterySystem.Batteries[bsKey].Batteries[i] + .Initialize(batSystem.Batteries[bsKey].Batteries[i].StateOfCharge); + } + } + TestPowertrain.BatterySystem.PreviousState.PulseDuration = + (DataBus.BatteryInfo as BatterySystem).PreviousState.PulseDuration; + TestPowertrain.BatterySystem.PreviousState.PowerDemand = (DataBus.BatteryInfo as BatterySystem).PreviousState.PowerDemand; + } + + var iceSpeed = op.ICESpeed; + var emTqDt = op.ICETorque; + + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + var r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + + if (op.EMTorque != null && !op.EMTorque.IsBetween(r1.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + r1.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>())) { + emTqDt = emTqDt.LimitTo(r1.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + r1.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>()); + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + } + + if (r1 is ResponseOverload || r1 is ResponseUnderload) { + var rampUp = PreviousState.ICEOn && PreviousState.Response.GenSetSpeed.IsSmaller(op.ICESpeed) || (!PreviousState.ICEOn && DataBus.EngineInfo.EngineSpeed.IsSmaller(op.ICESpeed)); + var rampDown = PreviousState.ICEOn && PreviousState.Response.GenSetSpeed.IsGreater(op.ICESpeed); + // increase/decrease ICE speed in case of under- or overload, keeping EM torque constant (or EM off in case ICE was off before) + //emTqDt = DataBus.EngineInfo.EngineOn + // ? PreviousState.Response?.MechanicalAssistPower[PowertrainPosition.GEN].Item2 == null ? null : + // VectoMath.Min(op.ICETorque, + // PreviousState.Response?.MechanicalAssistPower[PowertrainPosition.GEN].Item2) + // : null; + emTqDt = DataBus.EngineInfo.EngineOn + ? op.ICETorque + : null; + + if (emTqDt == null || !op.ICETorque.IsEqual(emTqDt)) { + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + } + if (rampUp && r1 is ResponseOverload) { + emTqDt = null; + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + } + if (r1 is ResponseOverload ovl && (!op.ICESpeed.IsEqual(iceSpeed) || rampUp)) { + (emTqDt, iceSpeed, r1) = SearchICESpeed(absTime, dt, iceSpeed, emTqDt, ovl.Delta, true); + } + + //if (r1 is ResponseOverload ovl3 && !op.EMTorque.IsEqual(emTqDt)) { + // (emTqDt, iceSpeed, r1) = SearchICESpeed(absTime, dt, iceSpeed, emTqDt, ovl3.Delta, true); + //} + + if (r1 is ResponseUnderload udl) { + (emTqDt, iceSpeed, r1) = SearchICESpeed(absTime, dt, iceSpeed, emTqDt, udl.Delta, false); + } + + if (r1 is ResponseOverload ovl2 && op.ICESpeed.IsEqual(iceSpeed)) { + (emTqDt, iceSpeed, r1) = SearchEMTorque(absTime, dt, iceSpeed, r1.Engine.DynamicFullLoadTorque * 0.1, ovl2.Delta); + } + + if (rampUp && r1 is ResponseSuccess && r1.Engine.TotalTorqueDemand.IsSmaller(r1.Engine.DynamicFullLoadTorque)) { + TestGenSet.ElectricMotorCtl.EMTorque = r1.Engine.DynamicFullLoadTorque * 0.1; + var tmp = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed, true) as ResponseDryRun; + (emTqDt, iceSpeed, r1) = SearchEMTorque(absTime, dt, iceSpeed, r1.Engine.DynamicFullLoadTorque * 0.1, tmp.DeltaFullLoad); + } + + if (r1 is ResponseSuccess && emTqDt != null && !emTqDt.IsBetween( + r1.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + r1.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>())) { + emTqDt = emTqDt.LimitTo( + r1.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + r1.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>()); + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + } + } + + return new GenSetOperatingPoint() { + ICEOn = true, + ElectricPower = r1.ElectricSystem.ConsumerPower, + ICETorque = emTqDt, + ICESpeed = iceSpeed, + AvgEmDrivetrainSpeed = r1.ElectricMotor.AvgDrivetrainSpeed, + EMTorque = r1.ElectricMotor.TorqueRequestEmMap + }; + } + + protected (NewtonMeter, PerSecond, IResponse) SearchICESpeed(Second absTime, Second dt, PerSecond iceSpeed, + NewtonMeter emTqDt, Watt delta, bool searchFullLoad) + { + var tmpEmTqDt = emTqDt; + var tqDt = emTqDt; + if (delta == null) { + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + var tmp = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed, true) as ResponseDryRun; + delta = tmp.DeltaFullLoad; + } + iceSpeed = SearchAlgorithm.Search(iceSpeed, delta, iceSpeed * 0.01, + getYValue: r => { + var dryRun = r as ResponseDryRun; + return searchFullLoad ? dryRun.DeltaFullLoad : dryRun.DeltaDragLoad; + }, + evaluateFunction: x => { + var tmp = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), x, true); + tmpEmTqDt = tqDt?.LimitTo(tmp.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + tmp.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>()); + TestGenSet.ElectricMotorCtl.EMTorque = tmpEmTqDt; + return TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), x, true); + }, + criterion: r => { + var dryRun = r as ResponseDryRun; + return searchFullLoad ? dryRun.DeltaFullLoad.Value() : dryRun.DeltaDragLoad.Value(); + }, + searcher: this); + emTqDt = tmpEmTqDt; + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + var r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + return (tqDt, iceSpeed, r1); + } + + protected (NewtonMeter, PerSecond, IResponse) SearchEMTorque(Second absTime, Second dt, PerSecond iceSpeed, NewtonMeter emTqDt, Watt delta) + { + var tqDt = SearchAlgorithm.Search(emTqDt, delta, emTqDt * 0.1, + getYValue: r => { + var dryRun = r as ResponseDryRun; + return dryRun.DeltaFullLoad; + }, + evaluateFunction: + x => { + TestGenSet.ElectricMotorCtl.EMTorque = x; + return TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed, true); + }, + criterion: r => { + var dryRun = r as ResponseDryRun; + return dryRun.DeltaFullLoad.Value(); + }, + searcher: this); + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + var r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + + if (emTqDt != null && !emTqDt.IsBetween(r1.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + r1.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>())) { + emTqDt = emTqDt.LimitTo(r1.ElectricMotor.MaxDriveTorque ?? 0.SI<NewtonMeter>(), + r1.ElectricMotor.MaxRecuperationTorque ?? 0.SI<NewtonMeter>()); + TestGenSet.ElectricMotorCtl.EMTorque = emTqDt; + r1 = TestGenSet.ElectricMotor.Request(absTime, dt, 0.SI<NewtonMeter>(), iceSpeed); + } + + return (tqDt, iceSpeed, r1); + } + + + public IResponse AmendResponse(IResponse response, Second absTime, Second dt, NewtonMeter outTorque, + PerSecond outAngularVelocity, bool dryRun) + { + return response; + } + + public void CommitSimulationStep(Second time, Second simulationInterval) + { + CurrentState.ICEOn = DataBus.EngineCtl.CombustionEngineOn; + PreviousState = CurrentState; + CurrentState = new StrategyState(); + + AllowEmergencyShift = false; + } + + public IHybridController Controller { get; set; } + public PerSecond MinICESpeed { get; } + public bool AllowEmergencyShift { get; set; } + public void WriteModalResults(Second time, Second simulationInterval, IModalDataContainer container) + { + //throw new NotImplementedException(); + } + + public void OperatingpointChangedDuringRequest(Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, + bool dryRun, IResponse retVal) + { + + } + + public void RepeatDrivingAction(Second absTime) + { + + } + + #endregion + + public class StrategyState + { + public PerSecond AngularVelocity { get; set; } + public HybridStrategyResponse Response { get; set; } + //public List<HybridResultEntry> Evaluations; + //public HybridResultEntry Solution { get; set; } + + //public bool GearboxEngaged { get; set; } + + //public Second ICEStartTStmp { get; set; } + + //public Second GearshiftTriggerTstmp { get; set; } + //public NewtonMeter MaxGbxTq { get; set; } + public bool ICEOn { get; set; } + + public StateMachineState SMState { get; set; } + + public GensetState GensetState { get; set; } + } + + public class DryRunSolutionState + { + public DryRunSolutionState(DrivingAction drivingAction, Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>> settings, GenSetOperatingPoint genSet) + { + DrivingAction = drivingAction; + Settings = settings; + GenSet = genSet; + } + + + public DrivingAction DrivingAction { get; } + + public GenSetOperatingPoint GenSet { get; } + + public Dictionary<PowertrainPosition, Tuple<PerSecond, NewtonMeter>> Settings { get; } + } + } + + public class GenSetCharacteristics : LoggingObject + { + public Dictionary<Watt, List<GenSetOperatingPoint>> OptimalPoints = new Dictionary<Watt, List<GenSetOperatingPoint>>(); + + public GenSetOperatingPoint MaxPower; + + public GenSetOperatingPoint MaxPowerDeRated; + private GenSetOperatingPoint _optimalPoint; + private GenSetOperatingPoint _optimalPointDerated; + private Watt MinGensetPower; + + public GenSetCharacteristics(Watt minGensetPower) + { + MinGensetPower = minGensetPower; + } + + public GenSetOperatingPoint OptimalPoint + { + get + { + if (_optimalPoint == null) { + var tmp = OptimalPoints.Values.SelectMany(x => x).Where(x => x.ElectricPower > MinGensetPower).ToArray(); + if (!tmp.Any()) { + Log.Error($"No GenSet operating point with a power greater than {MinGensetPower} found!"); + } + _optimalPoint = tmp.MinBy(x => x.FuelConsumption / x.ElectricPower); + } + + return _optimalPoint; + } + } + + public GenSetOperatingPoint OptimalPointDeRated + { + get + { + if (_optimalPointDerated == null) { + var tmp = OptimalPoints.Values.SelectMany(x => x).Where(x => x.EMTorque.IsSmaller(ContinuousTorque)).Where(x => x.ElectricPower > MinGensetPower).ToArray(); + if (!tmp.Any()) { + Log.Warn($"No de-rated GenSet operating point with a power greater than {MinGensetPower} found! Ignoring min power threshold"); + tmp = OptimalPoints.Values.SelectMany(x => x) + .Where(x => x.EMTorque.IsSmaller(ContinuousTorque)).ToArray(); + + } + + _optimalPointDerated = tmp.MinBy(x => x.FuelConsumption / x.ElectricPower); + } + + return _optimalPointDerated; + } + } + + public NewtonMeter ContinuousTorque { get; set; } + } + + public class GenSetOperatingPoint + { + public bool ICEOn; + + public Watt ElectricPower; + + public PerSecond ICESpeed; + + public NewtonMeter ICETorque; + + public KilogramPerSecond FuelConsumption; + + public PerSecond AvgEmDrivetrainSpeed; + + public NewtonMeter EMTorque; + } +} \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs index 3d3ac2e8a7fe99d18396d2e4fceef46ed16d2304..46a49f5cac487e9eb76e58f9610fe0f62e800015 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/TestPowertrain.cs @@ -11,7 +11,35 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; -namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies { +namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies +{ + + public class TestGenset + { + + public SimplePowertrainContainer Container; + public StopStartCombustionEngine CombustionEngine; + public ElectricMotor ElectricMotor; + public GensetMotorController ElectricMotorCtl; + + public Battery Battery; + public BatterySystem BatterySystem; + public SuperCap SuperCap; + + public TestGenset(SimplePowertrainContainer container, IDataBus realContainer) + { + Container = container; + CombustionEngine = Container.EngineInfo as StopStartCombustionEngine; + ElectricMotor = container.ElectricMotors.FirstOrDefault(x => x.Key == PowertrainPosition.GEN).Value as ElectricMotor; + ElectricMotorCtl = ElectricMotor.Control as GensetMotorController; + + Battery = Container.BatteryInfo as Battery; + BatterySystem = container.BatteryInfo as BatterySystem; + + SuperCap = Container.BatteryInfo as SuperCap; + } + } + public class TestPowertrain<T> where T: class, IHybridControlledGearbox, IGearbox { public SimplePowertrainContainer Container; @@ -26,6 +54,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies { public StopStartCombustionEngine CombustionEngine; public ElectricMotor ElectricMotor; + public GensetChargerAdapter Charger; public Dictionary<PowertrainPosition, ElectricMotor> ElectricMotorsUpstreamTransmission = new Dictionary<PowertrainPosition, ElectricMotor>(); public TorqueConverter TorqueConverter; public DCDCConverter DCDCConverter; @@ -43,16 +72,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies { Clutch = Container.ClutchInfo as Clutch; CombustionEngine = Container.EngineInfo as StopStartCombustionEngine; ElectricMotor = container.ElectricMotors.FirstOrDefault().Value as ElectricMotor; + Charger = (ElectricMotor?.ElectricPower as ElectricSystem)?.Charger as GensetChargerAdapter; foreach (var pos in container.ElectricMotorPositions) { if (pos == PowertrainPosition.HybridP1 || pos == PowertrainPosition.HybridP2 || pos == PowertrainPosition.HybridP2_5 || pos == PowertrainPosition.HybridP3) { ElectricMotorsUpstreamTransmission[pos] = container.ElectricMotors[pos] as ElectricMotor; } } - if (Gearbox == null) { - } - - if (Gearbox.GearboxType.AutomaticTransmission()) { + + if (Gearbox != null && Gearbox.GearboxType.AutomaticTransmission() && Gearbox.GearboxType != GearboxType.APTN) { TorqueConverter = Container.TorqueConverterInfo as TorqueConverter; if (TorqueConverter == null) { throw new VectoException("Torque converter missing for automatic transmission: {0}", Container.TorqueConverterInfo?.GetType().FullName); diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs index 0311995249272b791958ea6619087e09dda3c6ce..e50dbf95e40bbfd5d04008e482970a6c66843120 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs @@ -80,8 +80,7 @@ public class JSONFileWriter : IOutputFileWriter body.Add("Model", electricMachine.Model); body.Add("Inertia", electricMachine.Inertia.Value()); body.Add("ThermalOverloadRecoveryFactor", electricMachine.OverloadRecoveryFactor); - body.Add("DragCurve", GetRelativePath(electricMachine.DragCurve.Source, Path.GetDirectoryName(filename))); - + var vlevels = new List<Dictionary<string, object>>(); foreach (var entry in electricMachine.VoltageLevels) { var vlevel = new Dictionary<string, object>(); @@ -319,6 +318,7 @@ public class JSONFileWriter : IOutputFileWriter SaveConventionalVehicle(vehicle, airdrag, retarder, pto, angledrive, filename, DeclMode); break; case VectoSimulationJobType.ParallelHybridVehicle: + case VectoSimulationJobType.SerialHybridVehicle: SaveHybridVehicle(vehicle, airdrag, retarder, pto, angledrive, filename, DeclMode); break; case VectoSimulationJobType.BatteryElectricVehicle: @@ -521,7 +521,7 @@ public class JSONFileWriter : IOutputFileWriter } body.Add("InitialSoC", vehicle.InitialSOC * 100); - body.Add("PowertrainConfiguration", "ParallelHybrid"); + body.Add("PowertrainConfiguration", vehicle.VehicleType == VectoSimulationJobType.SerialHybridVehicle ? "SerialHybrid": "ParallelHybrid"); body.Add("ElectricMotors", electricMotorsOut); body.Add("Batteries", battery); @@ -1165,7 +1165,8 @@ public class JSONFileWriter : IOutputFileWriter {"AuxBufferChgTime", hp.AuxBufferChargeTime.Value()}, {"MinICEOnTime", hp.MinimumICEOnTime.Value() }, {"ICEStartPenaltyFactor", hp.ICEStartPenaltyFactor}, - {"CostFactorSOCExponent", hp.CostFactorSOCExpponent} + {"CostFactorSOCExponent", hp.CostFactorSOCExpponent}, + {"GensetMinOptPowerFactor", hp.GensetMinOptPowerFactor} }; WriteFile(header, body, filePath); } diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index 9c53788dc372429d62bfde4e7f01a0193626b0d3..e8e272fff90a1811c03dbbef211170fb948da8e2 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -660,7 +660,7 @@ namespace TUGraz.VectoCore.OutputData var eGbxOut = modData.TimeIntegral<WattSecond>(gbxOutSignal, x => x > 0); row[Fields.AVERAGE_GEARBOX_EFFICIENCY] = eGbxIn.IsEqual(0, 1e-9) ? 0 : (eGbxOut / eGbxIn).Value(); - if (runData.GearboxData != null && runData.GearboxData.Type.AutomaticTransmission()) { + if (runData.GearboxData != null && runData.GearboxData.Type.AutomaticTransmission() && runData.GearboxData.Type != GearboxType.APTN) { var eTcIn = modData.TimeIntegral<WattSecond>(ModalResultField.P_TC_in, x => x > 0); var eTcOut = eGbxIn; row[Fields.AVERAGE_TORQUE_CONVERTER_EFFICIENCY_WITHOUT_LOCKUP] = eTcIn.IsEqual(0, 1e-9) ? 0 : (eTcOut / eTcIn).Value(); @@ -1065,13 +1065,16 @@ namespace TUGraz.VectoCore.OutputData row[Fields.GEAR_RATIO_LAST_GEAR] = data.Gears.Count > 0 ? (ConvertedSI)data.Gears.Last().Value.Ratio.SI<Scalar>() : (ConvertedSI)0.SI<Scalar>(); - row[Fields.TORQUECONVERTER_MANUFACTURER] = data.TorqueConverterData.Manufacturer; - row[Fields.TORQUECONVERTER_MODEL] = data.TorqueConverterData.ModelName; - row[Fields.TORQUE_CONVERTER_CERTIFICATION_NUMBER] = - data.TorqueConverterData.CertificationMethod == CertificationMethod.StandardValues - ? "" - : data.TorqueConverterData.CertificationNumber; - row[Fields.TORQUE_CONVERTER_CERTIFICATION_METHOD] = data.TorqueConverterData.CertificationMethod.GetName(); + if (data.Type != GearboxType.APTN) { + row[Fields.TORQUECONVERTER_MANUFACTURER] = data.TorqueConverterData.Manufacturer; + row[Fields.TORQUECONVERTER_MODEL] = data.TorqueConverterData.ModelName; + row[Fields.TORQUE_CONVERTER_CERTIFICATION_NUMBER] = + data.TorqueConverterData.CertificationMethod == CertificationMethod.StandardValues + ? "" + : data.TorqueConverterData.CertificationNumber; + row[Fields.TORQUE_CONVERTER_CERTIFICATION_METHOD] = + data.TorqueConverterData.CertificationMethod.GetName(); + } } else { row[Fields.GEAR_RATIO_FIRST_GEAR] = data.Gears.Count > 0 ? (ConvertedSI)data.Gears.First().Value.Ratio.SI<Scalar>() diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd index 7d6590cec787bbb1a7ba7193dbee9ee54bb8ee8d..c88ddcc9df49511bb2c878657779c9997db4c5e7 100644 --- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd +++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd @@ -90,6 +90,11 @@ </xs:complexContent> </xs:complexType> <xs:complexType name="AbstractElectricMotorVehicleTorqueLimitsDeclarationType" abstract="true"/> + <xs:complexType name="AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" abstract="true"> + <xs:complexContent> + <xs:extension base="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType"/> + </xs:complexContent> + </xs:complexType> <xs:complexType name="AbstractPTODataType" abstract="true"> <xs:complexContent> <xs:extension base="v2.0:AbstractPTODataType"/> @@ -1374,11 +1379,40 @@ <xs:element name="ADC" type="v2.3:ADCComponentDeclarationType" minOccurs="0"/> </xs:sequence> </xs:complexType> + <xs:complexType name="ElectricMachineTorqueLimitsSerialHybridType"> + <xs:complexContent> + <xs:extension base="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType"> + <xs:sequence> + <xs:element name="ElectricMachine" maxOccurs="2"> + <xs:complexType> + <xs:sequence> + <xs:element name="Position" type="v2.4:PowertrainPositionType"/> + <xs:element name="VoltageLevel" minOccurs="2" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <xs:element name="Voltage"> + <xs:simpleType> + <xs:restriction base="xs:int"> + <xs:minExclusive value="0"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="MaxTorqueCurve" type="v2.3:ElectricMachineSystemMaxTorqueCurveType"/> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> <xs:complexType name="ElectricMachineTorqueLimitsType"> <xs:complexContent> <xs:extension base="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType"> <xs:sequence> - <xs:element name="ElectricMachine" maxOccurs="unbounded"> + <xs:element name="ElectricMachine"> <xs:complexType> <xs:sequence> <xs:element name="Position" type="v2.4:PowertrainPositionType"/> @@ -2081,7 +2115,7 @@ <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> - <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0" maxOccurs="2"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/> </xs:sequence> </xs:extension> @@ -2106,7 +2140,7 @@ <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> - <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0" maxOccurs="2"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/> </xs:sequence> </xs:extension> @@ -2141,7 +2175,7 @@ <xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/> <xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/> <xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/> - <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0" maxOccurs="2"/> + <xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/> <xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_PrimaryBusDeclarationType"/> </xs:sequence> </xs:extension> diff --git a/VectoCore/VectoCore/Utils/SearchAlgorithm.cs b/VectoCore/VectoCore/Utils/SearchAlgorithm.cs index 8f86e626f6df667d569b3f269c7457fc958b6002..4e0058bf987127f34bb02c27b62c2fc409dfaf1e 100644 --- a/VectoCore/VectoCore/Utils/SearchAlgorithm.cs +++ b/VectoCore/VectoCore/Utils/SearchAlgorithm.cs @@ -55,10 +55,10 @@ namespace TUGraz.VectoCore.Utils /// </code> /// </summary> public static T Search<T>(T x, SI y, T interval, Func<object, SI> getYValue, Func<T, object> evaluateFunction, - Func<object, double> criterion, bool forceLineSearch = false) where T : SIBase<T> + Func<object, double> criterion, bool forceLineSearch = false, object searcher = null) where T : SIBase<T> { var iterationCount = 0; - return Search(x, y, interval, getYValue, evaluateFunction, criterion, null, ref iterationCount, forceLineSearch); + return Search(x, y, interval, getYValue, evaluateFunction, criterion, null, ref iterationCount, forceLineSearch, searcher); } /// <summary> @@ -72,10 +72,10 @@ namespace TUGraz.VectoCore.Utils /// </code> /// </summary> public static T Search<T>(T x, SI y, T interval, Func<object, SI> getYValue, Func<T, object> evaluateFunction, - Func<object, double> criterion, Func<object, int, bool> abortCriterion, bool forceLineSearch = false) where T : SIBase<T> + Func<object, double> criterion, Func<object, int, bool> abortCriterion, bool forceLineSearch = false, object searcher = null) where T : SIBase<T> { var iterationCount = 0; - return Search(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount, forceLineSearch); + return Search(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount, forceLineSearch, searcher); } /// <summary> @@ -89,19 +89,20 @@ namespace TUGraz.VectoCore.Utils /// </code> /// </summary> public static T Search<T>(T x, SI y, T interval, Func<object, SI> getYValue, Func<T, object> evaluateFunction, - Func<object, double> criterion, Func<object, int, bool> abortCriterion, ref int iterationCount, bool forceLineSearch) where T : SIBase<T> + Func<object, double> criterion, Func<object, int, bool> abortCriterion, ref int iterationCount, + bool forceLineSearch, object searcher) where T : SIBase<T> { T result; try { if (forceLineSearch) { - result = LineSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount); + result = LineSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount, searcher); } else { - result = InterpolateSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount); + result = InterpolateSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount, searcher); } } catch (VectoException ex) { var log = LogManager.GetLogger(typeof(SearchAlgorithm).FullName); log.Debug("Falling back to LineSearch. Reverse InterpolationSearch failed: " + ex.Message); - result = LineSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount); + result = LineSearch(x, y, interval, getYValue, evaluateFunction, criterion, abortCriterion, ref iterationCount, searcher); } return result; } @@ -111,8 +112,10 @@ namespace TUGraz.VectoCore.Utils /// Phase 1: Linear Bracketing: Search iterative for the area of interest (with fixed step size). /// Phase 2: Binary Sectioning: Binary search in the area of interest. /// </summary> - private static T LineSearch<T>(T xStart, SI yStart, T intervalStart, Func<object, SI> getYValue, Func<T, object> evaluateFunction, - Func<object, double> criterion, Func<object, int, bool> abortCriterion, ref int iterationCount) where T : SIBase<T> + private static T LineSearch<T>(T xStart, SI yStart, T intervalStart, Func<object, SI> getYValue, + Func<T, object> evaluateFunction, + Func<object, double> criterion, Func<object, int, bool> abortCriterion, ref int iterationCount, + object searcher) where T : SIBase<T> { var log = LogManager.GetLogger(typeof(SearchAlgorithm).FullName); @@ -196,7 +199,7 @@ namespace TUGraz.VectoCore.Utils /// </summary> private static T InterpolateSearch<T>(T x1SI, SI y1SI, T intervalSI, Func<object, SI> getYValue, Func<T, object> evaluateFunction, Func<object, double> criterion, Func<object, int, bool> abortCriterion, - ref int iterationCount) where T : SIBase<T> + ref int iterationCount, object searcher) where T : SIBase<T> { var (x1, y1) = (x1SI.Value(), y1SI.Value()); var interval = intervalSI.Value(); diff --git a/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs b/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..ea867eac8bfe0213a604042346e3a06011636ee0 --- /dev/null +++ b/VectoCore/VectoCoreTest/Integration/Hybrid/SerialHybridTest.cs @@ -0,0 +1,896 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using NUnit.Framework; +using TUGraz.VectoCommon.Exceptions; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.Impl; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.InputData.Reader.Impl; +using TUGraz.VectoCore.Models.Declaration; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; +using TUGraz.VectoCore.Models.SimulationComponent; +using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; +using TUGraz.VectoCore.Models.SimulationComponent.Strategies; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Tests.Utils; +using TUGraz.VectoCore.Utils; +using ElectricSystem = TUGraz.VectoCore.Models.SimulationComponent.ElectricSystem; +using Wheels = TUGraz.VectoCore.Models.SimulationComponent.Impl.Wheels; + + +namespace TUGraz.VectoCore.Tests.Integration.Hybrid +{ + [TestFixture, + Parallelizable(ParallelScope.All)] + public class SerialHybridTest + { + public const string BatFile = @"TestData\Hybrids\GenericVehicle_Sx\GenericBattery.vreess"; + + public const string AccelerationFile = @"TestData\Hybrids\GenericVehicle_Sx\Truck.vacc"; + public const string MotorFile = @"TestData\Hybrids\GenericVehicle_Sx\GenericEMotor.vem"; + + public const string GeneratorFile = @"TestData\Hybrids\GenericVehicle_Sx\GenericGen.vem"; + + public const string GearboxIndirectLoss = @"TestData\Components\Indirect Gear.vtlm"; + public const string GearboxDirectLoss = @"TestData\Components\Direct Gear.vtlm"; + + public const string EngineFile = @"TestData\Hybrids\GenericVehicle_Sx\Group2_6l.veng"; + + + public const bool PlotGraphs = true; + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + } + + // - - - - - - - - - - - - - - - - - - - - - - - - - + [ + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 0, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, LongHaul"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 1, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, RegionalDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 2, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, UrbanDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 3, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, Construction"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 4, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, Urban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 5, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, Suburban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 6, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, Interurban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2_3speed.vecto", 7, TestName = "Generic Serial Hybrid S2 AMT 3Speed Job, Coach"), + ] + [ + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 0, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, LongHaul"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 1, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, RegionalDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 2, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, UrbanDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 3, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, Construction"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 4, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, Urban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 5, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, Suburban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 6, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, Interurban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_Job\SerialHybrid_S2.vecto", 7, TestName = "Generic Serial Hybrid S2 AMT 12speed Job, Coach"), + ] + [ + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 0, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, LongHaul"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 1, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, RegionalDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 2, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, UrbanDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 3, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, Construction"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 4, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, Urban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 5, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, Suburban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 6, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, Interurban"), + TestCase(@"TestData\Hybrids\GenericVehicle_S2_APTN_PCC\HEV_S2_Group5LH_rl_APTN.vecto", 7, TestName = "Generic Serial Hybrid S2 APT-N 3speed Job, Coach"), + ] + public void S2SerialHybridJob(string jobFile, int runIdx) + { + RunHybridJob(jobFile, runIdx); + } + + + // ================================================= + + [ + TestCase(30, 0.7, 0, 0, TestName = "S3 Serial Hybrid ConstantSpeed 30km/h SoC: 0.7, level"), + TestCase(50, 0.7, 0, 0, TestName = "S3 Serial Hybrid ConstantSpeed 50km/h SoC: 0.7, level"), + TestCase(80, 0.7, 0, 0, TestName = "S3 Serial Hybrid ConstantSpeed 80km/h SoC: 0.7, level"), + + TestCase(30, 0.25, 0, 0, TestName = "S3 Serial Hybrid ConstantSpeed 30km/h SoC: 0.25, level"), + TestCase(50, 0.25, 0, 0, TestName = "S3 Serial Hybrid ConstantSpeed 50km/h SoC: 0.25, level"), + TestCase(80, 0.25, 0, 0, TestName = "S3 Serial Hybrid ConstantSpeed 80km/h SoC: 0.25, level"), + + TestCase(30, 0.5, 5, 0, TestName = "S3 Serial Hybrid ConstantSpeed 30km/h SoC: 0.5, UH 5%"), + TestCase(50, 0.5, 5, 0, TestName = "S3 Serial Hybrid ConstantSpeed 50km/h SoC: 0.5, UH 5%"), + TestCase(80, 0.5, 5, 0, TestName = "S3 Serial Hybrid ConstantSpeed 80km/h SoC: 0.5, UH 5%"), + + TestCase(30, 0.5, -5, 0, TestName = "S3 Serial Hybrid ConstantSpeed 30km/h SoC: 0.5, DH 5%"), + TestCase(50, 0.5, -5, 0, TestName = "S3 Serial Hybrid ConstantSpeed 50km/h SoC: 0.5, DH 5%"), + TestCase(80, 0.5, -5, 0, TestName = "S3 Serial Hybrid ConstantSpeed 80km/h SoC: 0.5, DH 5%"), + + TestCase(30, 0.25, 0, 1000, TestName = "S3 Serial Hybrid ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 1kW"), + TestCase(30, 0.25, 0, 5000, TestName = "S3 Serial Hybrid ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 5kW"), + ] + public void S3HybridConstantSpeed(double vmax, double initialSoC, double slope, double pAuxEl) + { + var cycleData = string.Format( + @" 0, {0}, {1}, 0 + 7000, {0}, {1}, 0", vmax, slope); + var cycle = SimpleDrivingCycles.CreateCycleData(cycleData); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S3_constant_{vmax}-{initialSoC}_{slope}_{pAuxEl}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE3; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47, pAuxEl: pAuxEl); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + var data = run.GetContainer().RunData; + //File.WriteAllText( + // $"{modFilename}.json", + // JsonConvert.SerializeObject(data, Formatting.Indented)); + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B3, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + [ + TestCase(30, 0.7, 0, TestName = "S3 Serial Hybrid DriveOff 30km/h SoC: 0.7, level"), + TestCase(80, 0.7, 0, TestName = "S3 Serial Hybrid DriveOff 80km/h SoC: 0.7, level"), + TestCase(30, 0.22, 0, TestName = "S3 Serial Hybrid DriveOff 30km/h SoC: 0.22, level") + ] + public void S3HybridDriveOff(double vmax, double initialSoC, double slope) + { + var cycleData = string.Format( + @" 0, 0, {1}, 3 + 700, {0}, {1}, 0", vmax, slope); + var cycle = SimpleDrivingCycles.CreateCycleData(cycleData); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S3_acc_{vmax}-{initialSoC}_{slope}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE3; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B3, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + [TestCase(50, 0.79, 0, TestName = "S3 Serial Hybrid Brake Standstill 50km/h SoC: 0.79, level"), + TestCase(50, 0.25, 0, TestName = "S3 Serial Hybrid Brake Standstill 50km/h SoC: 0.25, level"), + TestCase(50, 0.65, 0, TestName = "S3 Serial Hybrid Brake Standstill 50km/h SoC: 0.65, level") + ] + public void S3HybridBrakeStandstill(double vmax, double initialSoC, double slope) + { + //var dst = + var cycleData = string.Format( + @" 0, {0}, {1}, 0 + 200, 0, {1}, 3", vmax, slope); + var cycle = SimpleDrivingCycles.CreateCycleData(cycleData); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S3_stop_{vmax}-{initialSoC}_{slope}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE3; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + //var strategy = (DelegateParallelHybridStrategy)hybridController.Strategy; + //Assert.NotNull(strategy); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B3, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + + [ + TestCase("LongHaul", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle LongHaul, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("RegionalDelivery", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle RegionalDelivery, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("UrbanDelivery", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle UrbanDelivery, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Construction", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle Construction, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Urban", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle Urban, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Suburban", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle SubUrban, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Interurban", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle InterUrban, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Coach", 2000, 0.5, 0, TestName = "S3 Serial Hybrid DriveCycle Coach, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + ] + public void S3HybridDriveCycle(string declarationMission, double payload, double initialSoC, double pAuxEl) + { + var cycleData = RessourceHelper.ReadStream( + DeclarationData.DeclarationDataResourcePrefix + ".MissionCycles." + + declarationMission + + Constants.FileExtensions.CycleFile); + var cycle = DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased, "", false); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S3_cycle_{declarationMission}-{initialSoC}_{payload}_{pAuxEl}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE3; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47, pAuxEl: pAuxEl, payload: payload.SI<Kilogram>()); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + var data = run.GetContainer().RunData; + //File.WriteAllText( + // $"{modFilename}.json", + // JsonConvert.SerializeObject(data, Formatting.Indented)); + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B3, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + // ================================================= + + [ + TestCase(30, 0.7, 0, 0, TestName = "S4 Serial Hybrid ConstantSpeed 30km/h SoC: 0.7, level"), + TestCase(50, 0.7, 0, 0, TestName = "S4 Serial Hybrid ConstantSpeed 50km/h SoC: 0.7, level"), + TestCase(80, 0.7, 0, 0, TestName = "S4 Serial Hybrid ConstantSpeed 80km/h SoC: 0.7, level"), + + TestCase(30, 0.25, 0, 0, TestName = "S4 Serial Hybrid ConstantSpeed 30km/h SoC: 0.25, level"), + TestCase(50, 0.25, 0, 0, TestName = "S4 Serial Hybrid ConstantSpeed 50km/h SoC: 0.25, level"), + TestCase(80, 0.25, 0, 0, TestName = "S4 Serial Hybrid ConstantSpeed 80km/h SoC: 0.25, level"), + + TestCase(30, 0.5, 5, 0, TestName = "S4 Serial Hybrid ConstantSpeed 30km/h SoC: 0.5, UH 5%"), + TestCase(50, 0.5, 5, 0, TestName = "S4 Serial Hybrid ConstantSpeed 50km/h SoC: 0.5, UH 5%"), + TestCase(80, 0.5, 5, 0, TestName = "S4 Serial Hybrid ConstantSpeed 80km/h SoC: 0.5, UH 5%"), + + TestCase(30, 0.5, -5, 0, TestName = "S4 Serial Hybrid ConstantSpeed 30km/h SoC: 0.5, DH 5%"), + TestCase(50, 0.5, -5, 0, TestName = "S4 Serial Hybrid ConstantSpeed 50km/h SoC: 0.5, DH 5%"), + TestCase(80, 0.5, -5, 0, TestName = "S4 Serial Hybrid ConstantSpeed 80km/h SoC: 0.5, DH 5%"), + + TestCase(30, 0.25, 0, 1000, TestName = "S4 Serial Hybrid ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 1kW"), + TestCase(30, 0.25, 0, 5000, TestName = "S4 Serial Hybrid ConstantSpeed 30km/h SoC: 0.25, level P_auxEl: 5kW"), + ] + public void S4HybridConstantSpeed(double vmax, double initialSoC, double slope, double pAuxEl) + { + var cycleData = string.Format( + @" 0, {0}, {1}, 0 + 7000, {0}, {1}, 0", vmax, slope); + var cycle = SimpleDrivingCycles.CreateCycleData(cycleData); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S4_constant_{vmax}-{initialSoC}_{slope}_{pAuxEl}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE4; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47, pAuxEl: pAuxEl); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + var data = run.GetContainer().RunData; + //File.WriteAllText( + // $"{modFilename}.json", + // JsonConvert.SerializeObject(data, Formatting.Indented)); + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B4, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + [ + TestCase(30, 0.7, 0, TestName = "S4 Serial Hybrid DriveOff 30km/h SoC: 0.7, level"), + TestCase(80, 0.7, 0, TestName = "S4 Serial Hybrid DriveOff 80km/h SoC: 0.7, level"), + TestCase(30, 0.22, 0, TestName = "S4 Serial Hybrid DriveOff 30km/h SoC: 0.22, level") + ] + public void S4HybridDriveOff(double vmax, double initialSoC, double slope) + { + var cycleData = string.Format( + @" 0, 0, {1}, 3 + 700, {0}, {1}, 0", vmax, slope); + var cycle = SimpleDrivingCycles.CreateCycleData(cycleData); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S4_acc_{vmax}-{initialSoC}_{slope}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE4; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B4, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + [TestCase(50, 0.79, 0, TestName = "S4 Serial Hybrid Brake Standstill 50km/h SoC: 0.79, level"), + TestCase(50, 0.25, 0, TestName = "S4 Serial Hybrid Brake Standstill 50km/h SoC: 0.25, level"), + TestCase(50, 0.65, 0, TestName = "S4 Serial Hybrid Brake Standstill 50km/h SoC: 0.65, level") + ] + public void S4HybridBrakeStandstill(double vmax, double initialSoC, double slope) + { + //var dst = + var cycleData = string.Format( + @" 0, {0}, {1}, 0 + 200, 0, {1}, 3", vmax, slope); + var cycle = SimpleDrivingCycles.CreateCycleData(cycleData); + + const bool largeMotor = true; + + var modFilename = $"SimpleParallelHybrid-S4_stop_{vmax}-{initialSoC}_{slope}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE4; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + //var strategy = (DelegateParallelHybridStrategy)hybridController.Strategy; + //Assert.NotNull(strategy); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B4, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + + + + [ + TestCase("LongHaul", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle LongHaul, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("RegionalDelivery", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle RegionalDelivery, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("UrbanDelivery", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle UrbanDelivery, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Construction", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle Construction, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Urban", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle Urban, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Suburban", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle SubUrban, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Interurban", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle InterUrban, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + TestCase("Coach", 2000, 0.5, 0, TestName = "S4 Serial Hybrid DriveCycle Coach, SoC: 0.5 Payload: 2t P_auxEl: 0kW"), + ] + public void S4HybridDriveCycle(string declarationMission, double payload, double initialSoC, double pAuxEl) + { + var cycleData = RessourceHelper.ReadStream( + DeclarationData.DeclarationDataResourcePrefix + ".MissionCycles." + + declarationMission + + Constants.FileExtensions.CycleFile); + var cycle = DrivingCycleDataReader.ReadFromStream(cycleData, CycleType.DistanceBased, "", false); + + var modFilename = $"SimpleSerialHybrid-S4_cycle_{declarationMission}-{initialSoC}_{payload}_{pAuxEl}.vmod"; + const PowertrainPosition pos = PowertrainPosition.BatteryElectricE4; + var job = CreateEngineeringRun( + cycle, modFilename, initialSoC, pos, 12.47, pAuxEl: pAuxEl, payload: payload.SI<Kilogram>()); + var run = job.Runs.First().Run; + + var hybridController = (SerialHybridController)((VehicleContainer)run.GetContainer()).HybridController; + Assert.NotNull(hybridController); + + var modData = ((ModalDataContainer)((VehicleContainer)run.GetContainer()).ModData).Data; + + var data = run.GetContainer().RunData; + //File.WriteAllText( + // $"{modFilename}.json", + // JsonConvert.SerializeObject(data, Formatting.Indented)); + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + + Assert.IsTrue(modData.Rows.Count > 0); + + var graphWriter = GetGraphWriter(new[] { ModalResultField.P_electricMotor_mech_B4, ModalResultField.P_electricMotor_mech_Gen }); + graphWriter.Write(modFilename); + } + + + + // ================================================= + + [ + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 0, TestName = "Generic Serial Hybrid S4 Job, LongHaul"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 1, TestName = "Generic Serial Hybrid S4 Job, RegionalDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 2, TestName = "Generic Serial Hybrid S4 Job, UrbanDelivery"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 3, TestName = "Generic Serial Hybrid S4 Job, Construction"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 4, TestName = "Generic Serial Hybrid S4 Job, Urban"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 5, TestName = "Generic Serial Hybrid S4 Job, Suburban"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 6, TestName = "Generic Serial Hybrid S4 Job, Interurban"), + TestCase(@"TestData\Hybrids\GenericVehicle_Sx_Job\SerialHybrid_S4.vecto", 7, TestName = "Generic Serial Hybrid S4 Job, Coach"), + ] + public void S4SerialHybridJob(string jobFile, int runIdx) + { + RunHybridJob(jobFile, runIdx); + } + + + // ================================================= + + private void RunHybridJob(string jobFile, int runIdx, int? startDistance = null) + { + var inputProvider = JSONInputDataFactory.ReadJsonJob(jobFile); + + var writer = new FileOutputWriter(jobFile); + var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Engineering, inputProvider, writer); + factory.Validate = false; + factory.WriteModalResults = true; + + var sumContainer = new SummaryDataContainer(writer); + var jobContainer = new JobContainer(sumContainer); + + factory.SumData = sumContainer; + + var run = factory.SimulationRuns().ToArray()[runIdx]; + + if (startDistance != null) { + //(run.GetContainer().BatteryInfo as Battery).PreviousState.StateOfCharge = 0.317781; + (run.GetContainer().RunData.Cycle as DrivingCycleProxy).Entries = run.GetContainer().RunData.Cycle + .Entries.Where(x => x.Distance >= startDistance.Value).ToList(); + //run.GetContainer().MileageCounter.Distance = startDistance; + //run.GetContainer().DrivingCycleInfo.CycleStartDistance = startDistance; + } + + Assert.NotNull(run); + + var pt = run.GetContainer(); + + Assert.NotNull(pt); + + run.Run(); + Assert.IsTrue(run.FinishedWithoutErrors); + } + + // ================================================= + + public static JobContainer CreateEngineeringRun(DrivingCycleData cycleData, string modFileName, + double initialSoc, PowertrainPosition pos, double ratio, double pAuxEl = 0, + Kilogram payload = null, Watt maxDriveTrainPower = null, GearboxType gearboxType = GearboxType.NoGearbox) + { + var fileWriter = new FileOutputWriter(Path.GetFileNameWithoutExtension(modFileName)); + var sumData = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumData); + var container = CreateSerialHybridPowerTrain( + cycleData, modFileName, initialSoc, sumData, pAuxEl, pos, ratio, payload, + maxDriveTrainPower, gearboxType); + var run = new DistanceRun(container); + jobContainer.AddRun(run); + return jobContainer; + } + + public static VehicleContainer CreateSerialHybridPowerTrain(DrivingCycleData cycleData, string modFileName, + double initialBatCharge, SummaryDataContainer sumData, double pAuxEl, + PowertrainPosition pos, double ratio, Kilogram payload = null, Watt maxDriveTrainPower = null, GearboxType gearboxType = GearboxType.NoGearbox) + { + var gearboxData = CreateGearboxData(gearboxType); + var axleGearData = CreateAxleGearData(gearboxType); + + var vehicleData = CreateVehicleData(payload ?? 3300.SI<Kilogram>()); + var airdragData = CreateAirdragData(); + var driverData = CreateDriverData(AccelerationFile, true); + + var emFile = MotorFile; + var correctedRatio = pos == PowertrainPosition.BatteryElectricE3 + ? ratio / axleGearData.AxleGear.Ratio + : ratio; + var electricMotorData = MockSimulationDataFactory.CreateElectricMotorData(emFile, 2, pos, correctedRatio, 1); + + var genFile = GeneratorFile; + electricMotorData.AddRange( + MockSimulationDataFactory.CreateElectricMotorData(genFile, 1, PowertrainPosition.GEN, 2.6, 1)); + + var batFile = BatFile; + var batteryData = MockSimulationDataFactory.CreateBatteryData(batFile, initialBatCharge); + //batteryData.TargetSoC = 0.5; + + var engineData = MockSimulationDataFactory.CreateEngineDataFromFile( + EngineFile, gearboxData.Gears.Count); + + foreach (var entry in gearboxData.Gears) { + entry.Value.ShiftPolygon = DeclarationData.Gearbox.ComputeEfficiencyShiftPolygon( + (int)entry.Key, engineData.FullLoadCurves[entry.Key], new TransmissionInputData().Repeat(gearboxData.Gears.Count + 1).Cast<ITransmissionInputData>().ToList(), engineData, axleGearData.AxleGear.Ratio, + vehicleData.DynamicTyreRadius); + } + + var runData = new VectoRunData() { + //PowertrainConfiguration = PowertrainConfiguration.ParallelHybrid, + JobRunId = 0, + JobType = VectoSimulationJobType.SerialHybridVehicle, + DriverData = driverData, + AxleGearData = axleGearData, + GearboxData = gearboxData, + VehicleData = vehicleData, + AirdragData = airdragData, + JobName = Path.GetFileNameWithoutExtension(modFileName), + Cycle = cycleData, + Retarder = new RetarderData() { Type = RetarderType.None }, + Aux = new List<VectoRunData.AuxData>(), + ElectricMachinesData = electricMotorData, + EngineData = engineData, + BatteryData = batteryData, + GearshiftParameters = CreateGearshiftData(gearboxData, axleGearData.AxleGear.Ratio, engineData.IdleSpeed), + HybridStrategyParameters = CreateHybridStrategyData(), + ElectricAuxDemand = pAuxEl.SI<Watt>() + }; + var fileWriter = new FileOutputWriter(modFileName); + var modDataFilter = new IModalDataFilter[] { }; //new IModalDataFilter[] { new ActualModalDataFilter(), }; + var modData = new ModalDataContainer(runData, fileWriter, null, modDataFilter) { + WriteModalResults = true, + }; + var container = new VehicleContainer( + ExecutionMode.Engineering, modData, x => { sumData?.Write(x, 1, 1, runData); }); + container.RunData = runData; + + var strategy = new SerialHybridStrategy(runData, container); + var es = new ElectricSystem(container); + var battery = new BatterySystem(container, batteryData); + battery.Initialize(initialBatCharge); + + //var clutch = gearboxType.AutomaticTransmission() ? null : new SwitchableClutch(container, runData.EngineData); + var ctl = new SerialHybridController(container, strategy, es); + + es.Connect(battery); + + var engine = new StopStartCombustionEngine(container, runData.EngineData); + + //var hybridStrategy = new DelegateParallelHybridStrategy(); + + var idleController = engine.IdleController; + ctl.Engine = engine; + + var cycle = new DistanceBasedDrivingCycle(container, cycleData); + + var aux = new ElectricAuxiliary(container); + aux.AddConstant("P_aux_el", pAuxEl.SI<Watt>()); + es.Connect(aux); + + var powertrain = cycle + .AddComponent(new Driver(container, runData.DriverData, new DefaultDriverStrategy(container))) + .AddComponent(new Vehicle(container, runData.VehicleData, runData.AirdragData)) + .AddComponent(new Wheels(container, runData.VehicleData.DynamicTyreRadius, + runData.VehicleData.WheelsInertia)) + .AddComponent(ctl) + .AddComponent(new Brakes(container)); + + switch (pos) { + case PowertrainPosition.HybridPositionNotSet: + throw new VectoException("invalid powertrain position"); + case PowertrainPosition.BatteryElectricE2: + var gearbox = gearboxType.AutomaticTransmission() + ? (IHybridControlledGearbox)new ATGearbox(container, ctl.ShiftStrategy) + : new Gearbox(container, ctl.ShiftStrategy); + powertrain = powertrain.AddComponent(new AxleGear(container, runData.AxleGearData)) + .AddComponent(runData.AngledriveData != null + ? new Angledrive(container, runData.AngledriveData) + : null) + .AddComponent((IGearbox)gearbox, runData.Retarder, container) + .AddComponent(GetElectricMachine(PowertrainPosition.BatteryElectricE2, runData.ElectricMachinesData, + container, + es, ctl)); + ctl.Gearbox = gearbox; + + break; + + case PowertrainPosition.BatteryElectricE3: + powertrain = powertrain.AddComponent(new AxleGear(container, runData.AxleGearData)) + .AddComponent(GetElectricMachine(PowertrainPosition.BatteryElectricE3, runData.ElectricMachinesData, + container, + es, ctl)); + new DummyGearboxInfo(container, new GearshiftPosition(0)); + //new MockEngineInfo(container); + new ATClutchInfo(container); + runData.GearboxData = null; + break; + case PowertrainPosition.BatteryElectricE4: + powertrain = powertrain.AddComponent(GetElectricMachine(PowertrainPosition.BatteryElectricE4, runData.ElectricMachinesData, + container, + es, ctl)); + new DummyGearboxInfo(container, new GearshiftPosition(0)); + //new MockEngineInfo(container); + new ATClutchInfo(container); + runData.GearboxData = null; + break; + case PowertrainPosition.HybridP0: + case PowertrainPosition.HybridP1: + case PowertrainPosition.HybridP2_5: + case PowertrainPosition.HybridP2: + case PowertrainPosition.HybridP3: + case PowertrainPosition.HybridP4: + + throw new VectoException("testcase does not support parallel powertrain configurations"); + default: + throw new ArgumentOutOfRangeException(nameof(pos), pos, null); + } + + ctl.GenSet.AddComponent(GetElectricMachine(PowertrainPosition.GEN, runData.ElectricMachinesData, container, + es, ctl)) + .AddComponent(engine, idleController) + .AddAuxiliaries(container, runData); + + return container; + } + + private static HybridStrategyParameters CreateHybridStrategyData() + { + return new HybridStrategyParameters() { + MinSoC = 0.24, + TargetSoC = 0.7, + GensetMinOptPowerFactor = 0, + }; + } + + public static ShiftStrategyParameters CreateGearshiftData(GearboxData gbx, double axleRatio, PerSecond engineIdlingSpeed) + { + var retVal = new ShiftStrategyParameters { + TimeBetweenGearshifts = 2.SI<Second>(), + TorqueReserve = 0.2, + StartTorqueReserve = 0.2, + DownshiftAfterUpshiftDelay = DeclarationData.Gearbox.DownshiftAfterUpshiftDelay, + UpshiftAfterDownshiftDelay = DeclarationData.Gearbox.UpshiftAfterDownshiftDelay, + UpshiftMinAcceleration = DeclarationData.Gearbox.UpshiftMinAcceleration, + StartSpeed = 2.SI<MeterPerSecond>(), + StartAcceleration = 0.6.SI<MeterPerSquareSecond>(), + + StartVelocity = DeclarationData.GearboxTCU.StartSpeed, + //StartAcceleration = DeclarationData.GearboxTCU.StartAcceleration, + GearResidenceTime = DeclarationData.GearboxTCU.GearResidenceTime, + DnT99L_highMin1 = DeclarationData.GearboxTCU.DnT99L_highMin1, + DnT99L_highMin2 = DeclarationData.GearboxTCU.DnT99L_highMin2, + AllowedGearRangeUp = gbx.Type.AutomaticTransmission() ? 1 : DeclarationData.GearboxTCU.AllowedGearRangeUp, + AllowedGearRangeDown = gbx.Type.AutomaticTransmission() ? 1 : DeclarationData.GearboxTCU.AllowedGearRangeDown, + LookBackInterval = DeclarationData.GearboxTCU.LookBackInterval, + DriverAccelerationLookBackInterval = DeclarationData.GearboxTCU.DriverAccelerationLookBackInterval, + DriverAccelerationThresholdLow = DeclarationData.GearboxTCU.DriverAccelerationThresholdLow, + AverageCardanPowerThresholdPropulsion = DeclarationData.GearboxTCU.AverageCardanPowerThresholdPropulsion, + CurrentCardanPowerThresholdPropulsion = DeclarationData.GearboxTCU.CurrentCardanPowerThresholdPropulsion, + TargetSpeedDeviationFactor = DeclarationData.GearboxTCU.TargetSpeedDeviationFactor, + EngineSpeedHighDriveOffFactor = DeclarationData.GearboxTCU.EngineSpeedHighDriveOffFactor, + RatingFactorCurrentGear = gbx.Type.AutomaticTransmission() + ? DeclarationData.GearboxTCU.RatingFactorCurrentGearAT + : DeclarationData.GearboxTCU.RatingFactorCurrentGear, + + //-------------------- + RatioEarlyUpshiftFC = DeclarationData.GearboxTCU.RatioEarlyUpshiftFC / axleRatio, + RatioEarlyDownshiftFC = DeclarationData.GearboxTCU.RatioEarlyDownshiftFC / axleRatio, + AllowedGearRangeFC = gbx.Type.AutomaticTransmission() + ? (gbx.Gears.Count > DeclarationData.GearboxTCU.ATSkipGearsThreshold + ? DeclarationData.GearboxTCU.AllowedGearRangeFCATSkipGear + : DeclarationData.GearboxTCU.AllowedGearRangeFCAT) + : DeclarationData.GearboxTCU.AllowedGearRangeFCAMT, + VelocityDropFactor = DeclarationData.GearboxTCU.VelocityDropFactor, + AccelerationFactor = DeclarationData.GearboxTCU.AccelerationFactor, + MinEngineSpeedPostUpshift = 0.RPMtoRad(), + ATLookAheadTime = DeclarationData.GearboxTCU.ATLookAheadTime, + + LoadStageThresoldsUp = DeclarationData.GearboxTCU.LoadStageThresholdsUp, + LoadStageThresoldsDown = DeclarationData.GearboxTCU.LoadStageThresoldsDown, + ShiftSpeedsTCToLocked = DeclarationData.GearboxTCU.ShiftSpeedsTCToLocked + .Select(x => x.Select(y => y + engineIdlingSpeed.AsRPM).ToArray()).ToArray(), + }; + + return retVal; + } + + private static IElectricMotor GetElectricMachine(PowertrainPosition pos, + IList<Tuple<PowertrainPosition, ElectricMotorData>> electricMachinesData, VehicleContainer container, + ElectricSystem es, IHybridController ctl) + { + var motorData = electricMachinesData.FirstOrDefault(x => x.Item1 == pos); + if (motorData == null) { + return null; + } + + container.ModData.AddElectricMotor(pos); + ctl.AddElectricMotor(pos, motorData.Item2); + var motor = new ElectricMotor(container, motorData.Item2, ctl.ElectricMotorControl(pos), pos); + if (pos == PowertrainPosition.GEN) { + es.Connect(new GensetChargerAdapter(motor)); + } else { + motor.Connect(es); + } + + return motor; + } + + private static GearboxData CreateGearboxData(GearboxType gearboxType = GearboxType.NoGearbox) + { + switch (gearboxType) { + + case GearboxType.NoGearbox: + case GearboxType.AMT: + return CreateAMTGearbox(); + //case GearboxType.ATSerial: + // return CreateATSerial(); + //case GearboxType.ATPowerSplit: + // return CreateATPowerSplit(); + default: + throw new ArgumentOutOfRangeException(nameof(gearboxType), gearboxType, null); + } + } + + private static GearboxData CreateAMTGearbox() + { + var ratios = new[] { 14.93, 11.64, 9.02, 7.04, 5.64, 4.4, 3.39, 2.65, 2.05, 1.6, 1.28, 1.0 }; + + return new GearboxData { + Gears = ratios.Select( + (ratio, i) => Tuple.Create( + (uint)i, new GearData { + //MaxTorque = 2300.SI<NewtonMeter>(), + LossMap = + TransmissionLossMapReader.ReadFromFile( + ratio.IsEqual(1) ? GearboxIndirectLoss : GearboxDirectLoss, ratio, + $"Gear {i}"), + Ratio = ratio, + //ShiftPolygon = DeclarationData.Gearbox.ComputeEfficiencyShiftPolygon(i,) + })).ToDictionary(k => k.Item1 + 1, v => v.Item2), + Inertia = 0.SI<KilogramSquareMeter>(), + TractionInterruption = 1.SI<Second>(), + }; + } + + + private static AxleGearData CreateAxleGearData(GearboxType gearboxType) + { + var ratio = 2.59; + switch (gearboxType) { + case GearboxType.ATSerial: + ratio = 6.2; + break; + case GearboxType.ATPowerSplit: + ratio = 5.8; + break; + } + return new AxleGearData { + AxleGear = new GearData { + Ratio = ratio, + LossMap = TransmissionLossMapReader.Create(0.95, ratio, "Axlegear"), + } + }; + } + + private static VehicleData CreateVehicleData(Kilogram loading) + { + var axles = new List<Axle> { + new Axle { + AxleWeightShare = 0.38, + Inertia = 20.SI<KilogramSquareMeter>(), + RollResistanceCoefficient = 0.007, + TwinTyres = false, + TyreTestLoad = 30436.0.SI<Newton>() + }, + new Axle { + AxleWeightShare = 0.62, + Inertia = 18.SI<KilogramSquareMeter>(), + RollResistanceCoefficient = 0.007, + TwinTyres = true, + TyreTestLoad = 30436.SI<Newton>() + }, + }; + return new VehicleData { + AirDensity = DeclarationData.AirDensity, + AxleConfiguration = AxleConfiguration.AxleConfig_4x2, + CurbMass = 11500.SI<Kilogram>(), + Loading = loading, + DynamicTyreRadius = 0.465.SI<Meter>(), + AxleData = axles, + SavedInDeclarationMode = false, + ADAS = new VehicleData.ADASData() { + EngineStopStart = true + } + }; + } + + private static AirdragData CreateAirdragData() + { + return new AirdragData() { + CrossWindCorrectionCurve = + new CrosswindCorrectionCdxALookup( + 3.2634.SI<SquareMeter>(), + CrossWindCorrectionCurveReader.GetNoCorrectionCurve(3.2634.SI<SquareMeter>()), + CrossWindCorrectionMode.NoCorrection), + }; + } + + private static DriverData CreateDriverData(string accelerationFile, bool overspeed = false) + { + return new DriverData { + AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile), + LookAheadCoasting = new DriverData.LACData { + Enabled = true, + MinSpeed = 50.KMPHtoMeterPerSecond(), + + //Deceleration = -0.5.SI<MeterPerSquareSecond>() + LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, + LookAheadDecisionFactor = new LACDecisionFactor() + }, + OverSpeed = new DriverData.OverSpeedData() { + Enabled = true, + MinSpeed = 50.KMPHtoMeterPerSecond(), + OverSpeed = 5.KMPHtoMeterPerSecond() + }, + EngineStopStart = new DriverData.EngineStopStartData() { + EngineOffStandStillActivationDelay = DeclarationData.Driver.EngineStopStart.ActivationDelay, + MaxEngineOffTimespan = DeclarationData.Driver.EngineStopStart.MaxEngineOffTimespan, + UtilityFactorStandstill = DeclarationData.Driver.EngineStopStart.UtilityFactor + } + }; + } + + + // ====================== + + private GraphWriter GetGraphWriter(ModalResultField[] emYFields) + { + var Yfields = new[] { + ModalResultField.v_act, ModalResultField.altitude, ModalResultField.acc, ModalResultField.Gear, + ModalResultField.P_ice_out, ModalResultField.REESSStateOfCharge, ModalResultField.FCMap + }.Concat(emYFields).ToArray(); + + var graphWriter = new GraphWriter(); + graphWriter.Xfields = new[] { ModalResultField.dist }; + graphWriter.Yfields = Yfields; + graphWriter.Series1Label = "Hybrid"; + graphWriter.PlotIgnitionState = true; + + if (PlotGraphs) { + graphWriter.Enable(); + } else { + graphWriter.Disable(); + } + + return graphWriter; + } + + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericDragGenerator.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericDragGenerator.vemd new file mode 100644 index 0000000000000000000000000000000000000000..b4ff91987652279e4b96e2a857b77644cc644126 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericDragGenerator.vemd @@ -0,0 +1,23 @@ +n [rpm] , T_drag [Nm] +0, -4.35 +80, -4.51 +800, -6 +1600, -7.66 +2400, -9.31 +3200, -10.97 +4000, -12.62 +4800, -14.28 +5600, -15.93 +6400, -17.59 +7200, -19.24 +8000, -20.9 +8800, -22.55 +9600, -24.21 +10400, -25.87 +11200, -27.52 +12000, -29.18 +12800, -30.83 +13600, -32.49 +14400, -34.14 +15200, -35.8 +16000, -37.45 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericGenerator.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericGenerator.vem new file mode 100644 index 0000000000000000000000000000000000000000..6862c4c5594c18d7c15cfe7d0d8a3bb1c0b59de3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericGenerator.vem @@ -0,0 +1,20 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2016-10-13T08:54:28.7387223Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "FullLoadCurve": "GenericGenerator.vemp", + "DragCurve": "GenericDragGenerator.vemd", + "EfficiencyMap": "GenericMapGenerator.vemo", + "Inertia": 0.2, + "ContinuousPower": 50000, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericGenerator.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericGenerator.vemp new file mode 100644 index 0000000000000000000000000000000000000000..5b32c7a31cfa3f49020251d69167b1db37ddf78a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericGenerator.vemp @@ -0,0 +1,24 @@ +n [rpm] , T_drive [Nm] , T_recuperation [Nm] +0, 900.00, -900.00 +80, 900.00, -900.00 +800, 900.00, -900.00 +1600, 900.00, -900.00 +2400, 900.00, -900.00 +3200, 900.00, -900.00 +4000, 900.00, -900.00 +4800, 750.00, -750.00 +5600, 642.86, -642.86 +6400, 562.50, -562.50 +7200, 500.00, -500.00 +8000, 450.00, -450.00 +8800, 409.09, -409.09 +9600, 375.00, -375.00 +10400, 346.15, -346.15 +11200, 321.43, -321.43 +12000, 300.00, -300.00 +12800, 281.25, -281.25 +13600, 264.71, -264.71 +14400, 250.00, -250.00 +15200, 236.84, -236.84 +16000, 225.00, -225.00 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericMapGenerator.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericMapGenerator.vemo new file mode 100644 index 0000000000000000000000000000000000000000..0f3ab230b762aa5feb996f9f0cb246efd87efcbf --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericMapGenerator.vemo @@ -0,0 +1,925 @@ +n [rpm], T [Nm], P_bat [W] +0, -900, 0.000 +0, -855, 0.000 +0, -810, 0.000 +0, -765, 0.000 +0, -720, 0.000 +0, -675, 0.000 +0, -630, 0.000 +0, -585, 0.000 +0, -540, -0.069 +0, -495, -0.171 +0, -450, -0.253 +0, -405, -0.316 +0, -360, -0.358 +0, -315, -0.381 +0, -270, -0.383 +0, -225, -0.366 +0, -180, -0.328 +0, -135, -0.271 +0, -90, -0.194 +0, -45, -0.097 +0, -9, -0.005 +0, 9, 0.082 +0, 45, 0.331 +0, 90, 0.662 +0, 135, 1.015 +0, 180, 1.389 +0, 225, 1.785 +0, 270, 2.202 +0, 315, 2.641 +0, 360, 3.102 +0, 405, 3.584 +0, 450, 4.088 +0, 495, 4.614 +0, 540, 5.161 +0, 585, 5.730 +0, 630, 6.320 +0, 675, 6.932 +0, 720, 7.566 +0, 765, 8.221 +0, 810, 8.898 +0, 855, 9.597 +0, 900, 10.317 +80, -900, 0.000 +80, -855, 0.000 +80, -810, 0.000 +80, -765, 0.000 +80, -720, 0.000 +80, -675, 0.000 +80, -630, -0.135 +80, -585, -0.335 +80, -540, -0.502 +80, -495, -0.637 +80, -450, -0.739 +80, -405, -0.808 +80, -360, -0.845 +80, -315, -0.849 +80, -270, -0.820 +80, -225, -0.759 +80, -180, -0.665 +80, -135, -0.539 +80, -90, -0.380 +80, -45, -0.188 +80, -9, -0.011 +80, 9, 0.145 +80, 45, 0.582 +80, 90, 1.159 +80, 135, 1.772 +80, 180, 2.420 +80, 225, 3.104 +80, 270, 3.822 +80, 315, 4.577 +80, 360, 5.367 +80, 405, 6.192 +80, 450, 7.052 +80, 495, 7.949 +80, 540, 8.880 +80, 585, 9.847 +80, 630, 10.849 +80, 675, 11.887 +80, 720, 12.960 +80, 765, 14.068 +80, 810, 15.212 +80, 855, 16.391 +80, 900, 17.606 +800, -900, -62.530 +800, -855, -59.716 +800, -810, -56.868 +800, -765, -53.984 +800, -720, -51.066 +800, -675, -48.112 +800, -630, -45.123 +800, -585, -42.099 +800, -540, -39.040 +800, -495, -35.946 +800, -450, -32.817 +800, -405, -29.652 +800, -360, -26.453 +800, -315, -23.218 +800, -270, -19.949 +800, -225, -16.644 +800, -180, -13.304 +800, -135, -9.929 +800, -90, -6.519 +800, -45, -3.074 +800, -9, -0.292 +800, 9, 1.254 +800, 45, 4.519 +800, 90, 8.635 +800, 135, 12.788 +800, 180, 16.980 +800, 225, 21.210 +800, 270, 25.478 +800, 315, 29.784 +800, 360, 34.129 +800, 405, 38.511 +800, 450, 42.931 +800, 495, 47.390 +800, 540, 51.887 +800, 585, 56.421 +800, 630, 60.994 +800, 675, 65.605 +800, 720, 70.254 +800, 765, 74.941 +800, 810, 79.666 +800, 855, 84.429 +800, 900, 89.231 +1600, -900, -133.005 +1600, -855, -126.707 +1600, -810, -120.367 +1600, -765, -113.984 +1600, -720, -107.560 +1600, -675, -101.094 +1600, -630, -94.586 +1600, -585, -88.035 +1600, -540, -81.443 +1600, -495, -74.809 +1600, -450, -68.133 +1600, -405, -61.415 +1600, -360, -54.654 +1600, -315, -47.852 +1600, -270, -41.008 +1600, -225, -34.122 +1600, -180, -27.194 +1600, -135, -20.224 +1600, -90, -13.212 +1600, -45, -6.158 +1600, -9, -0.484 +1600, 9, 2.616 +1600, 45, 9.026 +1600, 90, 17.080 +1600, 135, 25.179 +1600, 180, 33.324 +1600, 225, 41.515 +1600, 270, 49.751 +1600, 315, 58.033 +1600, 360, 66.360 +1600, 405, 74.733 +1600, 450, 83.151 +1600, 495, 91.615 +1600, 540, 100.124 +1600, 585, 108.679 +1600, 630, 117.280 +1600, 675, 125.926 +1600, 720, 134.617 +1600, 765, 143.354 +1600, 810, 152.137 +1600, 855, 160.965 +1600, 900, 169.839 +2400, -900, -202.436 +2400, -855, -192.737 +2400, -810, -182.985 +2400, -765, -173.180 +2400, -720, -163.322 +2400, -675, -153.410 +2400, -630, -143.446 +2400, -585, -133.428 +2400, -540, -123.357 +2400, -495, -113.233 +2400, -450, -103.055 +2400, -405, -92.824 +2400, -360, -82.540 +2400, -315, -72.203 +2400, -270, -61.813 +2400, -225, -51.370 +2400, -180, -40.873 +2400, -135, -30.323 +2400, -90, -19.720 +2400, -45, -9.064 +2400, -9, -0.500 +2400, 9, 4.170 +2400, 45, 13.727 +2400, 90, 25.727 +2400, 135, 37.783 +2400, 180, 49.898 +2400, 225, 62.070 +2400, 270, 74.300 +2400, 315, 86.588 +2400, 360, 98.933 +2400, 405, 111.337 +2400, 450, 123.798 +2400, 495, 136.316 +2400, 540, 148.893 +2400, 585, 161.527 +2400, 630, 174.219 +2400, 675, 186.968 +2400, 720, 199.775 +2400, 765, 212.640 +2400, 810, 225.563 +2400, 855, 238.544 +2400, 900, 251.582 +3200, -900, -270.769 +3200, -855, -257.755 +3200, -810, -244.672 +3200, -765, -231.520 +3200, -720, -218.299 +3200, -675, -205.010 +3200, -630, -191.652 +3200, -585, -178.225 +3200, -540, -164.729 +3200, -495, -151.165 +3200, -450, -137.531 +3200, -405, -123.829 +3200, -360, -110.059 +3200, -315, -96.219 +3200, -270, -82.311 +3200, -225, -68.334 +3200, -180, -54.288 +3200, -135, -40.174 +3200, -90, -25.990 +3200, -45, -11.738 +3200, -9, -0.287 +3200, 9, 5.972 +3200, 45, 18.679 +3200, 90, 34.631 +3200, 135, 50.657 +3200, 180, 66.757 +3200, 225, 82.933 +3200, 270, 99.182 +3200, 315, 115.507 +3200, 360, 131.906 +3200, 405, 148.380 +3200, 450, 164.928 +3200, 495, 181.551 +3200, 540, 198.249 +3200, 585, 215.021 +3200, 630, 231.868 +3200, 675, 248.789 +3200, 720, 265.785 +3200, 765, 282.856 +3200, 810, 300.001 +3200, 855, 317.221 +3200, 900, 334.515 +4000, -900, -337.953 +4000, -855, -321.708 +4000, -810, -305.374 +4000, -765, -288.951 +4000, -720, -272.440 +4000, -675, -255.840 +4000, -630, -239.151 +4000, -585, -222.374 +4000, -540, -205.508 +4000, -495, -188.553 +4000, -450, -171.510 +4000, -405, -154.378 +4000, -360, -137.157 +4000, -315, -119.848 +4000, -270, -102.450 +4000, -225, -84.963 +4000, -180, -67.388 +4000, -135, -49.724 +4000, -90, -31.971 +4000, -45, -14.130 +4000, -9, 0.000 +4000, 9, 8.079 +4000, 45, 23.938 +4000, 90, 43.849 +4000, 135, 63.856 +4000, 180, 83.959 +4000, 225, 104.159 +4000, 270, 124.454 +4000, 315, 144.846 +4000, 360, 165.334 +4000, 405, 185.918 +4000, 450, 206.599 +4000, 495, 227.376 +4000, 540, 248.249 +4000, 585, 269.218 +4000, 630, 290.283 +4000, 675, 311.445 +4000, 720, 332.703 +4000, 765, 354.057 +4000, 810, 375.507 +4000, 855, 397.053 +4000, 900, 418.696 +4800, -900, -403.935 +4800, -855, -384.544 +4800, -810, -365.039 +4800, -765, -345.422 +4800, -720, -325.691 +4800, -675, -305.848 +4800, -630, -285.892 +4800, -585, -265.823 +4800, -540, -245.641 +4800, -495, -225.346 +4800, -450, -204.938 +4800, -405, -184.417 +4800, -360, -163.784 +4800, -315, -143.037 +4800, -270, -122.178 +4800, -225, -101.205 +4800, -180, -80.120 +4800, -135, -58.922 +4800, -90, -37.611 +4800, -45, -16.186 +4800, -9, 0.000 +4800, 9, 10.547 +4800, 45, 29.560 +4800, 90, 53.438 +4800, 135, 77.438 +4800, 180, 101.560 +4800, 225, 125.805 +4800, 270, 150.172 +4800, 315, 174.662 +4800, 360, 199.274 +4800, 405, 224.009 +4800, 450, 248.867 +4800, 495, 273.847 +4800, 540, 298.949 +4800, 585, 324.174 +4800, 630, 349.522 +4800, 675, 374.992 +4800, 720, 400.584 +4800, 765, 426.300 +4800, 810, 452.137 +4800, 855, 478.097 +4800, 900, 504.180 +5600, -900, -468.664 +5600, -855, -446.211 +5600, -810, -423.616 +5600, -765, -400.880 +5600, -720, -378.002 +5600, -675, -354.983 +5600, -630, -331.822 +5600, -585, -308.520 +5600, -540, -285.076 +5600, -495, -261.491 +5600, -450, -237.764 +5600, -405, -213.896 +5600, -360, -189.886 +5600, -315, -165.735 +5600, -270, -141.442 +5600, -225, -117.008 +5600, -180, -92.432 +5600, -135, -67.715 +5600, -90, -42.856 +5600, -45, -17.856 +5600, -9, 0.000 +5600, 9, 13.433 +5600, 45, 35.603 +5600, 90, 63.454 +5600, 135, 91.458 +5600, 180, 119.616 +5600, 225, 147.928 +5600, 270, 176.393 +5600, 315, 205.011 +5600, 360, 233.783 +5600, 405, 262.709 +5600, 450, 291.788 +5600, 495, 321.021 +5600, 540, 350.407 +5600, 585, 379.947 +5600, 630, 409.640 +5600, 675, 439.487 +5600, 720, 469.487 +5600, 765, 499.641 +5600, 810, 529.949 +5600, 855, 560.410 +5600, 900, 591.025 +6400, -900, -532.087 +6400, -855, -506.657 +6400, -810, -481.052 +6400, -765, -455.273 +6400, -720, -429.320 +6400, -675, -403.192 +6400, -630, -376.890 +6400, -585, -350.413 +6400, -540, -323.762 +6400, -495, -296.936 +6400, -450, -269.936 +6400, -405, -242.762 +6400, -360, -215.413 +6400, -315, -187.889 +6400, -270, -160.191 +6400, -225, -132.319 +6400, -180, -104.272 +6400, -135, -76.051 +6400, -90, -47.656 +6400, -45, -19.086 +6400, -9, 0.000 +6400, 9, 16.794 +6400, 45, 42.122 +6400, 90, 73.954 +6400, 135, 105.975 +6400, 180, 138.185 +6400, 225, 170.584 +6400, 270, 203.172 +6400, 315, 235.950 +6400, 360, 268.917 +6400, 405, 302.074 +6400, 450, 335.419 +6400, 495, 368.954 +6400, 540, 402.678 +6400, 585, 436.592 +6400, 630, 470.695 +6400, 675, 504.987 +6400, 720, 539.468 +6400, 765, 574.139 +6400, 810, 608.999 +6400, 855, 644.048 +6400, 900, 679.286 +7200, -900, -594.152 +7200, -855, -565.829 +7200, -810, -537.295 +7200, -765, -508.549 +7200, -720, -479.592 +7200, -675, -450.423 +7200, -630, -421.042 +7200, -585, -391.449 +7200, -540, -361.645 +7200, -495, -331.629 +7200, -450, -301.401 +7200, -405, -270.962 +7200, -360, -240.311 +7200, -315, -209.448 +7200, -270, -178.373 +7200, -225, -147.087 +7200, -180, -115.589 +7200, -135, -83.879 +7200, -90, -51.957 +7200, -45, -19.824 +7200, -9, 0.000 +7200, 9, 20.685 +7200, 45, 49.175 +7200, 90, 84.994 +7200, 135, 121.043 +7200, 180, 157.322 +7200, 225, 193.830 +7200, 270, 230.568 +7200, 315, 267.535 +7200, 360, 304.733 +7200, 405, 342.160 +7200, 450, 379.817 +7200, 495, 417.704 +7200, 540, 455.820 +7200, 585, 494.166 +7200, 630, 532.742 +7200, 675, 571.547 +7200, 720, 610.583 +7200, 765, 649.848 +7200, 810, 689.342 +7200, 855, 729.067 +7200, 900, 769.021 +8000, -900, -654.806 +8000, -855, -623.677 +8000, -810, -592.293 +8000, -765, -560.657 +8000, -720, -528.767 +8000, -675, -496.624 +8000, -630, -464.227 +8000, -585, -431.578 +8000, -540, -398.674 +8000, -495, -365.518 +8000, -450, -332.108 +8000, -405, -298.445 +8000, -360, -264.528 +8000, -315, -230.358 +8000, -270, -195.935 +8000, -225, -161.259 +8000, -180, -126.329 +8000, -135, -91.146 +8000, -90, -55.709 +8000, -45, -20.019 +8000, -9, 0.000 +8000, 9, 25.165 +8000, 45, 56.818 +8000, 90, 96.631 +8000, 135, 136.720 +8000, 180, 177.084 +8000, 225, 217.722 +8000, 270, 258.636 +8000, 315, 299.824 +8000, 360, 341.287 +8000, 405, 383.025 +8000, 450, 425.038 +8000, 495, 467.326 +8000, 540, 509.888 +8000, 585, 552.726 +8000, 630, 595.838 +8000, 675, 639.226 +8000, 720, 682.888 +8000, 765, 726.825 +8000, 810, 771.037 +8000, 855, 815.524 +8000, 900, 860.286 +8800, -900, -713.999 +8800, -855, -680.147 +8800, -810, -645.995 +8800, -765, -611.543 +8800, -720, -576.793 +8800, -675, -541.743 +8800, -630, -506.394 +8800, -585, -470.745 +8800, -540, -434.798 +8800, -495, -398.550 +8800, -450, -362.004 +8800, -405, -325.158 +8800, -360, -288.013 +8800, -315, -250.569 +8800, -270, -212.826 +8800, -225, -174.783 +8800, -180, -136.441 +8800, -135, -97.799 +8800, -90, -58.858 +8800, -45, -19.618 +8800, -9, 0.000 +8800, 9, 30.288 +8800, 45, 65.107 +8800, 90, 108.922 +8800, 135, 153.063 +8800, 180, 197.528 +8800, 225, 242.318 +8800, 270, 287.432 +8800, 315, 332.872 +8800, 360, 378.636 +8800, 405, 424.725 +8800, 450, 471.138 +8800, 495, 517.877 +8800, 540, 564.940 +8800, 585, 612.328 +8800, 630, 660.041 +8800, 675, 708.078 +8800, 720, 756.441 +8800, 765, 805.128 +8800, 810, 854.139 +8800, 855, 903.476 +8800, 900, 953.137 +9600, -900, -771.678 +9600, -855, -735.187 +9600, -810, -698.347 +9600, -765, -661.157 +9600, -720, -623.617 +9600, -675, -585.728 +9600, -630, -547.489 +9600, -585, -508.900 +9600, -540, -469.962 +9600, -495, -430.675 +9600, -450, -391.037 +9600, -405, -351.051 +9600, -360, -310.714 +9600, -315, -270.028 +9600, -270, -228.992 +9600, -225, -187.607 +9600, -180, -145.872 +9600, -135, -103.788 +9600, -90, -61.353 +9600, -45, -18.570 +9600, -9, 0.000 +9600, 9, 36.112 +9600, 45, 74.098 +9600, 90, 121.923 +9600, 135, 170.127 +9600, 180, 218.710 +9600, 225, 267.672 +9600, 270, 317.014 +9600, 315, 366.735 +9600, 360, 416.836 +9600, 405, 467.316 +9600, 450, 518.175 +9600, 495, 569.414 +9600, 540, 621.032 +9600, 585, 673.029 +9600, 630, 725.406 +9600, 675, 778.162 +9600, 720, 831.297 +9600, 765, 884.812 +9600, 810, 938.706 +9600, 855, 992.979 +9600, 900, 1047.632 +10400, -900, -827.790 +10400, -855, -788.746 +10400, -810, -749.297 +10400, -765, -709.444 +10400, -720, -669.187 +10400, -675, -628.526 +10400, -630, -587.460 +10400, -585, -545.991 +10400, -540, -504.117 +10400, -495, -461.838 +10400, -450, -419.156 +10400, -405, -376.069 +10400, -360, -332.578 +10400, -315, -288.682 +10400, -270, -244.383 +10400, -225, -199.679 +10400, -180, -154.571 +10400, -135, -109.059 +10400, -90, -63.142 +10400, -45, -16.821 +10400, -9, 0.000 +10400, 9, 42.693 +10400, 45, 83.850 +10400, 90, 135.690 +10400, 135, 187.969 +10400, 180, 240.687 +10400, 225, 293.843 +10400, 270, 347.438 +10400, 315, 401.472 +10400, 360, 455.944 +10400, 405, 510.855 +10400, 450, 566.205 +10400, 495, 621.993 +10400, 540, 678.220 +10400, 585, 734.885 +10400, 630, 791.989 +10400, 675, 849.532 +10400, 720, 907.513 +10400, 765, 965.934 +10400, 810, 1024.792 +10400, 855, 1084.090 +10400, 900, 1143.826 +11200, -900, -882.284 +11200, -855, -840.771 +11200, -810, -798.794 +11200, -765, -756.355 +11200, -720, -713.452 +11200, -675, -670.086 +11200, -630, -626.257 +11200, -585, -581.964 +11200, -540, -537.208 +11200, -495, -491.989 +11200, -450, -446.307 +11200, -405, -400.162 +11200, -360, -353.553 +11200, -315, -306.481 +11200, -270, -258.945 +11200, -225, -210.947 +11200, -180, -162.485 +11200, -135, -113.560 +11200, -90, -64.172 +11200, -45, -14.320 +11200, -9, 0.000 +11200, 9, 50.088 +11200, 45, 94.417 +11200, 90, 150.280 +11200, 135, 206.647 +11200, 180, 263.515 +11200, 225, 320.887 +11200, 270, 378.761 +11200, 315, 437.137 +11200, 360, 496.017 +11200, 405, 555.399 +11200, 450, 615.283 +11200, 495, 675.671 +11200, 540, 736.561 +11200, 585, 797.953 +11200, 630, 859.848 +11200, 675, 922.246 +11200, 720, 985.147 +11200, 765, 1048.550 +11200, 810, 1112.456 +11200, 855, 1176.865 +11200, 900, 1241.776 +12000, -900, -935.107 +12000, -855, -891.210 +12000, -810, -846.786 +12000, -765, -801.836 +12000, -720, -756.359 +12000, -675, -710.355 +12000, -630, -663.825 +12000, -585, -616.769 +12000, -540, -569.185 +12000, -495, -521.076 +12000, -450, -472.439 +12000, -405, -423.276 +12000, -360, -373.587 +12000, -315, -323.371 +12000, -270, -272.628 +12000, -225, -221.359 +12000, -180, -169.563 +12000, -135, -117.240 +12000, -90, -64.391 +12000, -45, -11.016 +12000, -9, 0.000 +12000, 9, 58.354 +12000, 45, 105.857 +12000, 90, 165.750 +12000, 135, 226.215 +12000, 180, 287.252 +12000, 225, 348.859 +12000, 270, 411.038 +12000, 315, 473.788 +12000, 360, 537.110 +12000, 405, 601.003 +12000, 450, 665.468 +12000, 495, 730.504 +12000, 540, 796.111 +12000, 585, 862.290 +12000, 630, 929.040 +12000, 675, 996.361 +12000, 720, 1064.254 +12000, 765, 1132.718 +12000, 810, 1201.753 +12000, 855, 1271.360 +12000, 900, 1341.539 +12800, -900, -986.207 +12800, -855, -940.011 +12800, -810, -893.220 +12800, -765, -845.835 +12800, -720, -797.856 +12800, -675, -749.282 +12800, -630, -700.114 +12800, -585, -650.352 +12800, -540, -599.996 +12800, -495, -549.045 +12800, -450, -497.500 +12800, -405, -445.361 +12800, -360, -392.628 +12800, -315, -339.300 +12800, -270, -285.378 +12800, -225, -230.862 +12800, -180, -175.751 +12800, -135, -120.047 +12800, -90, -63.748 +12800, -45, -6.855 +12800, -9, 0.000 +12800, 9, 67.546 +12800, 45, 118.226 +12800, 90, 182.157 +12800, 135, 246.732 +12800, 180, 311.952 +12800, 225, 377.817 +12800, 270, 444.327 +12800, 315, 511.482 +12800, 360, 579.281 +12800, 405, 647.726 +12800, 450, 716.815 +12800, 495, 786.549 +12800, 540, 856.928 +12800, 585, 927.951 +12800, 630, 999.619 +12800, 675, 1071.933 +12800, 720, 1144.891 +12800, 765, 1218.493 +12800, 810, 1292.741 +12800, 855, 1367.633 +12800, 900, 1443.171 +13600, -900, -1035.533 +13600, -855, -987.122 +13600, -810, -938.044 +13600, -765, -888.300 +13600, -720, -837.890 +13600, -675, -786.814 +13600, -630, -735.071 +13600, -585, -682.662 +13600, -540, -629.587 +13600, -495, -575.845 +13600, -450, -521.438 +13600, -405, -466.364 +13600, -360, -410.623 +13600, -315, -354.217 +13600, -270, -297.144 +13600, -225, -239.405 +13600, -180, -180.999 +13600, -135, -121.927 +13600, -90, -62.189 +13600, -45, -1.785 +13600, -9, 0.000 +13600, 9, 77.721 +13600, 45, 131.581 +13600, 90, 199.556 +13600, 135, 268.253 +13600, 180, 337.674 +13600, 225, 407.818 +13600, 270, 478.684 +13600, 315, 550.274 +13600, 360, 622.587 +13600, 405, 695.622 +13600, 450, 769.381 +13600, 495, 843.862 +13600, 540, 919.067 +13600, 585, 994.994 +13600, 630, 1071.644 +13600, 675, 1149.018 +13600, 720, 1227.114 +13600, 765, 1305.933 +13600, 810, 1385.475 +13600, 855, 1465.740 +13600, 900, 1546.729 +14400, -900, -1083.032 +14400, -855, -1032.490 +14400, -810, -981.206 +14400, -765, -929.180 +14400, -720, -876.411 +14400, -675, -822.899 +14400, -630, -768.644 +14400, -585, -713.647 +14400, -540, -657.907 +14400, -495, -601.425 +14400, -450, -544.200 +14400, -405, -486.232 +14400, -360, -427.522 +14400, -315, -368.069 +14400, -270, -307.873 +14400, -225, -246.935 +14400, -180, -185.254 +14400, -135, -122.830 +14400, -90, -59.664 +14400, -45, 0.000 +14400, -9, 0.000 +14400, 9, 88.937 +14400, 45, 145.978 +14400, 90, 218.004 +14400, 135, 290.836 +14400, 180, 364.473 +14400, 225, 438.917 +14400, 270, 514.166 +14400, 315, 590.222 +14400, 360, 667.083 +14400, 405, 744.749 +14400, 450, 823.222 +14400, 495, 902.501 +14400, 540, 982.585 +14400, 585, 1063.475 +14400, 630, 1145.171 +14400, 675, 1227.673 +14400, 720, 1310.980 +14400, 765, 1395.094 +14400, 810, 1480.013 +14400, 855, 1565.738 +14400, 900, 1652.269 +15200, -900, -1128.651 +15200, -855, -1076.065 +15200, -810, -1022.655 +15200, -765, -968.421 +15200, -720, -913.365 +15200, -675, -857.485 +15200, -630, -800.781 +15200, -585, -743.255 +15200, -540, -684.904 +15200, -495, -625.731 +15200, -450, -565.734 +15200, -405, -504.914 +15200, -360, -443.271 +15200, -315, -380.804 +15200, -270, -317.514 +15200, -225, -253.400 +15200, -180, -188.463 +15200, -135, -122.703 +15200, -90, -56.119 +15200, -45, 0.000 +15200, -9, 0.000 +15200, 9, 101.249 +15200, 45, 161.473 +15200, 90, 237.558 +15200, 135, 314.536 +15200, 180, 392.407 +15200, 225, 471.172 +15200, 270, 550.830 +15200, 315, 631.381 +15200, 360, 712.826 +15200, 405, 795.164 +15200, 450, 878.396 +15200, 495, 962.521 +15200, 540, 1047.539 +15200, 585, 1133.451 +15200, 630, 1220.256 +15200, 675, 1307.954 +15200, 720, 1396.546 +15200, 765, 1486.032 +15200, 810, 1576.410 +15200, 855, 1667.682 +15200, 900, 1759.848 +16000, -900, -1172.340 +16000, -855, -1117.793 +16000, -810, -1062.337 +16000, -765, -1005.973 +16000, -720, -948.700 +16000, -675, -890.519 +16000, -630, -831.430 +16000, -585, -771.432 +16000, -540, -710.526 +16000, -495, -648.712 +16000, -450, -585.989 +16000, -405, -522.358 +16000, -360, -457.818 +16000, -315, -392.370 +16000, -270, -326.013 +16000, -225, -258.749 +16000, -180, -190.575 +16000, -135, -121.494 +16000, -90, -51.504 +16000, -45, 0.000 +16000, -9, 0.000 +16000, 9, 114.714 +16000, 45, 178.124 +16000, 90, 258.274 +16000, 135, 339.410 +16000, 180, 421.531 +16000, 225, 504.638 +16000, 270, 588.731 +16000, 315, 673.809 +16000, 360, 759.873 +16000, 405, 846.922 +16000, 450, 934.958 +16000, 495, 1023.979 +16000, 540, 1113.985 +16000, 585, 1204.977 +16000, 630, 1296.955 +16000, 675, 1389.919 +16000, 720, 1483.868 +16000, 765, 1578.803 +16000, 810, 1674.724 +16000, 855, 1771.630 +16000, 900, 1869.523 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P4/UrbanDelivery.vdri b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P4/UrbanDelivery.vdri deleted file mode 100644 index 3c49e4d8529881267202ec733ea47793a38376c0..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P4/UrbanDelivery.vdri +++ /dev/null @@ -1,4805 +0,0 @@ -<s>,<v>,<grad>,<stop> -1,0,0,1 -2,85,0,0 -25,85,1.233905,0 -51,85,1.925336014,0 -62,85,1.920098091,0 -74,85,1.845022332,0 -85,85,1.330019306,0 -147,85,1.157204945,0 -219,85,1.684402001,0 -290,85,1.895654587,0 -309,85,2.012636315,0 -329,85,1.93406591,0 -350,85,2.028350691,0 -369,85,2.358376912,0 -393,85,2.512056999,0 -427,85,1.90787631,0 -484,85,0.582946573,0 -503,85,-0.356048672,0 -518,85,-0.467751651,0 -535,85,-0.371756843,0 -551,85,-0.043633234,0 -579,85,0.132645101,0 -608,85,0.050614553,0 -625,85,-0.136135766,0 -640,85,-0.272272036,0 -657,85,-0.471242386,0 -719,85,-0.528839693,0 -734,85,-0.635308395,0 -741,85,-0.846504906,0 -748,85,-1.047235832,0 -755,85,-1.090874051,0 -762,85,-1.061200018,0 -772,85,-1.000107003,0 -834,85,-1.012325545,0 -847,85,-1.028035143,0 -857,85,-1.043744792,0 -866,85,-1.062945544,0 -877,85,-1.111820542,0 -891,85,-1.15371382,0 -905,85,-0.949487644,0 -956,85,-0.942505703,0 -980,85,-0.944251187,0 -992,85,-0.968688032,0 -1001,85,-1.010580037,0 -1012,85,-1.022798605,0 -1018,85,-1.000107003,0 -1026,85,-0.92330541,0 -1035,85,-1.258448818,0 -1048,85,-1.302089201,0 -1064,85,-1.286378607,0 -1089,85,-1.275904913,0 -1127,85,-1.279396141,0 -1149,85,-1.289869845,0 -1170,85,-1.307326081,0 -1192,85,-1.356203968,0 -1233,85,-0.959960575,0 -1258,85,-0.584691962,0 -1270,85,-0.495677567,0 -1277,85,-0.694652215,0 -1292,85,-1.014071054,0 -1303,85,-1.242738398,0 -1314,85,-1.380643153,0 -1345,85,-1.340493149,0 -1362,85,-1.312562967,0 -1377,85,-0.912832552,0 -1404,85,-0.609127442,0 -1421,85,-0.478223861,0 -1453,85,-1.424284967,0 -1503,85,-1.78216981,0 -1529,85,-1.860735688,0 -1559,85,-2.416005601,0 -1590,85,-2.681468137,0 -1603,85,-2.831680536,0 -1624,85,-2.337421415,0 -1658,85,-1.920098091,0 -1683,85,-1.206080988,0 -1753,85,-0.012217305,0 -1824,85,0.335104471,0 -1842,85,2.295511036,0 -1857,85,2.045811226,0 -1866,85,1.649485716,0 -1874,85,0.897123302,0 -1885,85,0.21991184,0 -1896,85,0.319396339,0 -1916,85,0.926796367,0 -1932,85,1.420793603,0 -1957,85,1.422539285,0 -1981,85,1.399845486,0 -2006,85,1.443487537,0 -2052,85,1.401591157,0 -2078,85,0.417136111,0 -2158,85,0.29147081,0 -2180,85,0.181514442,0 -2209,85,-0.036651916,0 -2254,85,0.059341202,0 -2301,85,0.411900033,0 -2395,85,0.242601242,0 -2413,85,0.069813181,0 -2435,85,0.181514442,0 -2471,85,0.048869223,0 -2547,85,0.205949143,0 -2650,85,-0.006981317,0 -2700,85,-0.500913685,0 -2733,85,-0.799377824,0 -2759,85,-0.919814455,0 -2781,85,-0.928541847,0 -2799,85,-0.830795838,0 -2826,85,-0.729560571,0 -2844,85,-0.513131304,0 -2879,85,-0.499168312,0 -2921,85,-0.570728862,0 -2951,85,-0.340340518,0 -2990,85,-0.314160299,0 -3011,85,-0.389210388,0 -3061,85,-0.247837261,0 -3148,85,-0.703379288,0 -3235,85,-0.982651995,0 -3300,85,-0.895377833,0 -3336,85,-0.881414097,0 -3349,85,-1.118802728,0 -3547,85,-0.933778288,0 -3711,85,-0.897123302,0 -3763,85,-1.015816563,0 -3815,85,-1.108329454,0 -3934,85,-0.275762721,0 -3965,34,-0.275762721,0 -3986,38,-0.275762721,0 -4105,27,-0.275762721,0 -4121,49,-0.275762721,0 -4145,49,-0.258309304,0 -4159,49,-0.254818622,0 -4270,49,0.003490659,0 -4328,49,0.373502197,0 -4379,49,0.319396339,0 -4397,49,-0.006981317,0 -4423,49,-0.102974462,0 -4443,49,-0.125663772,0 -4468,49,-0.12391844,0 -4487,49,0.064577191,0 -4535,18,0.064577191,0 -4553,18,0.581201185,0 -4566,12,0.581201185,0 -4605,14,0.581201185,0 -4621,14,0.804614148,0 -4644,14,0.689415977,0 -4650,6,0.689415977,0 -4656,23,0.689415977,0 -4667,23,0.378738259,0 -4685,23,0.214675828,0 -4698,23,0.057595872,0 -4717,23,0.026179939,0 -4728,23,0.068067851,0 -4740,23,0.179769107,0 -4749,0,0.179769107,24 -4750,30,0.179769107,0 -4752,30,0.387465033,0 -4765,30,1.080400841,0 -4780,30,0.996615997,0 -4795,30,0.717342627,0 -4822,30,0.741778537,0 -4854,30,0.808105034,0 -4893,30,0.813341366,0 -4940,30,0.598655085,0 -4971,30,0.080285163,0 -4996,44,0.080285163,0 -5018,44,0.132645101,0 -5041,44,1.303834827,0 -5090,25,1.303834827,0 -5109,25,1.202589823,0 -5121,35,1.202589823,0 -5189,35,0.933778288,0 -5222,35,0.317650992,0 -5281,35,0.464260917,0 -5285,30,0.464260917,0 -5301,50,0.464260917,0 -5317,50,0.616109021,0 -5328,50,0.939014735,0 -5354,50,1.00883453,0 -5362,50,1.439996153,0 -5421,50,1.495858725,0 -5462,50,1.148477139,0 -5504,50,0.797632383,0 -5551,50,0.535821208,0 -5572,50,-0.366520784,0 -5601,50,-0.607382049,0 -5614,50,-0.376992904,0 -5641,43,-0.376992904,0 -5666,51,-0.376992904,0 -5672,51,-0.968688032,0 -5716,51,-1.305580453,0 -5745,51,-1.256703212,0 -5756,51,-0.263545327,0 -5796,51,0.083775824,0 -5808,51,0.619599813,0 -5871,52,0.619599813,0 -5877,52,0.410154674,0 -5946,52,0.29147081,0 -5996,52,0.97217902,0 -6100,52,0.699888458,0 -6187,52,0.48695071,0 -6195,19,0.48695071,0 -6205,47,0.48695071,0 -6225,47,0.376992904,0 -6272,47,0.394446457,0 -6294,47,0.242601242,0 -6329,47,0.195477125,0 -6372,47,0.22863853,0 -6402,47,0.174533102,0 -6434,47,0.603891262,0 -6492,47,0.778432569,0 -6522,47,0.582946573,0 -6534,0,0.582946573,18 -6535,28,0.582946573,0 -6551,28,0.258309304,0 -6607,28,0.780178004,0 -6641,10,0.780178004,0 -6646,47,0.780178004,0 -6664,47,1.195607503,0 -6707,47,1.148477139,0 -6790,47,1.186879618,0 -6815,47,1.066436598,0 -6871,47,0.767959967,0 -6955,26,0.767959967,0 -6971,50,0.767959967,0 -6975,50,0.382228968,0 -7101,50,0.399682527,0 -7127,50,0.619599813,0 -7164,50,0.698143043,0 -7192,50,0.642289997,0 -7225,50,0.694652215,0 -7243,50,0.467751651,0 -7267,50,0.314160299,0 -7273,50,0.02443461,0 -7275,43,0.02443461,0 -7288,43,-0.108210456,0 -7301,51,-0.108210456,0 -7303,51,-0.080285163,0 -7319,51,0.048869223,0 -7330,51,0.333359122,0 -7352,51,0.495677567,0 -7369,51,0.617854417,0 -7428,51,0.70687012,0 -7512,51,0.84825036,0 -7533,51,0.799377824,0 -7555,51,0.296706844,0 -7577,51,-0.410154674,0 -7579,0,-0.410154674,9 -7580,28,-0.410154674,0 -7594,28,-0.987888492,0 -7607,28,-1.300343577,0 -7617,28,-1.536010523,0 -7624,0,-1.536010523,6 -7625,26,-1.536010523,0 -7629,26,-1.647739913,0 -7643,26,-1.654723133,0 -7654,26,-1.659960559,0 -7665,26,-1.682656177,0 -7704,0,-1.682656177,5 -7705,34,-1.682656177,0 -7727,34,-1.687893652,0 -7740,34,-1.656468941,0 -7825,34,-1.55172223,0 -7854,34,-0.949487644,0 -7879,34,-0.689415977,0 -7893,34,-1.057708968,0 -7907,34,-1.801374596,0 -7910,39,-1.801374596,0 -7932,39,-0.874432242,0 -7947,39,-0.413645392,0 -7955,39,-0.017453293,0 -7964,39,0.033161257,0 -7971,11,0.033161257,0 -7974,11,-0.109955787,0 -7976,53,-0.109955787,0 -7986,53,-0.160570429,0 -7997,53,-0.003490659,0 -8033,53,0.165806431,0 -8048,53,0.347321918,0 -8063,53,0.555020401,0 -8102,53,0.523603561,0 -8123,53,0.452043355,0 -8128,53,0.137881098,0 -8137,53,-0.225147854,0 -8144,53,-0.724324306,0 -8152,53,-1.413810883,0 -8161,53,-2.061525814,0 -8173,53,-2.311227333,0 -8186,53,-2.077240504,0 -8201,53,-0.321141686,0 -8232,53,0.272272036,0 -8247,53,0.692906802,0 -8262,53,0.727815149,0 -8274,53,0.53233045,0 -8287,53,0.394446457,0 -8298,53,0.307178915,0 -8311,53,0.301942878,0 -8329,53,0.455534086,0 -8350,53,0.415390751,0 -8375,53,-0.305433569,0 -8400,53,-1.012325545,0 -8426,53,-0.745269388,0 -8460,53,0.516622055,0 -8478,53,2.293764787,0 -8483,10,2.293764787,0 -8494,47,2.293764787,0 -8496,47,2.587154946,0 -8508,47,2.023112554,0 -8516,47,1.279396141,0 -8524,47,-0.499168312,0 -8532,47,1.916606148,0 -8542,47,1.125784924,0 -8553,47,1.808358187,0 -8565,47,2.405527539,0 -8578,47,2.119146847,0 -8592,47,0.493932195,0 -8633,47,0.263545327,0 -8661,47,0.340340518,0 -8666,42,0.340340518,0 -8680,42,0.329868425,0 -8699,42,0.307178915,0 -8707,42,0.277508063,0 -8716,47,0.277508063,0 -8721,47,0.286234779,0 -8730,47,0.298452188,0 -8750,47,-0.054105212,0 -8781,47,-0.268781352,0 -8808,47,0.193731789,0 -8832,47,1.134512685,0 -8872,47,1.958509776,0 -8920,62,1.958509776,0 -8958,62,2.012636315,0 -8982,62,2.037080943,0 -8994,62,2.049303348,0 -9006,62,2.052795475,0 -9018,62,2.047557286,0 -9030,62,2.040573052,0 -9043,62,1.937557877,0 -9078,62,0.478223861,0 -9105,62,-0.094247808,0 -9124,62,-0.275762721,0 -9168,62,-0.240855903,0 -9189,62,-0.378738259,0 -9236,62,-0.53233045,0 -9249,62,-2.346152847,0 -9293,62,-3.546249164,0 -9367,62,-3.455380807,0 -9384,62,-2.948715289,0 -9396,62,-1.700114463,0 -9413,62,-0.598655085,0 -9426,62,0.387465033,0 -9442,62,0.488696081,0 -9457,62,0.280998749,0 -9472,62,-0.216421165,0 -9487,62,2.700680662,0 -9490,35,2.700680662,0 -9505,35,4.0478819,0 -9515,35,4.649412347,0 -9526,35,4.904812071,0 -9558,35,4.715880288,0 -9573,21,4.715880288,0 -9575,30,4.715880288,0 -9586,30,5.170775561,0 -9613,30,5.463069727,0 -9629,17,5.463069727,0 -9631,25,5.463069727,0 -9634,25,5.233777462,0 -9674,26,5.3527924,0 -9690,10,5.3527924,0 -9701,16,5.3527924,0 -9727,16,4.822587543,0 -9744,12,4.822587543,0 -9746,31,4.822587543,0 -9788,31,5.037784929,0 -9827,31,5.142776033,0 -9835,10,5.142776033,0 -9846,26,5.142776033,0 -9854,26,4.738620272,0 -9880,26,3.780437251,0 -9898,10,3.780437251,0 -9906,10,3.303363726,0 -9909,30,3.303363726,0 -9915,30,2.74609288,0 -9928,30,2.311227333,0 -9940,30,2.000414091,0 -9954,30,0.937269252,0 -9973,26,0.937269252,0 -9975,52,0.937269252,0 -9999,52,0.003490659,0 -10026,52,-0.783668876,0 -10045,52,-1.192116346,0 -10062,52,-1.024544117,0 -10101,52,-1.249720799,0 -10180,52,-0.804614148,0 -10212,10,-0.804614148,0 -10223,29,-0.804614148,0 -10283,29,-0.911087077,0 -10310,10,-0.911087077,0 -10321,21,-0.911087077,0 -10363,0,-0.911087077,5 -10364,50,-0.911087077,0 -10375,50,-0.827304939,0 -10501,50,-1.286378607,0 -10508,49,-1.286378607,0 -10519,49,-2.178515444,0 -10522,48,-2.178515444,0 -10547,48,-2.065017959,0 -10575,48,-1.337001865,0 -10596,48,0.492186823,0 -10628,48,1.537756265,0 -10651,48,2.695440863,0 -10699,48,2.714653533,0 -10720,0,2.714653533,10 -10721,42,2.714653533,0 -10734,42,1.988191927,0 -10771,42,0.863959475,0 -10801,41,0.863959475,0 -10809,42,0.863959475,0 -10821,43,0.863959475,0 -10832,43,0.136135766,0 -10861,43,-0.518367431,0 -10875,43,-1.441741844,0 -10887,10,-1.441741844,0 -10890,10,-2.305988554,0 -10898,45,-2.305988554,0 -10908,45,-2.524282051,0 -10920,45,-2.613352586,0 -10929,45,-2.683214722,0 -10936,45,-2.774039421,0 -10945,45,-2.817706761,0 -10953,45,-2.843907679,0 -10962,45,-2.852641405,0 -10983,45,-2.843907679,0 -10994,45,-2.79325292,0 -11008,44,-2.79325292,0 -11011,44,-2.311227333,0 -11064,44,-2.080732671,0 -11081,44,-1.941049848,0 -11091,44,-1.757727546,0 -11102,44,-1.555213731,0 -11111,44,-1.232264818,0 -11120,44,-0.680688921,0 -11131,44,0.37524755,0 -11149,10,1.15371382,0 -11163,10,1.652977327,0 -11178,10,1.824071332,0 -11180,48,1.824071332,0 -11189,48,2.052795475,0 -11201,48,2.344406558,0 -11212,48,2.42473736,0 -11227,48,2.410766564,0 -11240,48,2.337421415,0 -11254,48,2.297257285,0 -11267,48,2.236139374,0 -11279,48,2.110416298,0 -11289,48,2.178515444,0 -11313,48,2.305988554,0 -11331,48,1.962001775,0 -11351,48,1.572671293,0 -11369,48,1.19037077,0 -11382,48,3.623142336,0 -11394,18,3.623142336,0 -11396,25,3.623142336,0 -11397,25,4.840081575,0 -11407,25,5.349291746,0 -11414,25,5.554102253,0 -11421,25,5.53659529,0 -11427,25,5.225026951,0 -11436,25,5.137526211,0 -11442,10,5.137526211,0 -11443,10,4.418555185,0 -11452,10,3.693048931,0 -11453,11,3.693048931,0 -11456,10,3.693048931,0 -11460,10,2.953955838,0 -11463,14,2.953955838,0 -11470,14,2.440454618,0 -11477,14,1.923590039,0 -11484,14,1.333510584,0 -11491,14,0.637053795,0 -11492,6,0.637053795,0 -11494,7,0.637053795,0 -11499,7,-0.347321918,0 -11516,32,-0.347321918,0 -11518,32,-0.399682527,0 -11536,32,-0.324632381,0 -11554,32,-0.242601242,0 -11574,32,-0.33684982,0 -11596,32,-0.378738259,0 -11623,26,-0.378738259,0 -11625,31,-0.378738259,0 -11647,31,-0.006981317,0 -11689,31,0.829050388,0 -11760,7,0.829050388,0 -11762,41,0.829050388,0 -11775,41,0.860468557,0 -11851,41,0.902359714,0 -11891,41,0.490441452,0 -11916,41,0.064577191,0 -11935,41,-0.157079762,0 -11955,41,-0.230383869,0 -11972,41,-0.294961499,0 -11996,6,-0.294961499,0 -11998,36,-0.294961499,0 -11999,36,-0.298452188,0 -12024,36,-0.300197533,0 -12050,36,-0.356048672,0 -12076,34,-0.356048672,0 -12077,34,-0.593418911,0 -12078,38,-0.593418911,0 -12112,45,-0.593418911,0 -12124,45,-0.886650494,0 -12166,45,-0.685925153,0 -12221,45,-0.061086531,0 -12275,45,0.127409104,0 -12292,0,0.127409104,17 -12293,23,0.127409104,0 -12318,23,-0.050614553,0 -12361,23,-0.21991184,0 -12389,23,-0.253073282,0 -12419,23,-0.186750447,0 -12441,23,-0.102974462,0 -12451,18,-0.102974462,0 -12453,28,-0.102974462,0 -12464,28,-0.080285163,0 -12489,28,-2.763559418,0 -12515,30,-2.763559418,0 -12538,30,-2.601126976,0 -12569,30,-2.113908514,0 -12593,29,-2.113908514,0 -12600,29,-1.36493223,0 -12628,8,-1.36493223,0 -12630,28,-1.36493223,0 -12638,28,-1.071673185,0 -12656,28,-0.851741271,0 -12676,28,-0.909341604,0 -12697,28,-1.035017203,0 -12720,10,-1.035017203,0 -12729,10,-0.84825036,0 -12731,20,-0.84825036,0 -12758,20,-0.703379288,0 -12778,10,-0.703379288,0 -12789,8,-0.687670565,0 -12794,6,-0.687670565,0 -12796,56,-0.687670565,0 -12815,56,-0.684179742,0 -12828,56,-0.682434331,0 -12849,56,-0.694652215,0 -12883,56,-0.713851789,0 -12909,56,-0.724324306,0 -12923,56,-0.726069727,0 -12956,56,-0.684179742,0 -13000,56,-0.603891262,0 -13039,56,-0.488696081,0 -13041,10,-0.488696081,0 -13052,27,-0.488696081,0 -13076,27,-0.287980123,0 -13085,26,-0.287980123,0 -13110,27,-0.287980123,0 -13122,27,-0.214675828,0 -13141,27,-0.183259777,0 -13148,23,-0.183259777,0 -13150,26,-0.183259777,0 -13164,26,-0.233874546,0 -13174,25,-0.233874546,0 -13192,25,-0.376992904,0 -13220,25,-0.612618231,0 -13245,13,-0.612618231,0 -13247,36,-0.530585072,0 -13275,36,-0.333359122,0 -13289,36,-0.205949143,0 -13305,36,-0.139626431,0 -13320,36,-0.068067851,0 -13345,36,-0.047123893,0 -13349,7,-0.047123893,0 -13351,19,-0.047123893,0 -13377,19,-0.092502477,0 -13391,10,-0.092502477,0 -13402,23,-0.092502477,0 -13404,23,-0.277508063,0 -13434,32,-0.277508063,0 -13445,32,-0.752251097,0 -13491,40,-0.752251097,0 -13512,40,-0.815086811,0 -13551,40,-0.104719793,0 -13559,41,-0.104719793,0 -13589,38,-0.104719793,0 -13591,42,-0.104719793,0 -13596,42,0.129154436,0 -13609,42,0.136135766,0 -13621,42,-0.289725466,0 -13669,40,-0.574219635,0 -13715,43,-0.574219635,0 -13719,43,-0.626581401,0 -13765,43,-0.542802728,0 -13846,7,-0.542802728,0 -13848,29,-0.542802728,0 -13899,29,-0.574219635,0 -13932,29,-1.619807191,0 -13948,25,-1.619807191,0 -13950,29,-1.619807191,0 -13979,29,-3.423927712,0 -14026,29,-4.554964943,0 -14060,6,-4.554964943,0 -14062,49,-4.554964943,0 -14078,49,-4.009422337,0 -14106,49,-1.340493149,0 -14160,49,-0.776687134,0 -14175,49,-0.253073282,0 -14189,49,0.282744092,0 -14203,49,0.820323148,0 -14220,49,1.279396141,0 -14237,49,3.221245944,0 -14269,22,3.221245944,0 -14271,33,3.221245944,0 -14305,33,3.200280402,0 -14330,33,2.574929502,0 -14335,30,2.574929502,0 -14337,31,2.574929502,0 -14354,31,1.820579514,0 -14372,31,1.17466061,0 -14388,31,-1.539502007,0 -14404,22,-1.539502007,0 -14406,38,-1.539502007,0 -14408,38,0.345576568,0 -14427,38,0.092502477,0 -14439,38,0.527094315,0 -14456,38,-0.696397629,0 -14460,38,-0.808105034,0 -14463,38,-0.869195856,0 -14467,38,-0.870941317,0 -14470,38,-0.78715975,0 -14474,38,-0.623090606,0 -14478,38,-0.294961499,0 -14482,38,-0.389210388,0 -14512,38,0.087266485,0 -14541,7,0.087266485,0 -14543,30,0.087266485,0 -14559,30,0.010471976,0 -14583,30,-0.293216155,0 -14625,30,-0.425862912,0 -14631,10,-0.425862912,0 -14642,31,-0.425862912,0 -14666,31,-0.471242386,0 -14735,0,-0.471242386,7 -14736,51,-0.471242386,0 -14785,51,-0.307178915,0 -14816,51,0.188495782,0 -14847,51,0.277508063,0 -14868,51,-0.038397245,0 -14881,51,-0.282744092,0 -14894,51,-0.406663957,0 -14971,51,-0.314160299,0 -14980,0,-0.314160299,12 -14981,57,-0.314160299,0 -15019,57,-0.268781352,0 -15034,57,-0.209439816,0 -15063,57,-0.185005112,0 -15101,58,-0.185005112,0 -15105,58,-0.301942878,0 -15137,60,-0.301942878,0 -15172,64,-0.301942878,0 -15211,64,-0.35255797,0 -15232,64,-0.136135766,0 -15234,62,-0.136135766,0 -15254,61,-0.136135766,0 -15272,62,-0.136135766,0 -15316,62,-0.143117096,0 -15349,62,-0.411900033,0 -15389,61,-0.411900033,0 -15391,60,-0.411900033,0 -15412,62,-0.347321918,0 -15442,62,-0.017453293,0 -15455,61,-0.017453293,0 -15488,61,0.195477125,0 -15529,61,0.476478492,0 -15585,61,0.197222461,0 -15618,61,-0.284489436,0 -15632,64,-0.284489436,0 -15639,64,-0.614363626,0 -15661,64,-0.771450833,0 -15691,64,-0.734796839,0 -15704,64,-0.558511168,0 -15730,61,-0.558511168,0 -15732,59,-0.558511168,0 -15759,59,-0.287980123,0 -15784,59,0.537566588,0 -15812,59,0.715597208,0 -15822,59,0.268781352,0 -15829,57,0.268781352,0 -15852,57,-0.095993138,0 -15864,57,-0.237365224,0 -15875,57,0.246091921,0 -15896,58,0.246091921,0 -15914,58,-0.059341202,0 -15924,56,-0.059341202,0 -15938,56,-0.333359122,0 -15944,57,-0.333359122,0 -15963,57,0.464260917,0 -16002,57,-1.040253755,0 -16007,57,-1.513315968,0 -16029,57,-1.467927324,0 -16050,57,-0.900614243,0 -16085,11,-0.900614243,0 -16087,30,-0.900614243,0 -16135,30,-0.914578027,0 -16153,30,-1.078655309,0 -16161,28,-1.078655309,0 -16163,34,-1.078655309,0 -16216,34,-0.986142992,0 -16260,34,-0.37001149,0 -16299,10,-0.37001149,0 -16303,10,0.108210456,0 -16318,16,0.108210456,0 -16325,16,0.441571171,0 -16347,16,0.670216468,0 -16348,13,0.670216468,0 -16350,20,0.670216468,0 -16392,20,0.689415977,0 -16422,20,0.619599813,0 -16439,8,0.619599813,0 -16441,9,0.619599813,0 -16456,10,0.619599813,0 -16467,8,0.619599813,0 -16477,6,0.619599813,0 -16479,17,0.619599813,0 -16485,17,0.736542263,0 -16515,17,1.429522021,0 -16529,10,1.429522021,0 -16540,21,1.429522021,0 -16546,21,1.607586704,0 -16561,21,1.185134043,0 -16577,21,0.242601242,0 -16589,11,0.242601242,0 -16591,29,0.242601242,0 -16599,29,0.080285163,0 -16605,29,0.048869223,0 -16611,29,0.460770183,0 -16621,29,0.879668632,0 -16642,29,0.760978242,0 -16662,29,0.204203806,0 -16687,29,0.118682445,0 -16711,23,0.118682445,0 -16712,23,-0.031415928,0 -16713,25,-0.031415928,0 -16733,25,-2.255347678,0 -16768,11,-2.255347678,0 -16770,33,-2.255347678,0 -16783,33,-2.553971778,0 -16799,33,-2.183753923,0 -16817,33,1.022798605,0 -16835,33,0.822068595,0 -16880,33,0.66847106,0 -16894,10,0.66847106,0 -16902,10,-0.020943951,0 -16905,47,-0.020943951,0 -16930,47,-0.467751651,0 -16941,47,-1.565688257,0 -16975,47,-1.326528032,0 -16989,47,-0.342085868,0 -17003,47,1.062945544,0 -17019,47,1.831054981,0 -17029,47,2.358376912,0 -17041,47,2.353138019,0 -17054,47,2.13136967,0 -17061,47,1.722810389,0 -17069,47,0.305433569,0 -17088,47,-0.633562995,0 -17097,47,-3.432664615,0 -17122,47,-4.348607861,0 -17133,47,-4.820838156,0 -17138,16,-4.820838156,0 -17140,26,-4.820838156,0 -17143,26,-4.764859322,0 -17154,26,-4.025155651,0 -17166,26,-1.300343577,0 -17190,26,0.155334428,0 -17201,26,1.338747506,0 -17213,26,2.305988554,0 -17224,14,2.305988554,0 -17226,19,2.305988554,0 -17233,19,1.927081991,0 -17238,18,1.927081991,0 -17246,24,1.927081991,0 -17252,24,-0.240855903,0 -17292,24,-0.745269388,0 -17308,33,-0.745269388,0 -17316,33,-0.326377729,0 -17330,33,0.492186823,0 -17345,32,0.492186823,0 -17352,32,0.822068595,0 -17361,42,0.822068595,0 -17374,42,0.657998624,0 -17391,42,0.319396339,0 -17402,42,-0.58992813,0 -17411,41,-0.58992813,0 -17425,51,-0.58992813,0 -17427,51,-1.078655309,0 -17459,51,-0.710360954,0 -17490,51,-0.474733123,0 -17509,51,-0.544548109,0 -17525,51,-0.797632383,0 -17536,52,-0.797632383,0 -17539,52,-1.581400109,0 -17551,52,-2.354884315,0 -17558,52,-3.502561733,0 -17565,52,-4.910060668,0 -17577,51,-4.910060668,0 -17578,51,-5.363294439,0 -17590,51,-4.656408778,0 -17605,49,-4.656408778,0 -17606,49,-2.670988661,0 -17607,50,-2.670988661,0 -17621,50,-1.045490312,0 -17637,50,-0.7749417,0 -17645,48,-0.7749417,0 -17646,48,-0.62134521,0 -17660,48,-0.736542263,0 -17662,56,-0.736542263,0 -17671,56,-0.834286738,0 -17691,56,-0.303688223,0 -17707,57,-0.303688223,0 -17711,57,0.492186823,0 -17724,60,0.492186823,0 -17727,60,0.757487383,0 -17731,60,1.19037077,0 -17741,60,1.239247202,0 -17761,60,0.836032189,0 -17778,0,0.689415977,45 -17779,60,0.689415977,0 -17785,60,0.605636655,0 -17789,60,0.078539832,0 -17814,58,0.078539832,0 -17816,57,0.078539832,0 -17844,57,-0.401427884,0 -17852,56,-0.401427884,0 -17862,56,-0.678943511,0 -17925,56,-0.682434331,0 -17952,56,-0.127409104,0 -17956,10,-0.127409104,0 -17967,30,-0.127409104,0 -17979,30,-0.167551765,0 -17994,30,0.544548109,0 -18005,30,0.884905027,0 -18010,30,1.270668076,0 -18026,30,2.129623549,0 -18040,30,-1.211317741,0 -18047,30,-1.099601744,0 -18049,37,-1.099601744,0 -18081,37,-1.073418715,0 -18085,39,-1.073418715,0 -18108,39,-1.082146375,0 -18131,41,-1.082146375,0 -18140,41,-1.206080988,0 -18180,41,0.003490659,0 -18203,32,0.439825808,0 -18206,51,0.439825808,0 -18227,51,0.448552626,0 -18251,51,0.052359882,0 -18274,51,-0.275762721,0 -18293,51,-0.026179939,0 -18311,51,0.7697054,0 -18329,51,2.540000086,0 -18349,44,2.540000086,0 -18359,44,2.087717021,0 -18363,51,2.087717021,0 -18373,51,0.720833466,0 -18386,51,1.324782396,0 -18399,51,2.391556873,0 -18410,51,4.854077013,0 -18417,51,4.771856513,0 -18427,50,4.771856513,0 -18429,50,3.969215878,0 -18437,50,2.388064221,0 -18452,50,1.433013395,0 -18467,50,0.265290669,0 -18525,50,-1.303834827,0 -18566,50,-1.118802728,0 -18572,39,-1.118802728,0 -18574,41,-1.118802728,0 -18584,41,-1.726302086,0 -18598,41,-2.917272337,0 -18652,10,-2.917272337,0 -18663,7,-2.917272337,0 -18664,7,-7.061085137,0 -18665,41,-7.061085137,0 -18685,41,-8.815700402,0 -18704,41,-8.052835512,0 -18723,41,-5.083279701,0 -18739,41,2.274556149,0 -18759,42,2.274556149,0 -18869,10,2.274556149,0 -18880,28,2.274556149,0 -18988,12,2.274556149,0 -18989,26,2.274556149,0 -18991,61,2.274556149,0 -19053,61,2.356630613,0 -19067,61,3.175820958,0 -19080,61,4.201732221,0 -19098,61,4.268173684,0 -19115,61,3.460623056,0 -19137,61,-2.422991005,0 -19158,61,2.194230916,0 -19174,61,2.110416298,0 -19179,61,1.918352119,0 -19190,61,1.605840925,0 -19206,61,0.958215085,0 -19231,61,0.635308395,0 -19256,61,0.720833466,0 -19281,61,0.677198102,0 -19302,61,0.052359882,0 -19323,61,-0.654507815,0 -19339,61,-1.13974935,0 -19351,61,-1.797882807,0 -19372,61,-1.979461846,0 -19393,61,-1.071673185,0 -19427,61,-0.071558512,0 -19454,61,0.200713134,0 -19464,61,0.918068978,0 -19475,61,1.88867077,0 -19547,61,2.31821239,0 -19598,61,7.554142625,0 -19608,61,7.287391532,0 -19618,61,7.113708026,0 -19620,25,7.113708026,0 -19632,25,7.187386662,0 -19635,67,7.187386662,0 -19645,67,7.394430356,0 -19656,67,7.543610975,0 -19667,67,7.562919128,0 -19677,67,7.324239076,0 -19691,67,2.464903927,0 -19752,67,2.463157538,0 -19849,67,2.466650317,0 -19912,67,2.471889497,0 -19995,67,2.470143102,0 -20120,36,2.470143102,0 -20187,36,2.468396709,0 -20220,36,2.466650317,0 -20252,36,2.464903927,0 -20268,10,2.464903927,0 -20271,10,2.463157538,0 -20279,72,2.463157538,0 -20289,72,2.456171997,0 -20367,72,2.452679236,0 -20406,72,2.450932857,0 -20437,72,2.44918648,0 -20503,72,2.445693731,0 -20549,72,2.443947359,0 -20568,72,2.440454618,0 -20618,72,2.435215519,0 -20664,72,2.431722793,0 -20712,72,2.42473736,0 -20833,72,2.269317458,0 -20920,39,2.269317458,0 -20946,48,2.269317458,0 -20978,48,2.185500085,0 -21022,48,1.768202776,0 -21050,45,1.768202776,0 -21063,45,1.240992799,0 -21091,45,1.048981353,0 -21112,45,1.151968259,0 -21116,52,1.151968259,0 -21127,52,1.260194424,0 -21146,52,0.912832552,0 -21176,52,0.492186823,0 -21222,52,0.350812619,0 -21249,52,0.125663772,0 -21261,52,-0.256563963,0 -21284,52,0.169297099,0 -21308,52,-2.375839984,0 -21330,52,-5.324787537,0 -21353,52,-6.873428318,0 -21370,52,-7.254054974,0 -21388,52,-6.77874138,0 -21399,52,-6.089984561,0 -21413,52,-3.610909048,0 -21423,52,5.160275643,0 -21435,52,7.433038644,0 -21443,52,-3.942994966,0 -21462,52,-1.815341796,0 -21504,52,0.862214016,0 -21549,52,2.082478757,0 -21550,33,2.082478757,0 -21565,85,2.082478757,0 -21580,85,2.295511036,0 -21600,85,2.229154577,0 -21611,85,2.646536778,0 -21634,85,3.69829207,0 -21661,85,4.313635795,0 -21687,85,4.283910368,0 -21714,85,3.200280402,0 -21723,85,2.082478757,0 -21748,85,1.181642896,0 -21767,85,0.493932195,0 -21781,85,-0.762723673,0 -21804,85,-1.745506493,0 -21826,85,-2.581915461,0 -21867,85,-2.443947359,0 -21897,85,-2.145338689,0 -21924,85,-1.874703193,0 -21984,85,-1.906130346,0 -22003,85,-1.88343292,0 -22044,85,-1.87819508,0 -22056,85,-2.098193584,0 -22124,85,-2.159307791,0 -22140,85,-2.583661954,0 -22177,85,-2.833427265,0 -22210,85,0.7697054,0 -22231,85,3.326077935,0 -22248,85,5.223276859,0 -22263,85,6.685819668,0 -22283,85,7.117216357,0 -22299,85,7.343540959,0 -22315,85,7.33125788,0 -22327,85,7.348805204,0 -22337,85,7.550632057,0 -22348,85,7.90353821,0 -22364,85,8.102023578,0 -22381,85,8.040539101,0 -22392,85,7.598026299,0 -22405,85,7.057577083,0 -22419,85,6.906747001,0 -22433,85,7.675268643,0 -22448,85,9.715225999,0 -22469,85,10.49983598,0 -22482,85,10.45925256,0 -22495,85,10.08004879,0 -22518,85,10.61454681,0 -22539,85,11.31577624,0 -22559,85,11.54209657,0 -22584,85,11.04010278,0 -22604,85,9.877337271,0 -22622,85,8.312873995,0 -22640,85,6.584144922,0 -22656,85,5.072780722,0 -22668,85,3.948239105,0 -22679,85,3.037806838,0 -22694,85,2.674481813,0 -22709,85,2.969677581,0 -22732,85,2.580168969,0 -22745,85,1.647739913,0 -22758,85,-0.710360954,0 -22785,85,-1.717572852,0 -22808,85,-1.824071332,0 -22836,85,-0.853486727,0 -22858,85,-1.2741593,0 -22874,85,-1.58838318,0 -22904,85,-1.497604445,0 -22937,85,-1.342238792,0 -22959,85,-0.893632364,0 -22981,85,-0.406663957,0 -23012,85,-0.649271605,0 -23020,85,-1.048981353,0 -23031,85,-1.293361086,0 -23041,85,-1.46094451,0 -23052,85,-1.520298892,0 -23069,85,-1.295106707,0 -23088,85,-1.035017203,0 -23099,85,-0.867450395,0 -23105,85,0.441571171,0 -23120,85,-0.568983476,0 -23133,85,-0.21991184,0 -23157,85,-0.455534086,0 -23166,85,-0.66323484,0 -23178,85,-0.905850658,0 -23198,85,-1.029780657,0 -23222,85,-1.00883453,0 -23244,85,-0.900614243,0 -23261,85,-0.790650626,0 -23272,85,-0.698143043,0 -23282,85,-0.607382049,0 -23291,85,-0.528839693,0 -23297,85,-0.368266137,0 -23307,85,-0.188495782,0 -23326,85,-0.364775432,0 -23339,85,-0.640544596,0 -23363,85,-0.406663957,0 -23387,85,-0.307178915,0 -23397,85,-0.364775432,0 -23409,85,-0.368266137,0 -23425,85,-0.211185153,0 -23450,85,-0.555020401,0 -23475,85,-5.578612571,0 -23486,85,-5.370295864,0 -23498,85,-5.263529797,0 -23513,85,-5.268780306,0 -23526,85,-5.501582377,0 -23552,85,-5.942846198,0 -23607,85,-5.678411513,0 -23634,85,-4.950300815,0 -23649,85,-3.99194111,0 -23664,85,-3.245706101,0 -23681,85,-2.866615457,0 -23694,85,-2.691947671,0 -23704,85,-2.609859547,0 -23711,85,-2.581915461,0 -23721,85,-2.662255809,0 -23732,85,-2.805479798,0 -23745,85,-2.960943261,0 -23772,85,-2.976665069,0 -23788,85,-2.906791481,0 -23803,85,-2.742599592,0 -23816,85,-2.485860711,0 -23829,85,-2.459664764,0 -23845,85,-3.242211769,0 -23870,85,-4.266425176,0 -23899,85,-4.94855121,0 -23916,85,-5.438562519,0 -23925,85,-5.744950393,0 -23933,85,-5.753705885,0 -23946,85,-4.966047394,0 -23961,85,0.010471976,0 -23980,85,-0.350812619,0 -24004,85,-0.303688223,0 -24026,85,-0.071558512,0 -24046,85,0.230383869,0 -24070,85,0.724324306,0 -24076,60,0.724324306,0 -24099,60,1.375406171,0 -24111,67,1.375406171,0 -24126,67,2.047557286,0 -24154,67,2.613352586,0 -24184,67,3.006362219,0 -24206,67,3.701787507,0 -24238,67,3.995437336,0 -24274,67,3.908034591,0 -24311,67,4.175506351,0 -24350,67,4.397570538,0 -24386,67,4.135294462,0 -24427,67,3.586442794,0 -24441,67,2.498085603,0 -24454,67,-0.586437351,0 -24483,67,-3.448391172,0 -24507,67,-4.483260301,0 -24517,67,-5.109527638,0 -24527,67,-6.153051866,0 -24559,67,-6.556099111,0 -24586,67,-6.463204669,0 -24619,67,-6.2371492,0 -24645,67,-6.209115785,0 -24665,67,-6.221380284,0 -24681,67,-6.189843376,0 -24693,67,-6.377331014,0 -24722,67,-5.900811403,0 -24734,67,-0.584691962,0 -24760,67,-0.432844358,0 -24790,67,-0.244346582,0 -24858,67,-0.221657178,0 -24901,67,-0.232129207,0 -24932,67,-0.233874546,0 -24940,53,-0.233874546,0 -24952,53,-0.235619885,0 -24971,56,-0.235619885,0 -24985,56,0.562001936,0 -24999,56,0.661489434,0 -25019,56,0.691161389,0 -25035,56,0.678943511,0 -25051,56,0.628326799,0 -25066,56,0.54629349,0 -25080,56,0.464260917,0 -25094,56,0.411900033,0 -25109,56,0.396191813,0 -25124,56,0.422372191,0 -25140,56,0.48695071,0 -25155,56,0.588182741,0 -25172,56,0.691161389,0 -25189,56,0.7749417,0 -25205,56,0.844759452,0 -25220,56,0.900614243,0 -25234,56,0.944251187,0 -25248,56,0.968688032,0 -25264,56,0.930287327,0 -25280,47,0.930287327,0 -25283,47,0.534075829,0 -25311,54,0.534075829,0 -25323,54,-0.286234779,0 -25362,54,-0.675452692,0 -25455,54,-0.705124704,0 -25476,54,-0.715597208,0 -25498,54,-0.708615537,0 -25515,54,-0.651017008,0 -25531,54,-0.518367431,0 -25545,54,-0.389210388,0 -25562,54,-0.396191813,0 -25579,54,-0.495677567,0 -25592,54,-0.602145869,0 -25603,54,-0.514876679,0 -25612,54,0.427608273,0 -25615,54,0.329868425,0 -25619,54,0.214675828,0 -25622,54,0.101229131,0 -25625,54,0.001745329,0 -25628,54,-0.094247808,0 -25630,54,-0.22863853,0 -25633,54,-1.096110665,0 -25637,54,-0.797632383,0 -25646,54,-0.460770183,0 -25657,54,-0.223402516,0 -25668,54,-0.153589095,0 -25680,54,-0.216421165,0 -25688,54,-0.326377729,0 -25702,54,-0.307178915,0 -25716,54,-0.094247808,0 -25730,54,0.335104471,0 -25750,54,0.605636655,0 -25770,54,0.70687012,0 -25771,25,0.70687012,0 -25785,50,0.70687012,0 -25812,50,0.476478492,0 -25833,50,0.015707963,0 -25854,50,-0.467751651,0 -25876,50,-0.640544596,0 -25896,50,-0.523603561,0 -25915,50,-0.212930491,0 -25927,50,0.357794023,0 -25942,50,0.785414313,0 -25961,50,0.942505703,0 -25981,50,0.7697054,0 -26001,50,0.502659058,0 -26017,50,0.232129207,0 -26033,50,-0.109955787,0 -26051,50,-0.46251555,0 -26066,50,-0.692906802,0 -26084,50,-0.277508063,0 -26100,50,0.275762721,0 -26111,50,0.902359714,0 -26130,50,1.146731579,0 -26149,50,0.947742158,0 -26175,50,0.551529636,0 -26201,50,0.181514442,0 -26236,50,0.193731789,0 -26254,50,0.359539375,0 -26268,50,0.562001936,0 -26282,50,0.708615537,0 -26297,50,0.743523962,0 -26311,50,0.692906802,0 -26324,50,0.598655085,0 -26333,50,0.548038872,0 -26347,50,0.659744029,0 -26357,50,0.858723099,0 -26365,0,0.858723099,31 -26366,46,0.858723099,0 -26370,46,1.024544117,0 -26383,46,1.181642896,0 -26397,46,1.256703212,0 -26428,46,0.909341604,0 -26459,46,0.509640554,0 -26498,46,0.778432569,0 -26538,46,0.70687012,0 -26558,46,-0.040142575,0 -26577,46,-0.553275018,0 -26589,46,-0.657998624,0 -26601,20,-0.657998624,0 -26602,20,-0.216421165,0 -26611,59,-0.216421165,0 -26619,59,0.275762721,0 -26630,59,0.579455797,0 -26642,59,0.637053795,0 -26654,59,0.895377833,0 -26679,59,0.801123265,0 -26693,59,-0.319396339,0 -26731,59,-0.904105185,0 -26747,59,-1.148477139,0 -26765,59,-1.014071054,0 -26782,59,-0.410154674,0 -26801,59,-0.094247808,0 -26815,59,0.171042433,0 -26890,59,0.275762721,0 -26906,59,0.350812619,0 -26922,59,0.340340518,0 -26940,59,0.240855903,0 -26957,59,0.069813181,0 -26971,34,0.069813181,0 -26972,34,-0.146607762,0 -26987,34,-0.371756843,0 -26991,49,-0.371756843,0 -27004,49,-0.535821208,0 -27021,49,-0.640544596,0 -27037,49,-0.691161389,0 -27069,49,-0.678943511,0 -27080,49,-0.66847106,0 -27093,49,-0.666725653,0 -27105,49,-0.66847106,0 -27114,49,-0.584691962,0 -27122,49,-0.237365224,0 -27133,49,-0.020943951,0 -27138,49,0.326377729,0 -27144,49,0.612618231,0 -27149,49,-0.301942878,0 -27156,49,-0.005235988,0 -27160,42,-0.005235988,0 -27161,42,0.387465033,0 -27169,42,0.825559491,0 -27180,42,1.024544117,0 -27181,46,1.024544117,0 -27189,46,1.089128514,0 -27197,46,0.973924514,0 -27209,46,0.691161389,0 -27223,46,0.466006284,0 -27236,49,0.466006284,0 -27239,49,0.417136111,0 -27253,49,0.525348938,0 -27267,49,0.799377824,0 -27281,49,1.183388469,0 -27296,49,1.619807191,0 -27312,49,2.023112554,0 -27327,49,2.283287327,0 -27331,26,2.283287327,0 -27343,26,2.276302382,0 -27346,46,2.276302382,0 -27359,46,2.094701391,0 -27373,46,1.87819508,0 -27386,46,1.625044557,0 -27400,46,1.371914854,0 -27413,46,0.930287327,0 -27432,46,0.349067268,0 -27450,46,-0.205949143,0 -27467,46,-0.586437351,0 -27486,46,-0.797632383,0 -27500,0,-0.797632383,16 -27501,52,-0.797632383,0 -27521,52,-0.753996525,0 -27540,52,-0.748760242,0 -27557,52,-0.736542263,0 -27574,52,-0.719088046,0 -27590,52,-0.696397629,0 -27605,52,-0.673707284,0 -27620,52,-0.647526202,0 -27634,52,-0.612618231,0 -27652,52,-0.570728862,0 -27671,52,-0.528839693,0 -27689,52,-0.469497018,0 -27715,52,-0.415390751,0 -27736,52,-0.132645101,0 -27755,52,0.263545327,0 -27770,52,0.431098996,0 -27787,52,0.45378872,0 -27804,52,0.528839693,0 -27818,52,0.584691962,0 -27834,52,0.605636655,0 -27852,52,0.562001936,0 -27870,40,0.562001936,0 -27878,40,0.376992904,0 -27896,42,0.376992904,0 -27911,42,0.127409104,0 -27941,42,-0.146607762,0 -27956,44,-0.146607762,0 -27967,44,-0.410154674,0 -27992,44,-0.591673521,0 -28024,44,-0.497422939,0 -28056,44,-0.33684982,0 -28070,0,-0.33684982,10 -28071,46,-0.33684982,0 -28080,46,-0.209439816,0 -28103,46,-0.115191782,0 -28122,46,-0.031415928,0 -28144,46,-0.008726646,0 -28159,46,0.010471976,0 -28170,46,0.127409104,0 -28186,46,0.411900033,0 -28218,46,0.553275018,0 -28243,46,0.649271605,0 -28281,52,0.649271605,0 -28288,52,0.537566588,0 -28331,52,0.376992904,0 -28357,52,0.204203806,0 -28377,52,0.141371764,0 -28394,52,0.275762721,0 -28410,52,0.582946573,0 -28426,52,1.040253755,0 -28441,52,1.246229597,0 -28445,52,0.671961876,0 -28449,52,0.741778537,0 -28452,52,0.740033112,0 -28455,52,0.743523962,0 -28476,52,0.623090606,0 -28486,33,0.214675828,0 -28494,33,-0.059341202,0 -28503,33,-0.404918599,0 -28516,33,-0.722578886,0 -28529,33,-0.886650494,0 -28537,33,-1.092619588,0 -28549,33,-1.15371382,0 -28564,33,-0.813341366,0 -28581,33,-0.048869223,0 -28597,33,1.012325545,0 -28610,29,1.012325545,0 -28618,29,1.361440923,0 -28627,38,1.361440923,0 -28643,38,0.752251097,0 -28660,38,0.120427777,0 -28671,38,-0.886650494,0 -28689,38,-1.455707409,0 -28706,38,-1.618061404,0 -28718,38,-1.467927324,0 -28733,38,-0.88839596,0 -28755,38,-0.312414953,0 -28774,38,0.387465033,0 -28795,38,0.822068595,0 -28797,37,0.822068595,0 -28812,37,0.808105034,0 -28831,37,0.727815149,0 -28838,37,0.729560571,0 -28849,37,0.776687134,0 -28858,38,0.776687134,0 -28863,38,0.685925153,0 -28879,38,0.321141686,0 -28901,38,-0.326377729,0 -28923,38,-0.841268545,0 -28946,38,-0.741778537,0 -28969,38,-0.151843762,0 -28989,38,0.373502197,0 -29006,38,0.490441452,0 -29018,38,0.493932195,0 -29024,38,0.500913685,0 -29026,43,0.500913685,0 -29033,43,0.509640554,0 -29045,43,0.521858184,0 -29057,43,0.520112807,0 -29071,43,0.345576568,0 -29085,43,-0.092502477,0 -29098,43,-0.492186823,0 -29110,43,-0.767959967,0 -29121,43,-1.387625808,0 -29148,43,-1.696622797,0 -29161,43,-2.073748342,0 -29174,43,-2.56969005,0 -29195,43,-2.814213335,0 -29210,43,-2.934740572,0 -29232,43,-2.92425961,0 -29241,43,-2.905044678,0 -29247,43,1.307326081,0 -29258,43,-2.063271886,0 -29262,43,-2.347899138,0 -29266,43,-2.402034864,0 -29269,43,-2.290272295,0 -29272,43,-1.941049848,0 -29276,43,-1.303834827,0 -29281,43,-2.32519747,0 -29288,43,-2.700680662,0 -29297,43,-2.981905704,0 -29304,43,-3.264925068,0 -29331,43,-2.796746305,0 -29348,43,-2.00565218,0 -29364,30,-2.00565218,0 -29366,30,-1.2741593,0 -29379,30,1.213063327,0 -29381,48,1.213063327,0 -29414,48,2.356630613,0 -29433,48,2.92425961,0 -29448,48,3.203774639,0 -29465,48,3.167085534,0 -29481,48,2.908538286,0 -29494,48,2.492846354,0 -29508,48,1.96549378,0 -29523,48,1.504587335,0 -29538,48,1.17640618,0 -29549,48,0.431098996,0 -29572,48,0.183259777,0 -29584,48,0.148353095,0 -29591,48,0.209439816,0 -29598,48,0.410154674,0 -29608,48,0.661489434,0 -29621,48,0.581201185,0 -29640,48,0.319396339,0 -29652,48,-0.212930491,0 -29680,48,-0.560256552,0 -29710,48,-0.644035398,0 -29769,48,-0.143117096,0 -29809,48,-0.061086531,0 -29837,48,-0.35255797,0 -29856,48,-0.692906802,0 -29876,48,-0.815086811,0 -29904,48,-0.734796839,0 -29915,48,-0.610872837,0 -29926,48,-0.378738259,0 -29939,48,0.230383869,0 -29962,48,0.244346582,0 -29974,0,0.244346582,48 -29975,31,0.244346582,0 -29977,31,-0.036651916,0 -29999,31,0.48695071,0 -30021,31,0.919814455,0 -30041,31,0.602145869,0 -30060,31,-0.052359882,0 -30077,31,-0.411900033,0 -30093,31,-0.324632381,0 -30110,31,0.172787768,0 -30130,31,0.619599813,0 -30152,31,0.298452188,0 -30177,31,-0.495677567,0 -30179,10,-0.495677567,0 -30190,26,-0.495677567,0 -30199,26,-1.131021579,0 -30225,26,-1.015816563,0 -30251,26,-0.614363626,0 -30275,26,-0.279253406,0 -30298,26,0.071558512,0 -30300,10,0.071558512,0 -30333,10,0.237365224,0 -30347,9,0.237365224,0 -30360,9,0.315905645,0 -30376,0,0.315905645,6 -30377,10,0.315905645,0 -30382,10,0.366520784,0 -30401,0,0.366520784,28 -30402,9,0.366520784,0 -30408,9,0.390955744,0 -30414,6,0.390955744,0 -30424,11,0.390955744,0 -30434,11,0.382228968,0 -30463,11,0.272272036,0 -30474,0,0.272272036,8 -30475,7,0.272272036,0 -30504,0,0.272272036,186 -30505,10,0.272272036,0 -30518,10,0.20245847,0 -30540,8,0.20245847,0 -30561,8,0.218166503,0 -30584,8,0.274017378,0 -30585,0,0.274017378,15 -30586,10,0.274017378,0 -30608,10,0.218166503,0 -30631,10,0.150098428,0 -30634,0,0.150098428,42 -30635,19,0.150098428,0 -30654,19,0.35255797,0 -30678,19,0.713851789,0 -30688,40,0.713851789,0 -30707,40,0.918068978,0 -30733,40,0.991379492,0 -30781,40,1.047235832,0 -30802,40,1.384134479,0 -30824,40,1.813595892,0 -30838,40,2.13136967,0 -30852,40,2.464903927,0 -30872,40,2.697187461,0 -30910,40,2.519042734,0 -30942,40,2.46141115,0 -30969,40,2.520789171,0 -30994,40,2.634310956,0 -31041,41,2.634310956,0 -31115,41,2.473635894,0 -31167,41,3.313847165,0 -31193,25,3.313847165,0 -31207,34,3.313847165,0 -31227,34,3.471107611,0 -31262,34,3.853847891,0 -31304,34,4.467520876,0 -31341,24,4.467520876,0 -31344,24,4.631921468,0 -31355,33,4.631921468,0 -31368,33,4.327624495,0 -31401,33,3.747229017,0 -31422,33,3.11816805,0 -31440,33,2.344406558,0 -31457,33,0.061086531,0 -31468,24,0.061086531,0 -31470,24,0.115191782,0 -31474,24,0.160570429,0 -31477,24,0.195477125,0 -31480,24,0.212930491,0 -31482,37,0.212930491,0 -31483,37,0.696397629,0 -31487,37,0.364775432,0 -31490,37,0.333359122,0 -31494,37,0.232129207,0 -31498,37,0.087266485,0 -31502,37,1.480147283,0 -31506,37,-0.413645392,0 -31511,37,-0.493932195,0 -31515,37,-1.021053093,0 -31519,37,1.235756008,0 -31532,37,2.828187082,0 -31542,37,4.152777727,0 -31554,37,5.102528119,0 -31568,37,5.569858809,0 -31580,37,5.907817057,0 -31608,37,5.753705885,0 -31635,37,5.454317078,0 -31650,37,4.850578136,0 -31671,37,4.240197876,0 -31688,37,3.57246227,0 -31704,37,2.751332824,0 -31722,37,2.195977087,0 -31734,37,1.670435438,0 -31746,37,1.289869845,0 -31763,37,1.125784924,0 -31777,38,1.125784924,0 -31778,38,1.028035143,0 -31798,38,1.075164245,0 -31825,38,0.945996672,0 -31845,38,0.912832552,0 -31862,38,1.202589823,0 -31886,38,1.132767132,0 -31913,38,0.441571171,0 -31940,38,-0.11344645,0 -31953,38,-0.874432242,0 -31967,38,-2.768799412,0 -31993,38,-5.198775898,0 -32023,38,-7.155809158,0 -32036,31,-7.155809158,0 -32054,31,-7.708626101,0 -32077,31,-7.392675485,0 -32094,31,-6.826083326,0 -32110,31,-6.179331346,0 -32127,31,-5.771217133,0 -32141,31,-5.256529164,0 -32160,31,-4.735121781,0 -32178,31,-3.796167757,0 -32203,22,-3.796167757,0 -32205,22,-2.765306081,0 -32216,31,-2.765306081,0 -32229,31,-1.673927073,0 -32261,31,-1.303834827,0 -32279,31,-0.809850477,0 -32296,31,-0.253073282,0 -32308,31,-0.872686779,0 -32322,31,0.197222461,0 -32325,31,-0.460770183,0 -32329,31,-0.719088046,0 -32331,31,-1.033271687,0 -32335,31,-1.200844242,0 -32337,31,-1.319545493,0 -32340,31,-1.316054228,0 -32344,31,-1.234010413,0 -32347,31,-1.141494906,0 -32350,31,-0.979161001,0 -32354,31,-0.771450833,0 -32357,31,-0.523603561,0 -32360,31,-0.822068595,0 -32368,31,-0.979161001,0 -32378,31,-1.129276027,0 -32384,26,-1.129276027,0 -32390,26,-1.293361086,0 -32399,30,-1.293361086,0 -32408,30,-1.36842354,0 -32423,30,-1.380643153,0 -32434,30,-1.370169197,0 -32441,30,-1.345730081,0 -32448,30,-1.303834827,0 -32455,30,-1.223536856,0 -32465,30,-1.132767132,0 -32474,30,-1.001852508,0 -32484,30,-0.829050388,0 -32497,30,-0.230383869,0 -32513,30,0.436335082,0 -32523,30,3.375002017,0 -32553,30,4.589944508,0 -32566,30,5.086779385,0 -32578,30,4.922307501,0 -32588,25,4.922307501,0 -32589,25,4.093335653,0 -32602,29,2.843907679,0 -32615,29,1.728047936,0 -32625,29,-0.595164302,0 -32646,29,-2.48760712,0 -32664,29,-3.853847891,0 -32677,29,-4.973045952,0 -32691,29,-5.46657081,0 -32701,29,-5.331788674,0 -32717,29,-1.394608476,0 -32725,0,-1.394608476,72 -32726,30,-1.394608476,0 -32760,30,-0.804614148,0 -32782,30,-0.431098996,0 -32807,30,-0.396191813,0 -32831,30,-0.820323148,0 -32862,30,-0.863959475,0 -32870,0,-0.863959475,136 -32871,32,-0.863959475,0 -32887,32,-0.612618231,0 -32905,32,-0.537566588,0 -32925,32,-0.329868425,0 -32942,32,0.350812619,0 -32958,32,1.108329454,0 -32975,32,1.780423927,0 -32993,32,-0.212930491,0 -33012,32,-0.038397245,0 -33031,32,-0.593418911,0 -33045,32,-1.488875853,0 -33059,32,-2.305988554,0 -33073,32,-2.765306081,0 -33084,32,-3.146120714,0 -33096,32,-3.427422467,0 -33099,16,-3.427422467,0 -33108,20,-3.20202752,0 -33122,20,-2.774039421,0 -33132,20,-2.505071289,0 -33141,20,-2.307734812,0 -33150,20,-2.110416298,0 -33158,20,-1.796136914,0 -33166,20,-1.36493223,0 -33172,20,-0.698143043,0 -33180,20,0.315905645,0 -33189,20,1.131021579,0 -33191,37,1.131021579,0 -33197,37,1.675672892,0 -33207,37,1.810104088,0 -33214,37,0.911087077,0 -33226,37,1.195607503,0 -33249,37,2.346152847,0 -33320,37,0.579455797,0 -33369,37,0.144862429,0 -33392,37,0.443316534,0 -33399,10,0.443316534,0 -33410,35,0.443316534,0 -33411,35,0.884905027,0 -33429,35,1.185134043,0 -33456,35,0.919814455,0 -33494,35,0.678943511,0 -33530,35,0.984397494,0 -33556,35,1.120548276,0 -33568,35,0.914578027,0 -33587,35,0.382228968,0 -33610,35,0.253073282,0 -33631,42,0.253073282,0 -33634,42,0.350812619,0 -33644,42,0.406663957,0 -33663,42,0.331613773,0 -33676,42,0.186750447,0 -33687,42,-0.261799986,0 -33711,42,-0.514876679,0 -33740,42,-0.139626431,0 -33769,42,0.659744029,0 -33793,42,1.824071332,0 -33816,42,2.906791481,0 -33836,42,3.661590521,0 -33855,42,3.997185453,0 -33878,42,3.866083399,0 -33893,42,3.675571947,0 -33903,42,3.273661041,0 -33922,42,2.929500083,0 -33937,28,2.450932857,0 -33952,40,2.450932857,0 -33956,40,1.972477804,0 -33974,40,1.452216012,0 -33993,40,0.802868706,0 -34018,40,0.324632381,0 -34038,40,-0.129154436,0 -34069,40,-0.172787768,0 -34077,40,-0.265290669,0 -34107,40,-0.305433569,0 -34129,40,-0.324632381,0 -34158,40,-0.289725466,0 -34195,40,-0.20769448,0 -34217,15,-0.20769448,0 -34226,40,-0.20769448,0 -34242,40,-0.298452188,0 -34349,40,-0.478223861,0 -34442,40,-0.476478492,0 -34463,34,-0.476478492,0 -34482,41,-0.476478492,0 -34506,41,-0.41888147,0 -34548,41,-0.33684982,0 -34583,41,-0.075049172,0 -34615,41,0.151843762,0 -34670,41,0.359539375,0 -34742,41,0.441571171,0 -34778,41,0.48695071,0 -34797,41,0.792396064,0 -34801,0,0.792396064,28 -34802,32,0.792396064,0 -34880,32,1.031526172,0 -34932,32,1.148477139,0 -34961,32,1.165932768,0 -34966,32,1.326528032,0 -35040,32,1.31779986,0 -35080,32,1.300343577,0 -35123,32,1.335256224,0 -35154,0,1.335256224,5 -35155,32,1.335256224,0 -35162,32,1.371914854,0 -35199,32,1.378897492,0 -35228,32,1.331764945,0 -35298,32,1.324782396,0 -35305,32,1.26194003,0 -35318,22,1.26194003,0 -35330,32,1.26194003,0 -35366,32,1.214808913,0 -35434,32,1.183388469,0 -35522,32,1.192116346,0 -35567,26,1.192116346,0 -35582,34,1.192116346,0 -35623,34,1.2741593,0 -35756,34,1.337001865,0 -35760,0,1.337001865,11 -35761,35,1.337001865,0 -35849,35,1.347475727,0 -35873,35,1.349221374,0 -35982,35,1.316054228,0 -35988,0,1.316054228,47 -35989,38,1.316054228,0 -36055,38,1.298597953,0 -36175,38,1.066436598,0 -36243,0,1.066436598,5 -36244,34,1.066436598,0 -36296,34,0.776687134,0 -36410,34,0.614363626,0 -36474,0,0.614363626,19 -36475,19,0.614363626,0 -36477,19,0.493932195,0 -36515,0,0.493932195,21 -36516,27,0.493932195,0 -36522,27,0.382228968,0 -36560,27,-0.064577191,0 -36670,10,-0.064577191,0 -36681,43,-0.064577191,0 -36723,43,-0.265290669,0 -36806,43,-0.452043355,0 -36894,43,-0.724324306,0 -36983,43,-1.014071054,0 -37081,43,-1.069927655,0 -37102,43,-1.113566088,0 -37121,43,-1.160696072,0 -37146,43,-1.197353082,0 -37150,0,-1.197353082,15 -37151,44,-1.197353082,0 -37172,44,-1.220045677,0 -37198,44,-1.230519225,0 -37242,44,-1.204335405,0 -37285,44,-1.129276027,0 -37328,44,-1.254957608,0 -37365,44,-1.412065206,0 -37379,44,-2.643043678,0 -37410,0,-2.643043678,7 -37411,55,-2.643043678,0 -37431,55,-3.803159153,0 -37462,55,-4.056622876,0 -37479,55,-10.92882032,0 -37490,55,-10.36751128,0 -37502,55,-9.392915031,0 -37514,55,-7.487444976,0 -37529,55,-2.838667465,0 -37549,55,-1.820579514,0 -37559,55,-2.494592769,0 -37580,55,-2.305988554,0 -37605,55,-4.402816663,0 -37615,55,-5.533093938,0 -37628,55,-6.719129895,0 -37642,55,-7.452343614,0 -37652,55,-8.631046225,0 -37682,55,-9.285521337,0 -37737,55,-9.403479501,0 -37784,55,-9.660612982,0 -37804,55,-9.93021072,0 -37824,55,-9.745177508,0 -37840,55,-9.246794408,0 -37854,55,-8.123105369,0 -37875,55,-7.580472482,0 -37893,55,-7.292655346,0 -37928,55,-7.061085137,0 -37979,55,-7.282127758,0 -37984,43,-7.282127758,0 -37995,43,-8.831530662,0 -38008,0,-8.831530662,16 -38009,30,-8.831530662,0 -38022,30,-9.953124254,0 -38048,30,-9.667659501,0 -38062,30,-9.030326004,0 -38091,30,-9.222151431,0 -38108,30,-9.805085728,0 -38145,30,-10.02187107,0 -38153,0,-10.02187107,14 -38154,40,-10.02187107,0 -38173,40,-9.718749616,0 -38187,40,-8.620496334,0 -38201,40,-7.648935008,0 -38215,40,-7.821000657,0 -38230,40,-7.935151165,0 -38242,40,-6.99443506,0 -38252,40,-2.15232323,0 -38278,40,0.54629349,0 -38297,40,1.467927324,0 -38311,40,1.841530487,0 -38323,40,1.963747777,0 -38334,40,1.953271785,0 -38345,40,1.52728183,0 -38390,40,0.537566588,0 -38434,40,-0.293216155,0 -38439,14,-0.293216155,0 -38449,41,-0.293216155,0 -38467,41,-1.125784924,0 -38504,41,-2.232646972,0 -38532,41,-2.973171321,0 -38553,41,-2.948715289,0 -38572,41,-2.622085212,0 -38586,41,-2.410766564,0 -38594,41,-2.199469431,0 -38600,41,-0.740033112,0 -38610,41,-1.131021579,0 -38628,41,-1.415556562,0 -38648,41,-1.508078786,0 -38658,41,-1.324782396,0 -38668,0,-1.324782396,23 -38669,54,-1.324782396,0 -38687,54,-0.722578886,0 -38713,54,-0.598655085,0 -38730,54,-0.549784254,0 -38748,54,-0.698143043,0 -38792,54,-0.0994838,0 -38854,54,0.013962634,0 -38919,54,0.019198622,0 -38943,54,0.116937113,0 -38993,54,-0.342085868,0 -38994,11,-0.342085868,0 -39004,50,-0.342085868,0 -39042,50,-0.47996923,0 -39065,50,-0.513131304,0 -39133,50,-1.824071332,0 -39160,50,-2.300749789,0 -39186,50,-2.000414091,0 -39199,50,0.666725653,0 -39211,50,0.471242386,0 -39239,50,0.537566588,0 -39251,50,-1.389371473,0 -39260,50,-1.593620493,0 -39273,50,-0.820323148,0 -39296,50,0.036651916,0 -39309,41,0.036651916,0 -39312,41,0.708615537,0 -39342,41,0.54629349,0 -39365,41,-1.886924819,0 -39377,41,-1.93406591,0 -39389,41,-1.762965156,0 -39395,41,-1.129276027,0 -39419,41,-0.951233131,0 -39444,41,-1.101347285,0 -39463,41,-0.905850658,0 -39482,41,-0.713851789,0 -39490,41,-0.438080445,0 -39502,41,-0.050614553,0 -39519,21,-0.050614553,0 -39533,21,-0.195477125,0 -39534,51,-0.195477125,0 -39565,51,-0.631817596,0 -39589,51,-1.021053093,0 -39607,51,-1.256703212,0 -39622,51,-0.555020401,0 -39636,51,-0.472987754,0 -39639,51,-0.256563963,0 -39642,51,-0.169297099,0 -39653,51,0.165806431,0 -39661,51,0.54629349,0 -39669,51,0.843013998,0 -39683,51,0.48695071,0 -39697,51,0.069813181,0 -39707,51,-0.193731789,0 -39717,51,-0.160570429,0 -39728,51,0.376992904,0 -39763,51,0.809850477,0 -39806,51,1.150222698,0 -39858,0,1.150222698,5 -39859,34,1.150222698,0 -39871,34,1.048981353,0 -39942,34,0.954724107,0 -39958,34,0.84825036,0 -39971,34,0.757487383,0 -39981,34,0.661489434,0 -39990,34,0.598655085,0 -39997,34,0.58992813,0 -40009,34,0.696397629,0 -40023,34,0.619599813,0 -40029,22,0.619599813,0 -40039,33,0.619599813,0 -40052,33,0.389210388,0 -40063,33,-0.015707963,0 -40083,33,-0.146607762,0 -40099,33,0.120427777,0 -40134,33,0.048869223,0 -40165,33,0.46251555,0 -40195,33,0.897123302,0 -40208,0,0.897123302,31 -40209,32,0.897123302,0 -40218,32,-0.542802728,0 -40225,32,0.596909693,0 -40230,32,0.143117096,0 -40244,32,0.436335082,0 -40265,32,1.206080988,0 -40285,32,1.131021579,0 -40305,32,0.452043355,0 -40321,32,-0.146607762,0 -40335,32,-0.350812619,0 -40350,32,-0.303688223,0 -40365,32,-0.254818622,0 -40375,32,-0.198967797,0 -40385,32,-0.120427777,0 -40396,32,-0.710360954,0 -40419,10,-0.710360954,0 -40421,10,-1.120548276,0 -40429,25,-1.120548276,0 -40448,25,-0.598655085,0 -40476,25,-0.118682445,0 -40497,25,-0.158825095,0 -40517,25,-0.33684982,0 -40550,25,-0.132645101,0 -40559,35,-0.132645101,0 -40582,35,-0.041887904,0 -40598,35,-0.144862429,0 -40614,35,-0.324632381,0 -40626,35,-0.492186823,0 -40636,35,-0.607382049,0 -40646,35,-0.70687012,0 -40664,35,-0.263545327,0 -40685,35,0.359539375,0 -40705,35,0.507895179,0 -40724,35,0.20245847,0 -40744,35,-0.176278437,0 -40765,35,-0.054105212,0 -40778,0,-0.054105212,138 -40779,47,-0.054105212,0 -40792,47,0.233874546,0 -40816,47,0.29147081,0 -40841,47,0.22863853,0 -40861,47,0.075049172,0 -40892,47,-0.094247808,0 -40894,13,-0.094247808,0 -40904,28,-0.094247808,0 -40942,28,-0.26703601,0 -40977,28,0.328123077,0 -41082,28,0.349067268,0 -41083,0,0.349067268,51 -41084,27,0.349067268,0 -41099,27,0.383974322,0 -41110,27,0.411900033,0 -41116,27,0.450297991,0 -41123,27,0.6457808,0 -41133,27,-0.474733123,0 -41137,27,-1.810104088,0 -41142,27,-3.093709869,0 -41147,27,-4.423801407,0 -41151,27,1.803120492,0 -41166,27,2.248362821,0 -41179,27,2.208200316,0 -41190,27,4.766608616,0 -41201,27,3.57246227,0 -41213,27,2.442200988,0 -41219,20,2.442200988,0 -41226,20,1.485384422,0 -41229,31,1.485384422,0 -41238,31,1.448724619,0 -41250,31,1.014071054,0 -41260,31,0.41888147,0 -41269,31,-0.303688223,0 -41279,31,-1.281141756,0 -41293,31,-2.166292374,0 -41307,31,-2.611606066,0 -41322,31,-2.209946497,0 -41324,17,-2.209946497,0 -41339,63,-2.209946497,0 -41345,63,-1.565688257,0 -41362,63,-0.527094315,0 -41397,63,-0.244346582,0 -41418,63,0.321141686,0 -41446,63,0.403173242,0 -41472,63,-0.062831861,0 -41517,63,-0.322887034,0 -41544,63,-0.466006284,0 -41599,63,0.357794023,0 -41691,63,0.101229131,0 -41746,63,0.010471976,0 -41819,63,0.066322521,0 -41878,63,0.085521154,0 -41901,63,0.157079762,0 -41930,63,0.111701119,0 -41997,63,-0.078539832,0 -42072,63,-0.216421165,0 -42124,57,-0.216421165,0 -42138,57,-0.307178915,0 -42159,62,-0.307178915,0 -42279,62,-0.272272036,0 -42363,62,-0.249582601,0 -42467,62,-0.268781352,0 -42505,62,-0.256563963,0 -42519,55,-0.256563963,0 -42554,71,-0.256563963,0 -42604,71,-0.083775824,0 -42675,71,0.305433569,0 -42746,71,0.425862912,0 -42787,71,0.204203806,0 -42843,71,-0.41888147,0 -42897,71,-0.755741954,0 -42934,71,-0.771450833,0 -42946,71,-0.373502197,0 -43009,71,-0.22863853,0 -43036,71,-0.387465033,0 -43082,71,0.48520534,0 -43109,71,-0.167551765,0 -43117,71,0.527094315,0 -43121,71,0.499168312,0 -43159,71,0.647526202,0 -43237,71,0.441571171,0 -43269,71,0.21991184,0 -43284,71,0.043633234,0 -43299,71,-0.11344645,0 -43330,71,-0.183259777,0 -43401,71,-0.158825095,0 -43444,62,-0.158825095,0 -43470,62,-0.068067851,0 -43479,71,-0.068067851,0 -43515,71,0.012217305,0 -43541,71,0.439825808,0 -43569,71,1.467927324,0 -43632,71,2.339167699,0 -43662,71,3.679067325,0 -43692,71,4.137042777,0 -43705,71,4.046133712,0 -43719,71,3.785680732,0 -43737,71,3.972712041,0 -43752,71,4.939803231,0 -43769,71,6.27394454,0 -43783,71,7.050561027,0 -43798,71,6.904993348,0 -43812,71,6.312493855,0 -43824,71,5.611877644,0 -43836,71,-4.429047654,0 -43850,71,3.181062235,0 -43868,71,2.412512908,0 -43877,71,1.691385307,0 -43884,71,0.801123265,0 -43894,71,0.115191782,0 -43904,71,-0.204203806,0 -43910,71,-0.504404432,0 -43919,71,-0.685925153,0 -43927,71,-0.757487383,0 -43936,71,-0.747014815,0 -43941,71,-0.649271605,0 -43949,71,-0.385719678,0 -43968,71,-0.673707284,0 -43988,71,-0.823814043,0 -44023,71,-0.940760219,0 -44048,71,-0.96694254,0 -44052,71,-0.720833466,0 -44067,71,0.134390433,0 -44093,71,0.429353634,0 -44108,71,0.383974322,0 -44121,71,0.240855903,0 -44135,71,0.181514442,0 -44144,69,0.181514442,0 -44149,69,0.109955787,0 -44167,69,-0.057595872,0 -44190,69,-0.205949143,0 -44213,69,-0.298452188,0 -44258,69,0.56374732,0 -44305,69,0.380483613,0 -44344,69,0.055850542,0 -44364,77,0.055850542,0 -44391,77,0.012217305,0 -44402,77,0.171042433,0 -44426,77,1.00883453,0 -44461,77,1.289869845,0 -44477,77,1.040253755,0 -44493,77,0.785414313,0 -44499,77,-0.167551765,0 -44516,77,-0.275762721,0 -44562,77,-0.005235988,0 -44596,77,0.158825095,0 -44639,77,0.560256552,0 -44659,77,1.366677885,0 -44684,77,1.576162817,0 -44702,77,1.188625193,0 -44721,77,0.766214536,0 -44737,77,0.652762411,0 -44748,77,0.673707284,0 -44757,77,0.275762721,0 -44765,77,-0.258309304,0 -44769,77,-0.240855903,0 -44773,77,-0.22863853,0 -44775,77,-0.211185153,0 -44779,77,-0.139626431,0 -44782,77,-0.040142575,0 -44786,77,0.075049172,0 -44788,77,-0.141371764,0 -44792,77,0.595164302,0 -44836,77,0.635308395,0 -44848,77,0.411900033,0 -44879,77,0.073303842,0 -44916,77,0.164061097,0 -44954,77,0.270526694,0 -45009,77,0.048869223,0 -45027,77,-0.349067268,0 -45041,77,-0.755741954,0 -45065,77,-0.638799195,0 -45078,77,-0.389210388,0 -45098,77,-0.404918599,0 -45122,77,-0.429353634,0 -45134,77,-0.314160299,0 -45150,77,0.048869223,0 -45173,77,0.321141686,0 -45189,73,0.321141686,0 -45192,73,0.345576568,0 -45207,73,0.340340518,0 -45230,73,0.478223861,0 -45234,75,0.478223861,0 -45252,75,-1.022798605,0 -45275,75,-0.520112807,0 -45279,75,-0.188495782,0 -45283,75,0.040142575,0 -45287,75,0.197222461,0 -45291,75,0.265290669,0 -45295,75,0.328123077,0 -45298,75,0.507895179,0 -45303,75,0.727815149,0 -45306,75,0.333359122,0 -45310,75,0.692906802,0 -45340,75,0.731305993,0 -45365,75,0.47996923,0 -45394,75,0.050614553,0 -45411,75,-0.48695071,0 -45429,76,-0.48695071,0 -45431,76,-0.624836004,0 -45453,76,-0.46251555,0 -45475,76,-0.216421165,0 -45498,76,0.019198622,0 -45518,76,0.191986454,0 -45538,76,0.324632381,0 -45560,76,0.390955744,0 -45580,76,0.403173242,0 -45602,76,0.329868425,0 -45629,76,0.218166503,0 -45673,76,0.214675828,0 -45728,76,0.459024817,0 -45777,76,0.455534086,0 -45801,76,0.136135766,0 -45819,76,-0.340340518,0 -45834,76,-1.019307583,0 -45851,76,-1.438250462,0 -45871,76,-0.93552377,0 -45892,76,0.29147081,0 -45904,59,0.29147081,0 -45918,59,0.610872837,0 -45933,59,0.872686779,0 -45939,63,0.872686779,0 -45949,63,1.064691071,0 -45967,63,1.134512685,0 -45981,63,1.125784924,0 -45997,63,1.02628963,0 -46013,63,0.853486727,0 -46027,63,0.605636655,0 -46042,63,0.425862912,0 -46055,63,0.376992904,0 -46068,63,0.460770183,0 -46081,63,0.649271605,0 -46092,63,0.7697054,0 -46109,63,0.516622055,0 -46123,63,0.132645101,0 -46137,63,-0.233874546,0 -46149,58,-0.233874546,0 -46154,58,-0.247837261,0 -46169,58,0.052359882,0 -46181,58,0.467751651,0 -46184,69,0.467751651,0 -46208,69,0.424117551,0 -46294,69,0.399682527,0 -46311,69,0.335104471,0 -46332,69,0.322887034,0 -46348,69,0.342085868,0 -46366,69,0.422372191,0 -46389,69,0.452043355,0 -46405,69,0.363030079,0 -46424,69,0.30892426,0 -46451,69,0.56374732,0 -46477,69,0.88839596,0 -46497,69,0.778432569,0 -46521,69,0.204203806,0 -46547,69,-0.064577191,0 -46568,69,0.144862429,0 -46586,69,0.699888458,0 -46611,69,0.801123265,0 -46635,69,0.469497018,0 -46659,69,0.371756843,0 -46686,69,0.58992813,0 -46706,69,0.633562995,0 -46722,69,0.565492705,0 -46738,69,0.441571171,0 -46749,69,0.382228968,0 -46760,69,0.521858184,0 -46772,69,0.825559491,0 -46791,69,0.942505703,0 -46804,69,0.883159562,0 -46817,69,0.567238091,0 -46830,69,0.29147081,0 -46833,0,0.29147081,8 -46834,63,0.29147081,0 -46844,63,0.415390751,0 -46862,63,0.56374732,0 -46875,63,0.516622055,0 -46892,63,0.438080445,0 -46905,63,0.502659058,0 -46919,63,0.626581401,0 -46934,63,0.687670565,0 -46946,63,0.736542263,0 -46954,63,0.771450833,0 -46962,63,0.839523093,0 -46972,63,0.904105185,0 -46984,63,0.914578027,0 -46995,63,0.886650494,0 -47005,63,0.747014815,0 -47022,63,0.478223861,0 -47040,63,0.21991184,0 -47083,63,0.389210388,0 -47099,63,0.628326799,0 -47111,63,0.945996672,0 -47124,63,0.97217902,0 -47137,63,0.945996672,0 -47147,63,0.932032807,0 -47161,63,0.886650494,0 -47182,63,0.874432242,0 -47206,63,0.993124993,0 -47231,63,1.522044625,0 -47264,63,2.056287607,0 -47290,63,2.531267829,0 -47321,63,2.761812756,0 -47347,63,2.798493,0 -47371,63,2.595887453,0 -47397,63,2.56619709,0 -47420,63,2.79150623,0 -47451,63,2.838667465,0 -47479,46,2.838667465,0 -47490,46,3.034312962,0 -47515,46,3.748976798,0 -47540,46,3.993689222,0 -47554,46,-0.90759613,0 -47564,46,-1.420793603,0 -47569,46,0.125663772,0 -47576,46,0.476478492,0 -47588,46,1.99342999,0 -47607,46,2.643043678,0 -47623,46,0.764469104,0 -47628,0,0.764469104,183 -47629,21,0.764469104,0 -47642,21,0.748760242,0 -47661,21,1.076909777,0 -47677,21,1.234010413,0 -47696,21,0.324632381,0 -47703,0,0.324632381,7 -47704,9,0.324632381,0 -47726,9,-0.020943951,0 -47728,0,-0.020943951,305 -47729,52,-0.020943951,0 -47754,52,0.42062683,0 -47765,52,0.562001936,0 -47777,52,-0.301942878,0 -47796,52,-1.186879618,0 -47812,52,-1.227028039,0 -47828,52,-0.664980247,0 -47850,52,0.20245847,0 -47891,52,0.527094315,0 -47921,52,0.638799195,0 -47937,52,0.70687012,0 -47950,52,0.755741954,0 -47968,52,0.692906802,0 -47977,52,0.474733123,0 -47986,52,0.061086531,0 -47996,52,-0.610872837,0 -48009,52,-1.385880143,0 -48022,52,-2.038826997,0 -48033,52,-2.880589621,0 -48049,52,-3.464117899,0 -48066,52,-3.666833539,0 -48086,52,-3.507804154,0 -48101,52,-2.892817106,0 -48119,52,2.082478757,0 -48166,52,2.794999612,0 -48196,52,3.298122033,0 -48220,52,3.350539776,0 -48243,52,3.298122033,0 -48257,52,3.52877403,0 -48288,52,3.73149909,0 -48333,52,3.320836164,0 -48365,52,2.508564141,0 -48396,52,0.815086811,0 -48447,52,0.279253406,0 -48465,52,-0.0994838,0 -48483,52,-0.53233045,0 -48494,31,-0.53233045,0 -48499,31,-2.199469431,0 -48514,53,-2.199469431,0 -48560,53,-2.375839984,0 -48623,53,-1.848514181,0 -48711,53,-1.277650526,0 -48788,53,-1.305580453,0 -48875,53,-1.36493223,0 -48967,53,-1.337001865,0 -48983,53,0.630072198,0 -49029,53,0.90759613,0 -49045,53,2.485860711,0 -49062,53,3.53226904,0 -49072,53,4.098580425,0 -49084,53,3.813646317,0 -49098,53,2.333928853,0 -49109,26,2.333928853,0 -49113,26,0.909341604,0 -49124,52,0.909341604,0 -49125,52,-0.137881098,0 -49136,52,-0.905850658,0 -49149,52,-1.055963444,0 -49164,52,-0.390955744,0 -49180,52,0.802868706,0 -49196,52,1.825817242,0 -49212,52,2.543492999,0 -49229,52,3.067505085,0 -49246,52,3.472855044,0 -49263,52,3.874823118,0 -49292,52,4.107321762,0 -49321,52,3.715769347,0 -49358,52,2.980158824,0 -49376,52,2.311227333,0 -49388,52,0.654507815,0 -49389,49,0.654507815,0 -49412,49,-0.46251555,0 -49428,49,-2.012636315,0 -49447,49,-4.119559739,0 -49469,53,-4.119559739,0 -49475,53,-5.356293066,0 -49491,53,-5.424558692,0 -49499,53,-5.239027807,0 -49505,53,-5.228527146,0 -49513,53,-5.120027009,0 -49525,53,-5.03953469,0 -49531,53,-4.885567443,0 -49540,53,-4.568956635,0 -49551,53,-4.033896467,0 -49563,53,-3.476349917,0 -49574,53,-2.967930713,0 -49584,53,-2.622085212,0 -49591,53,-2.019620469,0 -49602,53,-1.556959483,0 -49610,53,-1.007089024,0 -49619,53,-0.579455797,0 -49626,53,-0.185005112,0 -49634,53,0.226893192,0 -49643,53,0.588182741,0 -49653,53,0.797632383,0 -49664,53,0.806359591,0 -49676,53,0.139626431,0 -49687,53,0.116937113,0 -49728,53,-0.075049172,0 -49770,53,-0.188495782,0 -49786,53,-0.581201185,0 -49826,53,-0.877923168,0 -49870,53,-0.719088046,0 -49883,0,-0.719088046,20 -49884,31,-0.719088046,0 -49915,31,-0.565492705,0 -49944,31,-0.591673521,0 -49964,31,-4.156274411,0 -49983,31,-4.299647265,0 -50009,24,-4.299647265,0 -50014,24,-4.472767326,0 -50036,24,-4.829585121,0 -50064,24,-5.156775696,0 -50078,0,-5.156775696,8 -50079,20,-5.156775696,0 -50080,20,-5.737946062,0 -50105,20,-5.872789361,0 -50113,0,-5.969119007,62 -50114,37,-5.969119007,0 -50135,37,-5.748452579,0 -50152,37,-5.391300454,0 -50165,37,-4.518237595,0 -50181,37,-3.102444891,0 -50201,37,-2.450932857,0 -50217,37,-2.478875092,0 -50223,37,-2.595887453,0 -50230,37,-3.064011146,0 -50261,37,-2.978411946,0 -50280,37,-2.370601047,0 -50293,0,-2.370601047,21 -50294,47,-2.370601047,0 -50299,47,-1.647739913,0 -50314,47,-1.085637443,0 -50327,47,-0.466006284,0 -50349,47,-0.321141686,0 -50360,47,-0.272272036,0 -50371,47,-0.181514442,0 -50395,47,0.116937113,0 -50418,47,0.328123077,0 -50432,47,0.635308395,0 -50459,47,0.764469104,0 -50479,44,0.764469104,0 -50480,44,0.890141428,0 -50510,44,1.038508237,0 -50533,44,1.29685233,0 -50554,60,1.29685233,0 -50558,60,1.46967303,0 -50570,60,1.754235811,0 -50587,60,1.975969823,0 -50601,60,2.283287327,0 -50619,60,2.863121934,0 -50639,60,4.10557349,0 -50674,60,4.348607861,0 -50689,60,4.149281054,0 -50709,60,3.56721961,0 -50724,60,-1.078655309,0 -50757,60,-1.136258239,0 -50763,60,-0.961706065,0 -50770,60,-0.785414313,0 -50774,60,-0.457279451,0 -50780,60,-0.069813181,0 -50785,60,0.591673521,0 -50792,60,1.099601744,0 -50796,60,-2.48935353,0 -50802,60,-2.808973208,0 -50818,60,-2.845654421,0 -50828,60,-2.754826128,0 -50839,60,-1.328273669,0 -50844,60,-0.918068978,0 -50866,60,-0.853486727,0 -50876,60,-0.959960575,0 -50895,60,-1.157204945,0 -50905,60,-1.412065206,0 -50915,60,-1.640756708,0 -50926,60,-1.845022332,0 -50938,60,-2.124385192,0 -50961,60,-2.234393172,0 -50976,60,-2.272809917,0 -50985,60,-2.478875092,0 -51013,60,-2.70417387,0 -51031,60,-2.878842844,0 -51046,60,-2.964436984,0 -51102,60,-2.779279446,0 -51132,60,-2.681468137,0 -51149,60,-2.538253631,0 -51178,60,-2.442200988,0 -51205,60,-2.396795862,0 -51227,60,-2.227408381,0 -51263,60,-2.019620469,0 -51283,60,-1.607586704,0 -51308,60,-1.326528032,0 -51321,60,-1.157204945,0 -51330,60,-1.052472397,0 -51344,60,-1.204335405,0 -51363,60,-2.05454154,0 -51375,60,-1.649485716,0 -51390,60,-1.509824512,0 -51400,60,-1.169423903,0 -51411,60,-0.282744092,0 -51422,60,-1.265431246,0 -51433,60,-1.654723133,0 -51444,60,-1.057708968,0 -51454,60,0.808105034,0 -51464,6,0.808105034,0 -51469,48,0.808105034,0 -51472,48,2.218677422,0 -51488,48,2.829933808,0 -51505,48,2.559211188,0 -51568,48,2.681468137,0 -51609,48,2.237885576,0 -51627,48,0.582946573,0 -51651,48,-0.364775432,0 -51662,48,-1.089128514,0 -51673,48,-2.026604644,0 -51684,40,-2.026604644,0 -51694,40,-2.241377986,0 -51709,49,-2.241377986,0 -51713,49,-1.956763777,0 -51732,49,-1.899146502,0 -51752,49,-1.855497892,0 -51812,49,-1.604095146,0 -51859,49,-1.462690212,0 -51874,47,-0.666725653,0 -51922,47,0.001745329,0 -51954,60,0.001745329,0 -51957,60,0.26703601,0 -51978,60,0.717342627,0 -52052,60,0.726069727,0 -52079,60,0.605636655,0 -52119,60,0.607382049,0 -52132,60,0.715597208,0 -52160,60,0.701633873,0 -52219,60,0.78192344,0 -52280,60,1.113566088,0 -52300,60,1.865973494,0 -52319,60,2.994133917,0 -52351,60,3.163591378,0 -52368,60,3.109432943,0 -52378,60,2.597633959,0 -52407,60,2.330436295,0 -52429,60,2.389810546,0 -52440,60,2.24661661,0 -52453,60,1.593620493,0 -52465,60,0.825559491,0 -52478,60,0.476478492,0 -52491,60,-0.394446457,0 -52520,60,-1.410319529,0 -52546,60,-1.61282405,0 -52559,60,-1.487130137,0 -52570,60,-1.148477139,0 -52594,60,-0.521858184,0 -52609,53,-0.521858184,0 -52622,53,-0.071558512,0 -52634,53,0.246091921,0 -52639,58,0.246091921,0 -52648,58,0.247837261,0 -52661,58,-0.080285163,0 -52677,58,-0.738287687,0 -52696,58,-1.319545493,0 -52712,58,-1.757727546,0 -52729,58,-2.150577092,0 -52746,58,-2.726879881,0 -52768,58,-3.277155445,0 -52784,58,-3.923766641,0 -52803,58,-4.374837606,0 -52825,58,-4.147532721,0 -52854,58,-3.015096776,0 -52864,47,-3.015096776,0 -52883,47,-0.912832552,0 -52894,57,-0.912832552,0 -52918,57,0.53233045,0 -52945,57,1.302089201,0 -52970,57,1.314308597,0 -52988,57,1.300343577,0 -53018,57,2.044065167,0 -53050,57,3.841612498,0 -53081,57,4.145784391,0 -53101,57,0.595164302,0 -53199,57,-0.101229131,0 -53218,57,-0.914578027,0 -53236,57,-2.484114304,0 -53280,57,-2.468396709,0 -53294,57,-2.038826997,0 -53307,57,-0.567238091,0 -53330,57,0.537566588,0 -53354,57,1.272413688,0 -53383,57,1.609332485,0 -53429,57,1.586637411,0 -53466,57,1.494113005,0 -53501,57,1.46094451,0 -53617,57,1.595366266,0 -53629,32,1.595366266,0 -53649,43,1.595366266,0 -53672,43,1.63901091,0 -53729,43,1.179897323,0 -53759,43,-0.507895179,0 -53800,43,-1.010580037,0 -53822,43,-1.895654587,0 -53863,43,-2.608113029,0 -53900,43,-2.353138019,0 -53937,43,-1.012325545,0 -53974,25,-1.012325545,0 -53980,25,-0.602145869,0 -53989,36,-0.602145869,0 -54004,36,-0.642289997,0 -54058,36,-0.792396064,0 -54099,33,-0.792396064,0 -54127,33,-0.855232184,0 -54164,33,-0.891886895,0 -54204,36,-0.891886895,0 -54224,36,-0.617854417,0 -54278,36,-0.581201185,0 -54308,0,-0.581201185,59 -54309,45,-0.581201185,0 -54332,45,-1.918352119,0 -54423,45,-3.31209992,0 -54449,34,-3.31209992,0 -54504,42,-3.31209992,0 -54516,42,-4.705385075,0 -54611,42,-4.897813982,0 -54653,42,-4.46926969,0 -54695,42,-4.133546149,0 -54726,42,-4.170261246,0 -54755,42,-4.507744292,0 -54781,42,-4.882068459,0 -54801,42,-5.232027354,0 -54822,42,-5.456067601,0 -54834,18,-5.456067601,0 -54844,18,-5.461319191,0 -54849,34,-5.461319191,0 -54902,34,-5.109527638,0 -54938,34,-4.757862178,0 -54954,27,-4.757862178,0 -54960,27,-4.317132954,0 -54969,60,-4.317132954,0 -54981,60,-3.768202542,0 -55003,60,-2.763559418,0 -55033,60,-2.065017959,0 -55053,60,-1.46967303,0 -55090,60,-1.242738398,0 -55128,60,-0.54629349,0 -55167,60,0.591673521,0 -55195,60,-0.373502197,0 -55284,60,-0.197222461,0 -55308,60,0.20769448,0 -55360,60,0.406663957,0 -55391,60,0.39793717,0 -55417,60,0.186750447,0 -55435,60,-0.061086531,0 -55451,60,-0.235619885,0 -55466,60,-0.275762721,0 -55480,60,-0.164061097,0 -55498,60,0.12391844,0 -55509,45,0.12391844,0 -55521,45,0.272272036,0 -55532,45,0.630072198,0 -55534,58,0.630072198,0 -55587,58,0.602145869,0 -55601,58,0.750505669,0 -55620,58,1.103092826,0 -55633,58,-1.083891908,0 -55658,58,-2.693694266,0 -55682,58,-4.053126478,0 -55720,58,-4.647663246,0 -55747,58,-4.481511465,0 -55763,58,-3.233475974,0 -55789,28,-1.824071332,0 -55804,51,-1.824071332,0 -55810,51,-0.980906498,0 -55831,51,-0.701633873,0 -55878,51,0.347321918,0 -55912,51,0.53233045,0 -55932,51,0.541057348,0 -55983,51,-0.003490659,0 -56041,51,-0.221657178,0 -56054,51,-0.493932195,0 -56072,51,-0.62134521,0 -56092,51,-0.572474248,0 -56123,51,0.050614553,0 -56184,51,0.272272036,0 -56204,43,0.272272036,0 -56217,43,-0.068067851,0 -56229,58,-0.068067851,0 -56231,58,-0.492186823,0 -56253,58,-0.783668876,0 -56274,58,-1.242738398,0 -56296,58,-1.471418737,0 -56318,58,-2.34266027,0 -56346,58,-2.926006432,0 -56361,58,-2.981905704,0 -56382,58,-2.719893386,0 -56419,58,-2.808973208,0 -56433,58,-2.919019153,0 -56449,58,-2.908538286,0 -56476,58,-2.835173997,0 -56510,58,-2.910285093,0 -56537,58,-2.983652586,0 -56559,58,-2.964436984,0 -56590,58,-2.882336399,0 -56683,58,-3.018590611,0 -56745,58,-2.990640133,0 -56758,58,-2.845654421,0 -56783,58,-2.812466624,0 -56809,42,-2.812466624,0 -56829,42,-2.833427265,0 -56834,54,-2.833427265,0 -56895,54,-2.83692073,0 -56906,54,-2.964436984,0 -56917,54,-2.092955297,0 -56938,54,-0.448552626,0 -56953,54,0.076794502,0 -56979,24,0.076794502,0 -57067,24,0.178023772,0 -57087,24,0.275762721,0 -57103,24,0.329868425,0 -57110,24,0.459024817,0 -57114,24,0.759232812,0 -57117,24,1.986445909,0 -57124,12,1.986445909,0 -57125,12,2.83692073,0 -57132,12,2.932993741,0 -57134,46,2.932993741,0 -57136,46,2.953955838,0 -57147,46,2.98539947,0 -57168,46,3.027325232,0 -57193,46,3.062264179,0 -57207,46,3.100697883,0 -57218,46,3.165338455,0 -57234,46,3.177568048,0 -57237,46,3.210763138,0 -57247,46,3.22998167,0 -57255,46,3.242211769,0 -57265,46,3.238717445,0 -57275,46,3.22998167,0 -57282,46,3.219498805,0 -57289,46,3.161844303,0 -57349,46,3.19329195,0 -57380,46,3.226487374,0 -57384,12,3.226487374,0 -57394,37,3.226487374,0 -57456,37,3.224740229,0 -57474,37,3.228234521,0 -57482,37,3.245706101,0 -57495,37,3.268419451,0 -57507,37,3.315594411,0 -57526,37,3.322583419,0 -57530,37,3.294627582,0 -57546,37,3.20901601,0 -57558,37,3.114674002,0 -57567,37,2.983652586,0 -57578,37,2.948715289,0 -57589,37,2.987146356,0 -57592,37,3.210763138,0 -57618,37,3.224740229,0 -57628,37,3.217751667,0 -57643,37,3.191544842,0 -57663,37,3.132144321,0 -57693,37,3.097203872,0 -57716,37,3.083227905,0 -57745,37,2.138354169,0 -57760,37,3.6196471,0 -57774,13,3.6196471,0 -57776,13,4.144036063,0 -57786,13,4.166764522,0 -57797,13,3.815394186,0 -57819,13,3.785680732,0 -57833,0,3.785680732,11 -57834,48,3.785680732,0 -57848,0,3.785680732,7 -57849,47,3.785680732,0 -57854,47,3.588190369,0 -57868,0,3.588190369,13 -57869,40,3.588190369,0 -57880,40,2.840414201,0 -57900,40,0.799377824,0 -57928,0,0.799377824,16 -57929,16,0.799377824,0 -57931,16,-0.216421165,0 -57948,16,-0.523603561,0 -57964,19,-0.523603561,0 -57965,19,-0.413645392,0 -57974,19,-0.314160299,0 -57988,19,-0.389210388,0 -57994,9,-0.389210388,0 -58004,49,-0.389210388,0 -58017,49,-0.408409316,0 -58032,49,-0.242601242,0 -58045,49,0.005235988,0 -58058,49,0.209439816,0 -58072,49,0.560256552,0 -58119,49,0.460770183,0 -58147,49,-0.069813181,0 -58180,49,-0.734796839,0 -58232,49,0.141371764,0 -58311,49,0.703379288,0 -58329,30,0.703379288,0 -58349,44,0.703379288,0 -58383,44,0.687670565,0 -58395,44,0.326377729,0 -58451,44,0.26703601,0 -58467,44,0.319396339,0 -58484,34,0.319396339,0 -58504,48,0.319396339,0 -58510,48,0.296706844,0 -58534,48,0.223402516,0 -58561,48,0.363030079,0 -58602,48,0.495677567,0 -58613,48,0.619599813,0 -58630,48,0.685925153,0 -58666,48,0.762723673,0 -58684,48,0.97217902,0 -58715,48,1.132767132,0 -58733,48,1.396354145,0 -58748,0,1.396354145,5 -58749,34,1.396354145,0 -58756,34,1.534264783,0 -58769,34,1.93406591,0 -58813,34,1.867719431,0 -58842,34,1.293361086,0 -58879,19,1.293361086,0 -58881,19,1.211317741,0 -58889,38,1.211317741,0 -58899,38,1.227028039,0 -58924,38,0.813341366,0 -58949,38,0.523603561,0 -58959,38,-0.174533102,0 -58977,38,-0.806359591,0 -58995,38,-1.078655309,0 -59020,38,-0.490441452,0 -59049,38,0.057595872,0 -59054,32,0.057595872,0 -59062,32,0.84825036,0 -59074,45,0.84825036,0 -59075,45,3.904538606,0 -59096,45,5.260029474,0 -59121,45,5.193525773,0 -59138,45,4.931055328,0 -59164,45,5.034285418,0 -59179,45,5.081529863,0 -59186,45,4.609183747,0 -59206,45,3.20901601,0 -59226,45,1.66170637,0 -59241,45,-0.958215085,0 -59245,45,-3.402959358,0 -59266,45,-4.378334951,0 -59287,45,-4.689642449,0 -59304,45,-5.127026652,0 -59320,45,-5.142776033,0 -59331,45,-3.633628098,0 -59344,19,-3.633628098,0 -59352,19,-1.302089201,0 -59354,50,-1.302089201,0 -59372,50,-0.493932195,0 -59382,50,0.015707963,0 -59397,50,-0.073303842,0 -59430,50,-0.624836004,0 -59452,50,-0.860468557,0 -59470,50,-0.97217902,0 -59492,50,-1.017562072,0 -59516,50,-1.045490312,0 -59545,50,-1.539502007,0 -59559,46,-1.539502007,0 -59569,46,-1.625044557,0 -59584,52,-1.625044557,0 -59604,52,-1.54124775,0 -59641,52,-1.431267708,0 -59658,52,-1.235756008,0 -59672,52,-0.858723099,0 -59698,52,-0.778432569,0 -59714,52,-0.813341366,0 -59729,52,-0.940760219,0 -59743,52,-0.841268545,0 -59765,52,-0.464260917,0 -59777,52,-0.165806431,0 -59790,52,-0.294961499,0 -59802,52,-0.766214536,0 -59813,52,-1.609332485,0 -59836,52,-1.406828178,0 -59841,52,-0.846504906,0 -59847,52,0.21991184,0 -59855,52,2.148830957,0 -59889,52,1.858989755,0 -59896,52,1.562196744,0 -59902,52,1.263685638,0 -59908,52,0.811595921,0 -59916,52,0.916323502,0 -59924,52,-0.197222461,0 -59930,52,-1.282887372,0 -59937,52,-2.452679236,0 -59945,52,-3.525279029,0 -59949,41,-3.525279029,0 -59954,41,-4.254185697,0 -59966,41,-4.373088938,0 -59969,72,-4.373088938,0 -59976,72,-3.885310859,0 -59988,72,-3.188050632,0 -59997,72,-1.920098091,0 -60012,72,-1.214808913,0 -60027,72,-0.209439816,0 -60074,72,0.047123893,0 -60096,72,0.052359882,0 -60117,72,-0.02443461,0 -60152,72,0.150098428,0 -60186,72,0.567238091,0 -60218,72,0.841268545,0 -60235,72,1.244483997,0 -60275,72,0.422372191,0 -60291,72,-1.307326081,0 -60305,72,-1.247975197,0 -60318,72,0.446807262,0 -60343,72,1.95152579,0 -60360,72,2.92076597,0 -60379,72,3.172326782,0 -60403,72,2.601126976,0 -60421,72,1.518553159,0 -60434,72,-0.452043355,0 -60452,72,-2.030096739,0 -60470,72,-2.46141115,0 -60474,70,-2.46141115,0 -60487,70,-1.068182126,0 -60505,70,0.879668632,0 -60521,70,2.340913984,0 -60536,70,3.090215873,0 -60547,70,3.388980621,0 -60549,84,3.388980621,0 -60558,84,2.725133255,0 -60579,84,1.488875853,0 -60593,84,-0.410154674,0 -60607,84,-1.747252354,0 -60620,84,-2.288526051,0 -60634,84,-2.368854738,0 -60657,84,-2.227408381,0 -60706,84,-1.539502007,0 -60762,84,-0.870941317,0 -60789,84,0.059341202,0 -60827,84,0.495677567,0 -60873,84,0.521858184,0 -60901,84,0.562001936,0 -60914,84,0.305433569,0 -60957,84,-0.061086531,0 -60979,84,-0.223402516,0 -61003,84,-0.071558512,0 -61037,84,0.094247808,0 -61050,84,0.459024817,0 -61097,84,0.378738259,0 -61117,84,0.521858184,0 -61153,84,1.092619588,0 -61175,84,2.660509244,0 -61213,84,1.579654344,0 -61227,84,-0.176278437,0 -61238,84,-2.581915461,0 -61256,84,-3.006362219,0 -61275,84,-1.705351969,0 -61300,84,-0.644035398,0 -61318,84,-0.345576568,0 -61326,84,-0.089011815,0 -61340,84,-0.183259777,0 -61352,84,-0.886650494,0 -61368,84,-1.605840925,0 -61378,84,1.55346798,0 -61397,84,-1.083891908,0 -61411,84,-0.726069727,0 -61433,84,-0.226893192,0 -61455,84,0.068067851,0 -61469,84,0.254818622,0 -61476,84,0.314160299,0 -61493,84,0.363030079,0 -61510,84,0.562001936,0 -61545,84,0.656253219,0 -61563,84,0.633562995,0 -61578,84,0.535821208,0 -61591,84,0.438080445,0 -61602,84,0.593418911,0 -61630,84,0.570728862,0 -61646,84,0.666725653,0 -61667,84,0.944251187,0 -61690,84,1.167678335,0 -61720,84,1.007089024,0 -61744,84,0.919814455,0 -61753,84,0.856977641,0 -61777,84,0.918068978,0 -61800,84,0.968688032,0 -61817,84,1.059454493,0 -61843,0,1.059454493,7 -61844,52,1.059454493,0 -61861,52,0.860468557,0 -61880,52,0.406663957,0 -61919,52,0.443316534,0 -61930,52,0.488696081,0 -61939,52,0.504404432,0 -61954,52,0.459024817,0 -61965,52,0.3927011,0 -61984,52,0.441571171,0 -62003,52,0.425862912,0 -62014,52,0.287980123,0 -62025,52,0.148353095,0 -62031,52,-0.179769107,0 -62040,52,-0.541057348,0 -62054,52,-0.671961876,0 -62072,52,-0.677198102,0 -62082,52,-0.830795838,0 -62094,52,-1.055963444,0 -62107,52,-1.323036761,0 -62129,52,-1.314308597,0 -62139,39,-0.052359882,0 -62159,39,0.640544596,0 -62164,51,0.640544596,0 -62171,51,0.509640554,0 -62182,51,0.277508063,0 -62192,51,0.598655085,0 -62202,51,1.071673185,0 -62211,51,0.926796367,0 -62241,51,1.200844242,0 -62279,51,0.956469596,0 -62308,51,0.390955744,0 -62323,51,-0.275762721,0 -62344,51,-0.425862912,0 -62349,26,-0.425862912,0 -62366,26,-0.064577191,0 -62369,41,-0.064577191,0 -62386,41,0.467751651,0 -62409,41,0.539311968,0 -62432,41,0.144862429,0 -62455,41,1.005343518,0 -62473,41,1.972477804,0 -62488,41,2.43870825,0 -62504,41,2.365362124,0 -62519,41,1.548230733,0 -62534,16,1.548230733,0 -62539,58,1.548230733,0 -62542,58,1.373660512,0 -62556,58,1.640756708,0 -62572,58,2.466650317,0 -62589,58,4.04963009,0 -62614,58,5.121776915,0 -62640,58,5.251278724,0 -62653,0,5.251278724,11 -62654,25,5.251278724,0 -62665,25,5.139276149,0 -62680,25,5.078030197,0 -62695,25,5.071030903,0 -62710,25,5.050033316,0 -62726,25,4.964297762,0 -62729,14,4.964297762,0 -62739,26,4.789349694,0 -62755,26,4.376586277,0 -62770,26,3.130397281,0 -62794,26,2.148830957,0 -62812,26,1.045490312,0 -62832,26,0.026179939,0 -62838,0,0.026179939,134 -62839,35,0.026179939,0 -62852,35,-1.752489945,0 -62858,35,-2.608113029,0 -62865,35,-3.245706101,0 -62875,35,-2.066764033,0 -62884,35,0.064577191,0 -62898,35,1.17466061,0 -62908,35,-0.66323484,0 -62914,35,-1.064691071,0 -62920,35,-1.183388469,0 -62926,35,-0.104719793,0 -62931,35,0.408409316,0 -62942,35,0.609127442,0 -62957,35,0.623090606,0 -62969,35,0.541057348,0 -62978,35,0.567238091,0 -62986,35,-2.34266027,0 -63002,35,-1.282887372,0 -63009,35,-0.670216468,0 -63019,35,-0.078539832,0 -63027,35,0.891886895,0 -63034,21,0.891886895,0 -63043,21,1.328273669,0 -63049,35,1.328273669,0 -63059,35,1.817087701,0 -63080,35,3.039553779,0 -63096,35,-3.238717445,0 -63107,35,5.755456994,0 -63122,35,6.556099111,0 -63134,35,6.256422739,0 -63154,35,5.314285928,0 -63172,35,4.691391619,0 -63186,35,4.124804624,0 -63198,35,3.292880359,0 -63219,19,2.863121934,0 -63229,42,2.863121934,0 -63233,42,2.480621495,0 -63251,42,2.169784673,0 -63277,42,2.148830957,0 -63326,42,1.371914854,0 -63442,42,0.837777641,0 -63469,11,0.837777641,0 -63474,35,0.837777641,0 -63491,35,0.350812619,0 -63591,35,0.380483613,0 -63615,35,0.387465033,0 -63639,19,0.387465033,0 -63649,47,0.387465033,0 -63666,47,0.359539375,0 -63725,47,0.20769448,0 -63782,47,-0.314160299,0 -63851,47,-0.37001149,0 -63895,47,-0.3927011,0 -63964,47,-0.48695071,0 -64011,47,-0.558511168,0 -64014,19,-0.558511168,0 -64029,30,-0.558511168,0 -64091,30,-0.56374732,0 -64129,30,-0.549784254,0 -64164,16,-0.549784254,0 -64174,30,-0.549784254,0 -64175,30,-0.457279451,0 -64199,30,-0.705124704,0 -64219,30,-0.647526202,0 -64240,30,-0.235619885,0 -64261,30,0.514876679,0 -64274,12,1.148477139,0 -64284,21,1.148477139,0 -64288,21,1.87121131,0 -64316,21,1.813595892,0 -64337,21,1.132767132,0 -64357,21,0.020943951,0 -64358,0,0.020943951,8 -64359,36,0.020943951,0 -64379,36,-1.2165545,0 -64394,14,-1.2165545,0 -64399,32,-1.2165545,0 -64400,32,-1.995176014,0 -64421,32,-2.503324865,0 -64454,32,-2.534760727,0 -64489,32,-2.45791838,0 -64521,32,-2.384571574,0 -64550,32,-2.311227333,0 -64564,16,-2.311227333,0 -64569,34,-2.311227333,0 -64577,34,-2.187246249,0 -64612,34,-1.989937947,0 -64652,34,-1.602349368,0 -64664,11,-1.602349368,0 -64669,34,-1.602349368,0 -64711,34,-1.204335405,0 -64754,31,-1.204335405,0 -64764,31,-0.701633873,0 -64786,31,0.467751651,0 -64808,31,2.405527539,0 -64829,32,2.405527539,0 -64846,32,3.149614832,0 -64879,21,3.149614832,0 -64880,21,2.829933808,0 -64893,21,2.625578274,0 -64894,46,2.625578274,0 -64900,46,2.388064221,0 -64906,46,2.244870401,0 -64911,46,1.78566158,0 -64921,46,0.862214016,0 -64937,46,0.274017378,0 -64946,46,-0.537566588,0 -64958,46,-1.150222698,0 -64966,46,-1.937557877,0 -64977,46,-2.702427265,0 -64990,46,-2.941727917,0 -65001,46,-2.801986396,0 -65013,46,-0.726069727,0 -65033,46,1.787407466,0 -65048,46,4.082846176,0 -65064,46,-4.7561129,0 -65076,46,3.457128222,0 -65100,46,2.882336399,0 -65114,46,2.405527539,0 -65128,46,0.745269388,0 -65161,46,-0.186750447,0 -65182,46,-0.284489436,0 -65209,46,-0.048869223,0 -65223,46,0.216421165,0 -65241,46,0.37001149,0 -65253,46,0.567238091,0 -65264,17,0.567238091,0 -65274,17,0.638799195,0 -65279,62,0.638799195,0 -65289,62,-0.652762411,0 -65313,62,0.48520534,0 -65380,62,0.541057348,0 -65396,62,0.832541288,0 -65443,62,2.003906149,0 -65515,62,2.187246249,0 -65541,62,2.620338684,0 -65645,62,2.777532769,0 -65669,62,2.838667465,0 -65725,62,2.414259254,0 -65766,62,1.330019306,0 -65808,62,0.7749417,0 -65836,62,0.699888458,0 -65839,45,0.699888458,0 -65852,45,0.581201185,0 -65864,56,0.581201185,0 -65868,56,0.164061097,0 -65903,56,0.02443461,0 -65912,56,0.366520784,0 -65921,56,0.038397245,0 -65934,56,-0.296706844,0 -65945,56,-0.509640554,0 -65952,56,-0.734796839,0 -65959,56,-1.532519043,0 -65987,56,-2.031842788,0 -65999,54,-2.031842788,0 -66025,54,-1.857243823,0 -66065,54,-1.804866389,0 -66074,57,-1.804866389,0 -66092,57,-2.003906149,0 -66142,57,-2.326943744,0 -66156,57,-2.365362124,0 -66162,57,-2.208200316,0 -66168,57,-1.853751963,0 -66175,57,-1.110074998,0 -66187,57,0.874432242,0 -66192,57,-1.658214749,0 -66214,57,-1.715827008,0 -66236,57,-0.867450395,0 -66261,57,0.270526694,0 -66277,57,1.581400109,0 -66279,40,1.581400109,0 -66291,40,2.878842844,0 -66303,40,4.287407438,0 -66304,62,4.287407438,0 -66319,62,5.216276521,0 -66341,62,4.852327573,0 -66363,62,1.218300088,0 -66423,62,0.35255797,0 -66443,62,-0.038397245,0 -66460,62,-0.29147081,0 -66477,62,-0.591673521,0 -66478,0,-0.591673521,10 -66479,33,-0.591673521,0 -66492,33,-1.452216012,0 -66518,33,-2.363615819,0 -66588,33,-2.833427265,0 -66619,23,-2.833427265,0 -66630,23,-2.796746305,0 -66634,56,-2.796746305,0 -66672,56,-2.470143102,0 -66724,56,-2.108670192,0 -66801,56,-1.167678335,0 -66874,56,-1.005343518,0 -66882,56,-0.822068595,0 -66897,56,-0.792396064,0 -66900,56,-0.492186823,0 -66947,56,-0.474733123,0 -66973,56,-0.502659058,0 -66999,22,-0.502659058,0 -67006,22,-0.495677567,0 -67014,42,-0.495677567,0 -67060,42,-0.640544596,0 -67107,42,-0.727815149,0 -67136,42,-0.738287687,0 -67148,42,-0.541057348,0 -67187,42,-0.115191782,0 -67217,42,0.200713134,0 -67236,42,0.514876679,0 -67254,31,0.514876679,0 -67264,31,0.678943511,0 -67274,26,0.678943511,0 -67294,26,0.692906802,0 -67312,26,0.623090606,0 -67314,85,0.623090606,0 -67333,85,0.42062683,0 -67352,85,-0.469497018,0 -67398,85,-0.876177704,0 -67417,85,-1.371914854,0 -67429,85,-2.052795475,0 -67449,85,-2.353138019,0 -67460,85,-2.536507178,0 -67469,85,-2.644790228,0 -67476,85,-2.737359674,0 -67484,85,-2.845654421,0 -67492,85,-3.006362219,0 -67503,85,-3.200280402,0 -67512,85,-3.408201418,0 -67521,85,-3.665085864,0 -67531,85,-3.897546664,0 -67540,85,-4.166764522,0 -67549,85,-4.617928968,0 -67561,85,-5.109527638,0 -67573,85,-5.265279964,0 -67583,85,-5.085029541,0 -67584,32,-5.085029541,0 -67592,32,-4.598689575,0 -67601,32,-4.166764522,0 -67604,79,-4.166764522,0 -67606,79,-2.97142445,0 -67619,79,-1.204335405,0 -67642,79,-0.701633873,0 -67664,79,0.467751651,0 -67686,79,2.405527539,0 -67723,79,3.799663451,0 -67800,79,3.68605811,0 -67817,79,3.320836164,0 -67836,79,2.77229275,0 -67854,79,1.312562967,0 -67879,79,-0.006981317,0 -67893,79,-1.441741844,0 -67905,79,-4.177254724,0 -67934,79,-5.776470576,0 -67965,79,-6.133780785,0 -67974,46,-6.133780785,0 -68000,46,-5.209276233,0 -68033,46,-3.343550638,0 -68056,46,-1.279396141,0 -68078,46,-0.520112807,0 -68100,46,-0.712106371,0 -68196,46,-0.572474248,0 -68422,46,-0.591673521,0 -68458,46,-0.631817596,0 -68489,20,-0.631817596,0 -68504,45,-0.631817596,0 -68577,45,-0.635308395,0 -68623,45,-0.638799195,0 -68669,45,-1.150222698,0 -68743,0,-1.150222698,6 -68744,18,-1.150222698,0 -68758,18,-0.92330541,0 -68772,18,-0.792396064,0 -68778,0,-0.792396064,8 -68779,39,-0.792396064,0 -68797,39,-0.877923168,0 -68806,39,-0.937269252,0 -68811,39,-1.045490312,0 -68818,0,-1.045490312,49 -68819,39,-1.045490312,0 -68840,39,-1.249720799,0 -68860,39,-1.19037077,0 -68870,39,-1.045490312,0 -68880,39,-0.338595169,0 -68898,39,0.965197047,0 -68919,39,1.52728183,0 -68936,39,0.050614553,0 -69004,37,0.050614553,0 -69042,37,-3.607413842,0 -69069,37,-3.369760074,0 -69089,37,-3.154856022,0 -69108,37,-3.002868409,0 -69127,37,-2.932993741,0 -69144,37,-2.910285093,0 -69153,0,-2.910285093,5 -69154,49,-2.910285093,0 -69163,49,-3.175820958,0 -69213,49,-2.936487406,0 -69229,49,-1.031526172,0 -69266,49,-0.338595169,0 -69307,49,-0.403173242,0 -69341,49,-0.356048672,0 -69365,49,-0.155334428,0 -69389,49,0.198967797,0 -69404,22,0.198967797,0 -69414,50,0.675452692,0 -69431,50,1.466181619,0 -69448,50,2.712906918,0 -69475,50,3.070999032,0 -69491,50,2.807226502,0 -69507,50,2.202961781,0 -69521,50,1.314308597,0 -69538,50,0.314160299,0 -69560,50,-0.223402516,0 -69577,50,-0.438080445,0 -69594,50,-0.542802728,0 -69627,50,-0.753996525,0 -69649,50,-1.508078786,0 -69674,50,-2.391556873,0 -69694,50,-3.043047666,0 -69713,50,-3.216004532,0 -69733,50,-2.688454487,0 -69757,50,-1.600603591,0 -69785,50,-0.93552377,0 -69811,50,-0.764469104,0 -69836,50,-0.804614148,0 -69848,50,-0.755741954,0 -69889,50,-0.66847106,0 -69921,50,-0.991379492,0 -69943,0,-0.991379492,7 -69944,18,-0.991379492,0 -69953,0,-1.614569833,27 -69954,48,-1.614569833,0 -69981,48,-2.370601047,0 -70003,48,-3.140879552,0 -70025,48,-3.605666243,0 -70052,48,-3.617899485,0 -70077,48,-3.684310411,0 -70102,48,-3.782185076,0 -70122,48,-3.728003575,0 -70137,48,-3.56721961,0 -70152,48,-2.936487406,0 -70171,48,-2.085970932,0 -70185,48,-1.061200018,0 -70201,48,0.094247808,0 -70226,48,0.832541288,0 -70248,0,0.832541288,7 -70249,43,0.832541288,0 -70264,43,1.251466401,0 -70281,43,1.927081991,0 -70307,43,2.215185048,0 -70335,43,1.928827969,0 -70339,32,1.928827969,0 -70369,32,0.921559932,0 -70374,40,0.921559932,0 -70398,40,-0.218166503,0 -70424,40,-1.17291504,0 -70451,40,-1.810104088,0 -70480,40,-2.045811226,0 -70505,40,-2.010890279,0 -70529,40,-1.742014773,0 -70552,40,-1.138003794,0 -70578,0,-0.806359591,46 -70579,42,-0.806359591,0 -70594,42,-0.469497018,0 -70613,42,-0.127409104,0 -70629,42,-0.085521154,0 -70648,42,0.118682445,0 -70661,10,0.118682445,0 -70672,43,0.118682445,0 -70675,43,0.656253219,0 -70705,43,0.579455797,0 -70735,43,0.242601242,0 -70753,43,-0.143117096,0 -70769,43,-0.476478492,0 -70791,43,-0.539311968,0 -70807,43,-0.47996923,0 -70821,43,-0.263545327,0 -70838,43,0.118682445,0 -70851,43,0.727815149,0 -70868,43,1.204335405,0 -70885,43,1.534264783,0 -70901,43,1.745506493,0 -70925,43,1.338747506,0 -70957,43,0.684179742,0 -70979,20,0.684179742,0 -70990,20,0.39793717,0 -70994,35,0.39793717,0 -71034,35,0.518367431,0 -71050,35,0.553275018,0 -71068,35,0.549784254,0 -71082,35,0.448552626,0 -71094,35,0.106465125,0 -71105,35,-0.858723099,0 -71118,35,-1.031526172,0 -71126,35,-1.132767132,0 -71133,35,-1.151968259,0 -71145,35,-0.994870495,0 -71158,35,-0.717342627,0 -71170,35,0.017453293,0 -71196,35,0.415390751,0 -71220,35,0.396191813,0 -71270,35,0.492186823,0 -71274,64,0.492186823,0 -71289,64,3.525279029,0 -71328,0,3.525279029,5 -71329,85,3.525279029,0 -71336,85,4.233204028,0 -71363,85,2.347899138,0 -71417,85,2.519042734,0 -71443,85,2.906791481,0 -71456,85,3.18455643,0 -71468,85,3.588190369,0 -71512,85,3.462370477,0 -71571,85,2.641297131,0 -71600,85,0.794141503,0 -71631,85,-0.095993138,0 -71650,85,-0.410154674,0 -71689,85,-0.380483613,0 -71708,85,-0.37001149,0 -71740,85,-0.141371764,0 -71814,85,-0.415390751,0 -71831,85,-1.033271687,0 -71844,85,-1.817087701,0 -71859,85,-2.026604644,0 -71869,85,-1.157204945,0 -71889,85,-0.095993138,0 -71904,85,0.466006284,0 -71919,85,1.080400841,0 -71958,85,1.001852508,0 -72008,85,0.598655085,0 -72093,85,0.226893192,0 -72105,85,1.649485716,0 -72176,85,1.78566158,0 -72193,85,1.66170637,0 -72205,85,1.804866389,0 -72224,85,2.166292374,0 -72238,85,2.543492999,0 -72250,85,2.77054608,0 -72260,85,2.912031901,0 -72269,85,3.023831378,0 -72279,85,3.133891363,0 -72310,85,3.432664615,0 -72353,85,6.717376689,0 -72364,17,6.717376689,0 -72374,49,6.717376689,0 -72378,49,6.000647462,0 -72404,49,5.566357329,0 -72423,49,5.524340617,0 -72438,49,5.49282936,0 -72452,49,5.478824706,0 -72466,49,5.499831767,0 -72482,49,5.321286988,0 -72554,49,4.390575741,0 -72625,49,3.362770846,0 -72642,49,1.911368242,0 -72656,49,0.792396064,0 -72671,49,0.087266485,0 -72684,46,0.087266485,0 -72688,46,-0.040142575,0 -72703,46,0.034906586,0 -72717,46,0.031415928,0 -72731,46,-0.364775432,0 -72750,46,-1.846768256,0 -72797,46,-2.592394445,0 -72823,46,-2.571436533,0 -72848,46,-2.23963178,0 -72864,46,-2.115654624,0 -72877,46,-2.316466124,0 -72921,46,-2.295511036,0 -72931,46,-2.262332557,0 -72934,34,-2.262332557,0 -72939,34,-2.211692679,0 -72947,34,-2.133115793,0 -72954,47,-2.133115793,0 -72956,47,-1.982953875,0 -72970,47,-1.157204945,0 -73010,47,-0.801123265,0 -73027,47,-0.698143043,0 -73047,47,-0.823814043,0 -73101,47,-0.603891262,0 -73172,47,0.089011815,0 -73242,47,2.082478757,0 -73302,47,3.507804154,0 -73329,28,3.507804154,0 -73344,35,3.507804154,0 -73387,35,3.848604137,0 -73411,35,4.27691626,0 -73477,35,4.570705609,0 -73502,35,4.665154382,0 -73526,35,4.322378713,0 -73550,35,1.728047936,0 -73559,14,1.728047936,0 -73578,0,1.728047936,49 -73579,22,1.728047936,0 -73635,22,1.158950508,0 -73643,0,1.158950508,25 -73644,52,1.158950508,0 -73674,52,0.682434331,0 -73749,52,0.153589095,0 -73837,52,-0.127409104,0 -73857,52,0.029670598,0 -73874,52,0.204203806,0 -73894,52,0.478223861,0 -73924,52,0.918068978,0 -74004,52,0.755741954,0 -74022,52,0.356048672,0 -74035,52,-0.614363626,0 -74059,52,-2.023112554,0 -74089,52,-3.19503906,0 -74115,52,-3.859091666,0 -74146,52,-4.514739816,0 -74176,52,-5.298533735,0 -74215,52,-5.407054208,0 -74250,52,-5.400052506,0 -74281,10,-5.400052506,0 -74284,10,-5.274030843,0 -74292,53,-5.274030843,0 -74325,53,-4.668652643,0 -74357,53,-3.997185453,0 -74379,53,-3.231728821,0 -74410,53,-3.023831378,0 -74428,53,-3.009856036,0 -74457,53,-2.821200194,0 -74504,53,-2.602873487,0 -74528,53,-2.482367899,0 -74550,53,-2.426483716,0 -74569,53,-2.403781201,0 -74586,53,-2.409020221,0 -74601,53,-2.475382292,0 -74625,53,-3.189797736,0 -74667,53,-3.277155445,0 -74683,0,-3.277155445,6 -74684,42,-3.277155445,0 -74686,42,-2.978411946,0 -74701,42,-2.695440863,0 -74716,42,-2.396795862,0 -74733,42,-2.178515444,0 -74746,42,-1.824071332,0 -74762,42,-1.331764945,0 -74777,42,-0.963451556,0 -74791,42,-2.169784673,0 -74806,42,0.858723099,0 -74811,42,-0.287980123,0 -74814,42,-1.316054228,0 -74817,42,-2.567943569,0 -74821,42,-3.691301222,0 -74825,42,-4.236700947,0 -74828,42,-4.408062813,0 -74831,42,-4.177254724,0 -74835,42,-3.689553516,0 -74838,42,-2.557464716,0 -74841,42,-2.92425961,0 -74844,42,-3.048288511,0 -74853,0,-3.114674002,196 -74854,82,-3.114674002,0 -74862,82,-3.079733931,0 -74869,82,-2.931246911,0 -74876,82,-2.585408449,0 -74887,82,-2.154069368,0 -74901,82,-1.733285492,0 -74916,82,-1.532519043,0 -74928,82,-1.63901091,0 -74940,82,-1.913114209,0 -74952,82,0.169297099,0 -74980,82,0.588182741,0 -75002,82,0.56374732,0 -75023,82,-0.174533102,0 -75049,18,-0.673707284,0 -75061,18,-0.862214016,0 -75069,49,-0.837777641,0 -75077,49,-0.630072198,0 -75086,49,0.062831861,0 -75101,49,0.506149805,0 -75119,49,-0.270526694,0 -75136,49,-1.200844242,0 -75153,49,-1.298597953,0 -75169,31,-1.298597953,0 -75172,31,-0.911087077,0 -75189,57,-0.911087077,0 -75193,57,-0.684179742,0 -75212,57,-0.575965022,0 -75225,57,-0.478223861,0 -75238,57,-0.394446457,0 -75247,57,-0.073303842,0 -75275,57,0.136135766,0 -75291,57,0.340340518,0 -75311,57,0.544548109,0 -75335,57,0.698143043,0 -75361,57,0.760978242,0 -75388,57,0.284489436,0 -75449,25,0.284489436,0 -75454,25,-0.116937113,0 -75469,33,-0.116937113,0 -75473,33,-0.70687012,0 -75492,33,-0.937269252,0 -75504,39,-0.937269252,0 -75509,39,-0.548038872,0 -75526,39,-0.017453293,0 -75542,39,0.312414953,0 -75555,39,0.542802728,0 -75569,39,0.614363626,0 -75584,39,0.439825808,0 -75602,39,0.21991184,0 -75604,23,0.21991184,0 -75616,23,0.052359882,0 -75619,36,0.052359882,0 -75631,36,-0.061086531,0 -75660,36,-0.20769448,0 -75719,33,-0.20769448,0 -75740,33,-0.169297099,0 -75756,33,-0.006981317,0 -75767,33,0.085521154,0 -75780,33,-0.075049172,0 -75789,42,-0.075049172,0 -75793,42,-0.614363626,0 -75813,42,-1.092619588,0 -75822,42,-1.35969527,0 -75830,42,-1.431267708,0 -75840,42,-1.518553159,0 -75854,42,-1.497604445,0 -75866,42,-0.940760219,0 -75868,0,-0.940760219,29 -75869,20,-0.940760219,0 -75882,20,-0.635308395,0 -75888,20,-0.493932195,0 -75894,20,-0.499168312,0 -75898,20,-0.626581401,0 -75903,20,-1.452216012,0 -75915,20,-3.19329195,0 -75934,9,-3.19329195,0 -75939,31,-3.19329195,0 -75942,31,-1.602349368,0 -75952,31,0.127409104,0 -75966,31,1.340493149,0 -75969,83,1.340493149,0 -75984,83,1.600603591,0 -75996,83,1.410319529,0 -75999,27,1.410319529,0 -76007,27,1.2165545,0 -76014,85,1.2165545,0 -76019,85,2.230900774,0 -76056,85,2.436961884,0 -76138,85,2.389810546,0 -76158,0,2.389810546,18 -76159,85,2.389810546,0 -76212,85,3.077986948,0 -76221,85,3.006362219,0 -76230,85,2.828187082,0 -76241,85,2.562704136,0 -76251,85,2.24661661,0 -76262,85,2.010890279,0 -76267,85,2.072002263,0 -76279,85,2.494592769,0 -76292,85,2.919019153,0 -76303,85,3.687805812,0 -76318,85,3.455380807,0 -76330,85,3.116421025,0 -76345,85,2.842160939,0 -76358,0,2.842160939,31 -76359,43,2.842160939,0 -76366,43,2.819453477,0 -76389,85,2.819453477,0 -76404,85,3.048288511,0 -76450,85,3.088468878,0 -76499,85,3.750724582,0 -76514,21,3.750724582,0 -76529,77,3.750724582,0 -76535,77,4.532228822,0 -76567,77,4.817339391,0 -76589,77,4.703635883,0 -76594,16,4.703635883,0 -76609,85,4.703635883,0 -76611,85,4.112566594,0 -76627,85,3.301616493,0 -76643,85,3.158350159,0 -76654,16,3.158350159,0 -76659,85,3.457128222,0 -76680,85,3.616151872,0 -76683,0,3.616151872,13 -76684,85,3.616151872,0 -76697,85,3.560229427,0 -76711,85,3.432664615,0 -76729,85,3.395969973,0 -76757,85,3.659842853,0 -76790,85,3.73324685,0 -76820,85,3.175820958,0 -76849,85,2.794999612,0 -76863,0,2.794999612,8 -76864,85,2.794999612,0 -76870,85,2.92076597,0 -76891,85,3.142626604,0 -76902,85,4.380083627,0 -76959,38,4.380083627,0 -76960,38,4.869822108,0 -76979,38,5.690668297,0 -76984,79,5.690668297,0 -77015,79,5.627635216,0 -77052,79,5.331788674,0 -77090,79,5.333538967,0 -77104,79,5.375546967,0 -77117,79,5.464820267,0 -77132,79,4.792848365,0 -77175,79,4.981794218,0 -77217,79,5.281031605,0 -77244,79,5.370295864,0 -77262,79,5.190025705,0 -77279,28,4.824336933,0 -77294,28,4.303144381,0 -77304,85,4.303144381,0 -77309,85,3.121662107,0 -77335,85,2.216931234,0 -77349,85,1.181642896,0 -77363,85,0.654507815,0 -77377,85,0.354303321,0 -77405,85,-0.111701119,0 -77424,85,-0.729560571,0 -77444,85,-1.118802728,0 -77467,85,-0.895377833,0 -77494,85,-0.518367431,0 -77514,85,-0.242601242,0 -77532,85,0.003490659,0 -77553,85,0.095993138,0 -77565,85,0.383974322,0 -77568,0,0.383974322,7 -77569,47,0.383974322,0 -77580,47,-0.095993138,0 -77595,47,-0.003490659,0 -77607,47,0.242601242,0 -77629,47,0.518367431,0 -77647,47,0.895377833,0 -77666,47,1.118802728,0 -77693,47,0.729560571,0 -77716,47,0.111701119,0 -77737,47,-0.354303321,0 -77756,47,-0.654507815,0 -77783,47,-1.181642896,0 -77798,47,-2.216931234,0 -77812,47,-3.121662107,0 -77825,47,-4.303144381,0 -77839,30,-4.303144381,0 -77851,30,-4.824336933,0 -77854,41,-4.824336933,0 -77867,41,-5.190025705,0 -77882,41,-5.370295864,0 -77899,41,-5.281031605,0 -77917,41,-4.981794218,0 -77943,41,-4.792848365,0 -77985,41,-5.464820267,0 -78002,41,-5.375546967,0 -78017,41,-5.333538967,0 -78019,15,-5.333538967,0 -78024,45,-5.333538967,0 -78029,45,-5.331788674,0 -78043,45,-5.627635216,0 -78082,45,-5.690668297,0 -78118,45,-4.869822108,0 -78154,45,-4.381832306,0 -78173,45,-3.142626604,0 -78232,45,-2.92076597,0 -78243,45,-2.794999612,0 -78264,45,-3.175820958,0 -78285,45,-3.73324685,0 -78313,45,-3.659842853,0 -78343,45,-3.395969973,0 -78369,18,-3.395969973,0 -78374,58,-3.395969973,0 -78377,58,-3.432664615,0 -78404,58,-3.560229427,0 -78422,58,-3.616151872,0 -78437,58,-3.457128222,0 -78453,58,-3.158350159,0 -78474,58,-3.301616493,0 -78490,58,-4.112566594,0 -78507,58,-4.703635883,0 -78522,58,-4.817339391,0 -78545,58,-4.532228822,0 -78566,58,-3.750724582,0 -78599,58,-3.088468878,0 -78634,58,-3.048288511,0 -78639,27,-3.048288511,0 -78659,49,-3.048288511,0 -78684,49,-2.819453477,0 -78730,49,-2.842160939,0 -78768,49,-3.116421025,0 -78788,49,-3.455380807,0 -78794,16,-3.455380807,0 -78803,16,-3.687805812,0 -78809,51,-3.687805812,0 -78816,51,-2.919019153,0 -78825,51,-2.494592769,0 -78837,51,-2.072002263,0 -78849,51,-2.010890279,0 -78861,51,-2.24661661,0 -78869,51,-2.562704136,0 -78881,51,-2.828187082,0 -78891,51,-3.006362219,0 -78901,51,-3.077986948,0 -78911,51,-1.286378607,0 -78922,51,1.481892996,0 -78929,51,0.980906498,0 -78940,51,1.080400841,0 -78990,51,0.078539832,0 -79074,22,0.078539832,0 -79089,64,0.078539832,0 -79109,64,-0.172787768,0 -79163,64,-0.001745329,0 -79191,64,0.527094315,0 -79232,64,0.441571171,0 -79256,64,0.232129207,0 -79308,64,0.345576568,0 -79332,64,0.47996923,0 -79434,64,0.832541288,0 -79524,45,0.832541288,0 -79531,45,0.877923168,0 -79544,45,0.637053795,0 -79554,60,0.637053795,0 -79573,60,0.003490659,0 -79602,60,-0.815086811,0 -79657,60,-0.790650626,0 -79699,60,-0.726069727,0 -79709,60,-0.008726646,0 -79746,60,0.603891262,0 -79794,60,-0.012217305,0 -79811,60,-1.263685638,0 -79835,60,-1.733285492,0 -79860,60,-0.553275018,0 -79909,22,-0.553275018,0 -79924,32,-0.300197533,0 -79960,32,-0.495677567,0 -79975,32,-0.759232812,0 -79990,32,-1.080400841,0 -79994,22,-1.080400841,0 -80004,38,-1.080400841,0 -80009,38,-1.26194003,0 -80013,38,-0.7749417,0 -80037,38,-0.340340518,0 -80063,0,-0.340340518,7 -80064,18,-0.340340518,0 -80077,18,0.530585072,0 -80118,18,0.459024817,0 -80123,18,0.183259777,0 -80128,0,0.183259777,108 -80129,24,0.183259777,0 -80143,0,-0.939014735,14 -80144,56,-0.939014735,0 -80168,56,-0.493932195,0 -80196,56,-0.12391844,0 -80210,56,0.038397245,0 -80225,56,-0.197222461,0 -80245,56,-0.521858184,0 -80256,56,-0.010471976,0 -80264,16,-0.010471976,0 -80274,27,-0.010471976,0 -80279,27,1.010580037,0 -80290,27,2.491099941,0 -80312,27,2.636057497,0 -80323,27,2.375839984,0 -80334,27,2.141846427,0 -80346,27,2.492846354,0 -80359,27,3.257936325,0 -80372,27,3.617899485,0 -80381,27,3.691301222,0 -80393,27,3.368012764,0 -80406,27,2.644790228,0 -80419,27,1.518553159,0 -80424,34,1.518553159,0 -80432,34,0.019198622,0 -80457,34,-0.97217902,0 -80481,34,-1.927081991,0 -80521,34,-2.037080943,0 -80549,34,-1.803120492,0 -80558,0,-1.803120492,20 -80559,13,-1.803120492,0 -80562,13,-1.138003794,0 -80579,21,-1.138003794,0 -80581,21,0.350812619,0 -80617,21,0.289725466,0 -80638,21,0.651017008,0 -80668,0,0.651017008,33 -80669,72,0.651017008,0 -80671,72,0.29147081,0 -80688,0,0.29147081,25 -80689,59,0.29147081,0 -80702,59,-0.11344645,0 -80726,10,-0.11344645,0 -80737,29,-0.11344645,0 -80742,29,-0.027925269,0 -80780,29,-0.015707963,0 -80828,29,-0.087266485,0 -80844,29,-0.232129207,0 -80876,10,-0.232129207,0 -80887,27,-0.232129207,0 -80984,16,-0.232129207,0 -80994,30,-0.232129207,0 -81098,30,-0.233874546,0 -81102,30,-0.263545327,0 -81143,0,-0.263545327,81 -81144,66,-0.263545327,0 -81254,66,-0.265290669,0 -81341,66,-0.260054645,0 -81422,66,-0.261799986,0 -81438,66,-0.303688223,0 -81564,32,-0.303688223,0 -81584,54,-0.303688223,0 -81710,54,-0.305433569,0 -81728,54,-0.307178915,0 -81765,54,-0.305433569,0 -81823,54,-0.303688223,0 -81869,54,-0.298452188,0 -81926,54,-0.286234779,0 -81999,15,-0.286234779,0 -82005,15,-0.270526694,0 -82009,63,-0.270526694,0 -82042,63,-0.249582601,0 -82084,63,-0.312414953,0 -82210,63,-0.349067268,0 -82237,63,-0.383974322,0 -82258,63,-0.469497018,0 -82299,63,-0.502659058,0 -82313,63,-0.593418911,0 -82347,63,-0.651017008,0 -82366,63,0.83603219,0 -82401,63,3.21913976,0 -82420,63,7.03490659,0 -82440,63,10.65690854,0 -82454,63,6.149614832,0 -82469,63,2.300197533,0 -82480,63,0.249582601,0 -82491,63,1.221791266,0 -82502,63,0.033161257,0 -82508,63,0.698143043,0 -82524,63,0.006981317,0 -82544,63,-1.092619588,0 -82589,63,-2.70417387,0 -82660,63,-3.09545687,0 -82675,63,-3.406454062,0 -82684,63,-4.074105014,0 -82703,63,-4.273419222,0 -82713,63,1.045490312,0 -82720,63,0.254818622,0 -82732,63,-0.087266485,0 -82748,63,-1.47124239,0 -82769,63,-4.79937782,0 -82779,26,-4.79937782,0 -82791,26,-5.38921039,0 -82794,85,-5.38921039,0 -82802,85,-6.38882705,0 -82814,85,-9.16230882,0 -82829,85,-10.45219492,0 -82843,85,-8.639837947,0 -82857,85,-3.748976798,0 -82871,85,0.987888492,0 -82884,85,4.10049544,0 -82897,85,9.18055349,0 -82910,85,3.91068856,0 -82923,85,0.726256,0 -82937,85,-1.041999273,0 -82951,85,-4.10557349,0 -82964,85,-5.683664399,0 -82977,85,-5.722186524,0 -82991,85,-3.995437336,0 -83019,85,-1.654723133,0 -83045,85,-0.048869223,0 -83085,85,0.038397245,0 -83113,85,-0.151843762,0 -83144,85,0.019198622,0 -83175,85,0.20769448,0 -83194,85,0.30892426,0 -83260,85,0.083775824,0 -83314,85,0.562001936,0 -83376,85,1.061200018,0 -83400,85,1.570925532,0 -83437,85,1.335256224,0 -83474,85,0.818577702,0 -83490,85,-1.572671293,0 -83501,85,-1.975969823,0 -83524,85,-1.700114463,0 -83531,85,-1.00883453,0 -83544,85,0.158825095,0 -83564,85,0.755741954,0 -83580,85,1.012325545,0 -83597,85,1.131021579,0 -83621,85,1.015816563,0 -83648,85,0.780178004,0 -83670,85,0.4817146,0 -83688,85,0.005235988,0 -83734,85,0.270526694,0 -83779,85,0.839523093,0 -83817,85,0.006981317,0 -83854,85,-0.579455797,0 -83873,85,-0.432844358,0 -83905,85,0.141371764,0 -83937,85,0.385719678,0 -83962,85,-0.436335082,0 -84005,85,-0.317650992,0 -84032,85,-0.127409104,0 -84053,85,-0.253073282,0 -84069,85,-0.48520534,0 -84101,85,-0.399682527,0 -84119,85,0.001745329,0 -84145,85,0.649271605,0 -84168,85,2.138354169,0 -84227,85,1.963747777,0 -84241,85,0.795886943,0 -84265,85,-0.092502477,0 -84282,85,-0.172787768,0 -84290,85,0.396191813,0 -84362,85,0.305433569,0 -84369,85,0.178023772,0 -84377,85,-0.141371764,0 -84404,85,-0.270526694,0 -84431,85,-0.460770183,0 -84565,85,-0.328123077,0 -84626,85,-0.146607762,0 -84646,85,0.167551765,0 -84688,85,0.232129207,0 -84730,85,0.230383869,0 -84742,85,0.282744092,0 -84756,10,0.282744092,0 -84759,10,0.132645101,0 -84767,31,0.132645101,0 -84778,31,-0.162315763,0 -84788,31,-0.778432569,0 -84811,31,-1.474910153,0 -84858,31,-1.701860297,0 -84864,13,-1.701860297,0 -84874,36,-1.701860297,0 -84904,36,0.0994838,0 -84922,36,-0.101229131,0 -84943,36,-0.188495782,0 -84957,36,-0.21991184,0 -84967,36,-0.209439816,0 -84975,36,0.02443461,0 -84984,13,0.02443461,0 -84989,37,0.02443461,0 -85035,37,-0.089011815,0 -85090,37,-0.212930491,0 -85102,37,-0.136135766,0 -85164,20,-0.136135766,0 -85179,42,-0.136135766,0 -85190,42,0.223402516,0 -85267,42,0.891886895,0 -85358,42,0.816832256,0 -85388,42,-0.005235988,0 -85389,11,-0.005235988,0 -85394,23,-0.005235988,0 -85414,23,-0.696397629,0 -85427,23,-1.131021579,0 -85435,23,-1.5639425,0 -85451,23,-1.536010523,0 -85467,23,-1.019307583,0 -85469,0,-1.019307583,15 -85470,24,-1.019307583,0 -85483,24,-0.047123893,0 -85498,24,1.312562967,0 -85519,24,2.154069368,0 -85540,24,2.478875092,0 -85561,24,2.299003536,0 -85581,24,1.825817242,0 -85586,23,1.825817242,0 -85616,23,1.834546812,0 -85649,23,1.614569833,0 -85676,36,1.614569833,0 -85686,36,0.424117551,0 -85723,36,-0.226893192,0 -85743,36,-0.368266137,0 -85763,36,-0.022689281,0 -85821,22,-0.022689281,0 -85833,44,-0.022689281,0 -85836,44,-0.083775824,0 -85880,44,-0.303688223,0 -85905,44,-0.246091921,0 -85916,44,-0.214675828,0 -85935,44,-0.413645392,0 -85985,44,-0.041887904,0 -86010,44,0.673707284,0 -86036,44,0.961706065,0 -86055,44,0,0 -86084,44,-0.795886943,0 -86095,44,-2.735613037,0 -86114,44,-3.949987156,0 -86129,44,-4.000681693,0 -86144,44,-2.868362221,0 -86159,44,-0.558511168,0 -86174,44,0.961706065,0 -86186,44,1.035017203,0 -86197,44,0.249582601,0 -86206,26,0.249582601,0 -86210,26,-0.361284727,0 -86221,30,-0.361284727,0 -86226,30,-0.502659058,0 -86246,30,-0.144862429,0 -86264,30,0.015707963,0 -86281,30,0.013962634,0 -86294,30,-0.001745329,0 -86324,30,0.216421165,0 -86356,30,0.528839693,0 -86405,0,0.411900033,6 -86406,40,0.411900033,0 -86455,40,0.500913685,0 -86491,40,0.649271605,0 -86526,40,0.279253406,0 -86561,40,0.015707963,0 -86579,40,-0.136135766,0 -86614,40,0.071558512,0 -86642,40,0.474733123,0 -86665,40,0.562001936,0 -86675,0,0.562001936,38 -86676,39,0.562001936,0 -86684,39,0.125663772,0 -86737,39,0.127409104,0 -86790,39,0.191986454,0 -86869,39,0.300197533,0 -86939,39,1.118802728,0 -86965,39,2.634310956,0 -86992,39,3.352287065,0 -87021,39,3.836368794,0 -87046,39,3.472855044,0 -87059,19,3.472855044,0 -87068,19,2.903297877,0 -87069,27,2.903297877,0 -87085,27,2.498085603,0 -87093,27,1.88343292,0 -87102,27,0.942505703,0 -87118,27,0.863959475,0 -87137,27,1.155459382,0 -87149,27,1.345730081,0 -87159,27,1.343984436,0 -87168,27,1.223536856,0 -87175,27,0.829050388,0 -87189,27,0.338595169,0 -87198,27,0.087266485,0 -87232,0,0.087266485,11 -87233,37,0.087266485,0 -87237,37,0.164061097,0 -87258,37,0.378738259,0 -87318,37,0.284489436,0 -87357,37,0.102974462,0 -87434,37,1.405082503,0 -87488,40,1.405082503,0 -87535,40,0.630072198,0 -87635,40,0.478223861,0 -87660,40,0.53233045,0 -87674,40,0.567238091,0 -87702,40,0.499168312,0 -87721,40,0.284489436,0 -87765,40,0.185005112,0 -87777,40,0.080285163,0 -87788,40,-0.071558512,0 -87791,38,-0.071558512,0 -87798,38,-0.20769448,0 -87811,38,-1.874703193,0 -87812,48,-1.874703193,0 -87824,48,-1.752489945,0 -87834,48,-1.619807191,0 -87845,48,-1.57790858,0 -87856,48,-1.438250462,0 -87866,48,-1.58838318,0 -87881,48,-1.663452181,0 -87896,48,-1.534264783,0 -87930,48,-1.017562072,0 -87964,48,-0.778432569,0 -87989,48,-1.048981353,0 -88004,48,-1.762965156,0 -88018,48,-1.796136914,0 -88034,48,-1.024544117,0 -88050,48,-0.740033112,0 -88066,48,-1.656468941,0 -88102,48,-1.988191927,0 -88127,48,-1.855497892,0 -88156,48,-1.64599411,0 -88168,48,-1.03676272,0 -88173,46,-1.03676272,0 -88191,46,-1.007089024,0 -88212,46,-1.239247202,0 -88233,46,-1.410319529,0 -88246,46,-1.902638422,0 -88250,49,-1.902638422,0 -88304,49,-1.968985789,0 -88335,49,-1.642502508,0 -88377,49,-1.295106707,0 -88399,49,-0.890141428,0 -88426,49,-0.701633873,0 -88442,49,-0.553275018,0 -88480,49,-1.041999273,0 -88508,11,-1.041999273,0 -88522,8,-1.041999273,0 -88529,8,-1.569179773,0 -88534,14,-1.569179773,0 -88577,14,-1.410319529,0 -88603,0,-1.410319529,14 -88604,6,-1.410319529,0 -88607,10,-1.410319529,0 -88618,9,-1.410319529,0 -88624,9,-1.031526172,0 -88653,9,-0.647526202,0 -88661,0,-0.647526202,67 -88662,15,-0.647526202,0 -88674,15,-0.181514442,0 -88706,15,-0.003490659,0 -88724,9,-0.003490659,0 -88745,10,-0.003490659,0 -88749,10,-0.211185153,0 -88756,44,-0.211185153,0 -88781,44,-0.429353634,0 -88797,44,-0.818577702,0 -88817,44,-1.038508237,0 -88830,44,-1.19037077,0 -88857,44,-0.595164302,0 -88895,44,-0.144862429,0 -88914,44,0.171042433,0 -88933,44,0.380483613,0 -88965,44,0.179769107,0 -88998,44,0.013962634,0 -89011,44,-0.572474248,0 -89033,44,-2.147084822,0 -89096,44,-2.19073858,0 -89167,44,-1.082146375,0 -89311,0,-1.082146375,23 -89312,39,-1.082146375,0 -89327,39,-0.788905188,0 -89420,39,-0.116937113,0 -89513,39,0.356048672,0 -89552,38,0.356048672,0 -89578,38,0.26703601,0 -89599,38,-0.172787768,0 -89621,38,-0.314160299,0 -89650,38,-0.010471976,0 -89668,40,-0.010471976,0 -89670,40,0.258309304,0 -89708,40,0.394446457,0 -89741,34,0.394446457,0 -89760,38,0.394446457,0 -89836,38,0.411900033,0 -89883,38,0.415390751,0 -89910,38,0.413645392,0 -89928,38,0.438080445,0 -89946,38,0.53233045,0 -89967,38,0.673707284,0 -89985,38,0.860468557,0 -90002,38,1.061200018,0 -90017,38,1.279396141,0 -90031,38,1.822325422,0 -90062,38,2.092955297,0 -90077,38,2.297257285,0 -90083,0,2.297257285,7 -90084,31,2.297257285,0 -90091,31,2.405527539,0 -90105,31,2.398542194,0 -90123,31,2.24661661,0 -90168,41,2.24661661,0 -90181,41,2.416005601,0 -90244,41,3.126903205,0 -90365,41,2.106924088,0 -90434,41,0.507895179,0 -90471,0,0.507895179,7 -90472,12,0.507895179,0 -90476,12,-0.055850542,0 -90490,12,-0.22863853,0 -90496,12,-0.387465033,0 -90504,12,0.785414313,0 -90512,10,0.785414313,0 -90513,10,-0.223402516,0 -90517,10,2.726879881,0 -90523,37,2.726879881,0 -90532,37,3.399464661,0 -90544,37,4.511242049,0 -90560,37,5.49282936,0 -90582,37,5.799235863,0 -90619,37,5.869286671,0 -90669,26,5.869286671,0 -90683,41,5.869286671,0 -90695,41,5.449065528,0 -90720,41,4.593442526,0 -90745,41,2.058033675,0 -90819,41,0.232129207,0 -90874,41,-0.193731789,0 -90886,41,-0.568983476,0 -90897,41,-3.015096776,0 -90898,0,-3.015096776,15 -90899,47,-3.015096776,0 -90920,47,-3.016843693,0 -90934,47,-1.832800896,0 -90948,47,0.628326799,0 -90963,47,3.661590521,0 -90977,47,5.711680323,0 -90988,47,6.307237021,0 -90999,47,5.874540712,0 -91008,47,5.240777928,0 -91017,47,4.628423326,0 -91028,47,4.334618908,0 -91038,47,4.329373094,0 -91049,47,4.661656132,0 -91061,47,4.095083908,0 -91074,47,2.040573052,0 -91091,47,1.124039374,0 -91111,47,1.099601744,0 -91147,47,1.083891908,0 -91175,47,1.066436598,0 -91214,0,1.066436598,5 -91215,39,1.066436598,0 -91237,39,1.010580037,0 -91288,39,0.902359714,0 -91326,39,0.743523962,0 -91363,39,0.42062683,0 -91389,39,0.055850542,0 -91423,39,-0.272272036,0 -91450,31,-0.272272036,0 -91461,31,-1.029780657,0 -91467,40,-1.029780657,0 -91533,40,-1.487130137,0 -91572,40,-1.920098091,0 -91626,40,-2.096447487,0 -91679,40,-2.112162406,0 -91713,0,-2.112162406,16 -91714,38,-2.112162406,0 -91723,38,-2.061525814,0 -91782,38,-1.963747777,0 -91872,38,-1.991683968,0 -92016,38,-2.120892961,0 -92078,21,-2.120892961,0 -92089,31,-2.120892961,0 -92139,31,-2.112162406,0 -92239,31,-2.073748342,0 -92264,31,-2.031842788,0 -92299,0,-2.031842788,8 -92300,30,-2.031842788,0 -92338,30,-2.175023132,0 -92402,30,-3.140879552,0 -92465,0,-3.140879552,36 -92466,41,-3.140879552,0 -92475,41,-3.132144321,0 -92513,41,-0.314160299,0 -92526,41,-0.300197533,0 -92540,41,-0.493932195,0 -92565,41,-0.305433569,0 -92576,41,-0.759232812,0 -92586,41,-0.015707963,0 -92598,41,0.530585072,0 -92612,41,0.731305993,0 -92630,41,0.886650494,0 -92651,41,2.316466124,0 -92678,41,4.320630124,0 -92703,41,5.361544091,0 -92721,41,5.265279964,0 -92737,41,4.444786541,0 -92753,41,3.341803358,0 -92768,41,2.009144245,0 -92788,41,1.242738398,0 -92818,41,1.438250462,0 -92834,41,1.742014773,0 -92850,41,1.893908631,0 -92873,41,2.225662186,0 -92887,41,3.05527633,0 -92901,41,4.033896467,0 -92916,41,4.577701533,0 -92931,41,4.586446501,0 -92942,24,4.586446501,0 -92948,24,4.220964893,0 -92956,26,4.220964893,0 -92963,26,3.483339688,0 -92977,26,2.384571574,0 -92991,26,1.089128514,0 -92999,28,1.089128514,0 -93006,28,-0.055850542,0 -93022,28,-0.708615537,0 -93040,28,-0.954724107,0 -93058,28,-0.188495782,0 -93066,19,-0.188495782,0 -93077,29,-0.188495782,0 -93117,29,-0.158825095,0 -93138,29,-0.11344645,0 -93151,29,0.069813181,0 -93179,29,0.136135766,0 -93189,29,1.534264783,0 -93200,29,2.213438863,0 -93205,29,2.662255809,0 -93209,29,3.11816805,0 -93217,29,3.158350159,0 -93224,29,2.312973595,0 -93231,29,2.084224844,0 -93232,0,2.084224844,71 -93233,15,2.084224844,0 -93263,15,0.457279451,0 -93280,17,0.457279451,0 -93301,17,0.279253406,0 -93314,17,0.96694254,0 -93332,10,0.96694254,0 -93338,40,0.96694254,0 -93362,40,1.104838368,0 -93388,40,0.502659058,0 -93418,40,-1.082146375,0 -93464,40,-1.2165545,0 -93477,40,-1.00883453,0 -93494,40,-0.289725466,0 -93512,40,2.707667084,0 -93563,40,4.245443289,0 -93601,40,5.107777753,0 -93637,40,6.081225596,0 -93707,10,6.081225596,0 -93716,10,7.117216357,0 -93748,0,7.117216357,18 -93749,12,7.117216357,0 -93757,12,7.317220344,0 -93788,12,6.365064117,0 -93794,27,6.365064117,0 -93810,27,4.46227445,0 -93839,27,2.735613037,0 -93862,27,0.425862912,0 -93885,27,-1.068182126,0 -93901,27,-1.953271785,0 -93915,27,-2.150577092,0 -93926,27,-1.429522021,0 -93953,0,-1.850260107,18 -93954,45,-1.850260107,0 -93973,45,-3.18455643,0 -93989,45,-3.970963959,0 -94007,45,-3.990193001,0 -94034,45,-3.979704396,0 -94060,45,-3.817142057,0 -94099,45,-3.824133565,0 -94133,45,-4.343361983,0 -94167,45,-5.548850128,0 -94225,45,-5.611877644,0 -94241,45,-5.21277637,0 -94284,45,-4.478013801,0 -94316,45,-2.597633959,0 -94394,45,-0.678943511,0 -94400,39,-0.678943511,0 -94422,51,-0.678943511,0 -94433,51,-0.148353095,0 -94448,51,0.193731789,0 -94462,51,0.916323502,0 -94525,51,2.702427265,0 -94568,51,3.291133138,0 -94613,51,2.765306081,0 -94648,51,0.870941317,0 -94683,51,0.9983615,0 -94696,51,1.654723133,0 -94707,51,2.182007762,0 -94721,51,2.550478845,0 -94752,51,2.262332557,0 -94782,51,1.820579514,0 -94799,51,0.310669606,0 -94843,51,-1.167678335,0 -94888,51,-1.672181255,0 -94913,51,-1.780423927,0 -94934,51,-1.525536094,0 -94968,51,-0.010471976,0 -95026,51,0.438080445,0 -95050,51,0.757487383,0 -95054,48,0.757487383,0 -95056,58,0.757487383,0 -95065,58,1.611078267,0 -95084,58,2.405527539,0 -95102,58,2.574929502,0 -95121,58,2.010890279,0 -95144,58,1.279396141,0 -95165,58,0.813341366,0 -95192,58,0.684179742,0 -95212,58,0.656253219,0 -95227,53,-1.604095146,0 -95230,54,-1.604095146,0 -95290,47,-1.604095146,0 -95301,47,-2.141846427,0 -95330,47,-2.241377986,0 -95350,45,-2.241377986,0 -95360,45,-1.874703193,0 -95391,45,-1.247975197,0 -95413,50,-1.247975197,0 -95428,50,-0.909341604,0 -95457,50,-0.726069727,0 -95485,50,-0.664980247,0 -95508,50,-0.687670565,0 -95520,51,-0.687670565,0 -95531,51,-0.841268545,0 -95560,51,-0.881414097,0 -95594,51,-0.260054645,0 -95678,51,-0.300197533,0 -95697,46,-0.300197533,0 -95700,47,-0.300197533,0 -95719,47,-0.115191782,0 -95735,48,-0.115191782,0 -95797,44,-0.115191782,0 -95800,46,-0.115191782,0 -95824,46,-0.02443461,0 -95871,46,-0.045378564,0 -95884,45,-0.045378564,0 -95888,45,-0.090757146,0 -95903,45,-0.160570429,0 -95918,45,-0.247837261,0 -95926,44,-0.247837261,0 -95929,51,-0.247837261,0 -95933,51,-0.3927011,0 -95951,51,-0.534075829,0 -95964,51,-0.670216468,0 -95976,51,-0.818577702,0 -95987,51,-1.015816563,0 -96000,51,-1.614569833,0 -96041,51,-1.827563154,0 -96083,51,-2.007398212,0 -96112,51,-2.429976432,0 -96148,51,-2.45791838,0 -96184,51,-2.319958658,0 -96211,51,-2.688454487,0 -96237,51,-3.553239278,0 -96259,45,-3.553239278,0 -96262,49,-3.553239278,0 -96263,49,-4.967797029,0 -96290,49,-7.805196805,0 -96358,49,-8.251368455,0 -96375,49,-8.044052336,0 -96394,50,-5.674909606,0 -96440,50,-4.630172395,0 -96469,50,-6.056700988,0 -96515,50,-6.380835877,0 -96529,50,-6.026922082,0 -96544,50,-5.3020342,0 -96556,50,-4.294401609,0 -96568,50,-3.277155445,0 -96579,50,1.370169197,0 -96584,47,1.370169197,0 -96594,47,-2.014382352,0 -96598,47,-2.477128691,0 -96604,47,-2.433469155,0 -96608,47,-1.944541824,0 -96614,47,-1.199098661,0 -96618,47,-0.247837261,0 -96623,47,-1.340493149,0 -96631,47,-2.46141115,0 -96638,47,3.151361893,0 -96652,47,-2.517296298,0 -96662,47,-1.525536094,0 -96668,47,0.013962634,0 -96676,47,1.525536094,0 -96687,47,1.790899242,0 -96694,47,-0.015707963,0 -96702,47,0.254818622,0 -96707,47,0.396191813,0 -96713,47,0.37001149,0 -96718,47,0.324632381,0 -96721,47,0.263545327,0 -96725,47,0.218166503,0 -96728,47,0.164061097,0 -96734,47,-3.287638703,0 -96739,47,-3.121662107,0 -96751,47,-3.233475974,0 -96762,47,-3.581200081,0 -96771,47,-4.1947386,0 -96781,48,-5.415806409,0 -96794,48,-6.082977381,0 -96811,48,-4.584697502,0 -96828,48,-0.427608273,0 -96850,48,1.125784924,0 -96862,48,1.611078267,0 -96875,48,1.501095888,0 -96886,0,1.501095888,15 -96887,15,1.501095888,0 -96894,14,1.501095888,0 -96896,27,1.501095888,0 -96921,26,1.441741844,0 -96927,42,1.441741844,0 -96978,42,1.471418737,0 -97038,42,1.537756265,0 -97076,42,1.595366266,0 -97104,42,1.642502508,0 -97119,47,1.642502508,0 -97137,47,1.66170637,0 -97157,47,1.670435438,0 -97172,47,1.673927073,0 -97191,47,1.619807191,0 -97210,47,1.398099815,0 -97235,47,0.968688032,0 -97242,20,0.968688032,0 -97243,51,0.968688032,0 -97261,51,0.666725653,0 -97304,51,1.047235832,0 -97353,51,1.412065206,0 -97399,51,1.586637411,0 -97443,51,1.366677885,0 -97534,51,1.282887372,0 -97546,51,1.408573853,0 -97607,51,1.757727546,0 -97624,35,1.757727546,0 -97631,35,2.141846427,0 -97651,35,2.56969005,0 -97672,35,2.905044678,0 -97675,34,2.905044678,0 -97677,37,2.905044678,0 -97691,37,3.135638408,0 -97715,37,3.09545687,0 -97737,37,2.912031901,0 -97763,37,2.808973208,0 -97776,34,2.808973208,0 -97778,38,2.808973208,0 -97783,38,2.747839526,0 -97800,38,2.716400149,0 -97816,38,2.707667084,0 -97834,38,2.726879881,0 -97852,38,2.77229275,0 -97869,38,2.842160939,0 -97886,38,2.929500083,0 -97901,38,3.046541561,0 -97906,39,3.046541561,0 -97918,39,3.137385454,0 -97934,39,3.144373658,0 -97956,39,3.051782417,0 -97974,39,2.838667465,0 -97981,34,2.838667465,0 -97983,35,2.838667465,0 -97994,35,2.527774937,0 -98000,36,2.527774937,0 -98013,36,2.108670192,0 -98032,36,1.740268915,0 -98049,36,1.441741844,0 -98068,36,1.253212004,0 -98069,0,1.253212004,12 -98070,13,1.253212004,0 -98079,22,1.253212004,0 -98087,22,1.164187202,0 -98106,22,0.919814455,0 -98109,36,0.919814455,0 -98157,36,0.574219635,0 -98193,36,-0.139626431,0 -98199,35,-0.139626431,0 -98207,38,-0.139626431,0 -98242,38,-1.31779986,0 -98284,38,-1.808358187,0 -98305,38,-1.88343292,0 -98323,38,-1.64599411,0 -98344,38,2.227408381,0 -98357,10,2.227408381,0 -98362,10,-1.457453108,0 -98368,15,-1.457453108,0 -98374,28,-1.401591157,0 -98390,28,-1.366677885,0 -98400,44,-1.366677885,0 -98406,44,-1.354458318,0 -98421,44,-1.363186576,0 -98436,44,-1.394608476,0 -98452,44,-1.443487537,0 -98466,44,-3.804907008,0 -98500,41,-3.804907008,0 -98507,42,-3.804907008,0 -98602,14,-3.804907008,0 -98612,24,-3.736742378,0 -98623,24,-3.589937947,0 -98631,24,-3.257936325,0 -98634,41,-3.257936325,0 -98639,41,-2.686707897,0 -98648,41,-2.192484748,0 -98655,41,-1.626790347,0 -98663,41,-0.959960575,0 -98671,41,-0.279253406,0 -98679,41,0.371756843,0 -98687,41,1.076909777,0 -98696,41,1.288124225,0 -98719,41,0.736542263,0 -98747,41,-0.054105212,0 -98793,0,-0.054105212,29 -98794,28,-0.054105212,0 -98800,28,-1.003598012,0 -98829,44,-1.003598012,0 -98850,44,-1.532519043,0 -98868,44,-1.949779797,0 -98883,44,-2.41775195,0 -98908,50,-2.41775195,0 -98911,50,-2.480621495,0 -98929,50,-2.192484748,0 -98957,50,-1.897400544,0 -98960,49,-1.897400544,0 -98976,51,-1.165932768,0 -99011,51,-0.013962634,0 -99046,52,-0.013962634,0 -99048,52,0.84825036,0 -99082,52,1.200844242,0 -99120,52,1.413810883,0 -99129,51,1.413810883,0 -99158,51,1.892162676,0 -99165,52,1.892162676,0 -99192,52,1.967239784,0 -99229,52,1.213063327,0 -99274,49,1.213063327,0 -99276,49,0.535821208,0 -99277,50,0.535821208,0 -99305,50,0.104719793,0 -99326,50,-0.757487383,0 -99364,49,-0.757487383,0 -99373,49,-1.385880143,0 -99412,49,-2.122639076,0 -99468,49,-2.241377986,0 -99480,49,-2.347899138,0 -99534,49,-1.49062157,0 -99540,37,-1.49062157,0 -99542,40,-1.49062157,0 -99581,40,0.034906586,0 -99616,40,1.05421792,0 -99642,40,1.879941026,0 -99666,40,2.662255809,0 -99670,38,2.662255809,0 -99687,38,3.238717445,0 -99723,38,4.124804624,0 -99751,38,4.10382522,0 -99774,38,3.822385685,0 -99799,38,3.897546664,0 -99811,38,4.180751479,0 -99819,42,4.180751479,0 -99859,42,4.116063162,0 -99876,42,3.821231,0 -99901,42,2.423989,0 -99926,42,1.252921,0 -99944,40,1.252921,0 -99951,40,0.652184,0 -99976,40,0.229912,0 -100000,0,0,0 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_7c7l.veng b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_7c7l.veng new file mode 100644 index 0000000000000000000000000000000000000000..55c93808f6660bfaa906083b1dc6182899876c89 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_7c7l.veng @@ -0,0 +1,35 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-17T07:29:46.1581600Z", + "AppVersion": "3", + "FileVersion": 5 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "209kW 7.7l Engine", + "Displacement": "7700", + "IdlingSpeed": 600.0, + "Inertia": 3.33, + "Fuels": [ + { + "WHTC-Urban": 0.0, + "WHTC-Rural": 0.0, + "WHTC-Motorway": 0.0, + "WHTC-Engineering": 1.0090832895, + "ColdHotBalancingFactor": 0.0, + "CFRegPer": 1.0, + "FuelMap": "209kW_ICE_Map.vmap", + "FuelType": "DieselCI" + } + ], + "RatedPower": 209000, + "RatedSpeed": 2550.0, + "MaxTorque": 1100, + "FullLoadCurve": "209kW_ICE_fld.vfld", + "WHRType": [ + "None" + ], + "WHRCorrectionFactors": {} + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_ICE_Map.vmap b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_ICE_Map.vmap new file mode 100644 index 0000000000000000000000000000000000000000..10f19d740cea49453b2c50171533dabc94912974 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_ICE_Map.vmap @@ -0,0 +1,163 @@ +engine speed [rpm], torque [Nm], fuel consumption [g/h] +600.00,0.00,648.214 +600.00,68.85,1626.915 +600.00,98.35,2053.103 +600.00,195.48,3383.983 +600.00,293.83,4726.347 +600.00,392.18,6058.504 +600.00,489.31,8107.779 +600.00,587.66,10186.402 +600.00,684.78,12239.042 +600.00,783.14,14317.665 +600.00,881.49,16396.288 +600.00,978.61,18448.929 +600.00,1076.96,20527.552 +600.00,1175.32,22606.175 +851.61,0.00,928.937 +851.61,64.67,1892.325 +851.61,92.39,2405.282 +851.61,183.63,4070.477 +851.61,276.02,5758.641 +851.61,368.41,7453.185 +851.61,459.65,9663.237 +851.61,552.04,11837.561 +851.61,643.28,13995.297 +851.61,735.67,16050.952 +851.61,828.06,18103.130 +851.61,919.30,20129.657 +851.61,1011.69,22181.836 +851.61,1104.09,24234.015 +1103.23,0.00,1209.659 +1103.23,62.41,2157.736 +1103.23,89.15,2758.737 +1103.23,177.19,4758.248 +1103.23,266.34,6792.210 +1103.23,355.49,8847.865 +1103.23,443.52,11219.971 +1103.23,532.67,13488.720 +1103.23,620.71,15726.845 +1103.23,709.86,17966.245 +1103.23,799.01,20229.890 +1103.23,887.05,22492.259 +1103.23,976.20,24743.508 +1103.23,1065.35,26994.757 +1354.84,0.00,1490.382 +1354.84,60.98,2421.870 +1354.84,87.11,3112.193 +1354.84,173.14,5444.742 +1354.84,260.25,7824.504 +1354.84,347.36,10242.546 +1354.84,433.39,12776.705 +1354.84,520.50,15141.155 +1354.84,606.52,17457.117 +1354.84,693.63,19881.539 +1354.84,780.75,22341.689 +1354.84,866.77,24801.840 +1354.84,953.88,27249.231 +1354.84,1041.00,30075.597 +1606.45,0.00,1964.218 +1606.45,60.00,2898.713 +1606.45,85.71,3701.160 +1606.45,170.35,6375.138 +1606.45,256.07,9132.915 +1606.45,341.78,11916.086 +1606.45,426.42,14629.424 +1606.45,512.14,17373.235 +1606.45,596.78,20240.205 +1606.45,682.49,23084.322 +1606.45,768.20,25784.963 +1606.45,852.85,28443.704 +1606.45,938.56,31162.121 +1606.45,1024.27,33987.192 +1858.06,0.00,2405.472 +1858.06,59.28,3395.960 +1858.06,84.69,4296.748 +1858.06,168.33,7298.534 +1858.06,253.02,10456.979 +1858.06,337.71,13614.161 +1858.06,421.35,16806.717 +1858.06,506.04,19948.738 +1858.06,589.67,23098.339 +1858.06,674.37,26265.628 +1858.06,759.06,29333.109 +1858.06,842.69,32242.669 +1858.06,927.39,35435.225 +1858.06,1012.08,38645.468 +2109.68,0.00,2908.296 +2109.68,58.74,4008.698 +2109.68,83.92,4995.396 +2109.68,166.78,8282.706 +2109.68,250.70,11854.275 +2109.68,334.61,15399.314 +2109.68,417.48,18962.040 +2109.68,501.40,22400.954 +2109.68,584.26,25903.038 +2109.68,668.18,29565.571 +2109.68,752.10,33148.511 +2109.68,834.96,36787.039 +2109.68,918.88,40596.124 +2109.68,1002.79,44447.432 +2361.29,0.00,3517.244 +2361.29,58.31,4836.211 +2361.29,83.30,5889.868 +2361.29,165.57,9403.322 +2361.29,248.87,13398.123 +2361.29,332.18,17295.644 +2361.29,414.44,21267.704 +2361.29,497.74,25214.497 +2361.29,580.01,29106.965 +2361.29,663.31,33230.630 +2361.29,746.62,37409.885 +2361.29,828.88,41464.064 +2361.29,912.18,45307.994 +2361.29,995.49,49151.923 +2612.90,0.00,4272.744 +2612.90,57.97,5567.707 +2612.90,82.81,6727.488 +2612.90,164.59,10597.214 +2612.90,247.40,14941.971 +2612.90,330.21,19262.724 +2612.90,411.98,23531.678 +2612.90,494.79,27996.455 +2612.90,576.57,32694.958 +2612.90,659.38,37346.716 +2612.90,742.19,41862.028 +2612.90,823.97,46367.264 +2612.90,906.78,50929.527 +2612.90,989.59,55491.791 +2864.52,0.00,4975.182 +2864.52,57.68,6271.408 +2864.52,82.40,7570.161 +2864.52,163.78,11901.020 +2864.52,246.18,16541.408 +2864.52,328.59,21435.734 +2864.52,409.96,26482.929 +2864.52,492.36,31523.807 +2864.52,573.74,36936.118 +2864.52,656.14,42358.536 +2864.52,738.54,47310.978 +2864.52,819.92,52201.514 +2864.52,902.32,57153.955 +2864.52,984.73,62106.397 +535.00,-48.25,0.000 +795.00,-53.16,0.000 +1055.00,-59.37,0.000 +1315.00,-66.29,0.000 +1575.00,-73.79,0.000 +1835.00,-81.42,0.000 +2095.00,-88.73,0.000 +2355.00,-95.54,0.000 +2615.00,-102.74,0.000 +2875.00,-110.97,0.000 +3005.00,-115.10,0.000 +535.00,-117.19,0.000 +795.00,-115.02,0.000 +1055.00,-117.63,0.000 +1315.00,-122.38,0.000 +1575.00,-128.43,0.000 +1835.00,-135.02,0.000 +2095.00,-141.54,0.000 +2355.00,-147.74,0.000 +2615.00,-154.45,0.000 +2875.00,-162.29,0.000 +3005.00,-166.24,0.000 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_ICE_fld.vfld b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_ICE_fld.vfld new file mode 100644 index 0000000000000000000000000000000000000000..9fa844476ee0a96a2063e146c0d48bc6b19b5798 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/209kW_ICE_fld.vfld @@ -0,0 +1,7 @@ +engine speed [1/min], full load torque [Nm], motoring torque [Nm] +600.00,385.00,-55.851 +1321.50,1100.00,-61.072 +1867.50,1100.00,-75.131 +2550.00,782.67,-97.074 +3291.00,0.00,-144.231 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/3speedAPT-N.vgbx b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/3speedAPT-N.vgbx new file mode 100644 index 0000000000000000000000000000000000000000..8197eb08b14b24ba950f2b205caab544990268cd --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/3speedAPT-N.vgbx @@ -0,0 +1,54 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-12-13T10:08:24.0568805Z", + "AppVersion": "3", + "FileVersion": 6 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "3_speed_APT-N", + "Inertia": 0.0, + "TracInt": 0.1, + "Gears": [ + { + "Ratio": 2.64, + "LossMap": "Axle_4x2_LH.vtlm" + }, + { + "Ratio": 8.31, + "LossMap": "Gear_indirect.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 4.65, + "LossMap": "Gear_indirect.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 2.75, + "LossMap": "Gear_indirect.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + } + ], + "TqReserve": 0.0, + "ShiftTime": 2.0, + "StartTqReserve": 20.0, + "StartSpeed": 2.0, + "StartAcc": 0.8, + "GearboxType": "APTN", + "TorqueConverter": { + "Enabled": false + }, + "DownshiftAfterUpshiftDelay": 6.0, + "UpshiftAfterDownshiftDelay": 6.0, + "UpshiftMinAcceleration": 0.1, + "PowershiftShiftTime": 0.8 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Axle_4x2_LH.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Axle_4x2_LH.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..6b2e07e765296de3803c71694f65e7a793adcbe4 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Axle_4x2_LH.vtlm @@ -0,0 +1,11 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-50000,1500 +0,-200,6 +0,0,6 +0,200,6 +0,50000,1500 +5000,-50000,1500 +5000,-1253,37.5 +5000,0,37.5 +5000,1253,37.5 +5000,50000,1500 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/BEV_Group5_EM.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/BEV_Group5_EM.vem new file mode 100644 index 0000000000000000000000000000000000000000..dd52e5d44541a5146b39326ba1cba1c7738fbb40 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/BEV_Group5_EM.vem @@ -0,0 +1,22 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-17T14:26:41.1270692Z", + "AppVersion": "3", + "FileVersion": 2 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "FullLoadCurve": "EM_fld.vemp", + "DragCurve": "EM_drag.vemd", + "EfficiencyMap": "EM_Map.vemo", + "Inertia": 0.5, + "ContinuousTorque": 750, + "ContinuousTorqueSpeed": 2069.01426019464, + "OverloadTorque": 750, + "OverloadTorqueSpeed": 2069.01426019464, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/BEV_Group5_REESS.vreess b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/BEV_Group5_REESS.vreess new file mode 100644 index 0000000000000000000000000000000000000000..3d6a5657084c344dbe336fdca3093094e9da8c62 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/BEV_Group5_REESS.vreess @@ -0,0 +1,19 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-16T09:37:48.3166199Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "REESSType": "Battery", + "Model": "Generic Battery", + "Capacity": 68.75, + "SOC_min": 20, + "SOC_max": 80, + "MaxCurrentMap": "MaxCurrent.vimax", + "InternalResistanceCurve": "GenericBattery_PEV_800V.vbatr", + "SoCCurve": "REESS_SOC_curve.vbatv" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..d899ca8fc0736ae6aa161db1034807f6fdc66f53 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_Map.vemo @@ -0,0 +1,925 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-750.00,0.000 +0.00,-712.50,0.000 +0.00,-675.00,0.000 +0.00,-637.50,0.000 +0.00,-600.00,0.000 +0.00,-562.50,0.000 +0.00,-525.00,-0.065 +0.00,-487.50,-0.329 +0.00,-450.00,-0.491 +0.00,-412.50,-0.597 +0.00,-375.00,-0.661 +0.00,-337.50,-0.692 +0.00,-300.00,-0.695 +0.00,-262.50,-0.674 +0.00,-225.00,-0.630 +0.00,-187.50,-0.566 +0.00,-150.00,-0.483 +0.00,-112.50,-0.383 +0.00,-75.00,-0.266 +0.00,-37.50,-0.133 +0.00,-7.50,-0.012 +0.00,7.50,0.063 +0.00,37.50,0.276 +0.00,75.00,0.552 +0.00,112.50,0.839 +0.00,150.00,1.136 +0.00,187.50,1.444 +0.00,225.00,1.763 +0.00,262.50,2.092 +0.00,300.00,2.430 +0.00,337.50,2.779 +0.00,375.00,3.137 +0.00,412.50,3.505 +0.00,450.00,3.882 +0.00,487.50,4.269 +0.00,525.00,4.665 +0.00,562.50,5.070 +0.00,600.00,5.483 +0.00,637.50,5.906 +0.00,675.00,6.338 +0.00,712.50,6.778 +0.00,750.00,7.227 +41.38,-750.00,0.000 +41.38,-712.50,0.000 +41.38,-675.00,0.000 +41.38,-637.50,0.000 +41.38,-600.00,0.000 +41.38,-562.50,0.000 +41.38,-525.00,-0.252 +41.38,-487.50,-0.422 +41.38,-450.00,-0.521 +41.38,-412.50,-0.581 +41.38,-375.00,-0.611 +41.38,-337.50,-0.618 +41.38,-300.00,-0.606 +41.38,-262.50,-0.576 +41.38,-225.00,-0.530 +41.38,-187.50,-0.471 +41.38,-150.00,-0.398 +41.38,-112.50,-0.312 +41.38,-75.00,-0.215 +41.38,-37.50,-0.107 +41.38,-7.50,-0.010 +41.38,7.50,0.048 +41.38,37.50,0.211 +41.38,75.00,0.421 +41.38,112.50,0.638 +41.38,150.00,0.863 +41.38,187.50,1.096 +41.38,225.00,1.336 +41.38,262.50,1.583 +41.38,300.00,1.837 +41.38,337.50,2.098 +41.38,375.00,2.366 +41.38,412.50,2.641 +41.38,450.00,2.923 +41.38,487.50,3.211 +41.38,525.00,3.505 +41.38,562.50,3.807 +41.38,600.00,4.114 +41.38,637.50,4.428 +41.38,675.00,4.748 +41.38,712.50,5.074 +41.38,750.00,5.406 +413.80,-750.00,-29.048 +413.80,-712.50,-27.683 +413.80,-675.00,-26.308 +413.80,-637.50,-24.923 +413.80,-600.00,-23.528 +413.80,-562.50,-22.123 +413.80,-525.00,-20.708 +413.80,-487.50,-19.284 +413.80,-450.00,-17.850 +413.80,-412.50,-16.406 +413.80,-375.00,-14.952 +413.80,-337.50,-13.489 +413.80,-300.00,-12.016 +413.80,-262.50,-10.534 +413.80,-225.00,-9.042 +413.80,-187.50,-7.540 +413.80,-150.00,-6.029 +413.80,-112.50,-4.509 +413.80,-75.00,-2.978 +413.80,-37.50,-1.438 +413.80,-7.50,-0.184 +413.80,7.50,0.441 +413.80,37.50,1.812 +413.80,75.00,3.525 +413.80,112.50,5.248 +413.80,150.00,6.980 +413.80,187.50,8.721 +413.80,225.00,10.472 +413.80,262.50,12.232 +413.80,300.00,14.001 +413.80,337.50,15.780 +413.80,375.00,17.568 +413.80,412.50,19.365 +413.80,450.00,21.172 +413.80,487.50,22.988 +413.80,525.00,24.813 +413.80,562.50,26.647 +413.80,600.00,28.491 +413.80,637.50,30.344 +413.80,675.00,32.205 +413.80,712.50,34.076 +413.80,750.00,35.956 +827.61,-750.00,-60.284 +827.61,-712.50,-57.365 +827.61,-675.00,-54.435 +827.61,-637.50,-51.494 +827.61,-600.00,-48.541 +827.61,-562.50,-45.576 +827.61,-525.00,-42.600 +827.61,-487.50,-39.613 +827.61,-450.00,-36.614 +827.61,-412.50,-33.604 +827.61,-375.00,-30.583 +827.61,-337.50,-27.550 +827.61,-300.00,-24.506 +827.61,-262.50,-21.451 +827.61,-225.00,-18.384 +827.61,-187.50,-15.307 +827.61,-150.00,-12.217 +827.61,-112.50,-9.117 +827.61,-75.00,-6.004 +827.61,-37.50,-2.878 +827.61,-7.50,-0.329 +827.61,7.50,0.905 +827.61,37.50,3.621 +827.61,75.00,7.004 +827.61,112.50,10.398 +827.61,150.00,13.802 +827.61,187.50,17.218 +827.61,225.00,20.645 +827.61,262.50,24.083 +827.61,300.00,27.533 +827.61,337.50,30.993 +827.61,375.00,34.466 +827.61,412.50,37.949 +827.61,450.00,41.444 +827.61,487.50,44.950 +827.61,525.00,48.468 +827.61,562.50,51.996 +827.61,600.00,55.536 +827.61,637.50,59.087 +827.61,675.00,62.649 +827.61,712.50,66.223 +827.61,750.00,69.807 +1241.41,-750.00,-91.220 +1241.41,-712.50,-86.773 +1241.41,-675.00,-82.312 +1241.41,-637.50,-77.836 +1241.41,-600.00,-73.346 +1241.41,-562.50,-68.842 +1241.41,-525.00,-64.323 +1241.41,-487.50,-59.790 +1241.41,-450.00,-55.243 +1241.41,-412.50,-50.681 +1241.41,-375.00,-46.105 +1241.41,-337.50,-41.514 +1241.41,-300.00,-36.910 +1241.41,-262.50,-32.291 +1241.41,-225.00,-27.657 +1241.41,-187.50,-23.010 +1241.41,-150.00,-18.348 +1241.41,-112.50,-13.671 +1241.41,-75.00,-8.980 +1241.41,-37.50,-4.269 +1241.41,-7.50,-0.394 +1241.41,7.50,1.407 +1241.41,37.50,5.476 +1241.41,75.00,10.533 +1241.41,112.50,15.600 +1241.41,150.00,20.681 +1241.41,187.50,25.776 +1241.41,225.00,30.886 +1241.41,262.50,36.009 +1241.41,300.00,41.148 +1241.41,337.50,46.300 +1241.41,375.00,51.467 +1241.41,412.50,56.649 +1241.41,450.00,61.844 +1241.41,487.50,67.054 +1241.41,525.00,72.279 +1241.41,562.50,77.518 +1241.41,600.00,82.771 +1241.41,637.50,88.038 +1241.41,675.00,93.320 +1241.41,712.50,98.616 +1241.41,750.00,103.926 +1655.21,-750.00,-121.857 +1655.21,-712.50,-115.906 +1655.21,-675.00,-109.935 +1655.21,-637.50,-103.947 +1655.21,-600.00,-97.940 +1655.21,-562.50,-91.914 +1655.21,-525.00,-85.869 +1655.21,-487.50,-79.806 +1655.21,-450.00,-73.725 +1655.21,-412.50,-67.625 +1655.21,-375.00,-61.506 +1655.21,-337.50,-55.369 +1655.21,-300.00,-49.214 +1655.21,-262.50,-43.040 +1655.21,-225.00,-36.848 +1655.21,-187.50,-30.637 +1655.21,-150.00,-24.408 +1655.21,-112.50,-18.159 +1655.21,-75.00,-11.890 +1655.21,-37.50,-5.593 +1655.21,-7.50,-0.317 +1655.21,7.50,1.959 +1655.21,37.50,7.391 +1655.21,75.00,14.124 +1655.21,112.50,20.869 +1655.21,150.00,27.631 +1655.21,187.50,34.411 +1655.21,225.00,41.210 +1655.21,262.50,48.027 +1655.21,300.00,54.862 +1655.21,337.50,61.716 +1655.21,375.00,68.589 +1655.21,412.50,75.481 +1655.21,450.00,82.391 +1655.21,487.50,89.319 +1655.21,525.00,96.266 +1655.21,562.50,103.232 +1655.21,600.00,110.216 +1655.21,637.50,117.219 +1655.21,675.00,124.240 +1655.21,712.50,131.280 +1655.21,750.00,138.338 +2069.01,-750.00,-152.184 +2069.01,-712.50,-144.751 +2069.01,-675.00,-137.294 +2069.01,-637.50,-129.813 +2069.01,-600.00,-122.307 +2069.01,-562.50,-114.778 +2069.01,-525.00,-107.225 +2069.01,-487.50,-99.648 +2069.01,-450.00,-92.048 +2069.01,-412.50,-84.423 +2069.01,-375.00,-76.774 +2069.01,-337.50,-69.102 +2069.01,-300.00,-61.406 +2069.01,-262.50,-53.686 +2069.01,-225.00,-45.942 +2069.01,-187.50,-38.174 +2069.01,-150.00,-30.382 +2069.01,-112.50,-22.565 +2069.01,-75.00,-14.720 +2069.01,-37.50,-6.835 +2069.01,-7.50,0.000 +2069.01,7.50,2.567 +2069.01,37.50,9.378 +2069.01,75.00,17.792 +2069.01,112.50,26.219 +2069.01,150.00,34.666 +2069.01,187.50,43.137 +2069.01,225.00,51.631 +2069.01,262.50,60.149 +2069.01,300.00,68.690 +2069.01,337.50,77.256 +2069.01,375.00,85.846 +2069.01,412.50,94.460 +2069.01,450.00,103.097 +2069.01,487.50,111.759 +2069.01,525.00,120.445 +2069.01,562.50,129.154 +2069.01,600.00,137.887 +2069.01,637.50,146.645 +2069.01,675.00,155.426 +2069.01,712.50,164.230 +2069.01,750.00,173.059 +2482.82,-750.00,-182.186 +2482.82,-712.50,-173.294 +2482.82,-675.00,-164.372 +2482.82,-637.50,-155.419 +2482.82,-600.00,-146.436 +2482.82,-562.50,-137.422 +2482.82,-525.00,-128.377 +2482.82,-487.50,-119.302 +2482.82,-450.00,-110.197 +2482.82,-412.50,-101.061 +2482.82,-375.00,-91.894 +2482.82,-337.50,-82.698 +2482.82,-300.00,-73.471 +2482.82,-262.50,-64.213 +2482.82,-225.00,-54.925 +2482.82,-187.50,-45.606 +2482.82,-150.00,-36.256 +2482.82,-112.50,-26.874 +2482.82,-75.00,-17.455 +2482.82,-37.50,-7.976 +2482.82,-7.50,0.000 +2482.82,7.50,3.240 +2482.82,37.50,11.448 +2482.82,75.00,21.549 +2482.82,112.50,31.662 +2482.82,150.00,41.800 +2482.82,187.50,51.966 +2482.82,225.00,62.163 +2482.82,262.50,72.389 +2482.82,300.00,82.646 +2482.82,337.50,92.933 +2482.82,375.00,103.251 +2482.82,412.50,113.600 +2482.82,450.00,123.978 +2482.82,487.50,134.388 +2482.82,525.00,144.827 +2482.82,562.50,155.298 +2482.82,600.00,165.798 +2482.82,637.50,176.329 +2482.82,675.00,186.890 +2482.82,712.50,197.482 +2482.82,750.00,208.103 +2896.62,-750.00,-211.847 +2896.62,-712.50,-201.521 +2896.62,-675.00,-191.155 +2896.62,-637.50,-180.752 +2896.62,-600.00,-170.309 +2896.62,-562.50,-159.829 +2896.62,-525.00,-149.310 +2896.62,-487.50,-138.753 +2896.62,-450.00,-128.157 +2896.62,-412.50,-117.524 +2896.62,-375.00,-106.852 +2896.62,-337.50,-96.142 +2896.62,-300.00,-85.394 +2896.62,-262.50,-74.607 +2896.62,-225.00,-63.783 +2896.62,-187.50,-52.919 +2896.62,-150.00,-42.016 +2896.62,-112.50,-31.071 +2896.62,-75.00,-20.078 +2896.62,-37.50,-8.998 +2896.62,-7.50,0.000 +2896.62,7.50,3.985 +2896.62,37.50,13.614 +2896.62,75.00,25.409 +2896.62,112.50,37.211 +2896.62,150.00,49.045 +2896.62,187.50,60.913 +2896.62,225.00,72.819 +2896.62,262.50,84.762 +2896.62,300.00,96.743 +2896.62,337.50,108.762 +2896.62,375.00,120.819 +2896.62,412.50,132.914 +2896.62,450.00,145.047 +2896.62,487.50,157.219 +2896.62,525.00,169.429 +2896.62,562.50,181.676 +2896.62,600.00,193.962 +2896.62,637.50,206.285 +2896.62,675.00,218.647 +2896.62,712.50,231.046 +2896.62,750.00,243.483 +3310.42,-750.00,-241.153 +3310.42,-712.50,-229.414 +3310.42,-675.00,-217.628 +3310.42,-637.50,-205.794 +3310.42,-600.00,-193.913 +3310.42,-562.50,-181.984 +3310.42,-525.00,-170.008 +3310.42,-487.50,-157.985 +3310.42,-450.00,-145.914 +3310.42,-412.50,-133.797 +3310.42,-375.00,-121.632 +3310.42,-337.50,-109.420 +3310.42,-300.00,-97.160 +3310.42,-262.50,-84.854 +3310.42,-225.00,-72.499 +3310.42,-187.50,-60.097 +3310.42,-150.00,-47.645 +3310.42,-112.50,-35.140 +3310.42,-75.00,-22.572 +3310.42,-37.50,-9.879 +3310.42,-7.50,0.000 +3310.42,7.50,4.806 +3310.42,37.50,15.885 +3310.42,75.00,29.382 +3310.42,112.50,42.881 +3310.42,150.00,56.414 +3310.42,187.50,69.991 +3310.42,225.00,83.612 +3310.42,262.50,97.280 +3310.42,300.00,110.994 +3310.42,337.50,124.754 +3310.42,375.00,138.562 +3310.42,412.50,152.416 +3310.42,450.00,166.318 +3310.42,487.50,180.266 +3310.42,525.00,194.261 +3310.42,562.50,208.303 +3310.42,600.00,222.391 +3310.42,637.50,236.527 +3310.42,675.00,250.709 +3310.42,712.50,264.937 +3310.42,750.00,279.212 +3724.23,-750.00,-270.086 +3724.23,-712.50,-256.959 +3724.23,-675.00,-243.775 +3724.23,-637.50,-230.532 +3724.23,-600.00,-217.232 +3724.23,-562.50,-203.873 +3724.23,-525.00,-190.458 +3724.23,-487.50,-176.984 +3724.23,-450.00,-163.453 +3724.23,-412.50,-149.865 +3724.23,-375.00,-136.219 +3724.23,-337.50,-122.516 +3724.23,-300.00,-108.756 +3724.23,-262.50,-94.937 +3724.23,-225.00,-81.061 +3724.23,-187.50,-67.125 +3724.23,-150.00,-53.128 +3724.23,-112.50,-39.065 +3724.23,-75.00,-24.920 +3724.23,-37.50,-10.594 +3724.23,-7.50,0.000 +3724.23,7.50,5.709 +3724.23,37.50,18.273 +3724.23,75.00,33.481 +3724.23,112.50,48.682 +3724.23,150.00,63.922 +3724.23,187.50,79.212 +3724.23,225.00,94.556 +3724.23,262.50,109.956 +3724.23,300.00,125.412 +3724.23,337.50,140.924 +3724.23,375.00,156.494 +3724.23,412.50,172.119 +3724.23,450.00,187.802 +3724.23,487.50,203.541 +3724.23,525.00,219.338 +3724.23,562.50,235.190 +3724.23,600.00,251.100 +3724.23,637.50,267.066 +3724.23,675.00,283.088 +3724.23,712.50,299.167 +3724.23,750.00,315.302 +4138.03,-750.00,-298.631 +4138.03,-712.50,-284.140 +4138.03,-675.00,-269.579 +4138.03,-637.50,-254.949 +4138.03,-600.00,-240.249 +4138.03,-562.50,-225.480 +4138.03,-525.00,-210.642 +4138.03,-487.50,-195.735 +4138.03,-450.00,-180.758 +4138.03,-412.50,-165.713 +4138.03,-375.00,-150.599 +4138.03,-337.50,-135.416 +4138.03,-300.00,-120.164 +4138.03,-262.50,-104.842 +4138.03,-225.00,-89.450 +4138.03,-187.50,-73.987 +4138.03,-150.00,-58.449 +4138.03,-112.50,-42.830 +4138.03,-75.00,-27.103 +4138.03,-37.50,-11.115 +4138.03,-7.50,0.000 +4138.03,7.50,6.698 +4138.03,37.50,20.785 +4138.03,75.00,37.717 +4138.03,112.50,54.626 +4138.03,150.00,71.579 +4138.03,187.50,88.590 +4138.03,225.00,105.664 +4138.03,262.50,122.804 +4138.03,300.00,140.011 +4138.03,337.50,157.285 +4138.03,375.00,174.627 +4138.03,412.50,192.036 +4138.03,450.00,209.514 +4138.03,487.50,227.059 +4138.03,525.00,244.671 +4138.03,562.50,262.352 +4138.03,600.00,280.100 +4138.03,637.50,297.915 +4138.03,675.00,315.798 +4138.03,712.50,333.748 +4138.03,750.00,351.765 +4551.83,-750.00,-326.770 +4551.83,-712.50,-310.939 +4551.83,-675.00,-295.025 +4551.83,-637.50,-279.028 +4551.83,-600.00,-262.949 +4551.83,-562.50,-246.788 +4551.83,-525.00,-230.545 +4551.83,-487.50,-214.220 +4551.83,-450.00,-197.814 +4551.83,-412.50,-181.325 +4551.83,-375.00,-164.755 +4551.83,-337.50,-148.104 +4551.83,-300.00,-131.370 +4551.83,-262.50,-114.553 +4551.83,-225.00,-97.653 +4551.83,-187.50,-80.668 +4551.83,-150.00,-63.592 +4551.83,-112.50,-46.415 +4551.83,-75.00,-29.101 +4551.83,-37.50,-11.408 +4551.83,-7.50,0.000 +4551.83,7.50,7.777 +4551.83,37.50,23.431 +4551.83,75.00,42.101 +4551.83,112.50,60.727 +4551.83,150.00,79.399 +4551.83,187.50,98.137 +4551.83,225.00,116.948 +4551.83,262.50,135.837 +4551.83,300.00,154.803 +4551.83,337.50,173.849 +4551.83,375.00,192.975 +4551.83,412.50,212.180 +4551.83,450.00,231.465 +4551.83,487.50,250.830 +4551.83,525.00,270.275 +4551.83,562.50,289.799 +4551.83,600.00,309.403 +4551.83,637.50,329.087 +4551.83,675.00,348.849 +4551.83,712.50,368.692 +4551.83,750.00,388.613 +4965.63,-750.00,-354.487 +4965.63,-712.50,-337.340 +4965.63,-675.00,-320.095 +4965.63,-637.50,-302.754 +4965.63,-600.00,-285.316 +4965.63,-562.50,-267.782 +4965.63,-525.00,-250.152 +4965.63,-487.50,-232.426 +4965.63,-450.00,-214.604 +4965.63,-412.50,-196.686 +4965.63,-375.00,-178.673 +4965.63,-337.50,-160.563 +4965.63,-300.00,-142.357 +4965.63,-262.50,-124.054 +4965.63,-225.00,-105.653 +4965.63,-187.50,-87.149 +4965.63,-150.00,-68.538 +4965.63,-112.50,-49.804 +4965.63,-75.00,-30.892 +4965.63,-37.50,-11.429 +4965.63,-7.50,0.000 +4965.63,7.50,8.948 +4965.63,37.50,26.219 +4965.63,75.00,46.643 +4965.63,112.50,66.994 +4965.63,150.00,87.392 +4965.63,187.50,107.864 +4965.63,225.00,128.421 +4965.63,262.50,149.066 +4965.63,300.00,169.802 +4965.63,337.50,190.630 +4965.63,375.00,211.550 +4965.63,412.50,232.563 +4965.63,450.00,253.669 +4965.63,487.50,274.868 +4965.63,525.00,296.160 +4965.63,562.50,317.545 +4965.63,600.00,339.023 +4965.63,637.50,360.593 +4965.63,675.00,382.256 +4965.63,712.50,404.010 +4965.63,750.00,425.858 +5379.44,-750.00,-381.765 +5379.44,-712.50,-363.325 +5379.44,-675.00,-344.773 +5379.44,-637.50,-326.109 +5379.44,-600.00,-307.333 +5379.44,-562.50,-288.445 +5379.44,-525.00,-269.445 +5379.44,-487.50,-250.334 +5379.44,-450.00,-231.112 +5379.44,-412.50,-211.779 +5379.44,-375.00,-192.335 +5379.44,-337.50,-172.778 +5379.44,-300.00,-153.110 +5379.44,-262.50,-133.329 +5379.44,-225.00,-113.432 +5379.44,-187.50,-93.416 +5379.44,-150.00,-73.271 +5379.44,-112.50,-52.976 +5379.44,-75.00,-32.452 +5379.44,-37.50,-11.121 +5379.44,-7.50,0.000 +5379.44,7.50,10.215 +5379.44,37.50,29.156 +5379.44,75.00,51.354 +5379.44,112.50,73.440 +5379.44,150.00,95.571 +5379.44,187.50,117.785 +5379.44,225.00,140.094 +5379.44,262.50,162.504 +5379.44,300.00,185.018 +5379.44,337.50,207.638 +5379.44,375.00,230.365 +5379.44,412.50,253.198 +5379.44,450.00,276.138 +5379.44,487.50,299.186 +5379.44,525.00,322.340 +5379.44,562.50,345.602 +5379.44,600.00,368.971 +5379.44,637.50,392.446 +5379.44,675.00,416.028 +5379.44,712.50,439.716 +5379.44,750.00,463.511 +5793.24,-750.00,-408.585 +5793.24,-712.50,-388.878 +5793.24,-675.00,-369.042 +5793.24,-637.50,-349.077 +5793.24,-600.00,-328.982 +5793.24,-562.50,-308.760 +5793.24,-525.00,-288.409 +5793.24,-487.50,-267.930 +5793.24,-450.00,-247.323 +5793.24,-412.50,-226.588 +5793.24,-375.00,-205.725 +5793.24,-337.50,-184.733 +5793.24,-300.00,-163.612 +5793.24,-262.50,-142.360 +5793.24,-225.00,-120.974 +5793.24,-187.50,-99.448 +5793.24,-150.00,-77.771 +5793.24,-112.50,-55.910 +5793.24,-75.00,-33.754 +5793.24,-37.50,-10.401 +5793.24,-7.50,0.000 +5793.24,7.50,11.581 +5793.24,37.50,32.250 +5793.24,75.00,56.242 +5793.24,112.50,80.074 +5793.24,150.00,103.947 +5793.24,187.50,127.910 +5793.24,225.00,151.980 +5793.24,262.50,176.163 +5793.24,300.00,200.466 +5793.24,337.50,224.888 +5793.24,375.00,249.431 +5793.24,412.50,274.097 +5793.24,450.00,298.885 +5793.24,487.50,323.795 +5793.24,525.00,348.827 +5793.24,562.50,373.982 +5793.24,600.00,399.259 +5793.24,637.50,424.658 +5793.24,675.00,450.178 +5793.24,712.50,475.821 +5793.24,750.00,501.584 +6207.04,-750.00,-434.931 +6207.04,-712.50,-413.981 +6207.04,-675.00,-392.884 +6207.04,-637.50,-371.640 +6207.04,-600.00,-350.248 +6207.04,-562.50,-328.710 +6207.04,-525.00,-307.026 +6207.04,-487.50,-285.195 +6207.04,-450.00,-263.218 +6207.04,-412.50,-241.095 +6207.04,-375.00,-218.826 +6207.04,-337.50,-196.410 +6207.04,-300.00,-173.845 +6207.04,-262.50,-151.130 +6207.04,-225.00,-128.261 +6207.04,-187.50,-105.229 +6207.04,-150.00,-82.019 +6207.04,-112.50,-58.585 +6207.04,-75.00,-34.770 +6207.04,-37.50,-9.135 +6207.04,-7.50,0.000 +6207.04,7.50,13.048 +6207.04,37.50,35.508 +6207.04,75.00,61.316 +6207.04,112.50,86.907 +6207.04,150.00,112.531 +6207.04,187.50,138.251 +6207.04,225.00,164.090 +6207.04,262.50,190.056 +6207.04,300.00,216.155 +6207.04,337.50,242.390 +6207.04,375.00,268.762 +6207.04,412.50,295.272 +6207.04,450.00,321.920 +6207.04,487.50,348.707 +6207.04,525.00,375.632 +6207.04,562.50,402.696 +6207.04,600.00,429.899 +6207.04,637.50,457.240 +6207.04,675.00,484.718 +6207.04,712.50,512.335 +6207.04,750.00,540.089 +6620.85,-750.00,-460.782 +6620.85,-712.50,-438.615 +6620.85,-675.00,-416.281 +6620.85,-637.50,-393.780 +6620.85,-600.00,-371.112 +6620.85,-562.50,-348.278 +6620.85,-525.00,-325.278 +6620.85,-487.50,-302.113 +6620.85,-450.00,-278.782 +6620.85,-412.50,-255.285 +6620.85,-375.00,-231.621 +6620.85,-337.50,-207.791 +6620.85,-300.00,-183.792 +6620.85,-262.50,-159.622 +6620.85,-225.00,-135.274 +6620.85,-187.50,-110.739 +6620.85,-150.00,-85.994 +6620.85,-112.50,-60.976 +6620.85,-75.00,-35.465 +6620.85,-37.50,-7.052 +6620.85,-7.50,0.000 +6620.85,7.50,14.618 +6620.85,37.50,38.934 +6620.85,75.00,66.586 +6620.85,112.50,93.948 +6620.85,150.00,121.333 +6620.85,187.50,148.819 +6620.85,225.00,176.435 +6620.85,262.50,204.193 +6620.85,300.00,232.099 +6620.85,337.50,260.156 +6620.85,375.00,288.368 +6620.85,412.50,316.734 +6620.85,450.00,345.256 +6620.85,487.50,373.934 +6620.85,525.00,402.768 +6620.85,562.50,431.757 +6620.85,600.00,460.903 +6620.85,637.50,490.203 +6620.85,675.00,519.659 +6620.85,712.50,549.270 +6620.85,750.00,579.036 +7034.65,-750.00,-486.121 +7034.65,-712.50,-462.762 +7034.65,-675.00,-439.215 +7034.65,-637.50,-415.480 +7034.65,-600.00,-391.557 +7034.65,-562.50,-367.446 +7034.65,-525.00,-343.149 +7034.65,-487.50,-318.666 +7034.65,-450.00,-293.995 +7034.65,-412.50,-269.138 +7034.65,-375.00,-244.093 +7034.65,-337.50,-218.860 +7034.65,-300.00,-193.436 +7034.65,-262.50,-167.817 +7034.65,-225.00,-141.996 +7034.65,-187.50,-115.958 +7034.65,-150.00,-89.674 +7034.65,-112.50,-63.058 +7034.65,-75.00,-35.799 +7034.65,-37.50,-3.223 +7034.65,-7.50,0.000 +7034.65,7.50,16.292 +7034.65,37.50,42.535 +7034.65,75.00,72.058 +7034.65,112.50,101.207 +7034.65,150.00,130.364 +7034.65,187.50,159.625 +7034.65,225.00,189.027 +7034.65,262.50,218.585 +7034.65,300.00,248.308 +7034.65,337.50,278.199 +7034.65,375.00,308.261 +7034.65,412.50,338.497 +7034.65,450.00,368.905 +7034.65,487.50,399.488 +7034.65,525.00,430.245 +7034.65,562.50,461.176 +7034.65,600.00,492.281 +7034.65,637.50,523.560 +7034.65,675.00,555.012 +7034.65,712.50,586.638 +7034.65,750.00,618.436 +7448.45,-750.00,-510.929 +7448.45,-712.50,-486.404 +7448.45,-675.00,-461.667 +7448.45,-637.50,-436.720 +7448.45,-600.00,-411.563 +7448.45,-562.50,-386.196 +7448.45,-525.00,-360.620 +7448.45,-487.50,-334.835 +7448.45,-450.00,-308.841 +7448.45,-412.50,-282.637 +7448.45,-375.00,-256.223 +7448.45,-337.50,-229.597 +7448.45,-300.00,-202.756 +7448.45,-262.50,-175.695 +7448.45,-225.00,-148.405 +7448.45,-187.50,-120.865 +7448.45,-150.00,-93.035 +7448.45,-112.50,-64.803 +7448.45,-75.00,-35.728 +7448.45,-37.50,0.000 +7448.45,-7.50,0.000 +7448.45,7.50,18.073 +7448.45,37.50,46.316 +7448.45,75.00,77.742 +7448.45,112.50,108.693 +7448.45,150.00,139.633 +7448.45,187.50,170.679 +7448.45,225.00,201.877 +7448.45,262.50,233.245 +7448.45,300.00,264.794 +7448.45,337.50,296.529 +7448.45,375.00,328.454 +7448.45,412.50,360.570 +7448.45,450.00,392.878 +7448.45,487.50,425.380 +7448.45,525.00,458.076 +7448.45,562.50,490.964 +7448.45,600.00,524.046 +7448.45,637.50,557.321 +7448.45,675.00,590.788 +7448.45,712.50,624.448 +7448.45,750.00,658.300 +7862.25,-750.00,-535.185 +7862.25,-712.50,-509.519 +7862.25,-675.00,-483.618 +7862.25,-637.50,-457.482 +7862.25,-600.00,-431.113 +7862.25,-562.50,-404.509 +7862.25,-525.00,-377.673 +7862.25,-487.50,-350.603 +7862.25,-450.00,-323.301 +7862.25,-412.50,-295.764 +7862.25,-375.00,-267.993 +7862.25,-337.50,-239.985 +7862.25,-300.00,-211.735 +7862.25,-262.50,-183.238 +7862.25,-225.00,-154.481 +7862.25,-187.50,-125.438 +7862.25,-150.00,-96.054 +7862.25,-112.50,-66.179 +7862.25,-75.00,-35.191 +7862.25,-37.50,0.000 +7862.25,-7.50,0.000 +7862.25,7.50,19.962 +7862.25,37.50,50.282 +7862.25,75.00,83.643 +7862.25,112.50,116.414 +7862.25,150.00,149.150 +7862.25,187.50,181.992 +7862.25,225.00,214.994 +7862.25,262.50,248.182 +7862.25,300.00,281.567 +7862.25,337.50,315.157 +7862.25,375.00,348.956 +7862.25,412.50,382.965 +7862.25,450.00,417.187 +7862.25,487.50,451.622 +7862.25,525.00,486.270 +7862.25,562.50,521.133 +7862.25,600.00,556.208 +7862.25,637.50,591.497 +7862.25,675.00,626.999 +7862.25,712.50,662.713 +7862.25,750.00,698.640 +8276.06,-750.00,-558.870 +8276.06,-712.50,-532.090 +8276.06,-675.00,-505.048 +8276.06,-637.50,-477.747 +8276.06,-600.00,-450.186 +8276.06,-562.50,-422.366 +8276.06,-525.00,-394.288 +8276.06,-487.50,-365.951 +8276.06,-450.00,-337.355 +8276.06,-412.50,-308.500 +8276.06,-375.00,-279.383 +8276.06,-337.50,-250.003 +8276.06,-300.00,-220.353 +8276.06,-262.50,-190.425 +8276.06,-225.00,-160.202 +8276.06,-187.50,-129.653 +8276.06,-150.00,-98.703 +8276.06,-112.50,-67.150 +8276.06,-75.00,-34.118 +8276.06,-37.50,0.000 +8276.06,-7.50,0.000 +8276.06,7.50,21.961 +8276.06,37.50,54.438 +8276.06,75.00,89.769 +8276.06,112.50,124.380 +8276.06,150.00,158.924 +8276.06,187.50,193.572 +8276.06,225.00,228.390 +8276.06,262.50,263.407 +8276.06,300.00,298.639 +8276.06,337.50,334.095 +8276.06,375.00,369.779 +8276.06,412.50,405.694 +8276.06,450.00,441.842 +8276.06,487.50,478.224 +8276.06,525.00,514.841 +8276.06,562.50,551.692 +8276.06,600.00,588.778 +8276.06,637.50,626.099 +8276.06,675.00,663.654 +8276.06,712.50,701.442 +8276.06,750.00,739.464 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..66126d1e6a07666c8737ecad12590dffa7e49d11 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_drag.vemd @@ -0,0 +1,24 @@ +n [rpm] , T_drag [Nm] +0, -1.77 +41.3802852038928, -1.86 +413.802852038928, -2.72 +827.605704077856, -3.66 +1241.40855611678, -4.61 +1655.21140815571, -5.55 +2069.01426019464, -6.5 +2482.81711223357, -7.45 +2896.6199642725, -8.39 +3310.42281631142, -9.34 +3724.22566835035, -10.29 +4138.02852038928, -11.23 +4551.83137242821, -12.18 +4965.63422446714, -13.12 +5379.43707650606, -14.07 +5793.23992854499, -15.02 +6207.04278058392, -15.96 +6620.84563262285, -16.91 +7034.64848466177, -17.86 +7448.4513367007, -18.8 +7862.25418873963, -19.75 +8276.05704077856, -20.69 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..45c4af93a701b08dff7dd3c24b76d310c4179363 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/EM_fld.vemp @@ -0,0 +1,25 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 750.00, -750.00 +41, 750.00, -750.00 +414, 750.00, -750.00 +828, 750.00, -750.00 +1241, 750.00, -750.00 +1655, 750.00, -750.00 +2069, 750.00, -750.00 +2483, 625.00, -625.00 +2897, 535.71, -535.71 +3310, 468.75, -468.75 +3724, 416.67, -416.67 +4138, 375.00, -375.00 +4552, 340.91, -340.91 +4966, 312.50, -312.50 +5379, 288.46, -288.46 +5793, 267.86, -267.86 +6207, 250.00, -250.00 +6621, 234.38, -234.38 +7035, 220.59, -220.59 +7448, 208.33, -208.33 +7862, 197.37, -197.37 +8276, 187.50, -187.50 + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gear_indirect.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gear_indirect.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..aa8fc919ef73927ecce1e18f2b0d790cd9e5a97b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gear_indirect.vtlm @@ -0,0 +1,11 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-50000,1500 +0,-125,3.75 +0,0,0 +0,125,3.75 +0,50000,1500 +20000,-50000,1500 +20000,-780,23.25 +20000,0,0 +20000,780,23.25 +20000,50000,1500 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..2cc4c716211c5f1847b8dd7e5a7ec77f5ee757d3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_Map.vemo @@ -0,0 +1,379 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-1030.00,0.000 +0.00,-978.50,0.000 +0.00,-927.00,0.000 +0.00,-875.50,0.000 +0.00,-824.00,0.000 +0.00,-772.50,0.000 +0.00,-721.00,-0.220 +0.00,-669.50,-0.510 +0.00,-618.00,-0.671 +0.00,-566.50,-0.765 +0.00,-515.00,-0.813 +0.00,-463.50,-0.826 +0.00,-412.00,-0.811 +0.00,-360.50,-0.771 +0.00,-309.00,-0.710 +0.00,-257.50,-0.629 +0.00,-206.00,-0.531 +0.00,-154.50,-0.416 +0.00,-103.00,-0.287 +0.00,-51.50,-0.143 +0.00,-10.30,-0.015 +0.00,10.30,0.059 +0.00,51.50,0.264 +0.00,103.00,0.527 +0.00,154.50,0.800 +0.00,206.00,1.080 +0.00,257.50,1.370 +0.00,309.00,1.667 +0.00,360.50,1.972 +0.00,412.00,2.285 +0.00,463.50,2.606 +0.00,515.00,2.935 +0.00,566.50,3.270 +0.00,618.00,3.613 +0.00,669.50,3.964 +0.00,721.00,4.321 +0.00,772.50,4.685 +0.00,824.00,5.056 +0.00,875.50,5.433 +0.00,927.00,5.818 +0.00,978.50,6.209 +0.00,1030.00,6.606 +37.00,-1030.00,0.000 +37.00,-978.50,0.000 +37.00,-927.00,0.000 +37.00,-875.50,0.000 +37.00,-824.00,0.000 +37.00,-772.50,0.000 +37.00,-721.00,-0.447 +37.00,-669.50,-0.678 +37.00,-618.00,-0.798 +37.00,-566.50,-0.860 +37.00,-515.00,-0.883 +37.00,-463.50,-0.876 +37.00,-412.00,-0.845 +37.00,-360.50,-0.792 +37.00,-309.00,-0.721 +37.00,-257.50,-0.633 +37.00,-206.00,-0.530 +37.00,-154.50,-0.413 +37.00,-103.00,-0.283 +37.00,-51.50,-0.141 +37.00,-10.30,-0.015 +37.00,10.30,0.055 +37.00,51.50,0.248 +37.00,103.00,0.495 +37.00,154.50,0.749 +37.00,206.00,1.011 +37.00,257.50,1.280 +37.00,309.00,1.556 +37.00,360.50,1.840 +37.00,412.00,2.129 +37.00,463.50,2.426 +37.00,515.00,2.729 +37.00,566.50,3.039 +37.00,618.00,3.355 +37.00,669.50,3.677 +37.00,721.00,4.005 +37.00,772.50,4.340 +37.00,824.00,4.680 +37.00,875.50,5.026 +37.00,927.00,5.378 +37.00,978.50,5.735 +37.00,1030.00,6.098 +370.00,-1030.00,-36.344 +370.00,-978.50,-34.617 +370.00,-927.00,-32.881 +370.00,-875.50,-31.134 +370.00,-824.00,-29.376 +370.00,-772.50,-27.609 +370.00,-721.00,-25.831 +370.00,-669.50,-24.043 +370.00,-618.00,-22.244 +370.00,-566.50,-20.436 +370.00,-515.00,-18.617 +370.00,-463.50,-16.789 +370.00,-412.00,-14.950 +370.00,-360.50,-13.102 +370.00,-309.00,-11.244 +370.00,-257.50,-9.375 +370.00,-206.00,-7.497 +370.00,-154.50,-5.609 +370.00,-103.00,-3.711 +370.00,-51.50,-1.802 +370.00,-10.30,-0.248 +370.00,10.30,0.515 +370.00,51.50,2.185 +370.00,103.00,4.271 +370.00,154.50,6.366 +370.00,206.00,8.470 +370.00,257.50,10.584 +370.00,309.00,12.707 +370.00,360.50,14.839 +370.00,412.00,16.982 +370.00,463.50,19.133 +370.00,515.00,21.294 +370.00,566.50,23.465 +370.00,618.00,25.644 +370.00,669.50,27.833 +370.00,721.00,30.032 +370.00,772.50,32.239 +370.00,824.00,34.456 +370.00,875.50,36.682 +370.00,927.00,38.918 +370.00,978.50,41.162 +370.00,1030.00,43.415 +740.00,-1030.00,-74.961 +740.00,-978.50,-71.312 +740.00,-927.00,-67.651 +740.00,-875.50,-63.979 +740.00,-824.00,-60.294 +740.00,-772.50,-56.597 +740.00,-721.00,-52.889 +740.00,-669.50,-49.169 +740.00,-618.00,-45.436 +740.00,-566.50,-41.693 +740.00,-515.00,-37.937 +740.00,-463.50,-34.170 +740.00,-412.00,-30.391 +740.00,-360.50,-26.600 +740.00,-309.00,-22.798 +740.00,-257.50,-18.984 +740.00,-206.00,-15.158 +740.00,-154.50,-11.321 +740.00,-103.00,-7.471 +740.00,-51.50,-3.607 +740.00,-10.30,-0.452 +740.00,10.30,1.051 +740.00,51.50,4.367 +740.00,103.00,8.495 +740.00,154.50,12.632 +740.00,206.00,16.780 +740.00,257.50,20.940 +740.00,309.00,25.111 +740.00,360.50,29.294 +740.00,412.00,33.488 +740.00,463.50,37.693 +740.00,515.00,41.910 +740.00,566.50,46.139 +740.00,618.00,50.379 +740.00,669.50,54.630 +740.00,721.00,58.893 +740.00,772.50,63.167 +740.00,824.00,67.452 +740.00,875.50,71.749 +740.00,927.00,76.057 +740.00,978.50,80.377 +740.00,1030.00,84.707 +1110.00,-1030.00,-113.264 +1110.00,-978.50,-107.719 +1110.00,-927.00,-102.159 +1110.00,-875.50,-96.584 +1110.00,-824.00,-90.994 +1110.00,-772.50,-85.390 +1110.00,-721.00,-79.770 +1110.00,-669.50,-74.136 +1110.00,-618.00,-68.486 +1110.00,-566.50,-62.822 +1110.00,-515.00,-57.144 +1110.00,-463.50,-51.450 +1110.00,-412.00,-45.742 +1110.00,-360.50,-40.018 +1110.00,-309.00,-34.281 +1110.00,-257.50,-28.528 +1110.00,-206.00,-22.760 +1110.00,-154.50,-16.978 +1110.00,-103.00,-11.179 +1110.00,-51.50,-5.359 +1110.00,-10.30,-0.563 +1110.00,10.30,1.626 +1110.00,51.50,6.595 +1110.00,103.00,12.768 +1110.00,154.50,18.951 +1110.00,206.00,25.148 +1110.00,257.50,31.359 +1110.00,309.00,37.584 +1110.00,360.50,43.824 +1110.00,412.00,50.078 +1110.00,463.50,56.347 +1110.00,515.00,62.631 +1110.00,566.50,68.929 +1110.00,618.00,75.242 +1110.00,669.50,81.569 +1110.00,721.00,87.911 +1110.00,772.50,94.268 +1110.00,824.00,100.638 +1110.00,875.50,107.024 +1110.00,927.00,113.423 +1110.00,978.50,119.838 +1110.00,1030.00,126.266 +1480.00,-1030.00,-151.257 +1480.00,-978.50,-143.841 +1480.00,-927.00,-136.405 +1480.00,-875.50,-128.950 +1480.00,-824.00,-121.475 +1480.00,-772.50,-113.982 +1480.00,-721.00,-106.469 +1480.00,-669.50,-98.937 +1480.00,-618.00,-91.386 +1480.00,-566.50,-83.815 +1480.00,-515.00,-76.226 +1480.00,-463.50,-68.618 +1480.00,-412.00,-60.990 +1480.00,-360.50,-53.344 +1480.00,-309.00,-45.678 +1480.00,-257.50,-37.993 +1480.00,-206.00,-30.289 +1480.00,-154.50,-22.565 +1480.00,-103.00,-14.819 +1480.00,-51.50,-7.042 +1480.00,-10.30,-0.493 +1480.00,10.30,2.246 +1480.00,51.50,8.883 +1480.00,103.00,17.106 +1480.00,154.50,25.338 +1480.00,206.00,33.588 +1480.00,257.50,41.855 +1480.00,309.00,50.141 +1480.00,360.50,58.446 +1480.00,412.00,66.770 +1480.00,463.50,75.112 +1480.00,515.00,83.474 +1480.00,566.50,91.854 +1480.00,618.00,100.253 +1480.00,669.50,108.671 +1480.00,721.00,117.108 +1480.00,772.50,125.563 +1480.00,824.00,134.038 +1480.00,875.50,142.531 +1480.00,927.00,151.043 +1480.00,978.50,159.573 +1480.00,1030.00,168.122 +1850.00,-1030.00,-188.930 +1850.00,-978.50,-179.665 +1850.00,-927.00,-170.376 +1850.00,-875.50,-161.062 +1850.00,-824.00,-151.723 +1850.00,-772.50,-142.360 +1850.00,-721.00,-132.971 +1850.00,-669.50,-123.558 +1850.00,-618.00,-114.120 +1850.00,-566.50,-104.657 +1850.00,-515.00,-95.170 +1850.00,-463.50,-85.659 +1850.00,-412.00,-76.122 +1850.00,-360.50,-66.561 +1850.00,-309.00,-56.976 +1850.00,-257.50,-47.365 +1850.00,-206.00,-37.729 +1850.00,-154.50,-28.067 +1850.00,-103.00,-18.376 +1850.00,-51.50,-8.638 +1850.00,-10.30,0.000 +1850.00,10.30,2.921 +1850.00,51.50,11.243 +1850.00,103.00,21.520 +1850.00,154.50,31.807 +1850.00,206.00,42.113 +1850.00,257.50,52.443 +1850.00,309.00,62.797 +1850.00,360.50,73.174 +1850.00,412.00,83.576 +1850.00,463.50,94.003 +1850.00,515.00,104.453 +1850.00,566.50,114.928 +1850.00,618.00,125.427 +1850.00,669.50,135.950 +1850.00,721.00,146.498 +1850.00,772.50,157.070 +1850.00,824.00,167.666 +1850.00,875.50,178.286 +1850.00,927.00,188.931 +1850.00,978.50,199.599 +1850.00,1030.00,210.291 +2220.00,-1030.00,-226.266 +2220.00,-978.50,-215.178 +2220.00,-927.00,-204.058 +2220.00,-875.50,-192.907 +2220.00,-824.00,-181.723 +2220.00,-772.50,-170.509 +2220.00,-721.00,-159.262 +2220.00,-669.50,-147.984 +2220.00,-618.00,-136.675 +2220.00,-566.50,-125.334 +2220.00,-515.00,-113.962 +2220.00,-463.50,-102.558 +2220.00,-412.00,-91.123 +2220.00,-360.50,-79.656 +2220.00,-309.00,-68.158 +2220.00,-257.50,-56.628 +2220.00,-206.00,-45.066 +2220.00,-154.50,-33.469 +2220.00,-103.00,-21.833 +2220.00,-51.50,-10.128 +2220.00,-10.30,0.000 +2220.00,10.30,3.656 +2220.00,51.50,13.687 +2220.00,103.00,26.025 +2220.00,154.50,38.369 +2220.00,206.00,50.739 +2220.00,257.50,63.137 +2220.00,309.00,75.565 +2220.00,360.50,88.023 +2220.00,412.00,100.512 +2220.00,463.50,113.032 +2220.00,515.00,125.583 +2220.00,566.50,138.165 +2220.00,618.00,150.778 +2220.00,669.50,163.421 +2220.00,721.00,176.096 +2220.00,772.50,188.801 +2220.00,824.00,201.537 +2220.00,875.50,214.304 +2220.00,927.00,227.101 +2220.00,978.50,239.929 +2220.00,1030.00,252.787 +2590.00,-1030.00,-263.249 +2590.00,-978.50,-250.362 +2590.00,-927.00,-237.434 +2590.00,-875.50,-224.467 +2590.00,-824.00,-211.460 +2590.00,-772.50,-198.413 +2590.00,-721.00,-185.327 +2590.00,-669.50,-172.200 +2590.00,-618.00,-159.035 +2590.00,-566.50,-145.830 +2590.00,-515.00,-132.585 +2590.00,-463.50,-119.301 +2590.00,-412.00,-105.977 +2590.00,-360.50,-92.614 +2590.00,-309.00,-79.211 +2590.00,-257.50,-65.768 +2590.00,-206.00,-52.283 +2590.00,-154.50,-38.755 +2590.00,-103.00,-25.173 +2590.00,-51.50,-11.490 +2590.00,-10.30,0.000 +2590.00,10.30,4.457 +2590.00,51.50,16.224 +2590.00,103.00,30.631 +2590.00,154.50,45.039 +2590.00,206.00,59.477 +2590.00,257.50,73.949 +2590.00,309.00,88.458 +2590.00,360.50,103.005 +2590.00,412.00,117.591 +2590.00,463.50,132.215 +2590.00,515.00,146.877 +2590.00,566.50,161.579 +2590.00,618.00,176.319 +2590.00,669.50,191.097 +2590.00,721.00,205.914 +2590.00,772.50,220.770 +2590.00,824.00,235.664 +2590.00,875.50,250.596 +2590.00,927.00,265.567 +2590.00,978.50,280.576 +2590.00,1030.00,295.623 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..314a3b4215bb1aa40d2cff6c8ce1d423f740eeff --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_drag.vemd @@ -0,0 +1,11 @@ +n [rpm] , T_drag [Nm] +0, -1.89 +37, -2.01 +370, -3.02 +740, -4.14 +1110, -5.26 +1480, -6.38 +1850, -7.5 +2220, -8.62 +2590, -9.74 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..d7a681028a9a2a69ef89f14bd1b89e4ae5792efc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Gen_fld.vemp @@ -0,0 +1,13 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 1030.00, -1030.00 +37, 1030.00, -1030.00 +370, 1030.00, -1030.00 +740, 1030.00, -1030.00 +1110, 1030.00, -1030.00 +1480, 1030.00, -1030.00 +1850, 1030.00, -1030.00 +2220, 858.33, -858.33 +2590, 735.71, -735.71 + + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbat b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbat new file mode 100644 index 0000000000000000000000000000000000000000..ed3162d469b7de6a3abbe988419f1528919540de --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbat @@ -0,0 +1,19 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-09-03T09:52:30.7820736Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "REESSType": "Battery", + "Model": "Generic Battery", + "Capacity": 1555.5, + "SOC_min": 7.5, + "SOC_max": 92.5, + "MaxCurrentMap": "MaxCurrent.vimax", + "InternalResistanceCurve": "GenericBattery_PEV_800V.vbatr", + "SoCCurve": "GenericBattery_PEV_800V.vbatv" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbatr b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbatr new file mode 100644 index 0000000000000000000000000000000000000000..0196fe606aaeb90d728d71105fe6f424aa2d94c2 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbatr @@ -0,0 +1,3 @@ +SoC, Ri +0, 0.04 +100, 0.04 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbatv new file mode 100644 index 0000000000000000000000000000000000000000..5203594de4f9edfb75fb9b47aa2b8ed2f471ea5f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericBattery_PEV_800V.vbatv @@ -0,0 +1,12 @@ +SOC, V +0,718.4170472 +10,746.8408459 +20,763.1375469 +30,771.851826 +40,776.2574768 +50,778.6145358 +60,780.4264075 +70,782.6969898 +80,786.1877986 +90,791.6750932 +100,800.2070015 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericGen.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericGen.vem new file mode 100644 index 0000000000000000000000000000000000000000..8bce454f0ffcf15816a1bb5d813bce93b58a315d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/GenericGen.vem @@ -0,0 +1,33 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-05T14:49:40.5920495Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "Inertia": 0.134, + "ContinuousTorque": 798, + "ContinuousTorqueSpeed": 1850, + "OverloadTorque": 1030, + "OverloadTorqueSpeed": 1850, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9, + "VoltageLevels": [ + { + "Voltage": 0.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + }, + { + "Voltage": 1000.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/HEV_S2_Group5LH_rl_APTN.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/HEV_S2_Group5LH_rl_APTN.vecto new file mode 100644 index 0000000000000000000000000000000000000000..42d172806ce4a00024b0fe753d4652684b7c7181 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/HEV_S2_Group5LH_rl_APTN.vecto @@ -0,0 +1,57 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-12-17T13:29:45.3314877Z", + "AppVersion": "3", + "FileVersion": 11 + }, + "Body": { + "SavedInDeclMode": false, + "VehicleFile": "HEV_S2_Group5_LH_rl.vveh", + "EngineFile": "209kW_7c7l.veng", + "GearboxFile": "3speedAPT-N.vgbx", + "TCU": "3speedAPT-N.vgbx", + "HybridStrategyParams": "Hybrid_Parameters.vhctl", + "Padd_electric": 0.0, + "---BusAux": "xEV_Aux.vaux", + "VACC": "Truck.vacc", + "EngineStopStartAtVehicleStopThreshold": 2.0, + "EngineStopStartMaxOffTimespan": 120.0, + "EngineStopStartUtilityFactor": 0.8, + "EngineStopStartUtilityFactorDriving": 0.8, + "EcoRollMinSpeed": 60.000000000000007, + "EcoRollActivationDelay": 2.0, + "EcoRollUnderspeedThreshold": 0.0, + "EcoRollMaxAcceleration": 0.1, + "PCCEnableSpeed": 80.0, + "PCCMinSpeed": 50.0, + "PCCUnderspeed": 8.0, + "PCCOverSpeed": 5.0, + "PCCPreviewDistanceUC1": 1500.0, + "PCCPreviewDistanceUC2": 1000.0, + "LAC": { + "Enabled": true, + "PreviewDistanceFactor": 10.0, + "DF_offset": 2.5, + "DF_scaling": 1.5, + "DF_targetSpeedLookup": "", + "Df_velocityDropLookup": "", + "MinSpeed": 50.0 + }, + "OverSpeedEcoRoll": { + "Mode": "Overspeed", + "MinSpeed": 50.0, + "OverSpeed": 2.5 + }, + "Cycles": [ + "LongHaul", + "RegionalDelivery", + "UrbanDelivery", + "Construction", + "Urban", + "Suburban", + "Interurban", + "Coach" + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/HEV_S2_Group5_LH_rl.vveh b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/HEV_S2_Group5_LH_rl.vveh new file mode 100644 index 0000000000000000000000000000000000000000..65f262813babe00971e7295491e827939a5e0aa6 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/HEV_S2_Group5_LH_rl.vveh @@ -0,0 +1,106 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-12-17T13:29:44.1894088Z", + "AppVersion": "3", + "FileVersion": 10 + }, + "Body": { + "SavedInDeclMode": false, + "VehCat": "Tractor", + "LegislativeClass": "Unknown", + "CurbWeight": 10143.4, + "CurbWeightExtra": 7500.0, + "MassMax": 18.0, + "Loading": 19300.0, + "rdyn": 492.20000000000005, + "CdCorrMode": "CdofVdecl", + "CdCorrFile": "", + "Retarder": { + "Type": "None", + "Ratio": 1.0, + "File": "" + }, + "AxleConfig": { + "Type": "4x2", + "Axles": [ + { + "Inertia": 14.9, + "Wheels": "315/70 R22.5", + "AxleWeightShare": 0.2, + "TwinTyres": false, + "RRCISO": 0.0034, + "FzISO": 33350.0, + "Type": "VehicleNonDriven" + }, + { + "Inertia": 14.9, + "Wheels": "315/70 R22.5", + "AxleWeightShare": 0.25, + "TwinTyres": true, + "RRCISO": 0.004, + "FzISO": 33350.0, + "Type": "VehicleDriven" + }, + { + "Inertia": 19.2, + "Wheels": "385/65 R22.5", + "AxleWeightShare": 0.18333, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 37500.0, + "Type": "Trailer" + }, + { + "Inertia": 19.2, + "Wheels": "385/65 R22.5", + "AxleWeightShare": 0.18333, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 37500.0, + "Type": "Trailer" + }, + { + "Inertia": 19.2, + "Wheels": "385/65 R22.5", + "AxleWeightShare": 0.18334, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 37500.0, + "Type": "Trailer" + } + ] + }, + "EngineStopStart": false, + "EcoRoll": "None", + "PredictiveCruiseControl": "None", + "ATEcoRollReleaseLockupClutch": false, + "CdA": 4.31, + "VehicleHeight": 4.0, + "InitialSoC": 70, + "PowertrainConfiguration": "SerialHybrid", + "ElectricMotors": [ + { + "Count": 2, + "Ratio": 1.0, + "Position": "E2", + "MotorFile": "BEV_Group5_EM.vem", + "MechanicalEfficiency": 1.0 + }, + { + "Count": 1, + "Ratio": 1, + "Position": "GEN", + "MotorFile": "GenericGen.vem", + "MechanicalEfficiency": 1 + } + ], + "Batteries": [ + { + "NumPacks": 1, + "BatteryFile": "BEV_Group5_REESS.vreess", + "StreamId": 0 + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Hybrid_Parameters.vhctl b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Hybrid_Parameters.vhctl new file mode 100644 index 0000000000000000000000000000000000000000..2f2ed814fcff9e24e146e56f0d0ff41378f5a386 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Hybrid_Parameters.vhctl @@ -0,0 +1,18 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2020-09-07T15:28:08.3781385Z", + "AppVersion": "3", + "FileVersion": 2 + }, + "Body": { + "----EquivalenceFactor": 2.0, + "MinSoC": 24.0, + "----MaxSoC": 80.0, + "TargetSoC": 70.0, + "----AuxBufferTime": 5.0, + "----AuxBufferChgTime": 5.0, + "----MinICEOnTime": 10.0, + "GensetMinOptPowerFactor": 0.2 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/MaxCurrent.vimax b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/MaxCurrent.vimax new file mode 100644 index 0000000000000000000000000000000000000000..877189e0ea769225acc1823bc8344ca346c0e5cb --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/MaxCurrent.vimax @@ -0,0 +1,3 @@ +SOC, I_charge, I_discharge +0, 1500, 1500 +100, 1500, 1500 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/NoCompressor.ACMP b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/NoCompressor.ACMP new file mode 100644 index 0000000000000000000000000000000000000000..f13be9533f777a28512e385e1c43cc41ca421a97 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/NoCompressor.ACMP @@ -0,0 +1,4 @@ +rpm,flowRate [l/min],power on [W],power off [W] +0,0,0,0 +500,0,0,0 +3000,0,0,0 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/REESS_SOC_curve.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/REESS_SOC_curve.vbatv new file mode 100644 index 0000000000000000000000000000000000000000..745afc9500ba00a1a4a49acb4752c88dd2105a4c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/REESS_SOC_curve.vbatv @@ -0,0 +1,13 @@ +SOC, V +0,718.4170472 +10,746.8408459 +20,763.1375469 +30,771.851826 +40,776.2574768 +50,778.6145358 +60,780.4264075 +70,782.6969898 +80,786.1877986 +90,791.6750932 +100,800.2070015 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/ShiftParameters.vtcu b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/ShiftParameters.vtcu new file mode 100644 index 0000000000000000000000000000000000000000..a26e0e50f9e03240a8ddf18d296b8edbcda8bdcb --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/ShiftParameters.vtcu @@ -0,0 +1,14 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2016-10-13T15:52:04.0766564Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "Rating_current_gear": 0.995, + "RatioEarlyUpshiftFC" : 24, + "RatioEarlyDownshiftFC" : 24 + + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Truck.vacc b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Truck.vacc new file mode 100644 index 0000000000000000000000000000000000000000..b03ec7e47e9765ae57e43462c7f4c3ad15a38e7e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/Truck.vacc @@ -0,0 +1,6 @@ +v [km/h],acc [m/s�],dec [m/s�] +0,1,-1 +25,1,-1 +50,0.642857143,-1 +60,0.5,-0.5 +120,0.5,-0.5 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/xEV_Aux.vaux b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/xEV_Aux.vaux new file mode 100644 index 0000000000000000000000000000000000000000..8da7fd167089916a4dce032389d35c90e03f8776 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_APTN_PCC/xEV_Aux.vaux @@ -0,0 +1,34 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-10-22T12:25:57.2960587Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "PneumaticSystem": { + "CompressorMap": "NoCompressor.ACMP", + "AverageAirDemand": 0.0, + "SmartAirCompression": false, + "GearRatio": 0.0 + }, + "ElectricSystem": { + "AlternatorEfficiency": 0.0, + "CurrentDemand": 0.0, + "CurrentDemandEngineOffDriving": 104.219081272085, + "CurrentDemandEngineOffStandstill": 103.795053003534, + "AlternatorType": "Conventional", + "ElectricStorageCapacity": 0.0, + "BatteryEfficiency": 1.0, + "MaxAlternatorPower": 0.0, + "DCDCConverterEfficiency": 0.98, + "ESSupplyFromHEVREESS": true + }, + "HVAC": { + "ElectricPowerDemand": 0.0, + "MechanicalPowerDemand": 0.0, + "AuxHeaterPower": 0.0, + "AverageHeatingDemand": 0.0 + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_7c7l.veng b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_7c7l.veng new file mode 100644 index 0000000000000000000000000000000000000000..55c93808f6660bfaa906083b1dc6182899876c89 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_7c7l.veng @@ -0,0 +1,35 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-17T07:29:46.1581600Z", + "AppVersion": "3", + "FileVersion": 5 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "209kW 7.7l Engine", + "Displacement": "7700", + "IdlingSpeed": 600.0, + "Inertia": 3.33, + "Fuels": [ + { + "WHTC-Urban": 0.0, + "WHTC-Rural": 0.0, + "WHTC-Motorway": 0.0, + "WHTC-Engineering": 1.0090832895, + "ColdHotBalancingFactor": 0.0, + "CFRegPer": 1.0, + "FuelMap": "209kW_ICE_Map.vmap", + "FuelType": "DieselCI" + } + ], + "RatedPower": 209000, + "RatedSpeed": 2550.0, + "MaxTorque": 1100, + "FullLoadCurve": "209kW_ICE_fld.vfld", + "WHRType": [ + "None" + ], + "WHRCorrectionFactors": {} + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_ICE_Map.vmap b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_ICE_Map.vmap new file mode 100644 index 0000000000000000000000000000000000000000..10f19d740cea49453b2c50171533dabc94912974 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_ICE_Map.vmap @@ -0,0 +1,163 @@ +engine speed [rpm], torque [Nm], fuel consumption [g/h] +600.00,0.00,648.214 +600.00,68.85,1626.915 +600.00,98.35,2053.103 +600.00,195.48,3383.983 +600.00,293.83,4726.347 +600.00,392.18,6058.504 +600.00,489.31,8107.779 +600.00,587.66,10186.402 +600.00,684.78,12239.042 +600.00,783.14,14317.665 +600.00,881.49,16396.288 +600.00,978.61,18448.929 +600.00,1076.96,20527.552 +600.00,1175.32,22606.175 +851.61,0.00,928.937 +851.61,64.67,1892.325 +851.61,92.39,2405.282 +851.61,183.63,4070.477 +851.61,276.02,5758.641 +851.61,368.41,7453.185 +851.61,459.65,9663.237 +851.61,552.04,11837.561 +851.61,643.28,13995.297 +851.61,735.67,16050.952 +851.61,828.06,18103.130 +851.61,919.30,20129.657 +851.61,1011.69,22181.836 +851.61,1104.09,24234.015 +1103.23,0.00,1209.659 +1103.23,62.41,2157.736 +1103.23,89.15,2758.737 +1103.23,177.19,4758.248 +1103.23,266.34,6792.210 +1103.23,355.49,8847.865 +1103.23,443.52,11219.971 +1103.23,532.67,13488.720 +1103.23,620.71,15726.845 +1103.23,709.86,17966.245 +1103.23,799.01,20229.890 +1103.23,887.05,22492.259 +1103.23,976.20,24743.508 +1103.23,1065.35,26994.757 +1354.84,0.00,1490.382 +1354.84,60.98,2421.870 +1354.84,87.11,3112.193 +1354.84,173.14,5444.742 +1354.84,260.25,7824.504 +1354.84,347.36,10242.546 +1354.84,433.39,12776.705 +1354.84,520.50,15141.155 +1354.84,606.52,17457.117 +1354.84,693.63,19881.539 +1354.84,780.75,22341.689 +1354.84,866.77,24801.840 +1354.84,953.88,27249.231 +1354.84,1041.00,30075.597 +1606.45,0.00,1964.218 +1606.45,60.00,2898.713 +1606.45,85.71,3701.160 +1606.45,170.35,6375.138 +1606.45,256.07,9132.915 +1606.45,341.78,11916.086 +1606.45,426.42,14629.424 +1606.45,512.14,17373.235 +1606.45,596.78,20240.205 +1606.45,682.49,23084.322 +1606.45,768.20,25784.963 +1606.45,852.85,28443.704 +1606.45,938.56,31162.121 +1606.45,1024.27,33987.192 +1858.06,0.00,2405.472 +1858.06,59.28,3395.960 +1858.06,84.69,4296.748 +1858.06,168.33,7298.534 +1858.06,253.02,10456.979 +1858.06,337.71,13614.161 +1858.06,421.35,16806.717 +1858.06,506.04,19948.738 +1858.06,589.67,23098.339 +1858.06,674.37,26265.628 +1858.06,759.06,29333.109 +1858.06,842.69,32242.669 +1858.06,927.39,35435.225 +1858.06,1012.08,38645.468 +2109.68,0.00,2908.296 +2109.68,58.74,4008.698 +2109.68,83.92,4995.396 +2109.68,166.78,8282.706 +2109.68,250.70,11854.275 +2109.68,334.61,15399.314 +2109.68,417.48,18962.040 +2109.68,501.40,22400.954 +2109.68,584.26,25903.038 +2109.68,668.18,29565.571 +2109.68,752.10,33148.511 +2109.68,834.96,36787.039 +2109.68,918.88,40596.124 +2109.68,1002.79,44447.432 +2361.29,0.00,3517.244 +2361.29,58.31,4836.211 +2361.29,83.30,5889.868 +2361.29,165.57,9403.322 +2361.29,248.87,13398.123 +2361.29,332.18,17295.644 +2361.29,414.44,21267.704 +2361.29,497.74,25214.497 +2361.29,580.01,29106.965 +2361.29,663.31,33230.630 +2361.29,746.62,37409.885 +2361.29,828.88,41464.064 +2361.29,912.18,45307.994 +2361.29,995.49,49151.923 +2612.90,0.00,4272.744 +2612.90,57.97,5567.707 +2612.90,82.81,6727.488 +2612.90,164.59,10597.214 +2612.90,247.40,14941.971 +2612.90,330.21,19262.724 +2612.90,411.98,23531.678 +2612.90,494.79,27996.455 +2612.90,576.57,32694.958 +2612.90,659.38,37346.716 +2612.90,742.19,41862.028 +2612.90,823.97,46367.264 +2612.90,906.78,50929.527 +2612.90,989.59,55491.791 +2864.52,0.00,4975.182 +2864.52,57.68,6271.408 +2864.52,82.40,7570.161 +2864.52,163.78,11901.020 +2864.52,246.18,16541.408 +2864.52,328.59,21435.734 +2864.52,409.96,26482.929 +2864.52,492.36,31523.807 +2864.52,573.74,36936.118 +2864.52,656.14,42358.536 +2864.52,738.54,47310.978 +2864.52,819.92,52201.514 +2864.52,902.32,57153.955 +2864.52,984.73,62106.397 +535.00,-48.25,0.000 +795.00,-53.16,0.000 +1055.00,-59.37,0.000 +1315.00,-66.29,0.000 +1575.00,-73.79,0.000 +1835.00,-81.42,0.000 +2095.00,-88.73,0.000 +2355.00,-95.54,0.000 +2615.00,-102.74,0.000 +2875.00,-110.97,0.000 +3005.00,-115.10,0.000 +535.00,-117.19,0.000 +795.00,-115.02,0.000 +1055.00,-117.63,0.000 +1315.00,-122.38,0.000 +1575.00,-128.43,0.000 +1835.00,-135.02,0.000 +2095.00,-141.54,0.000 +2355.00,-147.74,0.000 +2615.00,-154.45,0.000 +2875.00,-162.29,0.000 +3005.00,-166.24,0.000 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_ICE_fld.vfld b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_ICE_fld.vfld new file mode 100644 index 0000000000000000000000000000000000000000..9fa844476ee0a96a2063e146c0d48bc6b19b5798 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/209kW_ICE_fld.vfld @@ -0,0 +1,7 @@ +engine speed [1/min], full load torque [Nm], motoring torque [Nm] +600.00,385.00,-55.851 +1321.50,1100.00,-61.072 +1867.50,1100.00,-75.131 +2550.00,782.67,-97.074 +3291.00,0.00,-144.231 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/3speedEV.vgbx b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/3speedEV.vgbx new file mode 100644 index 0000000000000000000000000000000000000000..2899660e38bff86e3e841df4b2b7ad87aaaca0b0 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/3speedEV.vgbx @@ -0,0 +1,54 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2020-11-03T14:19:09.9858299Z", + "AppVersion": "3", + "FileVersion": 6 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "3_speed_AMT", + "Inertia": 0.0, + "TracInt": 0.8, + "Gears": [ + { + "Ratio": 2.64, + "LossMap": "Transmission\\Axle_4x2_Tractor.vtlm" + }, + { + "Ratio": 17.5, + "LossMap": "Transmission\\Gear_1.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 6.49, + "LossMap": "Transmission\\Gear_2.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 2.48, + "LossMap": "Transmission\\Gear_3.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + } + ], + "TqReserve": 0.0, + "ShiftTime": 2.0, + "StartTqReserve": 20.0, + "StartSpeed": 2.22222222222222, + "StartAcc": 0.8, + "GearboxType": "AMT", + "TorqueConverter": { + "Enabled": false + }, + "DownshiftAfterUpshiftDelay": 6.0, + "UpshiftAfterDownshiftDelay": 6.0, + "UpshiftMinAcceleration": 0.1, + "PowershiftShiftTime": 0.0 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/BEV_ENG.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/BEV_ENG.vecto new file mode 100644 index 0000000000000000000000000000000000000000..e2f6ed93a6696a8fa7aae1ebba919c150f420657 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/BEV_ENG.vecto @@ -0,0 +1,45 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2016-10-13T08:55:18.2100810Z", + "AppVersion": "3", + "FileVersion": 9 + }, + "Body": { + "SavedInDeclMode": false, + "EngineOnlyMode": false, + "VehicleFile": "BatteryElectricVehicle.vveh", + "GearboxFile": "Transmission\\AMT_12.vgbx", + "TCU": "Transmission\\AMT_12.vgbx", + "Padd_electric": 3540.0, + + "VACC": "Truck.vacc", + + "LAC": { + "Enabled": true, + "PreviewDistanceFactor": 10.0, + "DF_offset": 2.5, + "DF_scaling": 1.5, + "DF_targetSpeedLookup": "", + "Df_velocityDropLookup": "" + }, + "OverSpeedEcoRoll": { + "Mode": "Off", + "MinSpeed": 50.0, + "OverSpeed": 5.0, + "UnderSpeed": 5.0 + }, + "Cycles": [ + "LongHaul", + "Coach", + "Construction", + "HeavyUrban", + "Interurban", + "MunicipalUtility", + "RegionalDelivery", + "Suburban", + "Urban", + "UrbanDelivery" + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..2cc4c716211c5f1847b8dd7e5a7ec77f5ee757d3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_Map.vemo @@ -0,0 +1,379 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-1030.00,0.000 +0.00,-978.50,0.000 +0.00,-927.00,0.000 +0.00,-875.50,0.000 +0.00,-824.00,0.000 +0.00,-772.50,0.000 +0.00,-721.00,-0.220 +0.00,-669.50,-0.510 +0.00,-618.00,-0.671 +0.00,-566.50,-0.765 +0.00,-515.00,-0.813 +0.00,-463.50,-0.826 +0.00,-412.00,-0.811 +0.00,-360.50,-0.771 +0.00,-309.00,-0.710 +0.00,-257.50,-0.629 +0.00,-206.00,-0.531 +0.00,-154.50,-0.416 +0.00,-103.00,-0.287 +0.00,-51.50,-0.143 +0.00,-10.30,-0.015 +0.00,10.30,0.059 +0.00,51.50,0.264 +0.00,103.00,0.527 +0.00,154.50,0.800 +0.00,206.00,1.080 +0.00,257.50,1.370 +0.00,309.00,1.667 +0.00,360.50,1.972 +0.00,412.00,2.285 +0.00,463.50,2.606 +0.00,515.00,2.935 +0.00,566.50,3.270 +0.00,618.00,3.613 +0.00,669.50,3.964 +0.00,721.00,4.321 +0.00,772.50,4.685 +0.00,824.00,5.056 +0.00,875.50,5.433 +0.00,927.00,5.818 +0.00,978.50,6.209 +0.00,1030.00,6.606 +37.00,-1030.00,0.000 +37.00,-978.50,0.000 +37.00,-927.00,0.000 +37.00,-875.50,0.000 +37.00,-824.00,0.000 +37.00,-772.50,0.000 +37.00,-721.00,-0.447 +37.00,-669.50,-0.678 +37.00,-618.00,-0.798 +37.00,-566.50,-0.860 +37.00,-515.00,-0.883 +37.00,-463.50,-0.876 +37.00,-412.00,-0.845 +37.00,-360.50,-0.792 +37.00,-309.00,-0.721 +37.00,-257.50,-0.633 +37.00,-206.00,-0.530 +37.00,-154.50,-0.413 +37.00,-103.00,-0.283 +37.00,-51.50,-0.141 +37.00,-10.30,-0.015 +37.00,10.30,0.055 +37.00,51.50,0.248 +37.00,103.00,0.495 +37.00,154.50,0.749 +37.00,206.00,1.011 +37.00,257.50,1.280 +37.00,309.00,1.556 +37.00,360.50,1.840 +37.00,412.00,2.129 +37.00,463.50,2.426 +37.00,515.00,2.729 +37.00,566.50,3.039 +37.00,618.00,3.355 +37.00,669.50,3.677 +37.00,721.00,4.005 +37.00,772.50,4.340 +37.00,824.00,4.680 +37.00,875.50,5.026 +37.00,927.00,5.378 +37.00,978.50,5.735 +37.00,1030.00,6.098 +370.00,-1030.00,-36.344 +370.00,-978.50,-34.617 +370.00,-927.00,-32.881 +370.00,-875.50,-31.134 +370.00,-824.00,-29.376 +370.00,-772.50,-27.609 +370.00,-721.00,-25.831 +370.00,-669.50,-24.043 +370.00,-618.00,-22.244 +370.00,-566.50,-20.436 +370.00,-515.00,-18.617 +370.00,-463.50,-16.789 +370.00,-412.00,-14.950 +370.00,-360.50,-13.102 +370.00,-309.00,-11.244 +370.00,-257.50,-9.375 +370.00,-206.00,-7.497 +370.00,-154.50,-5.609 +370.00,-103.00,-3.711 +370.00,-51.50,-1.802 +370.00,-10.30,-0.248 +370.00,10.30,0.515 +370.00,51.50,2.185 +370.00,103.00,4.271 +370.00,154.50,6.366 +370.00,206.00,8.470 +370.00,257.50,10.584 +370.00,309.00,12.707 +370.00,360.50,14.839 +370.00,412.00,16.982 +370.00,463.50,19.133 +370.00,515.00,21.294 +370.00,566.50,23.465 +370.00,618.00,25.644 +370.00,669.50,27.833 +370.00,721.00,30.032 +370.00,772.50,32.239 +370.00,824.00,34.456 +370.00,875.50,36.682 +370.00,927.00,38.918 +370.00,978.50,41.162 +370.00,1030.00,43.415 +740.00,-1030.00,-74.961 +740.00,-978.50,-71.312 +740.00,-927.00,-67.651 +740.00,-875.50,-63.979 +740.00,-824.00,-60.294 +740.00,-772.50,-56.597 +740.00,-721.00,-52.889 +740.00,-669.50,-49.169 +740.00,-618.00,-45.436 +740.00,-566.50,-41.693 +740.00,-515.00,-37.937 +740.00,-463.50,-34.170 +740.00,-412.00,-30.391 +740.00,-360.50,-26.600 +740.00,-309.00,-22.798 +740.00,-257.50,-18.984 +740.00,-206.00,-15.158 +740.00,-154.50,-11.321 +740.00,-103.00,-7.471 +740.00,-51.50,-3.607 +740.00,-10.30,-0.452 +740.00,10.30,1.051 +740.00,51.50,4.367 +740.00,103.00,8.495 +740.00,154.50,12.632 +740.00,206.00,16.780 +740.00,257.50,20.940 +740.00,309.00,25.111 +740.00,360.50,29.294 +740.00,412.00,33.488 +740.00,463.50,37.693 +740.00,515.00,41.910 +740.00,566.50,46.139 +740.00,618.00,50.379 +740.00,669.50,54.630 +740.00,721.00,58.893 +740.00,772.50,63.167 +740.00,824.00,67.452 +740.00,875.50,71.749 +740.00,927.00,76.057 +740.00,978.50,80.377 +740.00,1030.00,84.707 +1110.00,-1030.00,-113.264 +1110.00,-978.50,-107.719 +1110.00,-927.00,-102.159 +1110.00,-875.50,-96.584 +1110.00,-824.00,-90.994 +1110.00,-772.50,-85.390 +1110.00,-721.00,-79.770 +1110.00,-669.50,-74.136 +1110.00,-618.00,-68.486 +1110.00,-566.50,-62.822 +1110.00,-515.00,-57.144 +1110.00,-463.50,-51.450 +1110.00,-412.00,-45.742 +1110.00,-360.50,-40.018 +1110.00,-309.00,-34.281 +1110.00,-257.50,-28.528 +1110.00,-206.00,-22.760 +1110.00,-154.50,-16.978 +1110.00,-103.00,-11.179 +1110.00,-51.50,-5.359 +1110.00,-10.30,-0.563 +1110.00,10.30,1.626 +1110.00,51.50,6.595 +1110.00,103.00,12.768 +1110.00,154.50,18.951 +1110.00,206.00,25.148 +1110.00,257.50,31.359 +1110.00,309.00,37.584 +1110.00,360.50,43.824 +1110.00,412.00,50.078 +1110.00,463.50,56.347 +1110.00,515.00,62.631 +1110.00,566.50,68.929 +1110.00,618.00,75.242 +1110.00,669.50,81.569 +1110.00,721.00,87.911 +1110.00,772.50,94.268 +1110.00,824.00,100.638 +1110.00,875.50,107.024 +1110.00,927.00,113.423 +1110.00,978.50,119.838 +1110.00,1030.00,126.266 +1480.00,-1030.00,-151.257 +1480.00,-978.50,-143.841 +1480.00,-927.00,-136.405 +1480.00,-875.50,-128.950 +1480.00,-824.00,-121.475 +1480.00,-772.50,-113.982 +1480.00,-721.00,-106.469 +1480.00,-669.50,-98.937 +1480.00,-618.00,-91.386 +1480.00,-566.50,-83.815 +1480.00,-515.00,-76.226 +1480.00,-463.50,-68.618 +1480.00,-412.00,-60.990 +1480.00,-360.50,-53.344 +1480.00,-309.00,-45.678 +1480.00,-257.50,-37.993 +1480.00,-206.00,-30.289 +1480.00,-154.50,-22.565 +1480.00,-103.00,-14.819 +1480.00,-51.50,-7.042 +1480.00,-10.30,-0.493 +1480.00,10.30,2.246 +1480.00,51.50,8.883 +1480.00,103.00,17.106 +1480.00,154.50,25.338 +1480.00,206.00,33.588 +1480.00,257.50,41.855 +1480.00,309.00,50.141 +1480.00,360.50,58.446 +1480.00,412.00,66.770 +1480.00,463.50,75.112 +1480.00,515.00,83.474 +1480.00,566.50,91.854 +1480.00,618.00,100.253 +1480.00,669.50,108.671 +1480.00,721.00,117.108 +1480.00,772.50,125.563 +1480.00,824.00,134.038 +1480.00,875.50,142.531 +1480.00,927.00,151.043 +1480.00,978.50,159.573 +1480.00,1030.00,168.122 +1850.00,-1030.00,-188.930 +1850.00,-978.50,-179.665 +1850.00,-927.00,-170.376 +1850.00,-875.50,-161.062 +1850.00,-824.00,-151.723 +1850.00,-772.50,-142.360 +1850.00,-721.00,-132.971 +1850.00,-669.50,-123.558 +1850.00,-618.00,-114.120 +1850.00,-566.50,-104.657 +1850.00,-515.00,-95.170 +1850.00,-463.50,-85.659 +1850.00,-412.00,-76.122 +1850.00,-360.50,-66.561 +1850.00,-309.00,-56.976 +1850.00,-257.50,-47.365 +1850.00,-206.00,-37.729 +1850.00,-154.50,-28.067 +1850.00,-103.00,-18.376 +1850.00,-51.50,-8.638 +1850.00,-10.30,0.000 +1850.00,10.30,2.921 +1850.00,51.50,11.243 +1850.00,103.00,21.520 +1850.00,154.50,31.807 +1850.00,206.00,42.113 +1850.00,257.50,52.443 +1850.00,309.00,62.797 +1850.00,360.50,73.174 +1850.00,412.00,83.576 +1850.00,463.50,94.003 +1850.00,515.00,104.453 +1850.00,566.50,114.928 +1850.00,618.00,125.427 +1850.00,669.50,135.950 +1850.00,721.00,146.498 +1850.00,772.50,157.070 +1850.00,824.00,167.666 +1850.00,875.50,178.286 +1850.00,927.00,188.931 +1850.00,978.50,199.599 +1850.00,1030.00,210.291 +2220.00,-1030.00,-226.266 +2220.00,-978.50,-215.178 +2220.00,-927.00,-204.058 +2220.00,-875.50,-192.907 +2220.00,-824.00,-181.723 +2220.00,-772.50,-170.509 +2220.00,-721.00,-159.262 +2220.00,-669.50,-147.984 +2220.00,-618.00,-136.675 +2220.00,-566.50,-125.334 +2220.00,-515.00,-113.962 +2220.00,-463.50,-102.558 +2220.00,-412.00,-91.123 +2220.00,-360.50,-79.656 +2220.00,-309.00,-68.158 +2220.00,-257.50,-56.628 +2220.00,-206.00,-45.066 +2220.00,-154.50,-33.469 +2220.00,-103.00,-21.833 +2220.00,-51.50,-10.128 +2220.00,-10.30,0.000 +2220.00,10.30,3.656 +2220.00,51.50,13.687 +2220.00,103.00,26.025 +2220.00,154.50,38.369 +2220.00,206.00,50.739 +2220.00,257.50,63.137 +2220.00,309.00,75.565 +2220.00,360.50,88.023 +2220.00,412.00,100.512 +2220.00,463.50,113.032 +2220.00,515.00,125.583 +2220.00,566.50,138.165 +2220.00,618.00,150.778 +2220.00,669.50,163.421 +2220.00,721.00,176.096 +2220.00,772.50,188.801 +2220.00,824.00,201.537 +2220.00,875.50,214.304 +2220.00,927.00,227.101 +2220.00,978.50,239.929 +2220.00,1030.00,252.787 +2590.00,-1030.00,-263.249 +2590.00,-978.50,-250.362 +2590.00,-927.00,-237.434 +2590.00,-875.50,-224.467 +2590.00,-824.00,-211.460 +2590.00,-772.50,-198.413 +2590.00,-721.00,-185.327 +2590.00,-669.50,-172.200 +2590.00,-618.00,-159.035 +2590.00,-566.50,-145.830 +2590.00,-515.00,-132.585 +2590.00,-463.50,-119.301 +2590.00,-412.00,-105.977 +2590.00,-360.50,-92.614 +2590.00,-309.00,-79.211 +2590.00,-257.50,-65.768 +2590.00,-206.00,-52.283 +2590.00,-154.50,-38.755 +2590.00,-103.00,-25.173 +2590.00,-51.50,-11.490 +2590.00,-10.30,0.000 +2590.00,10.30,4.457 +2590.00,51.50,16.224 +2590.00,103.00,30.631 +2590.00,154.50,45.039 +2590.00,206.00,59.477 +2590.00,257.50,73.949 +2590.00,309.00,88.458 +2590.00,360.50,103.005 +2590.00,412.00,117.591 +2590.00,463.50,132.215 +2590.00,515.00,146.877 +2590.00,566.50,161.579 +2590.00,618.00,176.319 +2590.00,669.50,191.097 +2590.00,721.00,205.914 +2590.00,772.50,220.770 +2590.00,824.00,235.664 +2590.00,875.50,250.596 +2590.00,927.00,265.567 +2590.00,978.50,280.576 +2590.00,1030.00,295.623 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..314a3b4215bb1aa40d2cff6c8ce1d423f740eeff --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_drag.vemd @@ -0,0 +1,11 @@ +n [rpm] , T_drag [Nm] +0, -1.89 +37, -2.01 +370, -3.02 +740, -4.14 +1110, -5.26 +1480, -6.38 +1850, -7.5 +2220, -8.62 +2590, -9.74 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..d7a681028a9a2a69ef89f14bd1b89e4ae5792efc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Gen_fld.vemp @@ -0,0 +1,13 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 1030.00, -1030.00 +37, 1030.00, -1030.00 +370, 1030.00, -1030.00 +740, 1030.00, -1030.00 +1110, 1030.00, -1030.00 +1480, 1030.00, -1030.00 +1850, 1030.00, -1030.00 +2220, 858.33, -858.33 +2590, 735.71, -735.71 + + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericBattery.vbatr b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericBattery.vbatr new file mode 100644 index 0000000000000000000000000000000000000000..a6939be42acc832210d10b61c2ab817f3cf37334 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericBattery.vbatr @@ -0,0 +1,3 @@ +SoC, Ri +0, 0.024 +100, 0.024 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericBattery.vreess b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericBattery.vreess new file mode 100644 index 0000000000000000000000000000000000000000..79f41df3219b15b53754e2f42ce5e2af2b6bbbc0 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericBattery.vreess @@ -0,0 +1,19 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-16T09:37:48.3166199Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "REESSType": "Battery", + "Model": "Generic Battery", + "Capacity": 68.75, + "SOC_min": 20, + "SOC_max": 80, + "MaxCurrentMap": "MaxCurrent.vimax", + "InternalResistanceCurve": "GenericBattery.vbatr", + "SoCCurve": "REESS_SOC_curve.vbatv" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericDrag_125kW_485Nm.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericDrag_125kW_485Nm.vemd new file mode 100644 index 0000000000000000000000000000000000000000..7f8d6446c8e0a23fa033bed48d5f4fbf50599113 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericDrag_125kW_485Nm.vemd @@ -0,0 +1,3 @@ +n [rpm] , T_drag [Nm] +0 , -6.06 +7363.77 , -30.31 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm.vem new file mode 100644 index 0000000000000000000000000000000000000000..807ce0f57e4820d6ca128cff4d7cfcca941b9ebc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm.vem @@ -0,0 +1,20 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2016-10-13T08:54:28.7387223Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "FullLoadCurve": "GenericEMotor_125kW_485Nm.vemp", + "DragCurve": "GenericDrag_125kW_485Nm.vemd", + "EfficiencyMap": "GenericMap_125kW_485Nm.vemo", + "Inertia": 0.225, + "ContinuousPower": 5000000, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm.vemp new file mode 100644 index 0000000000000000000000000000000000000000..2d3d1f8b593e45e85fad7451eae2657610ef3dbe --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm.vemp @@ -0,0 +1,74 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0,485,-485 +2461.158914,485,-485 +2452.135493,485,-485 +2466.863034,483.8845,-483.8845 +2481.590574,481.010875,-481.010875 +2496.318115,478.173625,-478.173625 +2503.681885,476.767125,-476.767125 +2577.319588,463.138625,-463.138625 +2650.95729,450.274,-450.274 +2724.594993,438.1005,-438.1005 +2798.232695,426.58175,-426.58175 +2871.870398,415.645,-415.645 +2945.5081,405.253875,-405.253875 +3019.145803,395.359875,-395.359875 +3092.783505,385.950875,-385.950875 +3166.421208,376.978375,-376.978375 +3240.05891,368.406,-368.406 +3313.696613,360.221625,-360.221625 +3387.334315,352.388875,-352.388875 +3460.972018,344.895625,-344.895625 +3534.60972,337.7055,-337.7055 +3608.247423,330.8185,-330.8185 +3681.885125,324.19825,-324.19825 +3755.522828,317.84475,-317.84475 +3829.16053,311.73375,-311.73375 +3902.798233,305.853125,-305.853125 +3976.435935,300.178625,-300.178625 +4050.073638,294.722375,-294.722375 +4123.71134,289.460125,-289.460125 +4197.349043,284.37975,-284.37975 +4270.986745,279.48125,-279.48125 +4344.624448,274.740375,-274.740375 +4418.26215,270.16925,-270.16925 +4491.899853,265.7315,-265.7315 +4565.537555,261.451375,-261.451375 +4639.175258,257.304625,-257.304625 +4712.81296,253.279125,-253.279125 +4786.450663,249.387,-249.387 +4860.088365,245.604,-245.604 +4933.726068,241.94225,-241.94225 +5007.36377,238.3775,-238.3775 +5081.001473,234.921875,-234.921875 +5154.639175,231.575375,-231.575375 +5228.276878,228.31375,-228.31375 +5301.91458,225.137,-225.137 +5375.552283,222.05725,-222.05725 +5449.189985,219.05025,-219.05025 +5522.827688,216.128125,-216.128125 +5596.46539,213.290875,-213.290875 +5670.103093,210.51425,-210.51425 +5743.740795,207.8225,-207.8225 +5817.378498,205.191375,-205.191375 +5891.0162,202.620875,-202.620875 +5964.653903,200.123125,-200.123125 +6038.291605,197.686,-197.686 +6111.929308,195.297375,-195.297375 +6185.56701,192.969375,-192.969375 +6259.204713,190.702,-190.702 +6332.842415,188.483125,-188.483125 +6406.480118,186.324875,-186.324875 +6480.11782,184.203,-184.203 +6553.755523,182.129625,-182.129625 +6627.393225,180.10475,-180.10475 +6701.030928,178.128375,-178.128375 +6774.66863,176.2005,-176.2005 +6848.306333,174.296875,-174.296875 +6921.944035,172.44175,-172.44175 +6995.581738,170.635125,-170.635125 +7069.21944,168.85275,-168.85275 +7142.857143,167.10675,-167.10675 +7216.494845,165.40925,-165.40925 +7290.132548,163.736,-163.736 +7363.77025,162.099125,-162.099125 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm_Cont30kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm_Cont30kW.vem new file mode 100644 index 0000000000000000000000000000000000000000..c173c5fc54616324c92d0c9ff30ad3db0a9b588e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericEMotor_125kW_485Nm_Cont30kW.vem @@ -0,0 +1,22 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2016-10-13T08:54:28.7387223Z", + "AppVersion": "3", + "FileVersion": 2 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "FullLoadCurve": "GenericEMotor_125kW_485Nm.vemp", + "DragCurve": "GenericDrag_125kW_485Nm.vemd", + "EfficiencyMap": "GenericMap_125kW_485Nm.vemo", + "Inertia": 0.225, + "ContinuousTorque": 145, + "ContinuousTorqueSpeed": 2000, + "OverloadTorque": 485, + "OverloadTorqueSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericGen.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericGen.vem new file mode 100644 index 0000000000000000000000000000000000000000..8bce454f0ffcf15816a1bb5d813bce93b58a315d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericGen.vem @@ -0,0 +1,33 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-05T14:49:40.5920495Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "Inertia": 0.134, + "ContinuousTorque": 798, + "ContinuousTorqueSpeed": 1850, + "OverloadTorque": 1030, + "OverloadTorqueSpeed": 1850, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9, + "VoltageLevels": [ + { + "Voltage": 0.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + }, + { + "Voltage": 1000.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericMap_125kW_485Nm.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericMap_125kW_485Nm.vemo new file mode 100644 index 0000000000000000000000000000000000000000..972a8b6ac4dea65a1eec263ec1c6189009f29910 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/GenericMap_125kW_485Nm.vemo @@ -0,0 +1,2016 @@ +n [rpm] , T [Nm] , P_el [kW] +0,-485,8.790089286 +0,-469.84375,8.278482143 +0,-454.6875,7.782232143 +0,-439.53125,7.301160714 +0,-424.375,6.835535714 +0,-409.21875,6.385178571 +0,-394.0625,5.950089286 +0,-378.90625,5.530357143 +0,-363.75,5.125892857 +0,-348.59375,4.736785714 +0,-333.4375,4.363035714 +0,-318.28125,4.004553571 +0,-303.125,3.661339286 +0,-287.96875,3.333482143 +0,-272.8125,3.020892857 +0,-257.65625,2.723660714 +0,-242.5,2.441785714 +0,-227.34375,2.175178571 +0,-212.1875,1.923839286 +0,-197.03125,1.687857143 +0,-181.875,1.467232143 +0,-166.71875,1.261875 +0,-151.5625,1.071785714 +0,-136.40625,0.897053571 +0,-121.25,0.737651786 +0,-106.09375,0.593553571 +0,-90.9375,0.464758929 +0,-75.78125,0.351285714 +0,-60.625,0.253116071 +0,-45.46875,0.170267857 +0,-30.3125,0.102732143 +0,-15.15625,0.050505357 +0,0,0.032232143 +0,15.15625,0.077659821 +0,30.3125,0.138401786 +0,45.46875,0.214455357 +0,60.625,0.305821429 +0,75.78125,0.4125 +0,90.9375,0.5345 +0,106.09375,0.671803571 +0,121.25,0.824419643 +0,136.40625,0.992321429 +0,151.5625,1.175625 +0,166.71875,1.374196429 +0,181.875,1.588035714 +0,197.03125,1.817232143 +0,212.1875,2.061696429 +0,227.34375,2.321517857 +0,242.5,2.596696429 +0,257.65625,2.887142857 +0,272.8125,3.192857143 +0,287.96875,3.513928571 +0,303.125,3.850267857 +0,318.28125,4.201964286 +0,333.4375,4.569017857 +0,348.59375,4.951339286 +0,363.75,5.348928571 +0,378.90625,5.761875 +0,394.0625,6.190178571 +0,409.21875,6.63375 +0,424.375,7.092589286 +0,439.53125,7.566785714 +0,454.6875,8.056339286 +0,469.84375,8.561160714 +0,485,9.08125 +70.31811487,-485,5.211339286 +70.31811487,-469.84375,4.812589286 +70.31811487,-454.6875,4.429107143 +70.31811487,-439.53125,4.060892857 +70.31811487,-424.375,3.708035714 +70.31811487,-409.21875,3.370535714 +70.31811487,-394.0625,3.048303571 +70.31811487,-378.90625,2.741428571 +70.31811487,-363.75,2.449821429 +70.31811487,-348.59375,2.173571429 +70.31811487,-333.4375,1.912589286 +70.31811487,-318.28125,1.666875 +70.31811487,-303.125,1.436607143 +70.31811487,-287.96875,1.221517857 +70.31811487,-272.8125,1.021875 +70.31811487,-257.65625,0.8374375 +70.31811487,-242.5,0.668348214 +70.31811487,-227.34375,0.5154375 +70.31811487,-212.1875,0.378214286 +70.31811487,-197.03125,0.256839286 +70.31811487,-181.875,0.150473214 +70.31811487,-166.71875,0.059122321 +70.31811487,-151.5625,-0.017219643 +70.31811487,-136.40625,-0.078552679 +70.31811487,-121.25,-0.124875 +70.31811487,-106.09375,-0.1561875 +70.31811487,-90.9375,-0.172491071 +70.31811487,-75.78125,-0.173785714 +70.31811487,-60.625,-0.1600625 +70.31811487,-45.46875,-0.131339286 +70.31811487,-30.3125,-0.087598214 +70.31811487,-15.15625,-0.028850893 +70.31811487,0,0.0646875 +70.31811487,15.15625,0.222955357 +70.31811487,30.3125,0.396526786 +70.31811487,45.46875,0.585419643 +70.31811487,60.625,0.789616071 +70.31811487,75.78125,1.009107143 +70.31811487,90.9375,1.243928571 +70.31811487,106.09375,1.494107143 +70.31811487,121.25,1.759553571 +70.31811487,136.40625,2.040357143 +70.31811487,151.5625,2.336428571 +70.31811487,166.71875,2.647767857 +70.31811487,181.875,2.974553571 +70.31811487,197.03125,3.316517857 +70.31811487,212.1875,3.673839286 +70.31811487,227.34375,4.046517857 +70.31811487,242.5,4.434464286 +70.31811487,257.65625,4.837767857 +70.31811487,272.8125,5.256339286 +70.31811487,287.96875,5.690267857 +70.31811487,303.125,6.139464286 +70.31811487,318.28125,6.604017857 +70.31811487,333.4375,7.083839286 +70.31811487,348.59375,7.579017857 +70.31811487,363.75,8.089464286 +70.31811487,378.90625,8.615267857 +70.31811487,394.0625,9.15625 +70.31811487,409.21875,9.7125 +70.31811487,424.375,10.28482143 +70.31811487,439.53125,10.87142857 +70.31811487,454.6875,11.47410714 +70.31811487,469.84375,12.09107143 +70.31811487,485,12.72410714 +140.6377025,-485,1.634196429 +140.6377025,-469.84375,1.348303571 +140.6377025,-454.6875,1.078125 +140.6377025,-439.53125,0.825508929 +140.6377025,-424.375,0.589589286 +140.6377025,-409.21875,0.368678571 +140.6377025,-394.0625,0.162776786 +140.6377025,-378.90625,-0.02811875 +140.6377025,-363.75,-0.204 +140.6377025,-348.59375,-0.364875 +140.6377025,-333.4375,-0.510732143 +140.6377025,-318.28125,-0.641589286 +140.6377025,-303.125,-0.757428571 +140.6377025,-287.96875,-0.858258929 +140.6377025,-272.8125,-0.944107143 +140.6377025,-257.65625,-1.014910714 +140.6377025,-242.5,-1.070714286 +140.6377025,-227.34375,-1.111517857 +140.6377025,-212.1875,-1.137232143 +140.6377025,-197.03125,-1.148035714 +140.6377025,-181.875,-1.143839286 +140.6377025,-166.71875,-1.124553571 +140.6377025,-151.5625,-1.090267857 +140.6377025,-136.40625,-1.040982143 +140.6377025,-121.25,-0.976696429 +140.6377025,-106.09375,-0.897410714 +140.6377025,-90.9375,-0.803151786 +140.6377025,-75.78125,-0.693839286 +140.6377025,-60.625,-0.569526786 +140.6377025,-45.46875,-0.430196429 +140.6377025,-30.3125,-0.275857143 +140.6377025,-15.15625,-0.106508929 +140.6377025,0,0.098794643 +140.6377025,15.15625,0.369892857 +140.6377025,30.3125,0.6563125 +140.6377025,45.46875,0.958035714 +140.6377025,60.625,1.275089286 +140.6377025,75.78125,1.607410714 +140.6377025,90.9375,1.955089286 +140.6377025,106.09375,2.318035714 +140.6377025,121.25,2.696339286 +140.6377025,136.40625,3.09 +140.6377025,151.5625,3.498928571 +140.6377025,166.71875,3.923125 +140.6377025,181.875,4.362678571 +140.6377025,197.03125,4.8175 +140.6377025,212.1875,5.287678571 +140.6377025,227.34375,5.773214286 +140.6377025,242.5,6.274017857 +140.6377025,257.65625,6.790089286 +140.6377025,272.8125,7.321517857 +140.6377025,287.96875,7.868214286 +140.6377025,303.125,8.430267857 +140.6377025,318.28125,9.008035714 +140.6377025,333.4375,9.6 +140.6377025,348.59375,10.20803571 +140.6377025,363.75,10.83125 +140.6377025,378.90625,11.47053571 +140.6377025,394.0625,12.12410714 +140.6377025,409.21875,12.79375 +140.6377025,424.375,13.47767857 +140.6377025,439.53125,14.17767857 +140.6377025,454.6875,14.89285714 +140.6377025,469.84375,15.62321429 +140.6377025,485,16.36964286 +210.9572901,-485,-1.881339286 +210.9572901,-469.84375,-2.051696429 +210.9572901,-454.6875,-2.207053571 +210.9572901,-439.53125,-2.347321429 +210.9572901,-424.375,-2.472678571 +210.9572901,-409.21875,-2.582946429 +210.9572901,-394.0625,-2.678303571 +210.9572901,-378.90625,-2.758571429 +210.9572901,-363.75,-2.823839286 +210.9572901,-348.59375,-2.874107143 +210.9572901,-333.4375,-2.909375 +210.9572901,-318.28125,-2.929642857 +210.9572901,-303.125,-2.934910714 +210.9572901,-287.96875,-2.925089286 +210.9572901,-272.8125,-2.900357143 +210.9572901,-257.65625,-2.860535714 +210.9572901,-242.5,-2.805714286 +210.9572901,-227.34375,-2.735892857 +210.9572901,-212.1875,-2.651071429 +210.9572901,-197.03125,-2.55125 +210.9572901,-181.875,-2.436428571 +210.9572901,-166.71875,-2.306607143 +210.9572901,-151.5625,-2.161696429 +210.9572901,-136.40625,-2.001875 +210.9572901,-121.25,-1.826964286 +210.9572901,-106.09375,-1.637053571 +210.9572901,-90.9375,-1.432142857 +210.9572901,-75.78125,-1.212232143 +210.9572901,-60.625,-0.977321429 +210.9572901,-45.46875,-0.727419643 +210.9572901,-30.3125,-0.462482143 +210.9572901,-15.15625,-0.182535714 +210.9572901,0,0.134571429 +210.9572901,15.15625,0.5185 +210.9572901,30.3125,0.917767857 +210.9572901,45.46875,1.332321429 +210.9572901,60.625,1.762232143 +210.9572901,75.78125,2.207410714 +210.9572901,90.9375,2.667857143 +210.9572901,106.09375,3.143660714 +210.9572901,121.25,3.634821429 +210.9572901,136.40625,4.14125 +210.9572901,151.5625,4.663035714 +210.9572901,166.71875,5.200089286 +210.9572901,181.875,5.7525 +210.9572901,197.03125,6.320178571 +210.9572901,212.1875,6.903125 +210.9572901,227.34375,7.501517857 +210.9572901,242.5,8.115089286 +210.9572901,257.65625,8.744107143 +210.9572901,272.8125,9.388392857 +210.9572901,287.96875,10.04821429 +210.9572901,303.125,10.72321429 +210.9572901,318.28125,11.41339286 +210.9572901,333.4375,12.11875 +210.9572901,348.59375,12.83928571 +210.9572901,363.75,13.57589286 +210.9572901,378.90625,14.32678571 +210.9572901,394.0625,15.09375 +210.9572901,409.21875,15.87589286 +210.9572901,424.375,16.67321429 +210.9572901,439.53125,17.48571429 +210.9572901,454.6875,18.31428571 +210.9572901,469.84375,19.15714286 +210.9572901,485,20.01607143 +281.281296,-485,-5.384375 +281.281296,-469.84375,-5.444107143 +281.281296,-454.6875,-5.488839286 +281.281296,-439.53125,-5.518571429 +281.281296,-424.375,-5.533303571 +281.281296,-409.21875,-5.533035714 +281.281296,-394.0625,-5.517767857 +281.281296,-378.90625,-5.487410714 +281.281296,-363.75,-5.442053571 +281.281296,-348.59375,-5.381785714 +281.281296,-333.4375,-5.306428571 +281.281296,-318.28125,-5.216071429 +281.281296,-303.125,-5.110714286 +281.281296,-287.96875,-4.990357143 +281.281296,-272.8125,-4.855 +281.281296,-257.65625,-4.704553571 +281.281296,-242.5,-4.539196429 +281.281296,-227.34375,-4.35875 +281.281296,-212.1875,-4.163303571 +281.281296,-197.03125,-3.952857143 +281.281296,-181.875,-3.7275 +281.281296,-166.71875,-3.486964286 +281.281296,-151.5625,-3.231517857 +281.281296,-136.40625,-2.961071429 +281.281296,-121.25,-2.675625 +281.281296,-106.09375,-2.375089286 +281.281296,-90.9375,-2.059553571 +281.281296,-75.78125,-1.729107143 +281.281296,-60.625,-1.383571429 +281.281296,-45.46875,-1.023035714 +281.281296,-30.3125,-0.647491071 +281.281296,-15.15625,-0.2569375 +281.281296,0,0.172 +281.281296,15.15625,0.668767857 +281.281296,30.3125,1.180892857 +281.281296,45.46875,1.708214286 +281.281296,60.625,2.250982143 +281.281296,75.78125,2.809017857 +281.281296,90.9375,3.382321429 +281.281296,106.09375,3.970982143 +281.281296,121.25,4.574910714 +281.281296,136.40625,5.194196429 +281.281296,151.5625,5.828839286 +281.281296,166.71875,6.478660714 +281.281296,181.875,7.143928571 +281.281296,197.03125,7.824464286 +281.281296,212.1875,8.520267857 +281.281296,227.34375,9.23125 +281.281296,242.5,9.958035714 +281.281296,257.65625,10.7 +281.281296,272.8125,11.45714286 +281.281296,287.96875,12.22946429 +281.281296,303.125,13.01696429 +281.281296,318.28125,13.81964286 +281.281296,333.4375,14.63839286 +281.281296,348.59375,15.47232143 +281.281296,363.75,16.32053571 +281.281296,378.90625,17.18482143 +281.281296,394.0625,18.06517857 +281.281296,409.21875,18.95982143 +281.281296,424.375,19.86964286 +281.281296,439.53125,20.79553571 +281.281296,454.6875,21.73660714 +281.281296,469.84375,22.69285714 +281.281296,485,23.66428571 +351.5905744,-485,-8.885803571 +351.5905744,-469.84375,-8.834910714 +351.5905744,-454.6875,-8.769107143 +351.5905744,-439.53125,-8.688214286 +351.5905744,-424.375,-8.592321429 +351.5905744,-409.21875,-8.481428571 +351.5905744,-394.0625,-8.355535714 +351.5905744,-378.90625,-8.214642857 +351.5905744,-363.75,-8.05875 +351.5905744,-348.59375,-7.887767857 +351.5905744,-333.4375,-7.701785714 +351.5905744,-318.28125,-7.500892857 +351.5905744,-303.125,-7.284910714 +351.5905744,-287.96875,-7.053928571 +351.5905744,-272.8125,-6.807946429 +351.5905744,-257.65625,-6.546964286 +351.5905744,-242.5,-6.270982143 +351.5905744,-227.34375,-5.979910714 +351.5905744,-212.1875,-5.673928571 +351.5905744,-197.03125,-5.352857143 +351.5905744,-181.875,-5.016875 +351.5905744,-166.71875,-4.665803571 +351.5905744,-151.5625,-4.299732143 +351.5905744,-136.40625,-3.918660714 +351.5905744,-121.25,-3.522589286 +351.5905744,-106.09375,-3.111517857 +351.5905744,-90.9375,-2.685357143 +351.5905744,-75.78125,-2.244285714 +351.5905744,-60.625,-1.788125 +351.5905744,-45.46875,-1.316964286 +351.5905744,-30.3125,-0.830866071 +351.5905744,-15.15625,-0.329714286 +351.5905744,0,0.211080357 +351.5905744,15.15625,0.8206875 +351.5905744,30.3125,1.445625 +351.5905744,45.46875,2.085803571 +351.5905744,60.625,2.741428571 +351.5905744,75.78125,3.412232143 +351.5905744,90.9375,4.098392857 +351.5905744,106.09375,4.799910714 +351.5905744,121.25,5.516696429 +351.5905744,136.40625,6.248839286 +351.5905744,151.5625,6.99625 +351.5905744,166.71875,7.759017857 +351.5905744,181.875,8.537053571 +351.5905744,197.03125,9.330357143 +351.5905744,212.1875,10.13928571 +351.5905744,227.34375,10.96339286 +351.5905744,242.5,11.80267857 +351.5905744,257.65625,12.65714286 +351.5905744,272.8125,13.52678571 +351.5905744,287.96875,14.4125 +351.5905744,303.125,15.3125 +351.5905744,318.28125,16.22857143 +351.5905744,333.4375,17.15982143 +351.5905744,348.59375,18.10625 +351.5905744,363.75,19.06785714 +351.5905744,378.90625,20.04553571 +351.5905744,394.0625,21.0375 +351.5905744,409.21875,22.04553571 +351.5905744,424.375,23.06875 +351.5905744,439.53125,24.10714286 +351.5905744,454.6875,25.16071429 +351.5905744,469.84375,26.22946429 +351.5905744,485,27.31428571 +421.9145803,-485,-12.38571429 +421.9145803,-469.84375,-12.22410714 +421.9145803,-454.6875,-12.04732143 +421.9145803,-439.53125,-11.85625 +421.9145803,-424.375,-11.65 +421.9145803,-409.21875,-11.42857143 +421.9145803,-394.0625,-11.19196429 +421.9145803,-378.90625,-10.94017857 +421.9145803,-363.75,-10.67410714 +421.9145803,-348.59375,-10.39196429 +421.9145803,-333.4375,-10.09553571 +421.9145803,-318.28125,-9.783928571 +421.9145803,-303.125,-9.457142857 +421.9145803,-287.96875,-9.116071429 +421.9145803,-272.8125,-8.759375 +421.9145803,-257.65625,-8.387767857 +421.9145803,-242.5,-8.001160714 +421.9145803,-227.34375,-7.599553571 +421.9145803,-212.1875,-7.182857143 +421.9145803,-197.03125,-6.75125 +421.9145803,-181.875,-6.304642857 +421.9145803,-166.71875,-5.842946429 +421.9145803,-151.5625,-5.366339286 +421.9145803,-136.40625,-4.874642857 +421.9145803,-121.25,-4.367946429 +421.9145803,-106.09375,-3.84625 +421.9145803,-90.9375,-3.309553571 +421.9145803,-75.78125,-2.757857143 +421.9145803,-60.625,-2.191071429 +421.9145803,-45.46875,-1.609375 +421.9145803,-30.3125,-1.012589286 +421.9145803,-15.15625,-0.400857143 +421.9145803,0,0.251830357 +421.9145803,15.15625,0.974285714 +421.9145803,30.3125,1.712053571 +421.9145803,45.46875,2.465089286 +421.9145803,60.625,3.233482143 +421.9145803,75.78125,4.017142857 +421.9145803,90.9375,4.816160714 +421.9145803,106.09375,5.630535714 +421.9145803,121.25,6.460178571 +421.9145803,136.40625,7.305089286 +421.9145803,151.5625,8.165357143 +421.9145803,166.71875,9.041071429 +421.9145803,181.875,9.932142857 +421.9145803,197.03125,10.83839286 +421.9145803,212.1875,11.75982143 +421.9145803,227.34375,12.69642857 +421.9145803,242.5,13.64821429 +421.9145803,257.65625,14.61607143 +421.9145803,272.8125,15.59910714 +421.9145803,287.96875,16.59642857 +421.9145803,303.125,17.60982143 +421.9145803,318.28125,18.63928571 +421.9145803,333.4375,19.68303571 +421.9145803,348.59375,20.74196429 +421.9145803,363.75,21.81696429 +421.9145803,378.90625,22.90714286 +421.9145803,394.0625,24.0125 +421.9145803,409.21875,25.13303571 +421.9145803,424.375,26.26875 +421.9145803,439.53125,27.41964286 +421.9145803,454.6875,28.58660714 +421.9145803,469.84375,29.76785714 +421.9145803,485,30.96517857 +492.2385862,-485,-15.88392857 +492.2385862,-469.84375,-15.61160714 +492.2385862,-454.6875,-15.325 +492.2385862,-439.53125,-15.02232143 +492.2385862,-424.375,-14.70535714 +492.2385862,-409.21875,-14.37321429 +492.2385862,-394.0625,-14.02589286 +492.2385862,-378.90625,-13.66428571 +492.2385862,-363.75,-13.28660714 +492.2385862,-348.59375,-12.89464286 +492.2385862,-333.4375,-12.4875 +492.2385862,-318.28125,-12.06517857 +492.2385862,-303.125,-11.62857143 +492.2385862,-287.96875,-11.17589286 +492.2385862,-272.8125,-10.70892857 +492.2385862,-257.65625,-10.22678571 +492.2385862,-242.5,-9.729464286 +492.2385862,-227.34375,-9.217857143 +492.2385862,-212.1875,-8.690267857 +492.2385862,-197.03125,-8.148035714 +492.2385862,-181.875,-7.590714286 +492.2385862,-166.71875,-7.018482143 +492.2385862,-151.5625,-6.43125 +492.2385862,-136.40625,-5.828928571 +492.2385862,-121.25,-5.211696429 +492.2385862,-106.09375,-4.579375 +492.2385862,-90.9375,-3.932053571 +492.2385862,-75.78125,-3.269732143 +492.2385862,-60.625,-2.592410714 +492.2385862,-45.46875,-1.900089286 +492.2385862,-30.3125,-1.192767857 +492.2385862,-15.15625,-0.470383929 +492.2385862,0,0.294232143 +492.2385862,15.15625,1.129553571 +492.2385862,30.3125,1.980089286 +492.2385862,45.46875,2.845982143 +492.2385862,60.625,3.727232143 +492.2385862,75.78125,4.62375 +492.2385862,90.9375,5.535625 +492.2385862,106.09375,6.462767857 +492.2385862,121.25,7.405267857 +492.2385862,136.40625,8.363035714 +492.2385862,151.5625,9.335714286 +492.2385862,166.71875,10.32410714 +492.2385862,181.875,11.32857143 +492.2385862,197.03125,12.34732143 +492.2385862,212.1875,13.38125 +492.2385862,227.34375,14.43125 +492.2385862,242.5,15.49642857 +492.2385862,257.65625,16.57678571 +492.2385862,272.8125,17.67232143 +492.2385862,287.96875,18.78303571 +492.2385862,303.125,19.90892857 +492.2385862,318.28125,21.05089286 +492.2385862,333.4375,22.20803571 +492.2385862,348.59375,23.37946429 +492.2385862,363.75,24.56696429 +492.2385862,378.90625,25.77053571 +492.2385862,394.0625,26.98839286 +492.2385862,409.21875,28.22142857 +492.2385862,424.375,29.47053571 +492.2385862,439.53125,30.73482143 +492.2385862,454.6875,32.01428571 +492.2385862,469.84375,33.30892857 +492.2385862,485,34.61875 +562.5478645,-485,-19.38035714 +562.5478645,-469.84375,-18.99732143 +562.5478645,-454.6875,-18.6 +562.5478645,-439.53125,-18.1875 +562.5478645,-424.375,-17.75982143 +562.5478645,-409.21875,-17.31696429 +562.5478645,-394.0625,-16.85892857 +562.5478645,-378.90625,-16.38660714 +562.5478645,-363.75,-15.89910714 +562.5478645,-348.59375,-15.39642857 +562.5478645,-333.4375,-14.87857143 +562.5478645,-318.28125,-14.34553571 +562.5478645,-303.125,-13.79821429 +562.5478645,-287.96875,-13.23482143 +562.5478645,-272.8125,-12.65714286 +562.5478645,-257.65625,-12.06428571 +562.5478645,-242.5,-11.45625 +562.5478645,-227.34375,-10.83392857 +562.5478645,-212.1875,-10.19553571 +562.5478645,-197.03125,-9.542857143 +562.5478645,-181.875,-8.875267857 +562.5478645,-166.71875,-8.192410714 +562.5478645,-151.5625,-7.494553571 +562.5478645,-136.40625,-6.781696429 +562.5478645,-121.25,-6.05375 +562.5478645,-106.09375,-5.310892857 +562.5478645,-90.9375,-4.552946429 +562.5478645,-75.78125,-3.780089286 +562.5478645,-60.625,-2.992142857 +562.5478645,-45.46875,-2.189196429 +562.5478645,-30.3125,-1.37125 +562.5478645,-15.15625,-0.538285714 +562.5478645,0,0.338294643 +562.5478645,15.15625,1.286428571 +562.5478645,30.3125,2.249821429 +562.5478645,45.46875,3.228571429 +562.5478645,60.625,4.222589286 +562.5478645,75.78125,5.231964286 +562.5478645,90.9375,6.256696429 +562.5478645,106.09375,7.296696429 +562.5478645,121.25,8.351964286 +562.5478645,136.40625,9.422321429 +562.5478645,151.5625,10.50892857 +562.5478645,166.71875,11.60982143 +562.5478645,181.875,12.72678571 +562.5478645,197.03125,13.85803571 +562.5478645,212.1875,15.00535714 +562.5478645,227.34375,16.16785714 +562.5478645,242.5,17.34553571 +562.5478645,257.65625,18.53928571 +562.5478645,272.8125,19.74732143 +562.5478645,287.96875,20.97142857 +562.5478645,303.125,22.20982143 +562.5478645,318.28125,23.46428571 +562.5478645,333.4375,24.73392857 +562.5478645,348.59375,26.01875 +562.5478645,363.75,27.31964286 +562.5478645,378.90625,28.63482143 +562.5478645,394.0625,29.96607143 +562.5478645,409.21875,31.3125 +562.5478645,424.375,32.67410714 +562.5478645,439.53125,34.05089286 +562.5478645,454.6875,35.44285714 +562.5478645,469.84375,36.85089286 +562.5478645,485,38.27321429 +632.8718704,-485,-22.875 +632.8718704,-469.84375,-22.38214286 +632.8718704,-454.6875,-21.87410714 +632.8718704,-439.53125,-21.35 +632.8718704,-424.375,-20.8125 +632.8718704,-409.21875,-20.25892857 +632.8718704,-394.0625,-19.69017857 +632.8718704,-378.90625,-19.10714286 +632.8718704,-363.75,-18.50892857 +632.8718704,-348.59375,-17.89553571 +632.8718704,-333.4375,-17.26696429 +632.8718704,-318.28125,-16.62410714 +632.8718704,-303.125,-15.96517857 +632.8718704,-287.96875,-15.29196429 +632.8718704,-272.8125,-14.60357143 +632.8718704,-257.65625,-13.9 +632.8718704,-242.5,-13.18214286 +632.8718704,-227.34375,-12.44821429 +632.8718704,-212.1875,-11.7 +632.8718704,-197.03125,-10.93660714 +632.8718704,-181.875,-10.15803571 +632.8718704,-166.71875,-9.364285714 +632.8718704,-151.5625,-8.55625 +632.8718704,-136.40625,-7.732767857 +632.8718704,-121.25,-6.894285714 +632.8718704,-106.09375,-6.040803571 +632.8718704,-90.9375,-5.172232143 +632.8718704,-75.78125,-4.28875 +632.8718704,-60.625,-3.390178571 +632.8718704,-45.46875,-2.476696429 +632.8718704,-30.3125,-1.548125 +632.8718704,-15.15625,-0.6045625 +632.8718704,0,0.384017857 +632.8718704,15.15625,1.445 +632.8718704,30.3125,2.52125 +632.8718704,45.46875,3.612767857 +632.8718704,60.625,4.719732143 +632.8718704,75.78125,5.841875 +632.8718704,90.9375,6.979375 +632.8718704,106.09375,8.132232143 +632.8718704,121.25,9.3 +632.8718704,136.40625,10.48392857 +632.8718704,151.5625,11.68303571 +632.8718704,166.71875,12.89642857 +632.8718704,181.875,14.12589286 +632.8718704,197.03125,15.37053571 +632.8718704,212.1875,16.63125 +632.8718704,227.34375,17.90625 +632.8718704,242.5,19.19642857 +632.8718704,257.65625,20.50267857 +632.8718704,272.8125,21.82410714 +632.8718704,287.96875,23.16071429 +632.8718704,303.125,24.5125 +632.8718704,318.28125,25.87946429 +632.8718704,333.4375,27.2625 +632.8718704,348.59375,28.65982143 +632.8718704,363.75,30.07321429 +632.8718704,378.90625,31.50178571 +632.8718704,394.0625,32.94553571 +632.8718704,409.21875,34.40446429 +632.8718704,424.375,35.87946429 +632.8718704,439.53125,37.36875 +632.8718704,454.6875,38.87410714 +632.8718704,469.84375,40.39375 +632.8718704,485,41.92946429 +703.1811487,-485,-26.36875 +703.1811487,-469.84375,-25.76428571 +703.1811487,-454.6875,-25.14553571 +703.1811487,-439.53125,-24.51160714 +703.1811487,-424.375,-23.86339286 +703.1811487,-409.21875,-23.19910714 +703.1811487,-394.0625,-22.52053571 +703.1811487,-378.90625,-21.82589286 +703.1811487,-363.75,-21.11696429 +703.1811487,-348.59375,-20.39375 +703.1811487,-333.4375,-19.65446429 +703.1811487,-318.28125,-18.90089286 +703.1811487,-303.125,-18.13125 +703.1811487,-287.96875,-17.34732143 +703.1811487,-272.8125,-16.54821429 +703.1811487,-257.65625,-15.73482143 +703.1811487,-242.5,-14.90535714 +703.1811487,-227.34375,-14.06160714 +703.1811487,-212.1875,-13.20267857 +703.1811487,-197.03125,-12.32857143 +703.1811487,-181.875,-11.43928571 +703.1811487,-166.71875,-10.53571429 +703.1811487,-151.5625,-9.616071429 +703.1811487,-136.40625,-8.682232143 +703.1811487,-121.25,-7.733125 +703.1811487,-106.09375,-6.769017857 +703.1811487,-90.9375,-5.789910714 +703.1811487,-75.78125,-4.795803571 +703.1811487,-60.625,-3.786696429 +703.1811487,-45.46875,-2.7625 +703.1811487,-30.3125,-1.723392857 +703.1811487,-15.15625,-0.669205357 +703.1811487,0,0.431401786 +703.1811487,15.15625,1.605178571 +703.1811487,30.3125,2.794285714 +703.1811487,45.46875,3.998660714 +703.1811487,60.625,5.218392857 +703.1811487,75.78125,6.453482143 +703.1811487,90.9375,7.703839286 +703.1811487,106.09375,8.969642857 +703.1811487,121.25,10.25089286 +703.1811487,136.40625,11.54642857 +703.1811487,151.5625,12.85803571 +703.1811487,166.71875,14.18571429 +703.1811487,181.875,15.52767857 +703.1811487,197.03125,16.88482143 +703.1811487,212.1875,18.25803571 +703.1811487,227.34375,19.64642857 +703.1811487,242.5,21.05 +703.1811487,257.65625,22.46875 +703.1811487,272.8125,23.90267857 +703.1811487,287.96875,25.35178571 +703.1811487,303.125,26.81696429 +703.1811487,318.28125,28.29642857 +703.1811487,333.4375,29.79196429 +703.1811487,348.59375,31.30267857 +703.1811487,363.75,32.82857143 +703.1811487,378.90625,34.36964286 +703.1811487,394.0625,35.92678571 +703.1811487,409.21875,37.49821429 +703.1811487,424.375,39.08571429 +703.1811487,439.53125,40.68839286 +703.1811487,454.6875,42.30625 +703.1811487,469.84375,43.93928571 +703.1811487,485,45.5875 +773.5051546,-485,-29.85982143 +773.5051546,-469.84375,-29.14553571 +773.5051546,-454.6875,-28.41607143 +773.5051546,-439.53125,-27.67142857 +773.5051546,-424.375,-26.9125 +773.5051546,-409.21875,-26.1375 +773.5051546,-394.0625,-25.34821429 +773.5051546,-378.90625,-24.54375 +773.5051546,-363.75,-23.72410714 +773.5051546,-348.59375,-22.88928571 +773.5051546,-333.4375,-22.04017857 +773.5051546,-318.28125,-21.17589286 +773.5051546,-303.125,-20.29642857 +773.5051546,-287.96875,-19.40178571 +773.5051546,-272.8125,-18.49196429 +773.5051546,-257.65625,-17.56696429 +773.5051546,-242.5,-16.62767857 +773.5051546,-227.34375,-15.67321429 +773.5051546,-212.1875,-14.70357143 +773.5051546,-197.03125,-13.71875 +773.5051546,-181.875,-12.71875 +773.5051546,-166.71875,-11.70446429 +773.5051546,-151.5625,-10.675 +773.5051546,-136.40625,-9.630357143 +773.5051546,-121.25,-8.570357143 +773.5051546,-106.09375,-7.495625 +773.5051546,-90.9375,-6.405982143 +773.5051546,-75.78125,-5.30125 +773.5051546,-60.625,-4.181517857 +773.5051546,-45.46875,-3.046785714 +773.5051546,-30.3125,-1.896964286 +773.5051546,-15.15625,-0.732223214 +773.5051546,0,0.4804375 +773.5051546,15.15625,1.767053571 +773.5051546,30.3125,3.069017857 +773.5051546,45.46875,4.38625 +773.5051546,60.625,5.718839286 +773.5051546,75.78125,7.066696429 +773.5051546,90.9375,8.429821429 +773.5051546,106.09375,9.808035714 +773.5051546,121.25,11.20178571 +773.5051546,136.40625,12.61160714 +773.5051546,151.5625,14.03571429 +773.5051546,166.71875,15.47589286 +773.5051546,181.875,16.93035714 +773.5051546,197.03125,18.40089286 +773.5051546,212.1875,19.88660714 +773.5051546,227.34375,21.3875 +773.5051546,242.5,22.90357143 +773.5051546,257.65625,24.43571429 +773.5051546,272.8125,25.98214286 +773.5051546,287.96875,27.54464286 +773.5051546,303.125,29.12232143 +773.5051546,318.28125,30.71517857 +773.5051546,333.4375,32.32321429 +773.5051546,348.59375,33.94732143 +773.5051546,363.75,35.58571429 +773.5051546,378.90625,37.24017857 +773.5051546,394.0625,38.90982143 +773.5051546,409.21875,40.59375 +773.5051546,424.375,42.29464286 +773.5051546,439.53125,44.00982143 +773.5051546,454.6875,45.74017857 +773.5051546,469.84375,47.48660714 +773.5051546,485,49.24732143 +843.8291605,-485,-33.35 +843.8291605,-469.84375,-32.525 +843.8291605,-454.6875,-31.68482143 +843.8291605,-439.53125,-30.83035714 +843.8291605,-424.375,-29.95982143 +843.8291605,-409.21875,-29.075 +843.8291605,-394.0625,-28.175 +843.8291605,-378.90625,-27.25982143 +843.8291605,-363.75,-26.32946429 +843.8291605,-348.59375,-25.38392857 +843.8291605,-333.4375,-24.42410714 +843.8291605,-318.28125,-23.44910714 +843.8291605,-303.125,-22.45892857 +843.8291605,-287.96875,-21.45357143 +843.8291605,-272.8125,-20.43303571 +843.8291605,-257.65625,-19.39821429 +843.8291605,-242.5,-18.34821429 +843.8291605,-227.34375,-17.28303571 +843.8291605,-212.1875,-16.20267857 +843.8291605,-197.03125,-15.10714286 +843.8291605,-181.875,-13.99732143 +843.8291605,-166.71875,-12.87142857 +843.8291605,-151.5625,-11.73125 +843.8291605,-136.40625,-10.57589286 +843.8291605,-121.25,-9.40625 +843.8291605,-106.09375,-8.220625 +843.8291605,-90.9375,-7.020357143 +843.8291605,-75.78125,-5.805 +843.8291605,-60.625,-4.574642857 +843.8291605,-45.46875,-3.329375 +843.8291605,-30.3125,-2.069017857 +843.8291605,-15.15625,-0.793625 +843.8291605,0,0.531133929 +843.8291605,15.15625,1.930625 +843.8291605,30.3125,3.345357143 +843.8291605,45.46875,4.775446429 +843.8291605,60.625,6.220803571 +843.8291605,75.78125,7.681517857 +843.8291605,90.9375,9.157142857 +843.8291605,106.09375,10.64910714 +843.8291605,121.25,12.15535714 +843.8291605,136.40625,13.67767857 +843.8291605,151.5625,15.21517857 +843.8291605,166.71875,16.76696429 +843.8291605,181.875,18.33571429 +843.8291605,197.03125,19.91875 +843.8291605,212.1875,21.51696429 +843.8291605,227.34375,23.13125 +843.8291605,242.5,24.75982143 +843.8291605,257.65625,26.40446429 +843.8291605,272.8125,28.06428571 +843.8291605,287.96875,29.73928571 +843.8291605,303.125,31.42946429 +843.8291605,318.28125,33.13571429 +843.8291605,333.4375,34.85625 +843.8291605,348.59375,36.59285714 +843.8291605,363.75,38.34464286 +843.8291605,378.90625,40.11160714 +843.8291605,394.0625,41.89375 +843.8291605,409.21875,43.69107143 +843.8291605,424.375,45.50446429 +843.8291605,439.53125,47.33214286 +843.8291605,454.6875,49.17589286 +843.8291605,469.84375,51.03482143 +843.8291605,485,52.90892857 +1406.377025,-485,-61.21160714 +1406.377025,-469.84375,-59.50178571 +1406.377025,-454.6875,-57.77767857 +1406.377025,-439.53125,-56.0375 +1406.377025,-424.375,-54.28214286 +1406.377025,-409.21875,-52.5125 +1406.377025,-394.0625,-50.72767857 +1406.377025,-378.90625,-48.92767857 +1406.377025,-363.75,-47.1125 +1406.377025,-348.59375,-45.28303571 +1406.377025,-333.4375,-43.4375 +1406.377025,-318.28125,-41.57767857 +1406.377025,-303.125,-39.70267857 +1406.377025,-287.96875,-37.8125 +1406.377025,-272.8125,-35.90803571 +1406.377025,-257.65625,-33.9875 +1406.377025,-242.5,-32.05267857 +1406.377025,-227.34375,-30.10267857 +1406.377025,-212.1875,-28.1375 +1406.377025,-197.03125,-26.15803571 +1406.377025,-181.875,-24.1625 +1406.377025,-166.71875,-22.15267857 +1406.377025,-151.5625,-20.12767857 +1406.377025,-136.40625,-18.0875 +1406.377025,-121.25,-16.03214286 +1406.377025,-106.09375,-13.9625 +1406.377025,-90.9375,-11.87678571 +1406.377025,-75.78125,-9.776785714 +1406.377025,-60.625,-7.661785714 +1406.377025,-45.46875,-5.531607143 +1406.377025,-30.3125,-3.386428571 +1406.377025,-15.15625,-1.22625 +1406.377025,0,0.996428571 +1406.377025,15.15625,3.298571429 +1406.377025,30.3125,5.616071429 +1406.377025,45.46875,7.948839286 +1406.377025,60.625,10.29732143 +1406.377025,75.78125,12.66071429 +1406.377025,90.9375,15.03928571 +1406.377025,106.09375,17.43303571 +1406.377025,121.25,19.84196429 +1406.377025,136.40625,22.26696429 +1406.377025,151.5625,24.70714286 +1406.377025,166.71875,27.1625 +1406.377025,181.875,29.63303571 +1406.377025,197.03125,32.11875 +1406.377025,212.1875,34.61964286 +1406.377025,227.34375,37.13660714 +1406.377025,242.5,39.66875 +1406.377025,257.65625,42.21517857 +1406.377025,272.8125,44.77767857 +1406.377025,287.96875,47.35535714 +1406.377025,303.125,49.94910714 +1406.377025,318.28125,52.55714286 +1406.377025,333.4375,55.18125 +1406.377025,348.59375,57.81964286 +1406.377025,363.75,60.47410714 +1406.377025,378.90625,63.14375 +1406.377025,394.0625,65.82857143 +1406.377025,409.21875,68.52946429 +1406.377025,424.375,71.24464286 +1406.377025,439.53125,73.97589286 +1406.377025,454.6875,76.72232143 +1406.377025,469.84375,79.48392857 +1406.377025,485,82.26071429 +1758.02651,-485,-78.57321429 +1758.02651,-469.84375,-76.30982143 +1758.02651,-454.6875,-74.03214286 +1758.02651,-439.53125,-71.73928571 +1758.02651,-424.375,-69.43125 +1758.02651,-409.21875,-67.10803571 +1758.02651,-394.0625,-64.77053571 +1758.02651,-378.90625,-62.41785714 +1758.02651,-363.75,-60.04910714 +1758.02651,-348.59375,-57.66607143 +1758.02651,-333.4375,-55.26875 +1758.02651,-318.28125,-52.85535714 +1758.02651,-303.125,-50.42767857 +1758.02651,-287.96875,-47.98482143 +1758.02651,-272.8125,-45.52678571 +1758.02651,-257.65625,-43.05357143 +1758.02651,-242.5,-40.56517857 +1758.02651,-227.34375,-38.0625 +1758.02651,-212.1875,-35.54464286 +1758.02651,-197.03125,-33.01160714 +1758.02651,-181.875,-30.46339286 +1758.02651,-166.71875,-27.9 +1758.02651,-151.5625,-25.32232143 +1758.02651,-136.40625,-22.72857143 +1758.02651,-121.25,-20.12053571 +1758.02651,-106.09375,-17.49732143 +1758.02651,-90.9375,-14.85982143 +1758.02651,-75.78125,-12.20625 +1758.02651,-60.625,-9.538392857 +1758.02651,-45.46875,-6.855178571 +1758.02651,-30.3125,-4.156964286 +1758.02651,-15.15625,-1.443839286 +1758.02651,0,1.341160714 +1758.02651,15.15625,4.2075 +1758.02651,30.3125,7.089107143 +1758.02651,45.46875,9.985714286 +1758.02651,60.625,12.89821429 +1758.02651,75.78125,15.82589286 +1758.02651,90.9375,18.76875 +1758.02651,106.09375,21.72678571 +1758.02651,121.25,24.70089286 +1758.02651,136.40625,27.68928571 +1758.02651,151.5625,30.69375 +1758.02651,166.71875,33.7125 +1758.02651,181.875,36.74732143 +1758.02651,197.03125,39.79821429 +1758.02651,212.1875,42.86339286 +1758.02651,227.34375,45.94375 +1758.02651,242.5,49.04017857 +1758.02651,257.65625,52.15089286 +1758.02651,272.8125,55.27767857 +1758.02651,287.96875,58.41964286 +1758.02651,303.125,61.57678571 +1758.02651,318.28125,64.75 +1758.02651,333.4375,67.9375 +1758.02651,348.59375,71.14107143 +1758.02651,363.75,74.35892857 +1758.02651,378.90625,77.59285714 +1758.02651,394.0625,80.84196429 +1758.02651,409.21875,84.10714286 +1758.02651,424.375,87.38660714 +1758.02651,439.53125,90.67857143 +1758.02651,454.6875,93.99107143 +1758.02651,469.84375,97.32142857 +1758.02651,485,100.6607143 +2109.572901,-485,-95.89285714 +2109.572901,-469.84375,-93.08035714 +2109.572901,-454.6875,-90.25 +2109.572901,-439.53125,-87.4 +2109.572901,-424.375,-84.53928571 +2109.572901,-409.21875,-81.66339286 +2109.572901,-394.0625,-78.77232143 +2109.572901,-378.90625,-75.86607143 +2109.572901,-363.75,-72.94553571 +2109.572901,-348.59375,-70.00982143 +2109.572901,-333.4375,-67.05892857 +2109.572901,-318.28125,-64.09285714 +2109.572901,-303.125,-61.11160714 +2109.572901,-287.96875,-58.11517857 +2109.572901,-272.8125,-55.10446429 +2109.572901,-257.65625,-52.07857143 +2109.572901,-242.5,-49.0375 +2109.572901,-227.34375,-45.98125 +2109.572901,-212.1875,-42.91071429 +2109.572901,-197.03125,-39.82410714 +2109.572901,-181.875,-36.72321429 +2109.572901,-166.71875,-33.60714286 +2109.572901,-151.5625,-30.47589286 +2109.572901,-136.40625,-27.33035714 +2109.572901,-121.25,-24.16875 +2109.572901,-106.09375,-20.99285714 +2109.572901,-90.9375,-17.80178571 +2109.572901,-75.78125,-14.59553571 +2109.572901,-60.625,-11.37410714 +2109.572901,-45.46875,-8.138125 +2109.572901,-30.3125,-4.886964286 +2109.572901,-15.15625,-1.620714286 +2109.572901,0,1.727321429 +2109.572901,15.15625,5.157857143 +2109.572901,30.3125,8.603660714 +2109.572901,45.46875,12.06517857 +2109.572901,60.625,15.54107143 +2109.572901,75.78125,19.03303571 +2109.572901,90.9375,22.54017857 +2109.572901,106.09375,26.0625 +2109.572901,121.25,29.6 +2109.572901,136.40625,33.15267857 +2109.572901,151.5625,36.72142857 +2109.572901,166.71875,40.30535714 +2109.572901,181.875,43.90446429 +2109.572901,197.03125,47.51785714 +2109.572901,212.1875,51.14821429 +2109.572901,227.34375,54.79285714 +2109.572901,242.5,58.45267857 +2109.572901,257.65625,62.12857143 +2109.572901,272.8125,65.81964286 +2109.572901,287.96875,69.525 +2109.572901,303.125,73.24732143 +2109.572901,318.28125,76.98392857 +2109.572901,333.4375,80.73571429 +2109.572901,348.59375,84.50357143 +2109.572901,363.75,88.28571429 +2109.572901,378.90625,92.08035714 +2109.572901,394.0625,95.89285714 +2109.572901,409.21875,99.72321429 +2109.572901,424.375,103.5714286 +2109.572901,439.53125,107.4285714 +2109.572901,454.6875,111.3035714 +2109.572901,469.84375,115.1964286 +2109.572901,485,119.0982143 +2461.119293,-485,-113.1696429 +2461.119293,-469.84375,-109.8035714 +2461.119293,-454.6875,-106.4196429 +2461.119293,-439.53125,-103.0178571 +2461.119293,-424.375,-99.60714286 +2461.119293,-409.21875,-96.17857143 +2461.119293,-394.0625,-92.73214286 +2461.119293,-378.90625,-89.275 +2461.119293,-363.75,-85.80089286 +2461.119293,-348.59375,-82.31160714 +2461.119293,-333.4375,-78.80803571 +2461.119293,-318.28125,-75.28928571 +2461.119293,-303.125,-71.75535714 +2461.119293,-287.96875,-68.20625 +2461.119293,-272.8125,-64.64196429 +2461.119293,-257.65625,-61.06339286 +2461.119293,-242.5,-57.46875 +2461.119293,-227.34375,-53.85982143 +2461.119293,-212.1875,-50.23571429 +2461.119293,-197.03125,-46.59642857 +2461.119293,-181.875,-42.94285714 +2461.119293,-166.71875,-39.27321429 +2461.119293,-151.5625,-35.58928571 +2461.119293,-136.40625,-31.89017857 +2461.119293,-121.25,-28.17589286 +2461.119293,-106.09375,-24.44732143 +2461.119293,-90.9375,-20.70267857 +2461.119293,-75.78125,-16.94375 +2461.119293,-60.625,-13.16964286 +2461.119293,-45.46875,-9.380357143 +2461.119293,-30.3125,-5.576160714 +2461.119293,-15.15625,-1.756964286 +2461.119293,0,2.155 +2461.119293,15.15625,6.149642857 +2461.119293,30.3125,10.15982143 +2461.119293,45.46875,14.18482143 +2461.119293,60.625,18.22589286 +2461.119293,75.78125,22.28125 +2461.119293,90.9375,26.35267857 +2461.119293,106.09375,30.43928571 +2461.119293,121.25,34.54107143 +2461.119293,136.40625,38.65803571 +2461.119293,151.5625,42.79107143 +2461.119293,166.71875,46.93839286 +2461.119293,181.875,51.10178571 +2461.119293,197.03125,55.28035714 +2461.119293,212.1875,59.47410714 +2461.119293,227.34375,63.68303571 +2461.119293,242.5,67.90714286 +2461.119293,257.65625,72.14732143 +2461.119293,272.8125,76.40178571 +2461.119293,287.96875,80.67232143 +2461.119293,303.125,84.95803571 +2461.119293,318.28125,89.25892857 +2461.119293,333.4375,93.57142857 +2461.119293,348.59375,97.91071429 +2461.119293,363.75,102.25 +2461.119293,378.90625,106.6160714 +2461.119293,394.0625,110.9910714 +2461.119293,409.21875,115.3839286 +2461.119293,424.375,119.7946429 +2461.119293,439.53125,124.2142857 +2461.119293,454.6875,128.6607143 +2461.119293,469.84375,133.1071429 +2461.119293,485,137.5803571 +2812.81296,-485,-130.4107143 +2812.81296,-469.84375,-126.4910714 +2812.81296,-454.6875,-122.5535714 +2812.81296,-439.53125,-118.5982143 +2812.81296,-424.375,-114.6339286 +2812.81296,-409.21875,-110.6517857 +2812.81296,-394.0625,-106.6517857 +2812.81296,-378.90625,-102.6428571 +2812.81296,-363.75,-98.61607143 +2812.81296,-348.59375,-94.57142857 +2812.81296,-333.4375,-90.51785714 +2812.81296,-318.28125,-86.44464286 +2812.81296,-303.125,-82.35803571 +2812.81296,-287.96875,-78.25535714 +2812.81296,-272.8125,-74.13839286 +2812.81296,-257.65625,-70.00625 +2812.81296,-242.5,-65.85982143 +2812.81296,-227.34375,-61.69732143 +2812.81296,-212.1875,-57.52053571 +2812.81296,-197.03125,-53.32857143 +2812.81296,-181.875,-49.12142857 +2812.81296,-166.71875,-44.89910714 +2812.81296,-151.5625,-40.6625 +2812.81296,-136.40625,-36.40982143 +2812.81296,-121.25,-32.14285714 +2812.81296,-106.09375,-27.86071429 +2812.81296,-90.9375,-23.56339286 +2812.81296,-75.78125,-19.25178571 +2812.81296,-60.625,-14.92410714 +2812.81296,-45.46875,-10.58214286 +2812.81296,-30.3125,-6.224821429 +2812.81296,-15.15625,-1.852589286 +2812.81296,0,2.624107143 +2812.81296,15.15625,7.182946429 +2812.81296,30.3125,11.75714286 +2812.81296,45.46875,16.34642857 +2812.81296,60.625,20.95178571 +2812.81296,75.78125,25.57142857 +2812.81296,90.9375,30.20714286 +2812.81296,106.09375,34.85803571 +2812.81296,121.25,39.52410714 +2812.81296,136.40625,44.20535714 +2812.81296,151.5625,48.90178571 +2812.81296,166.71875,53.61339286 +2812.81296,181.875,58.34107143 +2812.81296,197.03125,63.08392857 +2812.81296,212.1875,67.84196429 +2812.81296,227.34375,72.61517857 +2812.81296,242.5,77.40357143 +2812.81296,257.65625,82.20714286 +2812.81296,272.8125,87.02678571 +2812.81296,287.96875,91.85714286 +2812.81296,303.125,96.71428571 +2812.81296,318.28125,101.5803571 +2812.81296,333.4375,106.4553571 +2812.81296,348.59375,111.3482143 +2812.81296,363.75,116.2589286 +2812.81296,378.90625,121.1875 +2812.81296,394.0625,126.1339286 +2812.81296,409.21875,131.0892857 +2812.81296,424.375,136.0625 +2812.81296,439.53125,141.0446429 +2812.81296,454.6875,146.0535714 +2812.81296,469.84375,151.0714286 +2812.81296,485,156.1071429 +3164.359352,-485,-147.6071429 +3164.359352,-469.84375,-143.1339286 +3164.359352,-454.6875,-138.6428571 +3164.359352,-439.53125,-134.1428571 +3164.359352,-424.375,-129.6160714 +3164.359352,-409.21875,-125.0892857 +3164.359352,-394.0625,-120.5357143 +3164.359352,-378.90625,-115.9732143 +3164.359352,-363.75,-111.3928571 +3164.359352,-348.59375,-106.7946429 +3164.359352,-333.4375,-102.1875 +3164.359352,-318.28125,-97.5625 +3164.359352,-303.125,-92.91964286 +3164.359352,-287.96875,-88.26517857 +3164.359352,-272.8125,-83.59464286 +3164.359352,-257.65625,-78.90982143 +3164.359352,-242.5,-74.20982143 +3164.359352,-227.34375,-69.49464286 +3164.359352,-212.1875,-64.76428571 +3164.359352,-197.03125,-60.01964286 +3164.359352,-181.875,-55.25982143 +3164.359352,-166.71875,-50.48392857 +3164.359352,-151.5625,-45.69375 +3164.359352,-136.40625,-40.88928571 +3164.359352,-121.25,-36.06875 +3164.359352,-106.09375,-31.23392857 +3164.359352,-90.9375,-26.38392857 +3164.359352,-75.78125,-21.51875 +3164.359352,-60.625,-16.63839286 +3164.359352,-45.46875,-11.74285714 +3164.359352,-30.3125,-6.832857143 +3164.359352,-15.15625,-1.907589286 +3164.359352,0,3.134642857 +3164.359352,15.15625,8.257678571 +3164.359352,30.3125,13.39642857 +3164.359352,45.46875,18.55 +3164.359352,60.625,23.71875 +3164.359352,75.78125,28.90267857 +3164.359352,90.9375,34.10267857 +3164.359352,106.09375,39.31785714 +3164.359352,121.25,44.54732143 +3164.359352,136.40625,49.79285714 +3164.359352,151.5625,55.05446429 +3164.359352,166.71875,60.33035714 +3164.359352,181.875,65.62142857 +3164.359352,197.03125,70.92857143 +3164.359352,212.1875,76.25089286 +3164.359352,227.34375,81.58839286 +3164.359352,242.5,86.94107143 +3164.359352,257.65625,92.3125 +3164.359352,272.8125,97.69642857 +3164.359352,287.96875,103.0892857 +3164.359352,303.125,108.5089286 +3164.359352,318.28125,113.9375 +3164.359352,333.4375,119.375 +3164.359352,348.59375,124.8392857 +3164.359352,363.75,130.3125 +3164.359352,378.90625,135.8035714 +3164.359352,394.0625,141.3125 +3164.359352,409.21875,146.8303571 +3164.359352,424.375,152.3660714 +3164.359352,439.53125,157.9196429 +3164.359352,454.6875,163.4910714 +3164.359352,469.84375,169.0714286 +3164.359352,485,174.6696429 +3515.905744,-485,-164.7678571 +3515.905744,-469.84375,-159.7410714 +3515.905744,-454.6875,-154.6964286 +3515.905744,-439.53125,-149.6339286 +3515.905744,-424.375,-144.5625 +3515.905744,-409.21875,-139.4732143 +3515.905744,-394.0625,-134.375 +3515.905744,-378.90625,-129.2589286 +3515.905744,-363.75,-124.125 +3515.905744,-348.59375,-118.9732143 +3515.905744,-333.4375,-113.8125 +3515.905744,-318.28125,-108.6339286 +3515.905744,-303.125,-103.4375 +3515.905744,-287.96875,-98.23214286 +3515.905744,-272.8125,-93.00892857 +3515.905744,-257.65625,-87.77232143 +3515.905744,-242.5,-82.51875 +3515.905744,-227.34375,-77.25089286 +3515.905744,-212.1875,-71.96785714 +3515.905744,-197.03125,-66.66964286 +3515.905744,-181.875,-61.35714286 +3515.905744,-166.71875,-56.02857143 +3515.905744,-151.5625,-50.68571429 +3515.905744,-136.40625,-45.32767857 +3515.905744,-121.25,-39.95446429 +3515.905744,-106.09375,-34.56607143 +3515.905744,-90.9375,-29.1625 +3515.905744,-75.78125,-23.74464286 +3515.905744,-60.625,-18.31160714 +3515.905744,-45.46875,-12.86339286 +3515.905744,-30.3125,-7.400178571 +3515.905744,-15.15625,-1.921964286 +3515.905744,0,3.686696429 +3515.905744,15.15625,9.374107143 +3515.905744,30.3125,15.07678571 +3515.905744,45.46875,20.79464286 +3515.905744,60.625,26.52767857 +3515.905744,75.78125,32.27589286 +3515.905744,90.9375,38.03928571 +3515.905744,106.09375,43.81875 +3515.905744,121.25,49.61339286 +3515.905744,136.40625,55.42321429 +3515.905744,151.5625,61.24821429 +3515.905744,166.71875,67.08839286 +3515.905744,181.875,72.94375 +3515.905744,197.03125,78.81517857 +3515.905744,212.1875,84.70089286 +3515.905744,227.34375,90.60714286 +3515.905744,242.5,96.51785714 +3515.905744,257.65625,102.4553571 +3515.905744,272.8125,108.4017857 +3515.905744,287.96875,114.3660714 +3515.905744,303.125,120.3392857 +3515.905744,318.28125,126.3303571 +3515.905744,333.4375,132.3392857 +3515.905744,348.59375,138.3660714 +3515.905744,363.75,144.4107143 +3515.905744,378.90625,150.4642857 +3515.905744,394.0625,156.5267857 +3515.905744,409.21875,162.6160714 +3515.905744,424.375,168.7142857 +3515.905744,439.53125,174.8303571 +3515.905744,454.6875,180.9642857 +3515.905744,469.84375,187.1071429 +3515.905744,485,193.2767857 +3867.599411,-485,-181.8839286 +3867.599411,-469.84375,-176.3035714 +3867.599411,-454.6875,-170.7053571 +3867.599411,-439.53125,-165.0982143 +3867.599411,-424.375,-159.4732143 +3867.599411,-409.21875,-153.8303571 +3867.599411,-394.0625,-148.1696429 +3867.599411,-378.90625,-142.5 +3867.599411,-363.75,-136.8125 +3867.599411,-348.59375,-131.1160714 +3867.599411,-333.4375,-125.4017857 +3867.599411,-318.28125,-119.6696429 +3867.599411,-303.125,-113.9196429 +3867.599411,-287.96875,-108.1607143 +3867.599411,-272.8125,-102.3839286 +3867.599411,-257.65625,-96.59821429 +3867.599411,-242.5,-90.78571429 +3867.599411,-227.34375,-84.96696429 +3867.599411,-212.1875,-79.13035714 +3867.599411,-197.03125,-73.27946429 +3867.599411,-181.875,-67.41339286 +3867.599411,-166.71875,-61.53214286 +3867.599411,-151.5625,-55.63660714 +3867.599411,-136.40625,-49.725 +3867.599411,-121.25,-43.79910714 +3867.599411,-106.09375,-37.85803571 +3867.599411,-90.9375,-31.90178571 +3867.599411,-75.78125,-25.93035714 +3867.599411,-60.625,-19.94464286 +3867.599411,-45.46875,-13.94285714 +3867.599411,-30.3125,-7.926875 +3867.599411,-15.15625,-1.895625 +3867.599411,0,4.280178571 +3867.599411,15.15625,10.53125 +3867.599411,30.3125,16.79821429 +3867.599411,45.46875,23.08035714 +3867.599411,60.625,29.37767857 +3867.599411,75.78125,35.69017857 +3867.599411,90.9375,42.01785714 +3867.599411,106.09375,48.36160714 +3867.599411,121.25,54.72053571 +3867.599411,136.40625,61.09375 +3867.599411,151.5625,67.48303571 +3867.599411,166.71875,73.8875 +3867.599411,181.875,80.30803571 +3867.599411,197.03125,86.74285714 +3867.599411,212.1875,93.19642857 +3867.599411,227.34375,99.66071429 +3867.599411,242.5,106.1428571 +3867.599411,257.65625,112.6339286 +3867.599411,272.8125,119.1517857 +3867.599411,287.96875,125.6785714 +3867.599411,303.125,132.2142857 +3867.599411,318.28125,138.7767857 +3867.599411,333.4375,145.3482143 +3867.599411,348.59375,151.9375 +3867.599411,363.75,158.5446429 +3867.599411,378.90625,165.1607143 +3867.599411,394.0625,171.7946429 +3867.599411,409.21875,178.4464286 +3867.599411,424.375,185.1071429 +3867.599411,439.53125,191.7857143 +3867.599411,454.6875,198.4821429 +3867.599411,469.84375,205.1964286 +3867.599411,485,211.9196429 +4219.145803,-485,-198.9642857 +4219.145803,-469.84375,-192.8303571 +4219.145803,-454.6875,-186.6785714 +4219.145803,-439.53125,-180.5178571 +4219.145803,-424.375,-174.3303571 +4219.145803,-409.21875,-168.1428571 +4219.145803,-394.0625,-161.9285714 +4219.145803,-378.90625,-155.7053571 +4219.145803,-363.75,-149.4642857 +4219.145803,-348.59375,-143.2142857 +4219.145803,-333.4375,-136.9464286 +4219.145803,-318.28125,-130.6607143 +4219.145803,-303.125,-124.3660714 +4219.145803,-287.96875,-118.0446429 +4219.145803,-272.8125,-111.7232143 +4219.145803,-257.65625,-105.375 +4219.145803,-242.5,-99.01785714 +4219.145803,-227.34375,-92.64285714 +4219.145803,-212.1875,-86.25267857 +4219.145803,-197.03125,-79.84910714 +4219.145803,-181.875,-73.42946429 +4219.145803,-166.71875,-66.99553571 +4219.145803,-151.5625,-60.54642857 +4219.145803,-136.40625,-54.08214286 +4219.145803,-121.25,-47.60267857 +4219.145803,-106.09375,-41.10892857 +4219.145803,-90.9375,-34.6 +4219.145803,-75.78125,-28.07589286 +4219.145803,-60.625,-21.53660714 +4219.145803,-45.46875,-14.98214286 +4219.145803,-30.3125,-8.412946429 +4219.145803,-15.15625,-1.828660714 +4219.145803,0,4.915178571 +4219.145803,15.15625,11.73035714 +4219.145803,30.3125,18.56160714 +4219.145803,45.46875,25.40803571 +4219.145803,60.625,32.26964286 +4219.145803,75.78125,39.14642857 +4219.145803,90.9375,46.03839286 +4219.145803,106.09375,52.94553571 +4219.145803,121.25,59.86875 +4219.145803,136.40625,66.80625 +4219.145803,151.5625,73.75982143 +4219.145803,166.71875,80.72857143 +4219.145803,181.875,87.7125 +4219.145803,197.03125,94.71428571 +4219.145803,212.1875,101.7232143 +4219.145803,227.34375,108.7589286 +4219.145803,242.5,115.8035714 +4219.145803,257.65625,122.8660714 +4219.145803,272.8125,129.9375 +4219.145803,287.96875,137.0267857 +4219.145803,303.125,144.1339286 +4219.145803,318.28125,151.2589286 +4219.145803,333.4375,158.3928571 +4219.145803,348.59375,165.5446429 +4219.145803,363.75,172.7142857 +4219.145803,378.90625,179.9017857 +4219.145803,394.0625,187.0982143 +4219.145803,409.21875,194.3125 +4219.145803,424.375,201.5357143 +4219.145803,439.53125,208.7857143 +4219.145803,454.6875,216.0446429 +4219.145803,469.84375,223.3214286 +4219.145803,485,230.6071429 +4570.692194,-485,-216 +4570.692194,-469.84375,-209.3125 +4570.692194,-454.6875,-202.6071429 +4570.692194,-439.53125,-195.8928571 +4570.692194,-424.375,-189.1607143 +4570.692194,-409.21875,-182.4107143 +4570.692194,-394.0625,-175.6517857 +4570.692194,-378.90625,-168.875 +4570.692194,-363.75,-162.0803571 +4570.692194,-348.59375,-155.2767857 +4570.692194,-333.4375,-148.4553571 +4570.692194,-318.28125,-141.6160714 +4570.692194,-303.125,-134.7589286 +4570.692194,-287.96875,-127.8928571 +4570.692194,-272.8125,-121.0089286 +4570.692194,-257.65625,-114.1160714 +4570.692194,-242.5,-107.2053571 +4570.692194,-227.34375,-100.2767857 +4570.692194,-212.1875,-93.33035714 +4570.692194,-197.03125,-86.37767857 +4570.692194,-181.875,-79.40535714 +4570.692194,-166.71875,-72.41785714 +4570.692194,-151.5625,-65.41607143 +4570.692194,-136.40625,-58.39910714 +4570.692194,-121.25,-51.36696429 +4570.692194,-106.09375,-44.31964286 +4570.692194,-90.9375,-37.25714286 +4570.692194,-75.78125,-30.18035714 +4570.692194,-60.625,-23.0875 +4570.692194,-45.46875,-15.98035714 +4570.692194,-30.3125,-8.858303571 +4570.692194,-15.15625,-1.721071429 +4570.692194,0,5.591607143 +4570.692194,15.15625,12.97142857 +4570.692194,30.3125,20.36607143 +4570.692194,45.46875,27.77678571 +4570.692194,60.625,35.20267857 +4570.692194,75.78125,42.64375 +4570.692194,90.9375,50.1 +4570.692194,106.09375,57.57142857 +4570.692194,121.25,65.05803571 +4570.692194,136.40625,72.56071429 +4570.692194,151.5625,80.07857143 +4570.692194,166.71875,87.61160714 +4570.692194,181.875,95.16071429 +4570.692194,197.03125,102.7232143 +4570.692194,212.1875,110.3035714 +4570.692194,227.34375,117.8928571 +4570.692194,242.5,125.5089286 +4570.692194,257.65625,133.1339286 +4570.692194,272.8125,140.7678571 +4570.692194,287.96875,148.4285714 +4570.692194,303.125,156.0982143 +4570.692194,318.28125,163.7857143 +4570.692194,333.4375,171.4821429 +4570.692194,348.59375,179.1964286 +4570.692194,363.75,186.9285714 +4570.692194,378.90625,194.6785714 +4570.692194,394.0625,202.4464286 +4570.692194,409.21875,210.2232143 +4570.692194,424.375,218.0089286 +4570.692194,439.53125,225.8214286 +4570.692194,454.6875,233.6428571 +4570.692194,469.84375,241.4821429 +4570.692194,485,249.3392857 +4922.385862,-485,-232.9910714 +4922.385862,-469.84375,-225.75 +4922.385862,-454.6875,-218.5 +4922.385862,-439.53125,-211.2232143 +4922.385862,-424.375,-203.9375 +4922.385862,-409.21875,-196.6428571 +4922.385862,-394.0625,-189.3303571 +4922.385862,-378.90625,-182 +4922.385862,-363.75,-174.6517857 +4922.385862,-348.59375,-167.2946429 +4922.385862,-333.4375,-159.9196429 +4922.385862,-318.28125,-152.5267857 +4922.385862,-303.125,-145.125 +4922.385862,-287.96875,-137.6964286 +4922.385862,-272.8125,-130.2678571 +4922.385862,-257.65625,-122.8125 +4922.385862,-242.5,-115.3482143 +4922.385862,-227.34375,-107.8660714 +4922.385862,-212.1875,-100.375 +4922.385862,-197.03125,-92.86607143 +4922.385862,-181.875,-85.34017857 +4922.385862,-166.71875,-77.8 +4922.385862,-151.5625,-70.24464286 +4922.385862,-136.40625,-62.67410714 +4922.385862,-121.25,-55.08928571 +4922.385862,-106.09375,-47.48928571 +4922.385862,-90.9375,-39.87410714 +4922.385862,-75.78125,-32.24375 +4922.385862,-60.625,-24.59821429 +4922.385862,-45.46875,-16.93839286 +4922.385862,-30.3125,-9.263392857 +4922.385862,-15.15625,-1.572857143 +4922.385862,0,6.309553571 +4922.385862,15.15625,14.25357143 +4922.385862,30.3125,22.2125 +4922.385862,45.46875,30.1875 +4922.385862,60.625,38.17678571 +4922.385862,75.78125,46.18214286 +4922.385862,90.9375,54.20267857 +4922.385862,106.09375,62.23839286 +4922.385862,121.25,70.29017857 +4922.385862,136.40625,78.35625 +4922.385862,151.5625,86.43839286 +4922.385862,166.71875,94.53571429 +4922.385862,181.875,102.6517857 +4922.385862,197.03125,110.7767857 +4922.385862,212.1875,118.9196429 +4922.385862,227.34375,127.0803571 +4922.385862,242.5,135.25 +4922.385862,257.65625,143.4375 +4922.385862,272.8125,151.6428571 +4922.385862,287.96875,159.8660714 +4922.385862,303.125,168.0982143 +4922.385862,318.28125,176.3482143 +4922.385862,333.4375,184.6160714 +4922.385862,348.59375,192.8928571 +4922.385862,363.75,201.1875 +4922.385862,378.90625,209.5 +4922.385862,394.0625,217.8303571 +4922.385862,409.21875,226.1696429 +4922.385862,424.375,234.5267857 +4922.385862,439.53125,242.9017857 +4922.385862,454.6875,251.2857143 +4922.385862,469.84375,259.6964286 +4922.385862,485,268.1071429 +5273.932253,-485,-249.9464286 +5273.932253,-469.84375,-242.1517857 +5273.932253,-454.6875,-234.3482143 +5273.932253,-439.53125,-226.5178571 +5273.932253,-424.375,-218.6875 +5273.932253,-409.21875,-210.8303571 +5273.932253,-394.0625,-202.9642857 +5273.932253,-378.90625,-195.0803571 +5273.932253,-363.75,-187.1785714 +5273.932253,-348.59375,-179.2678571 +5273.932253,-333.4375,-171.3392857 +5273.932253,-318.28125,-163.3928571 +5273.932253,-303.125,-155.4375 +5273.932253,-287.96875,-147.4642857 +5273.932253,-272.8125,-139.4821429 +5273.932253,-257.65625,-131.4732143 +5273.932253,-242.5,-123.4553571 +5273.932253,-227.34375,-115.4196429 +5273.932253,-212.1875,-107.375 +5273.932253,-197.03125,-99.3125 +5273.932253,-181.875,-91.23214286 +5273.932253,-166.71875,-83.14107143 +5273.932253,-151.5625,-75.03303571 +5273.932253,-136.40625,-66.90982143 +5273.932253,-121.25,-58.77142857 +5273.932253,-106.09375,-50.61875 +5273.932253,-90.9375,-42.45 +5273.932253,-75.78125,-34.26696429 +5273.932253,-60.625,-26.06875 +5273.932253,-45.46875,-17.85535714 +5273.932253,-30.3125,-9.626785714 +5273.932253,-15.15625,-1.383928571 +5273.932253,0,7.068928571 +5273.932253,15.15625,15.57678571 +5273.932253,30.3125,24.10089286 +5273.932253,45.46875,32.63928571 +5273.932253,60.625,41.19285714 +5273.932253,75.78125,49.7625 +5273.932253,90.9375,58.34732143 +5273.932253,106.09375,66.94732143 +5273.932253,121.25,75.5625 +5273.932253,136.40625,84.19285714 +5273.932253,151.5625,92.83928571 +5273.932253,166.71875,101.5 +5273.932253,181.875,110.1785714 +5273.932253,197.03125,118.8660714 +5273.932253,212.1875,127.5803571 +5273.932253,227.34375,136.2946429 +5273.932253,242.5,145.0357143 +5273.932253,257.65625,153.7857143 +5273.932253,272.8125,162.5535714 +5273.932253,287.96875,171.3392857 +5273.932253,303.125,180.1428571 +5273.932253,318.28125,188.9553571 +5273.932253,333.4375,197.7857143 +5273.932253,348.59375,206.6339286 +5273.932253,363.75,215.4910714 +5273.932253,378.90625,224.3660714 +5273.932253,394.0625,233.2589286 +5273.932253,409.21875,242.1607143 +5273.932253,424.375,251.0803571 +5273.932253,439.53125,260.0178571 +5273.932253,454.6875,268.9732143 +5273.932253,469.84375,277.9375 +5273.932253,485,286.9196429 +5625.478645,-485,-266.8571429 +5625.478645,-469.84375,-258.5089286 +5625.478645,-454.6875,-250.1517857 +5625.478645,-439.53125,-241.7767857 +5625.478645,-424.375,-233.3839286 +5625.478645,-409.21875,-224.9821429 +5625.478645,-394.0625,-216.5535714 +5625.478645,-378.90625,-208.125 +5625.478645,-363.75,-199.6696429 +5625.478645,-348.59375,-191.2053571 +5625.478645,-333.4375,-182.7232143 +5625.478645,-318.28125,-174.2321429 +5625.478645,-303.125,-165.7142857 +5625.478645,-287.96875,-157.1875 +5625.478645,-272.8125,-148.6517857 +5625.478645,-257.65625,-140.0892857 +5625.478645,-242.5,-131.5178571 +5625.478645,-227.34375,-122.9375 +5625.478645,-212.1875,-114.3392857 +5625.478645,-197.03125,-105.7232143 +5625.478645,-181.875,-97.08928571 +5625.478645,-166.71875,-88.44196429 +5625.478645,-151.5625,-79.78035714 +5625.478645,-136.40625,-71.10446429 +5625.478645,-121.25,-62.41339286 +5625.478645,-106.09375,-53.70714286 +5625.478645,-90.9375,-44.98571429 +5625.478645,-75.78125,-36.24910714 +5625.478645,-60.625,-27.49821429 +5625.478645,-45.46875,-18.73214286 +5625.478645,-30.3125,-9.950892857 +5625.478645,-15.15625,-1.154375 +5625.478645,0,7.869732143 +5625.478645,15.15625,16.94196429 +5625.478645,30.3125,26.02946429 +5625.478645,45.46875,35.13214286 +5625.478645,60.625,44.25089286 +5625.478645,75.78125,53.38392857 +5625.478645,90.9375,62.53303571 +5625.478645,106.09375,71.69732143 +5625.478645,121.25,80.87678571 +5625.478645,136.40625,90.07142857 +5625.478645,151.5625,99.28571429 +5625.478645,166.71875,108.5089286 +5625.478645,181.875,117.75 +5625.478645,197.03125,127 +5625.478645,212.1875,136.2767857 +5625.478645,227.34375,145.5625 +5625.478645,242.5,154.8660714 +5625.478645,257.65625,164.1785714 +5625.478645,272.8125,173.5178571 +5625.478645,287.96875,182.8660714 +5625.478645,303.125,192.2232143 +5625.478645,318.28125,201.6071429 +5625.478645,333.4375,211 +5625.478645,348.59375,220.4107143 +5625.478645,363.75,229.8303571 +5625.478645,378.90625,239.2678571 +5625.478645,394.0625,248.7232143 +5625.478645,409.21875,258.1964286 +5625.478645,424.375,267.6785714 +5625.478645,439.53125,277.1875 +5625.478645,454.6875,286.6964286 +5625.478645,469.84375,296.2321429 +5625.478645,485,305.7767857 +5977.172312,-485,-283.7321429 +5977.172312,-469.84375,-274.8303571 +5977.172312,-454.6875,-265.9196429 +5977.172312,-439.53125,-256.9910714 +5977.172312,-424.375,-248.0446429 +5977.172312,-409.21875,-239.0892857 +5977.172312,-394.0625,-230.1160714 +5977.172312,-378.90625,-221.125 +5977.172312,-363.75,-212.1160714 +5977.172312,-348.59375,-203.0982143 +5977.172312,-333.4375,-194.0625 +5977.172312,-318.28125,-185.0178571 +5977.172312,-303.125,-175.9553571 +5977.172312,-287.96875,-166.875 +5977.172312,-272.8125,-157.7767857 +5977.172312,-257.65625,-148.6696429 +5977.172312,-242.5,-139.5446429 +5977.172312,-227.34375,-130.4107143 +5977.172312,-212.1875,-121.25 +5977.172312,-197.03125,-112.0803571 +5977.172312,-181.875,-102.9017857 +5977.172312,-166.71875,-93.70535714 +5977.172312,-151.5625,-84.4875 +5977.172312,-136.40625,-75.25803571 +5977.172312,-121.25,-66.01428571 +5977.172312,-106.09375,-56.75446429 +5977.172312,-90.9375,-47.48035714 +5977.172312,-75.78125,-38.19107143 +5977.172312,-60.625,-28.88660714 +5977.172312,-45.46875,-19.56785714 +5977.172312,-30.3125,-10.23392857 +5977.172312,-15.15625,-0.884214286 +5977.172312,0,8.712053571 +5977.172312,15.15625,18.34821429 +5977.172312,30.3125,28 +5977.172312,45.46875,37.66785714 +5977.172312,60.625,47.35 +5977.172312,75.78125,57.04732143 +5977.172312,90.9375,66.76071429 +5977.172312,106.09375,76.48928571 +5977.172312,121.25,86.23303571 +5977.172312,136.40625,95.99107143 +5977.172312,151.5625,105.7678571 +5977.172312,166.71875,115.5535714 +5977.172312,181.875,125.3571429 +5977.172312,197.03125,135.1785714 +5977.172312,212.1875,145.0178571 +5977.172312,227.34375,154.8660714 +5977.172312,242.5,164.7321429 +5977.172312,257.65625,174.6160714 +5977.172312,272.8125,184.5089286 +5977.172312,287.96875,194.4196429 +5977.172312,303.125,204.3482143 +5977.172312,318.28125,214.2946429 +5977.172312,333.4375,224.25 +5977.172312,348.59375,234.2232143 +5977.172312,363.75,244.2142857 +5977.172312,378.90625,254.2142857 +5977.172312,394.0625,264.2410714 +5977.172312,409.21875,274.2678571 +5977.172312,424.375,284.3214286 +5977.172312,439.53125,294.3839286 +5977.172312,454.6875,304.4642857 +5977.172312,469.84375,314.5625 +5977.172312,485,324.6785714 +6328.718704,-485,-300.5625 +6328.718704,-469.84375,-291.1160714 +6328.718704,-454.6875,-281.6428571 +6328.718704,-439.53125,-272.1607143 +6328.718704,-424.375,-262.6696429 +6328.718704,-409.21875,-253.1517857 +6328.718704,-394.0625,-243.625 +6328.718704,-378.90625,-234.0892857 +6328.718704,-363.75,-224.5267857 +6328.718704,-348.59375,-214.9553571 +6328.718704,-333.4375,-205.3660714 +6328.718704,-318.28125,-195.7678571 +6328.718704,-303.125,-186.1517857 +6328.718704,-287.96875,-176.5178571 +6328.718704,-272.8125,-166.875 +6328.718704,-257.65625,-157.2053571 +6328.718704,-242.5,-147.5357143 +6328.718704,-227.34375,-137.8392857 +6328.718704,-212.1875,-128.1339286 +6328.718704,-197.03125,-118.4107143 +6328.718704,-181.875,-108.6696429 +6328.718704,-166.71875,-98.91964286 +6328.718704,-151.5625,-89.15357143 +6328.718704,-136.40625,-79.37142857 +6328.718704,-121.25,-69.57410714 +6328.718704,-106.09375,-59.76160714 +6328.718704,-90.9375,-49.93482143 +6328.718704,-75.78125,-40.09285714 +6328.718704,-60.625,-30.23482143 +6328.718704,-45.46875,-20.3625 +6328.718704,-30.3125,-10.47589286 +6328.718704,-15.15625,-0.573383929 +6328.718704,0,9.595535714 +6328.718704,15.15625,19.79642857 +6328.718704,30.3125,30.0125 +6328.718704,45.46875,40.24375 +6328.718704,60.625,50.49017857 +6328.718704,75.78125,60.75267857 +6328.718704,90.9375,71.02946429 +6328.718704,106.09375,81.32232143 +6328.718704,121.25,91.63392857 +6328.718704,136.40625,101.9553571 +6328.718704,151.5625,112.2946429 +6328.718704,166.71875,122.6428571 +6328.718704,181.875,133.0178571 +6328.718704,197.03125,143.4017857 +6328.718704,212.1875,153.7946429 +6328.718704,227.34375,164.2142857 +6328.718704,242.5,174.6428571 +6328.718704,257.65625,185.0892857 +6328.718704,272.8125,195.5535714 +6328.718704,287.96875,206.0267857 +6328.718704,303.125,216.5178571 +6328.718704,318.28125,227.0267857 +6328.718704,333.4375,237.5446429 +6328.718704,348.59375,248.0892857 +6328.718704,363.75,258.6339286 +6328.718704,378.90625,269.2053571 +6328.718704,394.0625,279.7857143 +6328.718704,409.21875,290.3839286 +6328.718704,424.375,301 +6328.718704,439.53125,311.6339286 +6328.718704,454.6875,322.2767857 +6328.718704,469.84375,332.9375 +6328.718704,485,343.6160714 +6680.265096,-485,-317.3571429 +6680.265096,-469.84375,-307.3482143 +6680.265096,-454.6875,-297.3303571 +6680.265096,-439.53125,-287.2946429 +6680.265096,-424.375,-277.25 +6680.265096,-409.21875,-267.1785714 +6680.265096,-394.0625,-257.0982143 +6680.265096,-378.90625,-247.0089286 +6680.265096,-363.75,-236.8928571 +6680.265096,-348.59375,-226.7678571 +6680.265096,-333.4375,-216.6339286 +6680.265096,-318.28125,-206.4732143 +6680.265096,-303.125,-196.3035714 +6680.265096,-287.96875,-186.1160714 +6680.265096,-272.8125,-175.9196429 +6680.265096,-257.65625,-165.7053571 +6680.265096,-242.5,-155.4732143 +6680.265096,-227.34375,-145.2321429 +6680.265096,-212.1875,-134.9732143 +6680.265096,-197.03125,-124.6964286 +6680.265096,-181.875,-114.4017857 +6680.265096,-166.71875,-104.0982143 +6680.265096,-151.5625,-93.77678571 +6680.265096,-136.40625,-83.44375 +6680.265096,-121.25,-73.09375 +6680.265096,-106.09375,-62.72857143 +6680.265096,-90.9375,-52.34821429 +6680.265096,-75.78125,-41.95267857 +6680.265096,-60.625,-31.54285714 +6680.265096,-45.46875,-21.11785714 +6680.265096,-30.3125,-10.67678571 +6680.265096,-15.15625,-0.221919643 +6680.265096,0,10.52142857 +6680.265096,15.15625,21.28571429 +6680.265096,30.3125,32.06607143 +6680.265096,45.46875,42.86160714 +6680.265096,60.625,53.67232143 +6680.265096,75.78125,64.49821429 +6680.265096,90.9375,75.34017857 +6680.265096,106.09375,86.19642857 +6680.265096,121.25,97.07142857 +6680.265096,136.40625,107.9553571 +6680.265096,151.5625,118.8571429 +6680.265096,166.71875,129.7767857 +6680.265096,181.875,140.7053571 +6680.265096,197.03125,151.6607143 +6680.265096,212.1875,162.625 +6680.265096,227.34375,173.5982143 +6680.265096,242.5,184.5982143 +6680.265096,257.65625,195.6071429 +6680.265096,272.8125,206.6339286 +6680.265096,287.96875,217.6696429 +6680.265096,303.125,228.7232143 +6680.265096,318.28125,239.7946429 +6680.265096,333.4375,250.8839286 +6680.265096,348.59375,261.9821429 +6680.265096,363.75,273.1071429 +6680.265096,378.90625,284.2321429 +6680.265096,394.0625,295.3839286 +6680.265096,409.21875,306.5446429 +6680.265096,424.375,317.7232143 +6680.265096,439.53125,328.9196429 +6680.265096,454.6875,340.125 +6680.265096,469.84375,351.3482143 +6680.265096,485,362.5892857 +7031.811487,-485,-334.1071429 +7031.811487,-469.84375,-323.5535714 +7031.811487,-454.6875,-312.9732143 +7031.811487,-439.53125,-302.3839286 +7031.811487,-424.375,-291.7857143 +7031.811487,-409.21875,-281.1696429 +7031.811487,-394.0625,-270.5357143 +7031.811487,-378.90625,-259.8839286 +7031.811487,-363.75,-249.2232143 +7031.811487,-348.59375,-238.5446429 +7031.811487,-333.4375,-227.8482143 +7031.811487,-318.28125,-217.1428571 +7031.811487,-303.125,-206.4196429 +7031.811487,-287.96875,-195.6785714 +7031.811487,-272.8125,-184.9285714 +7031.811487,-257.65625,-174.1607143 +7031.811487,-242.5,-163.375 +7031.811487,-227.34375,-152.5803571 +7031.811487,-212.1875,-141.7678571 +7031.811487,-197.03125,-130.9375 +7031.811487,-181.875,-120.0982143 +7031.811487,-166.71875,-109.2410714 +7031.811487,-151.5625,-98.36607143 +7031.811487,-136.40625,-87.47589286 +7031.811487,-121.25,-76.57232143 +7031.811487,-106.09375,-65.65446429 +7031.811487,-90.9375,-54.72142857 +7031.811487,-75.78125,-43.77321429 +7031.811487,-60.625,-32.80982143 +7031.811487,-45.46875,-21.83125 +7031.811487,-30.3125,-10.83839286 +7031.811487,-15.15625,0.174098214 +7031.811487,0,11.4875 +7031.811487,15.15625,22.81696429 +7031.811487,30.3125,34.16071429 +7031.811487,45.46875,45.52053571 +7031.811487,60.625,56.89553571 +7031.811487,75.78125,68.28571429 +7031.811487,90.9375,79.69196429 +7031.811487,106.09375,91.11607143 +7031.811487,121.25,102.5446429 +7031.811487,136.40625,114 +7031.811487,151.5625,125.4642857 +7031.811487,166.71875,136.9464286 +7031.811487,181.875,148.4464286 +7031.811487,197.03125,159.9553571 +7031.811487,212.1875,171.4910714 +7031.811487,227.34375,183.0267857 +7031.811487,242.5,194.5892857 +7031.811487,257.65625,206.1607143 +7031.811487,272.8125,217.75 +7031.811487,287.96875,229.3571429 +7031.811487,303.125,240.9732143 +7031.811487,318.28125,252.6160714 +7031.811487,333.4375,264.2589286 +7031.811487,348.59375,275.9285714 +7031.811487,363.75,287.6071429 +7031.811487,378.90625,299.3035714 +7031.811487,394.0625,311.0178571 +7031.811487,409.21875,322.75 +7031.811487,424.375,334.4910714 +7031.811487,439.53125,346.25 +7031.811487,454.6875,358.0178571 +7031.811487,469.84375,369.8035714 +7031.811487,485,381.6071429 +7355.375552,-485,-349.4821429 +7355.375552,-469.84375,-338.4196429 +7355.375552,-454.6875,-327.3303571 +7355.375552,-439.53125,-316.2410714 +7355.375552,-424.375,-305.125 +7355.375552,-409.21875,-294 +7355.375552,-394.0625,-282.8571429 +7355.375552,-378.90625,-271.6964286 +7355.375552,-363.75,-260.5267857 +7355.375552,-348.59375,-249.3392857 +7355.375552,-333.4375,-238.1428571 +7355.375552,-318.28125,-226.9196429 +7355.375552,-303.125,-215.6875 +7355.375552,-287.96875,-204.4464286 +7355.375552,-272.8125,-193.1785714 +7355.375552,-257.65625,-181.9017857 +7355.375552,-242.5,-170.6160714 +7355.375552,-227.34375,-159.3035714 +7355.375552,-212.1875,-147.9821429 +7355.375552,-197.03125,-136.6428571 +7355.375552,-181.875,-125.2946429 +7355.375552,-166.71875,-113.9285714 +7355.375552,-151.5625,-102.5446429 +7355.375552,-136.40625,-91.15178571 +7355.375552,-121.25,-79.7375 +7355.375552,-106.09375,-68.31071429 +7355.375552,-90.9375,-56.86875 +7355.375552,-75.78125,-45.41160714 +7355.375552,-60.625,-33.93928571 +7355.375552,-45.46875,-22.45267857 +7355.375552,-30.3125,-10.95 +7355.375552,-15.15625,0.581044643 +7355.375552,0,12.41339286 +7355.375552,15.15625,24.26160714 +7355.375552,30.3125,36.125 +7355.375552,45.46875,48.00357143 +7355.375552,60.625,59.89821429 +7355.375552,75.78125,71.80714286 +7355.375552,90.9375,83.73214286 +7355.375552,106.09375,95.66964286 +7355.375552,121.25,107.625 +7355.375552,136.40625,119.5982143 +7355.375552,151.5625,131.5803571 +7355.375552,166.71875,143.5803571 +7355.375552,181.875,155.5982143 +7355.375552,197.03125,167.6339286 +7355.375552,212.1875,179.6785714 +7355.375552,227.34375,191.7410714 +7355.375552,242.5,203.8214286 +7355.375552,257.65625,215.9107143 +7355.375552,272.8125,228.0178571 +7355.375552,287.96875,240.1428571 +7355.375552,303.125,252.2857143 +7355.375552,318.28125,264.4375 +7355.375552,333.4375,276.6071429 +7355.375552,348.59375,288.7946429 +7355.375552,363.75,300.9910714 +7355.375552,378.90625,313.2053571 +7355.375552,394.0625,325.4375 +7355.375552,409.21875,337.6875 +7355.375552,424.375,349.9464286 +7355.375552,439.53125,362.2232143 +7355.375552,454.6875,374.5178571 +7355.375552,469.84375,386.8214286 +7355.375552,485,399.1428571 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Hybrid_Parameters.vhctl b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Hybrid_Parameters.vhctl new file mode 100644 index 0000000000000000000000000000000000000000..2f2ed814fcff9e24e146e56f0d0ff41378f5a386 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Hybrid_Parameters.vhctl @@ -0,0 +1,18 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2020-09-07T15:28:08.3781385Z", + "AppVersion": "3", + "FileVersion": 2 + }, + "Body": { + "----EquivalenceFactor": 2.0, + "MinSoC": 24.0, + "----MaxSoC": 80.0, + "TargetSoC": 70.0, + "----AuxBufferTime": 5.0, + "----AuxBufferChgTime": 5.0, + "----MinICEOnTime": 10.0, + "GensetMinOptPowerFactor": 0.2 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/MaxCurrent.vimax b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/MaxCurrent.vimax new file mode 100644 index 0000000000000000000000000000000000000000..adf28fb9b5ced83296d2634fc6727e2d1b82357e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/MaxCurrent.vimax @@ -0,0 +1,3 @@ +SOC, I_charge, I_discharge +0, 1620, 1620 +100, 1620, 1620 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/PEV-BusAux.vaux b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/PEV-BusAux.vaux new file mode 100644 index 0000000000000000000000000000000000000000..10063593284c29b82c6e394c732b76c411b20099 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/PEV-BusAux.vaux @@ -0,0 +1,34 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-02T06:18:44.2158728Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "PneumaticSystem": { + "CompressorMap": "", + "AverageAirDemand": 0.0, + "SmartAirCompression": false, + "GearRatio": 0.0 + }, + "ElectricSystem": { + "AlternatorEfficiency": 0.0, + "CurrentDemand": 25.0, + "CurrentDemandEngineOffDriving": 20.0, + "CurrentDemandEngineOffStandstill": 15.0, + "AlternatorType": "Conventional", + "ElectricStorageCapacity": 0.0, + "BatteryEfficiency": 1.0, + "MaxAlternatorPower": 0.0, + "DCDCConverterEfficiency": 1.0, + "ESSupplyFromHEVREESS": true + }, + "HVAC": { + "ElectricPowerDemand": 0.0, + "MechanicalPowerDemand": 0.0, + "AuxHeaterPower": 0.0, + "AverageHeatingDemand": 0.0 + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/REESS_SOC_curve.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/REESS_SOC_curve.vbatv new file mode 100644 index 0000000000000000000000000000000000000000..745afc9500ba00a1a4a49acb4752c88dd2105a4c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/REESS_SOC_curve.vbatv @@ -0,0 +1,13 @@ +SOC, V +0,718.4170472 +10,746.8408459 +20,763.1375469 +30,771.851826 +40,776.2574768 +50,778.6145358 +60,780.4264075 +70,782.6969898 +80,786.1877986 +90,791.6750932 +100,800.2070015 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2.vecto new file mode 100644 index 0000000000000000000000000000000000000000..d7242d7e178c9a7379b5ca3f90d8cc614d643fbf --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2.vecto @@ -0,0 +1,57 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2022-02-08T08:23:21.5081224Z", + "AppVersion": "3", + "FileVersion": 11 + }, + "Body": { + "SavedInDeclMode": false, + "EngineOnlyMode": false, + "VehicleFile": "SerialHybrid_S2.vveh", + "GearboxFile": "Transmission\\AMT_12.vgbx", + "TCU": "Transmission\\AMT_12.vgbx", + "EngineFile": "209kW_7c7l.veng", + "HybridStrategyParams": "Hybrid_Parameters.vhctl", + "Padd_electric": 0.0, + "VACC": "Truck.vacc", + "EngineStopStartAtVehicleStopThreshold": 2.0, + "EngineStopStartMaxOffTimespan": 120.0, + "EngineStopStartUtilityFactor": 0.8, + "EngineStopStartUtilityFactorDriving": 0.8, + "EcoRollMinSpeed": 60.000000000000007, + "EcoRollActivationDelay": 2.0, + "EcoRollUnderspeedThreshold": 0.0, + "EcoRollMaxAcceleration": 0.1, + "PCCEnableSpeed": 80.0, + "PCCMinSpeed": 50.0, + "PCCUnderspeed": 8.0, + "PCCOverSpeed": 5.0, + "PCCPreviewDistanceUC1": 1500.0, + "PCCPreviewDistanceUC2": 1000.0, + "LAC": { + "Enabled": true, + "PreviewDistanceFactor": 10.0, + "DF_offset": 2.5, + "DF_scaling": 1.5, + "DF_targetSpeedLookup": "", + "Df_velocityDropLookup": "", + "MinSpeed": 50.0 + }, + "OverSpeedEcoRoll": { + "Mode": "Overspeed", + "MinSpeed": 50.0, + "OverSpeed": 2.5 + }, + "Cycles": [ + "LongHaul", + "RegionalDelivery", + "UrbanDelivery", + "Construction", + "Urban", + "Suburban", + "Interurban", + "Coach" + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2.vveh b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2.vveh new file mode 100644 index 0000000000000000000000000000000000000000..4e6c2723b5301a73a6893d559a951305e0ab0466 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2.vveh @@ -0,0 +1,99 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2017-07-13T14:14:29.3226830Z", + "AppVersion": "3", + "FileVersion": 10 + }, + "Body": { + "SavedInDeclMode": false, + "VehCat": "RigidTruck", + "LegislativeClass": "Unknown", + "CurbWeight": 4670.0, + "CurbWeightExtra": 1900.0, + "Loading": 3020.0, + "MassMax": 11.99, + "rdyn": 421.0, + "PowertrainConfiguration": "SerialHybrid", + "CdCorrMode": "CdofVdecl", + "CdCorrFile": "", + "Retarder": { + "Type": "None", + "Ratio": 1.0, + "File": "" + }, + "ElectricMotors": [ + { + "Count": 2, + "Ratio": 2, + "MechanicalEfficiency": 0.97, + "Position": "E2", + "MotorFile": "GenericEMotor_125kW_485Nm.vem" + }, + { + "Count": 1, + "Ratio": 1, + "Position": "GEN", + "MotorFile": "GenericGen.vem", + "MechanicalEfficiency": 1 + } + ], + "Batteries": [ + { + "NumPacks": 1, + "StreamId": 0, + "BatteryFile": "GenericBattery.vreess" + } + ], + "InitialSoC": 80, + "TorqueLimits": {}, + "IdlingSpeed": 0.0, + "AxleConfig": { + "Type": "4x2", + "Axles": [ + { + "Inertia": 6.5, + "Wheels": "265/70 R19.5", + "AxleWeightShare": 0.2, + "TwinTyres": false, + "RRCISO": 0.0065, + "FzISO": 20850.0, + "Type": "VehicleNonDriven" + }, + { + "Inertia": 6.5, + "Wheels": "265/70 R19.5", + "AxleWeightShare": 0.3, + "TwinTyres": true, + "RRCISO": 0.0075, + "FzISO": 20850.0, + "Type": "VehicleDriven" + }, + { + "Inertia": 4.5, + "Wheels": "235/75 R17.5", + "AxleWeightShare": 0.25, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 16680.0, + "Type": "VehicleNonDriven" + }, + { + "Inertia": 4.5, + "Wheels": "235/75 R17.5", + "AxleWeightShare": 0.25, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 16680.0, + "Type": "VehicleNonDriven" + } + ] + }, + "EngineStopStart": true, + "EcoRoll": "None", + "PredictiveCruiseControl": "None", + "ATEcoRollReleaseLockupClutch": false, + "CdxA": 4.83, + "VehicleHeight": 3.0 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2_3Speed.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2_3Speed.vecto new file mode 100644 index 0000000000000000000000000000000000000000..c4c61d4857b39b3d5e4135d4ce53cb748483c59d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/SerialHybrid_S2_3Speed.vecto @@ -0,0 +1,57 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2022-02-08T08:23:21.5081224Z", + "AppVersion": "3", + "FileVersion": 11 + }, + "Body": { + "SavedInDeclMode": false, + "EngineOnlyMode": false, + "VehicleFile": "SerialHybrid_S2.vveh", + "GearboxFile": "3speedEV.vgbx", + "TCU": "3speedEV.vgbx", + "EngineFile": "209kW_7c7l.veng", + "HybridStrategyParams": "Hybrid_Parameters.vhctl", + "Padd_electric": 0.0, + "VACC": "Truck.vacc", + "EngineStopStartAtVehicleStopThreshold": 2.0, + "EngineStopStartMaxOffTimespan": 120.0, + "EngineStopStartUtilityFactor": 0.8, + "EngineStopStartUtilityFactorDriving": 0.8, + "EcoRollMinSpeed": 60.000000000000007, + "EcoRollActivationDelay": 2.0, + "EcoRollUnderspeedThreshold": 0.0, + "EcoRollMaxAcceleration": 0.1, + "PCCEnableSpeed": 80.0, + "PCCMinSpeed": 50.0, + "PCCUnderspeed": 8.0, + "PCCOverSpeed": 5.0, + "PCCPreviewDistanceUC1": 1500.0, + "PCCPreviewDistanceUC2": 1000.0, + "LAC": { + "Enabled": true, + "PreviewDistanceFactor": 10.0, + "DF_offset": 2.5, + "DF_scaling": 1.5, + "DF_targetSpeedLookup": "", + "Df_velocityDropLookup": "", + "MinSpeed": 50.0 + }, + "OverSpeedEcoRoll": { + "Mode": "Overspeed", + "MinSpeed": 50.0, + "OverSpeed": 2.5 + }, + "Cycles": [ + "LongHaul", + "RegionalDelivery", + "UrbanDelivery", + "Construction", + "Urban", + "Suburban", + "Interurban", + "Coach" + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/AMT_12.vgbx b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/AMT_12.vgbx new file mode 100644 index 0000000000000000000000000000000000000000..ae0a1a7ebaaa26a091f0f5c73eb29c0cc4d155fb --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/AMT_12.vgbx @@ -0,0 +1,117 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2020-08-21T09:25:38.1210499Z", + "AppVersion": "3", + "FileVersion": 6 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "tractor_12gear_example", + "Inertia": 0.0, + "TracInt": 1.0, + "Gears": [ + { + "Ratio": 2.64, + "LossMap": "Axle_4x2_Tractor.vtlm" + }, + { + "Ratio": 14.93, + "LossMap": "Gear_1.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 11.64, + "LossMap": "Gear_2.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 9.02, + "LossMap": "Gear_3.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 7.04, + "LossMap": "Gear_4.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 5.64, + "LossMap": "Gear_5.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 4.4, + "LossMap": "Gear_6.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 3.39, + "LossMap": "Gear_7.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 2.65, + "LossMap": "Gear_8.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 2.05, + "LossMap": "Gear_9.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 1.6, + "LossMap": "Gear_10.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 1.28, + "LossMap": "Gear_11.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 1.0, + "LossMap": "Gear_12.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + } + ], + "TqReserve": 20.0, + "ShiftTime": 2.0, + "StartTqReserve": 20.0, + "StartSpeed": 2.0, + "StartAcc": 0.6, + "GearboxType": "AMT", + "TorqueConverter": { + "Enabled": false + }, + "DownshiftAfterUpshiftDelay": 6.0, + "UpshiftAfterDownshiftDelay": 6.0, + "UpshiftMinAcceleration": 0.1, + "PowershiftShiftTime": 0.8 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Axle_4x2_Tractor.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Axle_4x2_Tractor.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..e11cbf7cdde175e06ab8f6a0b79d46b84b3e0c1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Axle_4x2_Tractor.vtlm @@ -0,0 +1,317 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5478,220 +0,-176,28 +0,0,8 +0,116,14 +0,220,17 +0,326,21 +0,432,24 +0,641,31 +0,853,38 +0,1274,53 +0,1696,67 +0,2117,82 +0,2538,96 +0,2959,110 +0,3376,119 +0,3785,123 +0,4200,130 +0,6309,204 +0,8409,268 +0,10507,332 +0,12606,396 +0,16804,523 +0,21002,651 +0,25199,778 +0,29397,905 +0,33594,1032 +0,37792,1160 +0,41990,1288 +0,46187,1415 +0,50385,1542 +143,-5482,216 +143,-174,28 +143,0,9 +143,116,14 +143,222,17 +143,326,21 +143,432,24 +143,641,31 +143,853,38 +143,1273,52 +143,1694,66 +143,2115,80 +143,2536,94 +143,2957,108 +143,3372,116 +143,3786,123 +143,4200,130 +143,6323,218 +143,8427,287 +143,10532,356 +143,12635,425 +143,16843,563 +143,21052,701 +143,25260,839 +143,29467,977 +143,33676,1115 +143,37884,1253 +143,42092,1391 +143,46300,1529 +143,50509,1667 +285,-5496,202 +285,-172,32 +285,0,10 +285,118,16 +285,223,19 +285,327,22 +285,432,24 +285,641,31 +285,851,37 +285,1271,50 +285,1690,63 +285,2110,75 +285,2530,88 +285,2950,101 +285,3369,113 +285,3780,117 +285,4195,124 +285,6305,200 +285,8402,262 +285,10499,324 +285,12596,386 +285,16791,510 +285,20987,636 +285,25181,760 +285,29376,884 +285,33570,1009 +285,37765,1133 +285,41960,1259 +285,46154,1383 +285,50350,1507 +428,-5501,200 +428,-167,35 +428,0,12 +428,119,17 +428,224,21 +428,328,23 +428,433,26 +428,643,31 +428,851,37 +428,1270,49 +428,1689,61 +428,2109,74 +428,2529,87 +428,2949,100 +428,3365,109 +428,3778,115 +428,4191,121 +428,6296,191 +428,8390,251 +428,10485,310 +428,12579,369 +428,16767,486 +428,20955,604 +428,25143,723 +428,29332,841 +428,33521,958 +428,37708,1076 +428,41897,1195 +428,46084,1313 +428,50273,1430 +570,-5512,188 +570,-167,37 +570,0,13 +570,121,19 +570,224,21 +570,328,23 +570,433,26 +570,641,31 +570,850,36 +570,1268,46 +570,1685,58 +570,2104,70 +570,2523,81 +570,2943,94 +570,3363,107 +570,3776,113 +570,4189,118 +570,6281,175 +570,8369,230 +570,10459,283 +570,12547,336 +570,16724,443 +570,20901,550 +570,25078,658 +570,29255,764 +570,33432,871 +570,37611,979 +570,41788,1086 +570,45965,1192 +570,50142,1299 +713,-5517,181 +713,-165,39 +713,0,14 +713,122,20 +713,225,22 +713,329,24 +713,433,27 +713,641,30 +713,850,36 +713,1267,45 +713,1684,56 +713,2102,67 +713,2521,79 +713,2939,90 +713,3358,102 +713,3775,111 +713,4188,118 +713,6272,166 +713,8357,217 +713,10442,267 +713,12527,317 +713,16697,416 +713,20867,517 +713,25039,617 +713,29209,717 +713,33379,818 +713,37549,918 +713,41719,1017 +713,45890,1117 +713,50060,1218 +855,-5524,174 +855,-162,42 +855,0,15 +855,122,21 +855,226,22 +855,329,24 +855,434,27 +855,641,31 +855,849,35 +855,1266,45 +855,1683,55 +855,2100,65 +855,2518,77 +855,2937,87 +855,3355,99 +855,3775,111 +855,4188,117 +855,6264,158 +855,8346,205 +855,10427,252 +855,12509,299 +855,16674,393 +855,20838,487 +855,25003,581 +855,29167,675 +855,33330,769 +855,37495,863 +855,41659,957 +855,45823,1051 +855,49988,1145 +998,-5526,172 +998,-160,44 +998,0,16 +998,123,22 +998,227,23 +998,331,26 +998,435,28 +998,641,31 +998,850,36 +998,1266,45 +998,1682,55 +998,2100,64 +998,2517,74 +998,2935,86 +998,3354,97 +998,3772,109 +998,4185,115 +998,6258,153 +998,8338,197 +998,10418,242 +998,12498,288 +998,16658,377 +998,20817,466 +998,24977,556 +998,29137,645 +998,33297,735 +998,37456,825 +998,41616,914 +998,45776,1003 +998,49936,1093 +1140,-5529,169 +1140,-158,46 +1140,0,18 +1140,125,23 +1140,229,24 +1140,332,27 +1140,436,29 +1140,643,32 +1140,851,37 +1140,1267,45 +1140,1683,55 +1140,2100,64 +1140,2516,74 +1140,2934,85 +1140,3352,96 +1140,3771,108 +1140,4183,114 +1283,-5529,169 +1283,-155,49 +1283,0,19 +1283,126,24 +1283,230,26 +1283,333,28 +1283,437,30 +1283,644,34 +1283,853,38 +1283,1267,46 +1283,1683,55 +1283,2098,64 +1283,2516,74 +1283,2934,85 +1283,3351,95 +1283,3764,101 +1425,-5531,167 +1425,-153,51 +1425,0,20 +1425,128,26 +1425,231,27 +1425,336,30 +1425,436,29 +1425,646,36 +1425,853,38 +1425,1268,46 +1425,1683,55 +1425,2098,63 +1425,2516,73 +1425,2932,84 +1425,3345,89 +1568,-5538,160 +1568,-148,56 +1568,0,21 +1568,129,28 +1568,232,29 +1568,336,31 +1568,440,32 +1568,647,37 +1568,854,41 +1568,1269,48 +1568,1684,57 +1568,2101,65 +1568,2517,74 +1568,2929,80 +1853,-5540,158 +1853,-144,60 +1853,0,24 +1853,132,30 +1853,234,31 +1853,340,34 +1853,442,35 +1853,650,38 +1853,856,42 +1853,1269,49 +1853,1684,57 +1853,2098,64 +1853,2515,73 +1853,2928,79 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Default.vrlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Default.vrlm new file mode 100644 index 0000000000000000000000000000000000000000..eb575b99973291e5414c4826da086c1f03a7f179 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Default.vrlm @@ -0,0 +1,32 @@ +Retarder Speed [1/min],Torque Loss [Nm] +0,10 +100,10 +200,10.1 +300,10.2 +400,10.3 +500,10.5 +600,10.7 +700,11 +800,11.3 +900,11.6 +1000,12 +1100,12.4 +1200,12.9 +1300,13.4 +1400,13.9 +1500,14.5 +1600,15.1 +1700,15.8 +1800,16.5 +1900,17.2 +2000,18 +2100,18.8 +2200,19.7 +2300,20.6 +2400,21.5 +2500,22.5 +2600,23.5 +2700,24.6 +2800,25.7 +2900,26.8 +3000,28 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_1.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_1.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_1.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_10.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_10.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_10.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_11.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_11.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_11.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_12.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_12.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..d30c0dbb042ca6d2235b4febe01b31292e5593c0 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_12.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,74.2 +0,-5000.0,69.2 +0,-4500.0,59.2 +0,-4000.0,59.2 +0,-3500.0,54.2 +0,-3000.0,49.2 +0,-2500.0,44.2 +0,-2000.0,39.2 +0,-1600.0,35.2 +0,-1200.0,31.2 +0,-900.0,28.2 +0,-600.0,25.2 +0,-400.0,23.2 +0,-200.0,21.2 +0,0.0,21.2 +0,200.0,21.2 +0,400.0,23.2 +0,600.0,25.2 +0,900.0,28.2 +0,1200.0,31.2 +0,1600.0,35.2 +0,2000.0,39.2 +0,2500.0,44.2 +0,3000.0,49.2 +0,3500.0,54.2 +0,4000.0,59.2 +0,4500.0,64.2 +0,5000.0,69.2 +0,5500.0,74.2 +600,-5500.0,74.2 +600,-5000.0,69.2 +600,-4500.0,59.2 +600,-4000.0,59.2 +600,-3500.0,54.2 +600,-3000.0,49.2 +600,-2500.0,44.2 +600,-2000.0,39.2 +600,-1600.0,35.2 +600,-1200.0,31.2 +600,-900.0,28.2 +600,-600.0,25.2 +600,-400.0,23.2 +600,-200.0,21.2 +600,0.0,21.2 +600,200.0,21.2 +600,400.0,23.2 +600,600.0,25.2 +600,900.0,28.2 +600,1200.0,31.2 +600,1600.0,35.2 +600,2000.0,39.2 +600,2500.0,44.2 +600,3000.0,49.2 +600,3500.0,54.2 +600,4000.0,59.2 +600,4500.0,64.2 +600,5000.0,69.2 +600,5500.0,74.2 +900,-5500.0,77.8 +900,-5000.0,72.8 +900,-4500.0,62.8 +900,-4000.0,62.8 +900,-3500.0,57.8 +900,-3000.0,52.8 +900,-2500.0,47.8 +900,-2000.0,42.8 +900,-1600.0,38.8 +900,-1200.0,34.8 +900,-900.0,31.8 +900,-600.0,28.8 +900,-400.0,26.8 +900,-200.0,24.8 +900,0.0,24.8 +900,200.0,24.8 +900,400.0,26.8 +900,600.0,28.8 +900,900.0,31.8 +900,1200.0,34.8 +900,1600.0,38.8 +900,2000.0,42.8 +900,2500.0,47.8 +900,3000.0,52.8 +900,3500.0,57.8 +900,4000.0,62.8 +900,4500.0,67.8 +900,5000.0,72.8 +900,5500.0,77.8 +1200,-5500.0,81.4 +1200,-5000.0,76.4 +1200,-4500.0,66.4 +1200,-4000.0,66.4 +1200,-3500.0,61.4 +1200,-3000.0,56.4 +1200,-2500.0,51.4 +1200,-2000.0,46.4 +1200,-1600.0,42.4 +1200,-1200.0,38.4 +1200,-900.0,35.4 +1200,-600.0,32.4 +1200,-400.0,30.4 +1200,-200.0,28.4 +1200,0.0,28.4 +1200,200.0,28.4 +1200,400.0,30.4 +1200,600.0,32.4 +1200,900.0,35.4 +1200,1200.0,38.4 +1200,1600.0,42.4 +1200,2000.0,46.4 +1200,2500.0,51.4 +1200,3000.0,56.4 +1200,3500.0,61.4 +1200,4000.0,66.4 +1200,4500.0,71.4 +1200,5000.0,76.4 +1200,5500.0,81.4 +1600,-5500.0,86.2 +1600,-5000.0,81.2 +1600,-4500.0,71.2 +1600,-4000.0,71.2 +1600,-3500.0,66.2 +1600,-3000.0,61.2 +1600,-2500.0,56.2 +1600,-2000.0,51.2 +1600,-1600.0,47.2 +1600,-1200.0,43.2 +1600,-900.0,40.2 +1600,-600.0,37.2 +1600,-400.0,35.2 +1600,-200.0,33.2 +1600,0.0,33.2 +1600,200.0,33.2 +1600,400.0,35.2 +1600,600.0,37.2 +1600,900.0,40.2 +1600,1200.0,43.2 +1600,1600.0,47.2 +1600,2000.0,51.2 +1600,2500.0,56.2 +1600,3000.0,61.2 +1600,3500.0,66.2 +1600,4000.0,71.2 +1600,4500.0,76.2 +1600,5000.0,81.2 +1600,5500.0,86.2 +2000,-5500.0,91.0 +2000,-5000.0,86.0 +2000,-4500.0,76.0 +2000,-4000.0,76.0 +2000,-3500.0,71.0 +2000,-3000.0,66.0 +2000,-2500.0,61.0 +2000,-2000.0,56.0 +2000,-1600.0,52.0 +2000,-1200.0,48.0 +2000,-900.0,45.0 +2000,-600.0,42.0 +2000,-400.0,40.0 +2000,-200.0,38.0 +2000,0.0,38.0 +2000,200.0,38.0 +2000,400.0,40.0 +2000,600.0,42.0 +2000,900.0,45.0 +2000,1200.0,48.0 +2000,1600.0,52.0 +2000,2000.0,56.0 +2000,2500.0,61.0 +2000,3000.0,66.0 +2000,3500.0,71.0 +2000,4000.0,76.0 +2000,4500.0,81.0 +2000,5000.0,86.0 +2000,5500.0,91.0 +2500,-5500.0,97.0 +2500,-5000.0,92.0 +2500,-4500.0,82.0 +2500,-4000.0,82.0 +2500,-3500.0,77.0 +2500,-3000.0,72.0 +2500,-2500.0,67.0 +2500,-2000.0,62.0 +2500,-1600.0,58.0 +2500,-1200.0,54.0 +2500,-900.0,51.0 +2500,-600.0,48.0 +2500,-400.0,46.0 +2500,-200.0,44.0 +2500,0.0,44.0 +2500,200.0,44.0 +2500,400.0,46.0 +2500,600.0,48.0 +2500,900.0,51.0 +2500,1200.0,54.0 +2500,1600.0,58.0 +2500,2000.0,62.0 +2500,2500.0,67.0 +2500,3000.0,72.0 +2500,3500.0,77.0 +2500,4000.0,82.0 +2500,4500.0,87.0 +2500,5000.0,92.0 +2500,5500.0,97.0 +3000,-5500.0,103.0 +3000,-5000.0,98.0 +3000,-4500.0,88.0 +3000,-4000.0,88.0 +3000,-3500.0,83.0 +3000,-3000.0,78.0 +3000,-2500.0,73.0 +3000,-2000.0,68.0 +3000,-1600.0,64.0 +3000,-1200.0,60.0 +3000,-900.0,57.0 +3000,-600.0,54.0 +3000,-400.0,52.0 +3000,-200.0,50.0 +3000,0.0,50.0 +3000,200.0,50.0 +3000,400.0,52.0 +3000,600.0,54.0 +3000,900.0,57.0 +3000,1200.0,60.0 +3000,1600.0,64.0 +3000,2000.0,68.0 +3000,2500.0,73.0 +3000,3000.0,78.0 +3000,3500.0,83.0 +3000,4000.0,88.0 +3000,4500.0,93.0 +3000,5000.0,98.0 +3000,5500.0,103.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_2.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_2.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_2.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_3.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_3.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_3.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_4.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_4.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_4.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_5.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_5.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_5.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_6.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_6.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_6.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_7.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_7.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_7.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_8.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_8.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_8.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_9.vtlm b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_9.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..ea00afe57cd1fa0d4f058cced560bd1bd482dd1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Transmission/Gear_9.vtlm @@ -0,0 +1,233 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5500.0,239.2 +0,-5000.0,219.2 +0,-4500.0,179.2 +0,-4000.0,179.2 +0,-3500.0,159.2 +0,-3000.0,139.2 +0,-2500.0,119.2 +0,-2000.0,99.2 +0,-1600.0,83.2 +0,-1200.0,67.2 +0,-900.0,55.2 +0,-600.0,43.2 +0,-400.0,35.2 +0,-200.0,27.2 +0,0.0,27.2 +0,200.0,27.2 +0,400.0,35.2 +0,600.0,43.2 +0,900.0,55.2 +0,1200.0,67.2 +0,1600.0,83.2 +0,2000.0,99.2 +0,2500.0,119.2 +0,3000.0,139.2 +0,3500.0,159.2 +0,4000.0,179.2 +0,4500.0,199.2 +0,5000.0,219.2 +0,5500.0,239.2 +600,-5500.0,239.2 +600,-5000.0,219.2 +600,-4500.0,179.2 +600,-4000.0,179.2 +600,-3500.0,159.2 +600,-3000.0,139.2 +600,-2500.0,119.2 +600,-2000.0,99.2 +600,-1600.0,83.2 +600,-1200.0,67.2 +600,-900.0,55.2 +600,-600.0,43.2 +600,-400.0,35.2 +600,-200.0,27.2 +600,0.0,27.2 +600,200.0,27.2 +600,400.0,35.2 +600,600.0,43.2 +600,900.0,55.2 +600,1200.0,67.2 +600,1600.0,83.2 +600,2000.0,99.2 +600,2500.0,119.2 +600,3000.0,139.2 +600,3500.0,159.2 +600,4000.0,179.2 +600,4500.0,199.2 +600,5000.0,219.2 +600,5500.0,239.2 +900,-5500.0,242.8 +900,-5000.0,222.8 +900,-4500.0,182.8 +900,-4000.0,182.8 +900,-3500.0,162.8 +900,-3000.0,142.8 +900,-2500.0,122.8 +900,-2000.0,102.8 +900,-1600.0,86.8 +900,-1200.0,70.8 +900,-900.0,58.8 +900,-600.0,46.8 +900,-400.0,38.8 +900,-200.0,30.8 +900,0.0,30.8 +900,200.0,30.8 +900,400.0,38.8 +900,600.0,46.8 +900,900.0,58.8 +900,1200.0,70.8 +900,1600.0,86.8 +900,2000.0,102.8 +900,2500.0,122.8 +900,3000.0,142.8 +900,3500.0,162.8 +900,4000.0,182.8 +900,4500.0,202.8 +900,5000.0,222.8 +900,5500.0,242.8 +1200,-5500.0,246.4 +1200,-5000.0,226.4 +1200,-4500.0,186.4 +1200,-4000.0,186.4 +1200,-3500.0,166.4 +1200,-3000.0,146.4 +1200,-2500.0,126.4 +1200,-2000.0,106.4 +1200,-1600.0,90.4 +1200,-1200.0,74.4 +1200,-900.0,62.4 +1200,-600.0,50.4 +1200,-400.0,42.4 +1200,-200.0,34.4 +1200,0.0,34.4 +1200,200.0,34.4 +1200,400.0,42.4 +1200,600.0,50.4 +1200,900.0,62.4 +1200,1200.0,74.4 +1200,1600.0,90.4 +1200,2000.0,106.4 +1200,2500.0,126.4 +1200,3000.0,146.4 +1200,3500.0,166.4 +1200,4000.0,186.4 +1200,4500.0,206.4 +1200,5000.0,226.4 +1200,5500.0,246.4 +1600,-5500.0,251.2 +1600,-5000.0,231.2 +1600,-4500.0,191.2 +1600,-4000.0,191.2 +1600,-3500.0,171.2 +1600,-3000.0,151.2 +1600,-2500.0,131.2 +1600,-2000.0,111.2 +1600,-1600.0,95.2 +1600,-1200.0,79.2 +1600,-900.0,67.2 +1600,-600.0,55.2 +1600,-400.0,47.2 +1600,-200.0,39.2 +1600,0.0,39.2 +1600,200.0,39.2 +1600,400.0,47.2 +1600,600.0,55.2 +1600,900.0,67.2 +1600,1200.0,79.2 +1600,1600.0,95.2 +1600,2000.0,111.2 +1600,2500.0,131.2 +1600,3000.0,151.2 +1600,3500.0,171.2 +1600,4000.0,191.2 +1600,4500.0,211.2 +1600,5000.0,231.2 +1600,5500.0,251.2 +2000,-5500.0,256.0 +2000,-5000.0,236.0 +2000,-4500.0,196.0 +2000,-4000.0,196.0 +2000,-3500.0,176.0 +2000,-3000.0,156.0 +2000,-2500.0,136.0 +2000,-2000.0,116.0 +2000,-1600.0,100.0 +2000,-1200.0,84.0 +2000,-900.0,72.0 +2000,-600.0,60.0 +2000,-400.0,52.0 +2000,-200.0,44.0 +2000,0.0,44.0 +2000,200.0,44.0 +2000,400.0,52.0 +2000,600.0,60.0 +2000,900.0,72.0 +2000,1200.0,84.0 +2000,1600.0,100.0 +2000,2000.0,116.0 +2000,2500.0,136.0 +2000,3000.0,156.0 +2000,3500.0,176.0 +2000,4000.0,196.0 +2000,4500.0,216.0 +2000,5000.0,236.0 +2000,5500.0,256.0 +2500,-5500.0,262.0 +2500,-5000.0,242.0 +2500,-4500.0,202.0 +2500,-4000.0,202.0 +2500,-3500.0,182.0 +2500,-3000.0,162.0 +2500,-2500.0,142.0 +2500,-2000.0,122.0 +2500,-1600.0,106.0 +2500,-1200.0,90.0 +2500,-900.0,78.0 +2500,-600.0,66.0 +2500,-400.0,58.0 +2500,-200.0,50.0 +2500,0.0,50.0 +2500,200.0,50.0 +2500,400.0,58.0 +2500,600.0,66.0 +2500,900.0,78.0 +2500,1200.0,90.0 +2500,1600.0,106.0 +2500,2000.0,122.0 +2500,2500.0,142.0 +2500,3000.0,162.0 +2500,3500.0,182.0 +2500,4000.0,202.0 +2500,4500.0,222.0 +2500,5000.0,242.0 +2500,5500.0,262.0 +3000,-5500.0,268.0 +3000,-5000.0,248.0 +3000,-4500.0,208.0 +3000,-4000.0,208.0 +3000,-3500.0,188.0 +3000,-3000.0,168.0 +3000,-2500.0,148.0 +3000,-2000.0,128.0 +3000,-1600.0,112.0 +3000,-1200.0,96.0 +3000,-900.0,84.0 +3000,-600.0,72.0 +3000,-400.0,64.0 +3000,-200.0,56.0 +3000,0.0,56.0 +3000,200.0,56.0 +3000,400.0,64.0 +3000,600.0,72.0 +3000,900.0,84.0 +3000,1200.0,96.0 +3000,1600.0,112.0 +3000,2000.0,128.0 +3000,2500.0,148.0 +3000,3000.0,168.0 +3000,3500.0,188.0 +3000,4000.0,208.0 +3000,4500.0,228.0 +3000,5000.0,248.0 +3000,5500.0,268.0 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Truck.vacc b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Truck.vacc new file mode 100644 index 0000000000000000000000000000000000000000..54e77864874d21d67e8f8d69a97b35c5c6031749 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_S2_Job/Truck.vacc @@ -0,0 +1,6 @@ +v [km/h],acc [m/s²],dec [m/s²] +0,1,-1 +25,1,-1 +50,0.642857143,-1 +60,0.5,-0.5 +120,0.5,-0.5 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/BEV_E4_Group31a.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/BEV_E4_Group31a.vecto new file mode 100644 index 0000000000000000000000000000000000000000..1f86afd92b8f61b138f55c480265d8b3a9305007 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/BEV_E4_Group31a.vecto @@ -0,0 +1,48 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2022-02-08T08:23:21.5081224Z", + "AppVersion": "3", + "FileVersion": 9 + }, + "Body": { + "SavedInDeclMode": false, + "VehicleFile": "BEV_E4_Group31a.vveh", + "Padd_electric": 0.0, + "BusAux": "Smart_BusAux.vaux", + "VACC": "Truck.vacc", + "EngineStopStartAtVehicleStopThreshold": 2.0, + "EngineStopStartMaxOffTimespan": 120.0, + "EngineStopStartUtilityFactor": 0.8, + "EngineStopStartUtilityFactorDriving": 0.8, + "EcoRollMinSpeed": 60.000000000000007, + "EcoRollActivationDelay": 2.0, + "EcoRollUnderspeedThreshold": 0.0, + "EcoRollMaxAcceleration": 0.1, + "PCCEnableSpeed": 80.0, + "PCCMinSpeed": 50.0, + "PCCUnderspeed": 8.0, + "PCCOverSpeed": 5.0, + "PCCPreviewDistanceUC1": 1500.0, + "PCCPreviewDistanceUC2": 1000.0, + "LAC": { + "Enabled": true, + "PreviewDistanceFactor": 10.0, + "DF_offset": 2.5, + "DF_scaling": 1.5, + "DF_targetSpeedLookup": "", + "Df_velocityDropLookup": "", + "MinSpeed": 50.0 + }, + "OverSpeedEcoRoll": { + "Mode": "Overspeed", + "MinSpeed": 50.0, + "OverSpeed": 2.5 + }, + "Cycles": [ + "HeavyUrban.vdri", + "Suburban.vdri", + "Urban.vdri" + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/BEV_E4_Group31a.vveh b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/BEV_E4_Group31a.vveh new file mode 100644 index 0000000000000000000000000000000000000000..6242650fe472280cf3b5cda2df4356cc0eed0afb --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/BEV_E4_Group31a.vveh @@ -0,0 +1,67 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2022-02-08T08:23:19.3752854Z", + "AppVersion": "3", + "FileVersion": 10 + }, + "Body": { + "SavedInDeclMode": false, + "VehCat": "CityBus", + "LegislativeClass": "Unknown", + "CurbWeight": 12841.5, + "CurbWeightExtra": 0.0, + "MassMax": 19.5, + "Loading": 5618.16, + "rdyn": 465.0, + "CdCorrMode": "CdofVdecl", + "CdCorrFile": "", + "AxleConfig": { + "Type": "4x2", + "Axles": [ + { + "Inertia": 11.9, + "Wheels": "275/70 R22.5", + "AxleWeightShare": 0.375, + "TwinTyres": false, + "RRCISO": 0.0034, + "FzISO": 31300.0, + "Type": "VehicleNonDriven" + }, + { + "Inertia": 11.9, + "Wheels": "275/70 R22.5", + "AxleWeightShare": 0.625, + "TwinTyres": true, + "RRCISO": 0.004, + "FzISO": 31300.0, + "Type": "VehicleDriven" + } + ] + }, + "EngineStopStart": false, + "EcoRoll": "None", + "PredictiveCruiseControl": "Option_1_2_3", + "ATEcoRollReleaseLockupClutch": false, + "CdA": 4.9, + "VehicleHeight": 3.1, + "InitialSoC": 80, + "PowertrainConfiguration": "BatteryElectric", + "ElectricMotors": [ + { + "Count": 2, + "Ratio": 12.47, + "Position": "E4", + "MotorFile": "GenericEMotor.vem", + "MechanicalEfficiency": 0.98 + } + ], + "Batteries": [ + { + "NumPacks": 1, + "BatteryFile": "GenericBattery.vreess", + "StreamId": 0 + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..4e46187a16210e9ecf74b0bd1c0748a957a36888 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_Map.vemo @@ -0,0 +1,925 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-506.13,0.000 +0.00,-480.83,0.000 +0.00,-455.52,0.000 +0.00,-430.21,0.000 +0.00,-404.91,0.000 +0.00,-379.60,0.000 +0.00,-354.29,-0.065 +0.00,-328.99,-0.329 +0.00,-303.68,-0.491 +0.00,-278.37,-0.597 +0.00,-253.07,-0.661 +0.00,-227.76,-0.692 +0.00,-202.45,-0.695 +0.00,-177.15,-0.674 +0.00,-151.84,-0.630 +0.00,-126.53,-0.566 +0.00,-101.23,-0.483 +0.00,-75.92,-0.383 +0.00,-50.61,-0.266 +0.00,-25.31,-0.133 +0.00,-5.06,-0.012 +0.00,5.06,0.063 +0.00,25.31,0.276 +0.00,50.61,0.552 +0.00,75.92,0.839 +0.00,101.23,1.136 +0.00,126.53,1.444 +0.00,151.84,1.763 +0.00,177.15,2.092 +0.00,202.45,2.430 +0.00,227.76,2.779 +0.00,253.07,3.137 +0.00,278.37,3.505 +0.00,303.68,3.882 +0.00,328.99,4.269 +0.00,354.29,4.665 +0.00,379.60,5.070 +0.00,404.91,5.483 +0.00,430.21,5.906 +0.00,455.52,6.338 +0.00,480.83,6.778 +0.00,506.13,7.227 +41.51,-506.13,0.000 +41.51,-480.83,0.000 +41.51,-455.52,0.000 +41.51,-430.21,0.000 +41.51,-404.91,0.000 +41.51,-379.60,0.000 +41.51,-354.29,-0.171 +41.51,-328.99,-0.286 +41.51,-303.68,-0.353 +41.51,-278.37,-0.393 +41.51,-253.07,-0.414 +41.51,-227.76,-0.419 +41.51,-202.45,-0.410 +41.51,-177.15,-0.390 +41.51,-151.84,-0.359 +41.51,-126.53,-0.319 +41.51,-101.23,-0.269 +41.51,-75.92,-0.211 +41.51,-50.61,-0.146 +41.51,-25.31,-0.072 +41.51,-5.06,-0.007 +41.51,5.06,0.033 +41.51,25.31,0.143 +41.51,50.61,0.285 +41.51,75.92,0.432 +41.51,101.23,0.584 +41.51,126.53,0.742 +41.51,151.84,0.904 +41.51,177.15,1.071 +41.51,202.45,1.244 +41.51,227.76,1.420 +41.51,253.07,1.602 +41.51,278.37,1.788 +41.51,303.68,1.978 +41.51,328.99,2.173 +41.51,354.29,2.373 +41.51,379.60,2.577 +41.51,404.91,2.785 +41.51,430.21,2.997 +41.51,455.52,3.214 +41.51,480.83,3.434 +41.51,506.13,3.659 +415.08,-506.13,-19.663 +415.08,-480.83,-18.739 +415.08,-455.52,-17.808 +415.08,-430.21,-16.871 +415.08,-404.91,-15.926 +415.08,-379.60,-14.976 +415.08,-354.29,-14.018 +415.08,-328.99,-13.054 +415.08,-303.68,-12.083 +415.08,-278.37,-11.106 +415.08,-253.07,-10.122 +415.08,-227.76,-9.131 +415.08,-202.45,-8.134 +415.08,-177.15,-7.131 +415.08,-151.84,-6.121 +415.08,-126.53,-5.104 +415.08,-101.23,-4.081 +415.08,-75.92,-3.052 +415.08,-50.61,-2.016 +415.08,-25.31,-0.973 +415.08,-5.06,-0.125 +415.08,5.06,0.299 +415.08,25.31,1.226 +415.08,50.61,2.386 +415.08,75.92,3.552 +415.08,101.23,4.725 +415.08,126.53,5.904 +415.08,151.84,7.089 +415.08,177.15,8.280 +415.08,202.45,9.478 +415.08,227.76,10.682 +415.08,253.07,11.892 +415.08,278.37,13.109 +415.08,303.68,14.332 +415.08,328.99,15.561 +415.08,354.29,16.796 +415.08,379.60,18.038 +415.08,404.91,19.286 +415.08,430.21,20.540 +415.08,455.52,21.801 +415.08,480.83,23.067 +415.08,506.13,24.340 +830.15,-506.13,-40.807 +830.15,-480.83,-38.832 +830.15,-455.52,-36.848 +830.15,-430.21,-34.857 +830.15,-404.91,-32.858 +830.15,-379.60,-30.852 +830.15,-354.29,-28.837 +830.15,-328.99,-26.815 +830.15,-303.68,-24.785 +830.15,-278.37,-22.748 +830.15,-253.07,-20.702 +830.15,-227.76,-18.649 +830.15,-202.45,-16.589 +830.15,-177.15,-14.521 +830.15,-151.84,-12.445 +830.15,-126.53,-10.361 +830.15,-101.23,-8.270 +830.15,-75.92,-6.171 +830.15,-50.61,-4.064 +830.15,-25.31,-1.948 +830.15,-5.06,-0.223 +830.15,5.06,0.612 +830.15,25.31,2.451 +830.15,50.61,4.741 +830.15,75.92,7.039 +830.15,101.23,9.343 +830.15,126.53,11.655 +830.15,151.84,13.975 +830.15,177.15,16.302 +830.15,202.45,18.637 +830.15,227.76,20.980 +830.15,253.07,23.331 +830.15,278.37,25.689 +830.15,303.68,28.054 +830.15,328.99,30.428 +830.15,354.29,32.809 +830.15,379.60,35.197 +830.15,404.91,37.594 +830.15,430.21,39.997 +830.15,455.52,42.409 +830.15,480.83,44.828 +830.15,506.13,47.254 +1245.23,-506.13,-61.749 +1245.23,-480.83,-58.739 +1245.23,-455.52,-55.719 +1245.23,-430.21,-52.689 +1245.23,-404.91,-49.650 +1245.23,-379.60,-46.601 +1245.23,-354.29,-43.542 +1245.23,-328.99,-40.473 +1245.23,-303.68,-37.395 +1245.23,-278.37,-34.307 +1245.23,-253.07,-31.209 +1245.23,-227.76,-28.102 +1245.23,-202.45,-24.985 +1245.23,-177.15,-21.858 +1245.23,-151.84,-18.722 +1245.23,-126.53,-15.576 +1245.23,-101.23,-12.420 +1245.23,-75.92,-9.255 +1245.23,-50.61,-6.079 +1245.23,-25.31,-2.889 +1245.23,-5.06,-0.267 +1245.23,5.06,0.953 +1245.23,25.31,3.707 +1245.23,50.61,7.130 +1245.23,75.92,10.560 +1245.23,101.23,14.000 +1245.23,126.53,17.449 +1245.23,151.84,20.907 +1245.23,177.15,24.376 +1245.23,202.45,27.854 +1245.23,227.76,31.342 +1245.23,253.07,34.839 +1245.23,278.37,38.347 +1245.23,303.68,41.864 +1245.23,328.99,45.391 +1245.23,354.29,48.927 +1245.23,379.60,52.473 +1245.23,404.91,56.029 +1245.23,430.21,59.595 +1245.23,455.52,63.170 +1245.23,480.83,66.755 +1245.23,506.13,70.350 +1660.30,-506.13,-82.488 +1660.30,-480.83,-78.459 +1660.30,-455.52,-74.418 +1660.30,-430.21,-70.364 +1660.30,-404.91,-66.298 +1660.30,-379.60,-62.218 +1660.30,-354.29,-58.127 +1660.30,-328.99,-54.023 +1660.30,-303.68,-49.906 +1660.30,-278.37,-45.777 +1660.30,-253.07,-41.635 +1660.30,-227.76,-37.481 +1660.30,-202.45,-33.314 +1660.30,-177.15,-29.135 +1660.30,-151.84,-24.943 +1660.30,-126.53,-20.739 +1660.30,-101.23,-16.522 +1660.30,-75.92,-12.292 +1660.30,-50.61,-8.049 +1660.30,-25.31,-3.786 +1660.30,-5.06,-0.215 +1660.30,5.06,1.326 +1660.30,25.31,5.003 +1660.30,50.61,9.561 +1660.30,75.92,14.127 +1660.30,101.23,18.704 +1660.30,126.53,23.294 +1660.30,151.84,27.896 +1660.30,177.15,32.510 +1660.30,202.45,37.138 +1660.30,227.76,41.777 +1660.30,253.07,46.430 +1660.30,278.37,51.095 +1660.30,303.68,55.772 +1660.30,328.99,60.462 +1660.30,354.29,65.165 +1660.30,379.60,69.880 +1660.30,404.91,74.608 +1660.30,430.21,79.348 +1660.30,455.52,84.101 +1660.30,480.83,88.866 +1660.30,506.13,93.644 +2075.38,-506.13,-103.017 +2075.38,-480.83,-97.985 +2075.38,-455.52,-92.937 +2075.38,-430.21,-87.873 +2075.38,-404.91,-82.793 +2075.38,-379.60,-77.696 +2075.38,-354.29,-72.583 +2075.38,-328.99,-67.454 +2075.38,-303.68,-62.309 +2075.38,-278.37,-57.148 +2075.38,-253.07,-51.970 +2075.38,-227.76,-46.777 +2075.38,-202.45,-41.567 +2075.38,-177.15,-36.341 +2075.38,-151.84,-31.099 +2075.38,-126.53,-25.841 +2075.38,-101.23,-20.566 +2075.38,-75.92,-15.275 +2075.38,-50.61,-9.964 +2075.38,-25.31,-4.627 +2075.38,-5.06,0.000 +2075.38,5.06,1.738 +2075.38,25.31,6.348 +2075.38,50.61,12.044 +2075.38,75.92,17.748 +2075.38,101.23,23.466 +2075.38,126.53,29.200 +2075.38,151.84,34.950 +2075.38,177.15,40.716 +2075.38,202.45,46.498 +2075.38,227.76,52.296 +2075.38,253.07,58.111 +2075.38,278.37,63.942 +2075.38,303.68,69.789 +2075.38,328.99,75.652 +2075.38,354.29,81.532 +2075.38,379.60,87.427 +2075.38,404.91,93.339 +2075.38,430.21,99.267 +2075.38,455.52,105.211 +2075.38,480.83,111.171 +2075.38,506.13,117.148 +2490.46,-506.13,-123.326 +2490.46,-480.83,-117.307 +2490.46,-455.52,-111.267 +2490.46,-430.21,-105.207 +2490.46,-404.91,-99.126 +2490.46,-379.60,-93.024 +2490.46,-354.29,-86.901 +2490.46,-328.99,-80.758 +2490.46,-303.68,-74.595 +2490.46,-278.37,-68.410 +2490.46,-253.07,-62.205 +2490.46,-227.76,-55.980 +2490.46,-202.45,-49.734 +2490.46,-177.15,-43.467 +2490.46,-151.84,-37.180 +2490.46,-126.53,-30.872 +2490.46,-101.23,-24.543 +2490.46,-75.92,-18.191 +2490.46,-50.61,-11.816 +2490.46,-25.31,-5.399 +2490.46,-5.06,0.000 +2490.46,5.06,2.194 +2490.46,25.31,7.750 +2490.46,50.61,14.587 +2490.46,75.92,21.433 +2490.46,101.23,28.295 +2490.46,126.53,35.177 +2490.46,151.84,42.079 +2490.46,177.15,49.002 +2490.46,202.45,55.945 +2490.46,227.76,62.909 +2490.46,253.07,69.893 +2490.46,278.37,76.898 +2490.46,303.68,83.924 +2490.46,328.99,90.970 +2490.46,354.29,98.037 +2490.46,379.60,105.125 +2490.46,404.91,112.233 +2490.46,430.21,119.361 +2490.46,455.52,126.510 +2490.46,480.83,133.680 +2490.46,506.13,140.870 +2905.53,-506.13,-143.404 +2905.53,-480.83,-136.414 +2905.53,-455.52,-129.397 +2905.53,-430.21,-122.355 +2905.53,-404.91,-115.286 +2905.53,-379.60,-108.192 +2905.53,-354.29,-101.071 +2905.53,-328.99,-93.925 +2905.53,-303.68,-86.753 +2905.53,-278.37,-79.554 +2905.53,-253.07,-72.330 +2905.53,-227.76,-65.081 +2905.53,-202.45,-57.805 +2905.53,-177.15,-50.503 +2905.53,-151.84,-43.176 +2905.53,-126.53,-35.822 +2905.53,-101.23,-28.441 +2905.53,-75.92,-21.033 +2905.53,-50.61,-13.591 +2905.53,-25.31,-6.091 +2905.53,-5.06,0.000 +2905.53,5.06,2.697 +2905.53,25.31,9.216 +2905.53,50.61,17.200 +2905.53,75.92,25.189 +2905.53,101.23,33.199 +2905.53,126.53,41.234 +2905.53,151.84,49.293 +2905.53,177.15,57.377 +2905.53,202.45,65.487 +2905.53,227.76,73.623 +2905.53,253.07,81.785 +2905.53,278.37,89.973 +2905.53,303.68,98.186 +2905.53,328.99,106.425 +2905.53,354.29,114.690 +2905.53,379.60,122.981 +2905.53,404.91,131.297 +2905.53,430.21,139.639 +2905.53,455.52,148.007 +2905.53,480.83,156.401 +2905.53,506.13,164.820 +3320.61,-506.13,-163.242 +3320.61,-480.83,-155.296 +3320.61,-455.52,-147.317 +3320.61,-430.21,-139.307 +3320.61,-404.91,-131.264 +3320.61,-379.60,-123.189 +3320.61,-354.29,-115.083 +3320.61,-328.99,-106.944 +3320.61,-303.68,-98.773 +3320.61,-278.37,-90.570 +3320.61,-253.07,-82.335 +3320.61,-227.76,-74.069 +3320.61,-202.45,-65.770 +3320.61,-177.15,-57.439 +3320.61,-151.84,-49.077 +3320.61,-126.53,-40.681 +3320.61,-101.23,-32.252 +3320.61,-75.92,-23.787 +3320.61,-50.61,-15.280 +3320.61,-25.31,-6.687 +3320.61,-5.06,0.000 +3320.61,5.06,3.253 +3320.61,25.31,10.753 +3320.61,50.61,19.889 +3320.61,75.92,29.027 +3320.61,101.23,38.188 +3320.61,126.53,47.378 +3320.61,151.84,56.599 +3320.61,177.15,65.851 +3320.61,202.45,75.134 +3320.61,227.76,84.449 +3320.61,253.07,93.796 +3320.61,278.37,103.174 +3320.61,303.68,112.584 +3320.61,328.99,122.026 +3320.61,354.29,131.500 +3320.61,379.60,141.005 +3320.61,404.91,150.542 +3320.61,430.21,160.110 +3320.61,455.52,169.711 +3320.61,480.83,179.342 +3320.61,506.13,189.005 +3735.68,-506.13,-182.827 +3735.68,-480.83,-173.942 +3735.68,-455.52,-165.017 +3735.68,-430.21,-156.052 +3735.68,-404.91,-147.049 +3735.68,-379.60,-138.007 +3735.68,-354.29,-128.925 +3735.68,-328.99,-119.805 +3735.68,-303.68,-110.645 +3735.68,-278.37,-101.447 +3735.68,-253.07,-92.210 +3735.68,-227.76,-82.934 +3735.68,-202.45,-73.619 +3735.68,-177.15,-64.265 +3735.68,-151.84,-54.872 +3735.68,-126.53,-45.438 +3735.68,-101.23,-35.964 +3735.68,-75.92,-26.444 +3735.68,-50.61,-16.869 +3735.68,-25.31,-7.171 +3735.68,-5.06,0.000 +3735.68,5.06,3.865 +3735.68,25.31,12.369 +3735.68,50.61,22.664 +3735.68,75.92,32.954 +3735.68,101.23,43.270 +3735.68,126.53,53.621 +3735.68,151.84,64.007 +3735.68,177.15,74.432 +3735.68,202.45,84.894 +3735.68,227.76,95.395 +3735.68,253.07,105.934 +3735.68,278.37,116.512 +3735.68,303.68,127.128 +3735.68,328.99,137.782 +3735.68,354.29,148.475 +3735.68,379.60,159.206 +3735.68,404.91,169.975 +3735.68,430.21,180.783 +3735.68,455.52,191.629 +3735.68,480.83,202.513 +3735.68,506.13,213.435 +4150.76,-506.13,-202.150 +4150.76,-480.83,-192.341 +4150.76,-455.52,-182.484 +4150.76,-430.21,-172.581 +4150.76,-404.91,-162.630 +4150.76,-379.60,-152.633 +4150.76,-354.29,-142.588 +4150.76,-328.99,-132.497 +4150.76,-303.68,-122.359 +4150.76,-278.37,-112.175 +4150.76,-253.07,-101.944 +4150.76,-227.76,-91.666 +4150.76,-202.45,-81.342 +4150.76,-177.15,-70.970 +4150.76,-151.84,-60.551 +4150.76,-126.53,-50.084 +4150.76,-101.23,-39.566 +4150.76,-75.92,-28.992 +4150.76,-50.61,-18.347 +4150.76,-25.31,-7.524 +4150.76,-5.06,0.000 +4150.76,5.06,4.534 +4150.76,25.31,14.070 +4150.76,50.61,25.532 +4150.76,75.92,36.978 +4150.76,101.23,48.454 +4150.76,126.53,59.969 +4150.76,151.84,71.527 +4150.76,177.15,83.129 +4150.76,202.45,94.777 +4150.76,227.76,106.470 +4150.76,253.07,118.209 +4150.76,278.37,129.994 +4150.76,303.68,141.825 +4150.76,328.99,153.701 +4150.76,354.29,165.624 +4150.76,379.60,177.592 +4150.76,404.91,189.606 +4150.76,430.21,201.665 +4150.76,455.52,213.771 +4150.76,480.83,225.921 +4150.76,506.13,238.118 +4565.84,-506.13,-221.198 +4565.84,-480.83,-210.482 +4565.84,-455.52,-199.709 +4565.84,-430.21,-188.880 +4565.84,-404.91,-177.996 +4565.84,-379.60,-167.057 +4565.84,-354.29,-156.061 +4565.84,-328.99,-145.011 +4565.84,-303.68,-133.905 +4565.84,-278.37,-122.743 +4565.84,-253.07,-111.527 +4565.84,-227.76,-100.255 +4565.84,-202.45,-88.927 +4565.84,-177.15,-77.544 +4565.84,-151.84,-66.104 +4565.84,-126.53,-54.606 +4565.84,-101.23,-43.047 +4565.84,-75.92,-31.420 +4565.84,-50.61,-19.699 +4565.84,-25.31,-7.722 +4565.84,-5.06,0.000 +4565.84,5.06,5.264 +4565.84,25.31,15.861 +4565.84,50.61,28.499 +4565.84,75.92,41.107 +4565.84,101.23,53.747 +4565.84,126.53,66.431 +4565.84,151.84,79.165 +4565.84,177.15,91.951 +4565.84,202.45,104.790 +4565.84,227.76,117.683 +4565.84,253.07,130.629 +4565.84,278.37,143.630 +4565.84,303.68,156.684 +4565.84,328.99,169.793 +4565.84,354.29,182.955 +4565.84,379.60,196.172 +4565.84,404.91,209.442 +4565.84,430.21,222.766 +4565.84,455.52,236.144 +4565.84,480.83,249.576 +4565.84,506.13,263.061 +4980.91,-506.13,-239.961 +4980.91,-480.83,-228.353 +4980.91,-455.52,-216.680 +4980.91,-430.21,-204.941 +4980.91,-404.91,-193.137 +4980.91,-379.60,-181.268 +4980.91,-354.29,-169.333 +4980.91,-328.99,-157.334 +4980.91,-303.68,-145.270 +4980.91,-278.37,-133.141 +4980.91,-253.07,-120.948 +4980.91,-227.76,-108.689 +4980.91,-202.45,-96.365 +4980.91,-177.15,-83.975 +4980.91,-151.84,-71.519 +4980.91,-126.53,-58.993 +4980.91,-101.23,-46.395 +4980.91,-75.92,-33.713 +4980.91,-50.61,-20.911 +4980.91,-25.31,-7.737 +4980.91,-5.06,0.000 +4980.91,5.06,6.057 +4980.91,25.31,17.748 +4980.91,50.61,31.574 +4980.91,75.92,45.350 +4980.91,101.23,59.158 +4980.91,126.53,73.016 +4980.91,151.84,86.931 +4980.91,177.15,100.906 +4980.91,202.45,114.943 +4980.91,227.76,129.042 +4980.91,253.07,143.203 +4980.91,278.37,157.427 +4980.91,303.68,171.715 +4980.91,328.99,186.065 +4980.91,354.29,200.478 +4980.91,379.60,214.954 +4980.91,404.91,229.492 +4980.91,430.21,244.094 +4980.91,455.52,258.758 +4980.91,480.83,273.484 +4980.91,506.13,288.273 +5395.99,-506.13,-258.426 +5395.99,-480.83,-245.943 +5395.99,-455.52,-233.385 +5395.99,-430.21,-220.751 +5395.99,-404.91,-208.041 +5395.99,-379.60,-195.255 +5395.99,-354.29,-182.394 +5395.99,-328.99,-169.457 +5395.99,-303.68,-156.445 +5395.99,-278.37,-143.358 +5395.99,-253.07,-130.196 +5395.99,-227.76,-116.958 +5395.99,-202.45,-103.644 +5395.99,-177.15,-90.253 +5395.99,-151.84,-76.785 +5395.99,-126.53,-63.235 +5395.99,-101.23,-49.599 +5395.99,-75.92,-35.860 +5395.99,-50.61,-21.967 +5395.99,-25.31,-7.528 +5395.99,-5.06,0.000 +5395.99,5.06,6.915 +5395.99,25.31,19.737 +5395.99,50.61,34.763 +5395.99,75.92,49.713 +5395.99,101.23,64.694 +5395.99,126.53,79.731 +5395.99,151.84,94.833 +5395.99,177.15,110.003 +5395.99,202.45,125.243 +5395.99,227.76,140.555 +5395.99,253.07,155.939 +5395.99,278.37,171.396 +5395.99,303.68,186.924 +5395.99,328.99,202.526 +5395.99,354.29,218.200 +5395.99,379.60,233.946 +5395.99,404.91,249.765 +5395.99,430.21,265.656 +5395.99,455.52,281.619 +5395.99,480.83,297.654 +5395.99,506.13,313.761 +5811.07,-506.13,-276.581 +5811.07,-480.83,-263.241 +5811.07,-455.52,-249.813 +5811.07,-430.21,-236.298 +5811.07,-404.91,-222.696 +5811.07,-379.60,-209.007 +5811.07,-354.29,-195.231 +5811.07,-328.99,-181.368 +5811.07,-303.68,-167.418 +5811.07,-278.37,-153.382 +5811.07,-253.07,-139.260 +5811.07,-227.76,-125.050 +5811.07,-202.45,-110.753 +5811.07,-177.15,-96.367 +5811.07,-151.84,-81.890 +5811.07,-126.53,-67.319 +5811.07,-101.23,-52.645 +5811.07,-75.92,-37.847 +5811.07,-50.61,-22.849 +5811.07,-25.31,-7.041 +5811.07,-5.06,0.000 +5811.07,5.06,7.840 +5811.07,25.31,21.831 +5811.07,50.61,38.071 +5811.07,75.92,54.204 +5811.07,101.23,70.364 +5811.07,126.53,86.585 +5811.07,151.84,102.878 +5811.07,177.15,119.249 +5811.07,202.45,135.700 +5811.07,227.76,152.232 +5811.07,253.07,168.846 +5811.07,278.37,185.542 +5811.07,303.68,202.322 +5811.07,328.99,219.184 +5811.07,354.29,236.129 +5811.07,379.60,253.157 +5811.07,404.91,270.267 +5811.07,430.21,287.461 +5811.07,455.52,304.736 +5811.07,480.83,322.094 +5811.07,506.13,339.534 +6226.14,-506.13,-294.415 +6226.14,-480.83,-280.233 +6226.14,-455.52,-265.952 +6226.14,-430.21,-251.571 +6226.14,-404.91,-237.091 +6226.14,-379.60,-222.511 +6226.14,-354.29,-207.833 +6226.14,-328.99,-193.055 +6226.14,-303.68,-178.178 +6226.14,-278.37,-163.203 +6226.14,-253.07,-148.128 +6226.14,-227.76,-132.954 +6226.14,-202.45,-117.680 +6226.14,-177.15,-102.303 +6226.14,-151.84,-86.823 +6226.14,-126.53,-71.232 +6226.14,-101.23,-55.520 +6226.14,-75.92,-39.657 +6226.14,-50.61,-23.536 +6226.14,-25.31,-6.184 +6226.14,-5.06,0.000 +6226.14,5.06,8.832 +6226.14,25.31,24.036 +6226.14,50.61,41.506 +6226.14,75.92,58.829 +6226.14,101.23,76.175 +6226.14,126.53,93.586 +6226.14,151.84,111.076 +6226.14,177.15,128.653 +6226.14,202.45,146.320 +6226.14,227.76,164.079 +6226.14,253.07,181.931 +6226.14,278.37,199.876 +6226.14,303.68,217.915 +6226.14,328.99,236.048 +6226.14,354.29,254.274 +6226.14,379.60,272.594 +6226.14,404.91,291.008 +6226.14,430.21,309.516 +6226.14,455.52,328.117 +6226.14,480.83,346.811 +6226.14,506.13,365.599 +6641.22,-506.13,-311.914 +6641.22,-480.83,-296.909 +6641.22,-455.52,-281.790 +6641.22,-430.21,-266.559 +6641.22,-404.91,-251.214 +6641.22,-379.60,-235.758 +6641.22,-354.29,-220.188 +6641.22,-328.99,-204.507 +6641.22,-303.68,-188.714 +6641.22,-278.37,-172.808 +6641.22,-253.07,-156.790 +6641.22,-227.76,-140.659 +6641.22,-202.45,-124.413 +6641.22,-177.15,-108.052 +6641.22,-151.84,-91.570 +6641.22,-126.53,-74.962 +6641.22,-101.23,-58.211 +6641.22,-75.92,-41.276 +6641.22,-50.61,-24.007 +6641.22,-25.31,-4.773 +6641.22,-5.06,0.000 +6641.22,5.06,9.895 +6641.22,25.31,26.355 +6641.22,50.61,45.073 +6641.22,75.92,63.595 +6641.22,101.23,82.133 +6641.22,126.53,100.739 +6641.22,151.84,119.433 +6641.22,177.15,138.223 +6641.22,202.45,157.113 +6641.22,227.76,176.106 +6641.22,253.07,195.203 +6641.22,278.37,214.405 +6641.22,303.68,233.712 +6641.22,328.99,253.125 +6641.22,354.29,272.643 +6641.22,379.60,292.266 +6641.22,404.91,311.996 +6641.22,430.21,331.830 +6641.22,455.52,351.769 +6641.22,480.83,371.814 +6641.22,506.13,391.963 +7056.29,-506.13,-329.067 +7056.29,-480.83,-313.255 +7056.29,-455.52,-297.315 +7056.29,-430.21,-281.248 +7056.29,-404.91,-265.054 +7056.29,-379.60,-248.733 +7056.29,-354.29,-232.286 +7056.29,-328.99,-215.712 +7056.29,-303.68,-199.012 +7056.29,-278.37,-182.186 +7056.29,-253.07,-165.232 +7056.29,-227.76,-148.151 +7056.29,-202.45,-130.941 +7056.29,-177.15,-113.599 +7056.29,-151.84,-96.120 +7056.29,-126.53,-78.495 +7056.29,-101.23,-60.702 +7056.29,-75.92,-42.686 +7056.29,-50.61,-24.233 +7056.29,-25.31,-2.182 +7056.29,-5.06,0.000 +7056.29,5.06,11.028 +7056.29,25.31,28.793 +7056.29,50.61,48.778 +7056.29,75.92,68.509 +7056.29,101.23,88.246 +7056.29,126.53,108.054 +7056.29,151.84,127.957 +7056.29,177.15,147.965 +7056.29,202.45,168.085 +7056.29,227.76,188.319 +7056.29,253.07,208.669 +7056.29,278.37,229.136 +7056.29,303.68,249.721 +7056.29,328.99,270.423 +7056.29,354.29,291.243 +7056.29,379.60,312.181 +7056.29,404.91,333.236 +7056.29,430.21,354.410 +7056.29,455.52,375.701 +7056.29,480.83,397.109 +7056.29,506.13,418.634 +7471.37,-506.13,-345.859 +7471.37,-480.83,-329.258 +7471.37,-455.52,-312.513 +7471.37,-430.21,-295.626 +7471.37,-404.91,-278.596 +7471.37,-379.60,-261.425 +7471.37,-354.29,-244.112 +7471.37,-328.99,-226.658 +7471.37,-303.68,-209.062 +7471.37,-278.37,-191.324 +7471.37,-253.07,-173.443 +7471.37,-227.76,-155.420 +7471.37,-202.45,-137.250 +7471.37,-177.15,-118.932 +7471.37,-151.84,-100.458 +7471.37,-126.53,-81.816 +7471.37,-101.23,-62.978 +7471.37,-75.92,-43.867 +7471.37,-50.61,-24.185 +7471.37,-25.31,0.000 +7471.37,-5.06,0.000 +7471.37,5.06,12.234 +7471.37,25.31,31.353 +7471.37,50.61,52.625 +7471.37,75.92,73.577 +7471.37,101.23,94.521 +7471.37,126.53,115.537 +7471.37,151.84,136.655 +7471.37,177.15,157.889 +7471.37,202.45,179.245 +7471.37,227.76,200.727 +7471.37,253.07,222.338 +7471.37,278.37,244.078 +7471.37,303.68,265.949 +7471.37,328.99,287.950 +7471.37,354.29,310.082 +7471.37,379.60,332.345 +7471.37,404.91,354.739 +7471.37,430.21,377.263 +7471.37,455.52,399.918 +7471.37,480.83,422.704 +7471.37,506.13,445.619 +7886.45,-506.13,-362.279 +7886.45,-480.83,-344.905 +7886.45,-455.52,-327.372 +7886.45,-430.21,-309.680 +7886.45,-404.91,-291.830 +7886.45,-379.60,-273.822 +7886.45,-354.29,-255.655 +7886.45,-328.99,-237.331 +7886.45,-303.68,-218.850 +7886.45,-278.37,-200.210 +7886.45,-253.07,-181.411 +7886.45,-227.76,-162.451 +7886.45,-202.45,-143.329 +7886.45,-177.15,-124.038 +7886.45,-151.84,-104.572 +7886.45,-126.53,-84.912 +7886.45,-101.23,-65.021 +7886.45,-75.92,-44.798 +7886.45,-50.61,-23.822 +7886.45,-25.31,0.000 +7886.45,-5.06,0.000 +7886.45,5.06,13.513 +7886.45,25.31,34.037 +7886.45,50.61,56.620 +7886.45,75.92,78.804 +7886.45,101.23,100.963 +7886.45,126.53,123.194 +7886.45,151.84,145.535 +7886.45,177.15,168.000 +7886.45,202.45,190.599 +7886.45,227.76,213.337 +7886.45,253.07,236.216 +7886.45,278.37,259.238 +7886.45,303.68,282.403 +7886.45,328.99,305.713 +7886.45,354.29,329.168 +7886.45,379.60,352.767 +7886.45,404.91,376.510 +7886.45,430.21,400.398 +7886.45,455.52,424.430 +7886.45,480.83,448.606 +7886.45,506.13,472.925 +8301.52,-506.13,-378.312 +8301.52,-480.83,-360.184 +8301.52,-455.52,-341.879 +8301.52,-430.21,-323.398 +8301.52,-404.91,-304.741 +8301.52,-379.60,-285.909 +8301.52,-354.29,-266.903 +8301.52,-328.99,-247.721 +8301.52,-303.68,-228.363 +8301.52,-278.37,-208.831 +8301.52,-253.07,-189.121 +8301.52,-227.76,-169.233 +8301.52,-202.45,-149.162 +8301.52,-177.15,-128.903 +8301.52,-151.84,-108.445 +8301.52,-126.53,-87.765 +8301.52,-101.23,-66.814 +8301.52,-75.92,-45.456 +8301.52,-50.61,-23.095 +8301.52,-25.31,0.000 +8301.52,-5.06,0.000 +8301.52,5.06,14.866 +8301.52,25.31,36.850 +8301.52,50.61,60.767 +8301.52,75.92,84.196 +8301.52,101.23,107.579 +8301.52,126.53,131.033 +8301.52,151.84,154.602 +8301.52,177.15,178.307 +8301.52,202.45,202.156 +8301.52,227.76,226.157 +8301.52,253.07,250.312 +8301.52,278.37,274.623 +8301.52,303.68,299.093 +8301.52,328.99,323.721 +8301.52,354.29,348.508 +8301.52,379.60,373.453 +8301.52,404.91,398.558 +8301.52,430.21,423.821 +8301.52,455.52,449.243 +8301.52,480.83,474.823 +8301.52,506.13,500.560 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..f66840885b3e986ceaa458b4dbc106aa3d5d8df4 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_drag.vemd @@ -0,0 +1,24 @@ +n [rpm] , T_drag [Nm] +0, -1.19 +41.5076091583663, -1.26 +415.076091583663, -1.83 +830.152183167326, -2.47 +1245.22827475099, -3.11 +1660.30436633465, -3.75 +2075.38045791832, -4.39 +2490.45654950198, -5.03 +2905.53264108564, -5.66 +3320.6087326693, -6.3 +3735.68482425297, -6.94 +4150.76091583663, -7.58 +4565.83700742029, -8.22 +4980.91309900396, -8.86 +5395.98919058762, -9.5 +5811.06528217128, -10.13 +6226.14137375495, -10.77 +6641.21746533861, -11.41 +7056.29355692227, -12.05 +7471.36964850593, -12.69 +7886.4457400896, -13.33 +8301.52183167326, -13.97 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..2fa9afa5f8974658078190911f56420e8e532822 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/EM_fld.vemp @@ -0,0 +1,25 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 506.13, -506.13 +42, 506.13, -506.13 +415, 506.13, -506.13 +830, 506.13, -506.13 +1245, 506.13, -506.13 +1660, 506.13, -506.13 +2075, 506.13, -506.13 +2490, 421.78, -421.78 +2906, 361.52, -361.52 +3321, 316.33, -316.33 +3736, 281.19, -281.19 +4151, 253.07, -253.07 +4566, 230.06, -230.06 +4981, 210.89, -210.89 +5396, 194.67, -194.67 +5811, 180.76, -180.76 +6226, 168.71, -168.71 +6641, 158.17, -158.17 +7056, 148.86, -148.86 +7471, 140.59, -140.59 +7886, 133.19, -133.19 +8302, 126.53, -126.53 + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..7794a9c0decb5c13a38b3b3ec68584dd7fad4d0c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_Map.vemo @@ -0,0 +1,925 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-782.21,0.000 +0.00,-743.10,0.000 +0.00,-703.99,0.000 +0.00,-664.88,0.000 +0.00,-625.77,0.000 +0.00,-586.66,0.000 +0.00,-547.55,-0.065 +0.00,-508.44,-0.329 +0.00,-469.33,-0.491 +0.00,-430.21,-0.597 +0.00,-391.10,-0.661 +0.00,-351.99,-0.692 +0.00,-312.88,-0.695 +0.00,-273.77,-0.674 +0.00,-234.66,-0.630 +0.00,-195.55,-0.566 +0.00,-156.44,-0.483 +0.00,-117.33,-0.383 +0.00,-78.22,-0.266 +0.00,-39.11,-0.133 +0.00,-7.82,-0.012 +0.00,7.82,0.063 +0.00,39.11,0.276 +0.00,78.22,0.552 +0.00,117.33,0.839 +0.00,156.44,1.136 +0.00,195.55,1.444 +0.00,234.66,1.763 +0.00,273.77,2.092 +0.00,312.88,2.430 +0.00,351.99,2.779 +0.00,391.10,3.137 +0.00,430.21,3.505 +0.00,469.33,3.882 +0.00,508.44,4.269 +0.00,547.55,4.665 +0.00,586.66,5.070 +0.00,625.77,5.483 +0.00,664.88,5.906 +0.00,703.99,6.338 +0.00,743.10,6.778 +0.00,782.21,7.227 +41.51,-782.21,0.000 +41.51,-743.10,0.000 +41.51,-703.99,0.000 +41.51,-664.88,0.000 +41.51,-625.77,0.000 +41.51,-586.66,0.000 +41.51,-547.55,-0.264 +41.51,-508.44,-0.442 +41.51,-469.33,-0.546 +41.51,-430.21,-0.608 +41.51,-391.10,-0.639 +41.51,-351.99,-0.647 +41.51,-312.88,-0.634 +41.51,-273.77,-0.602 +41.51,-234.66,-0.555 +41.51,-195.55,-0.492 +41.51,-156.44,-0.416 +41.51,-117.33,-0.327 +41.51,-78.22,-0.225 +41.51,-39.11,-0.112 +41.51,-7.82,-0.011 +41.51,7.82,0.050 +41.51,39.11,0.221 +41.51,78.22,0.440 +41.51,117.33,0.668 +41.51,156.44,0.903 +41.51,195.55,1.146 +41.51,234.66,1.397 +41.51,273.77,1.656 +41.51,312.88,1.922 +41.51,351.99,2.195 +41.51,391.10,2.475 +41.51,430.21,2.763 +41.51,469.33,3.058 +41.51,508.44,3.359 +41.51,547.55,3.667 +41.51,586.66,3.982 +41.51,625.77,4.304 +41.51,664.88,4.632 +41.51,703.99,4.967 +41.51,743.10,5.308 +41.51,782.21,5.655 +415.08,-782.21,-30.389 +415.08,-743.10,-28.961 +415.08,-703.99,-27.522 +415.08,-664.88,-26.073 +415.08,-625.77,-24.614 +415.08,-586.66,-23.144 +415.08,-547.55,-21.664 +415.08,-508.44,-20.174 +415.08,-469.33,-18.674 +415.08,-430.21,-17.163 +415.08,-391.10,-15.643 +415.08,-351.99,-14.112 +415.08,-312.88,-12.571 +415.08,-273.77,-11.020 +415.08,-234.66,-9.459 +415.08,-195.55,-7.888 +415.08,-156.44,-6.308 +415.08,-117.33,-4.717 +415.08,-78.22,-3.116 +415.08,-39.11,-1.504 +415.08,-7.82,-0.192 +415.08,7.82,0.461 +415.08,39.11,1.895 +415.08,78.22,3.688 +415.08,117.33,5.490 +415.08,156.44,7.302 +415.08,195.55,9.124 +415.08,234.66,10.955 +415.08,273.77,12.796 +415.08,312.88,14.647 +415.08,351.99,16.508 +415.08,391.10,18.379 +415.08,430.21,20.259 +415.08,469.33,22.149 +415.08,508.44,24.049 +415.08,547.55,25.958 +415.08,586.66,27.877 +415.08,625.77,29.806 +415.08,664.88,31.744 +415.08,703.99,33.692 +415.08,743.10,35.649 +415.08,782.21,37.616 +830.15,-782.21,-63.066 +830.15,-743.10,-60.013 +830.15,-703.99,-56.948 +830.15,-664.88,-53.870 +830.15,-625.77,-50.781 +830.15,-586.66,-47.680 +830.15,-547.55,-44.566 +830.15,-508.44,-41.441 +830.15,-469.33,-38.304 +830.15,-430.21,-35.155 +830.15,-391.10,-31.995 +830.15,-351.99,-28.822 +830.15,-312.88,-25.637 +830.15,-273.77,-22.441 +830.15,-234.66,-19.233 +830.15,-195.55,-16.013 +830.15,-156.44,-12.781 +830.15,-117.33,-9.537 +830.15,-78.22,-6.281 +830.15,-39.11,-3.011 +830.15,-7.82,-0.344 +830.15,7.82,0.946 +830.15,39.11,3.788 +830.15,78.22,7.328 +830.15,117.33,10.878 +830.15,156.44,14.439 +830.15,195.55,18.012 +830.15,234.66,21.598 +830.15,273.77,25.194 +830.15,312.88,28.803 +830.15,351.99,32.424 +830.15,391.10,36.056 +830.15,430.21,39.701 +830.15,469.33,43.357 +830.15,508.44,47.025 +830.15,547.55,50.705 +830.15,586.66,54.396 +830.15,625.77,58.099 +830.15,664.88,61.814 +830.15,703.99,65.541 +830.15,743.10,69.279 +830.15,782.21,73.029 +1245.23,-782.21,-95.430 +1245.23,-743.10,-90.778 +1245.23,-703.99,-86.111 +1245.23,-664.88,-81.429 +1245.23,-625.77,-76.731 +1245.23,-586.66,-72.019 +1245.23,-547.55,-67.292 +1245.23,-508.44,-62.550 +1245.23,-469.33,-57.792 +1245.23,-430.21,-53.020 +1245.23,-391.10,-48.233 +1245.23,-351.99,-43.430 +1245.23,-312.88,-38.613 +1245.23,-273.77,-33.781 +1245.23,-234.66,-28.934 +1245.23,-195.55,-24.072 +1245.23,-156.44,-19.195 +1245.23,-117.33,-14.302 +1245.23,-78.22,-9.394 +1245.23,-39.11,-4.466 +1245.23,-7.82,-0.412 +1245.23,7.82,1.472 +1245.23,39.11,5.729 +1245.23,78.22,11.019 +1245.23,117.33,16.320 +1245.23,156.44,21.636 +1245.23,195.55,26.966 +1245.23,234.66,32.311 +1245.23,273.77,37.671 +1245.23,312.88,43.047 +1245.23,351.99,48.437 +1245.23,391.10,53.843 +1245.23,430.21,59.263 +1245.23,469.33,64.699 +1245.23,508.44,70.149 +1245.23,547.55,75.615 +1245.23,586.66,81.095 +1245.23,625.77,86.591 +1245.23,664.88,92.101 +1245.23,703.99,97.627 +1245.23,743.10,103.167 +1245.23,782.21,108.722 +1660.30,-782.21,-127.481 +1660.30,-743.10,-121.255 +1660.30,-703.99,-115.009 +1660.30,-664.88,-108.744 +1660.30,-625.77,-102.460 +1660.30,-586.66,-96.156 +1660.30,-547.55,-89.832 +1660.30,-508.44,-83.490 +1660.30,-469.33,-77.127 +1660.30,-430.21,-70.746 +1660.30,-391.10,-64.345 +1660.30,-351.99,-57.925 +1660.30,-312.88,-51.485 +1660.30,-273.77,-45.027 +1660.30,-234.66,-38.549 +1660.30,-195.55,-32.051 +1660.30,-156.44,-25.534 +1660.30,-117.33,-18.997 +1660.30,-78.22,-12.439 +1660.30,-39.11,-5.851 +1660.30,-7.82,-0.332 +1660.30,7.82,2.049 +1660.30,39.11,7.732 +1660.30,78.22,14.776 +1660.30,117.33,21.833 +1660.30,156.44,28.907 +1660.30,195.55,36.000 +1660.30,234.66,43.112 +1660.30,273.77,50.243 +1660.30,312.88,57.394 +1660.30,351.99,64.565 +1660.30,391.10,71.755 +1660.30,430.21,78.964 +1660.30,469.33,86.193 +1660.30,508.44,93.442 +1660.30,547.55,100.709 +1660.30,586.66,107.996 +1660.30,625.77,115.303 +1660.30,664.88,122.629 +1660.30,703.99,129.974 +1660.30,743.10,137.339 +1660.30,782.21,144.722 +2075.38,-782.21,-159.208 +2075.38,-743.10,-151.432 +2075.38,-703.99,-143.630 +2075.38,-664.88,-135.804 +2075.38,-625.77,-127.952 +2075.38,-586.66,-120.076 +2075.38,-547.55,-112.174 +2075.38,-508.44,-104.248 +2075.38,-469.33,-96.296 +2075.38,-430.21,-88.319 +2075.38,-391.10,-80.318 +2075.38,-351.99,-72.291 +2075.38,-312.88,-64.240 +2075.38,-273.77,-56.164 +2075.38,-234.66,-48.062 +2075.38,-195.55,-39.936 +2075.38,-156.44,-31.784 +2075.38,-117.33,-23.606 +2075.38,-78.22,-15.399 +2075.38,-39.11,-7.150 +2075.38,-7.82,0.000 +2075.38,7.82,2.686 +2075.38,39.11,9.810 +2075.38,78.22,18.613 +2075.38,117.33,27.429 +2075.38,156.44,36.266 +2075.38,195.55,45.128 +2075.38,234.66,54.014 +2075.38,273.77,62.925 +2075.38,312.88,71.861 +2075.38,351.99,80.822 +2075.38,391.10,89.808 +2075.38,430.21,98.819 +2075.38,469.33,107.856 +2075.38,508.44,116.917 +2075.38,547.55,126.003 +2075.38,586.66,135.115 +2075.38,625.77,144.251 +2075.38,664.88,153.413 +2075.38,703.99,162.599 +2075.38,743.10,171.810 +2075.38,782.21,181.046 +2490.46,-782.21,-190.594 +2490.46,-743.10,-181.292 +2490.46,-703.99,-171.958 +2490.46,-664.88,-162.592 +2490.46,-625.77,-153.194 +2490.46,-586.66,-143.764 +2490.46,-547.55,-134.302 +2490.46,-508.44,-124.808 +2490.46,-469.33,-115.283 +2490.46,-430.21,-105.725 +2490.46,-391.10,-96.136 +2490.46,-351.99,-86.515 +2490.46,-312.88,-76.862 +2490.46,-273.77,-67.177 +2490.46,-234.66,-57.460 +2490.46,-195.55,-47.711 +2490.46,-156.44,-37.930 +2490.46,-117.33,-28.114 +2490.46,-78.22,-18.260 +2490.46,-39.11,-8.345 +2490.46,-7.82,0.000 +2490.46,7.82,3.390 +2490.46,39.11,11.977 +2490.46,78.22,22.544 +2490.46,117.33,33.123 +2490.46,156.44,43.729 +2490.46,195.55,54.365 +2490.46,234.66,65.032 +2490.46,273.77,75.730 +2490.46,312.88,86.460 +2490.46,351.99,97.223 +2490.46,391.10,108.017 +2490.46,430.21,118.843 +2490.46,469.33,129.701 +2490.46,508.44,140.590 +2490.46,547.55,151.512 +2490.46,586.66,162.465 +2490.46,625.77,173.450 +2490.46,664.88,184.467 +2490.46,703.99,195.516 +2490.46,743.10,206.596 +2490.46,782.21,217.708 +2905.53,-782.21,-221.625 +2905.53,-743.10,-210.821 +2905.53,-703.99,-199.978 +2905.53,-664.88,-189.094 +2905.53,-625.77,-178.170 +2905.53,-586.66,-167.205 +2905.53,-547.55,-156.201 +2905.53,-508.44,-145.157 +2905.53,-469.33,-134.072 +2905.53,-430.21,-122.948 +2905.53,-391.10,-111.783 +2905.53,-351.99,-100.579 +2905.53,-312.88,-89.335 +2905.53,-273.77,-78.051 +2905.53,-234.66,-66.726 +2905.53,-195.55,-55.361 +2905.53,-156.44,-43.955 +2905.53,-117.33,-32.505 +2905.53,-78.22,-21.004 +2905.53,-39.11,-9.414 +2905.53,-7.82,0.000 +2905.53,7.82,4.169 +2905.53,39.11,14.242 +2905.53,78.22,26.581 +2905.53,117.33,38.929 +2905.53,156.44,51.308 +2905.53,195.55,63.725 +2905.53,234.66,76.180 +2905.53,273.77,88.674 +2905.53,312.88,101.208 +2905.53,351.99,113.781 +2905.53,391.10,126.395 +2905.53,430.21,139.049 +2905.53,469.33,151.742 +2905.53,508.44,164.475 +2905.53,547.55,177.248 +2905.53,586.66,190.061 +2905.53,625.77,202.914 +2905.53,664.88,215.806 +2905.53,703.99,228.738 +2905.53,743.10,241.710 +2905.53,782.21,254.721 +3320.61,-782.21,-252.283 +3320.61,-743.10,-240.003 +3320.61,-703.99,-227.672 +3320.61,-664.88,-215.293 +3320.61,-625.77,-202.863 +3320.61,-586.66,-190.384 +3320.61,-547.55,-177.855 +3320.61,-508.44,-165.277 +3320.61,-469.33,-152.649 +3320.61,-430.21,-139.972 +3320.61,-391.10,-127.246 +3320.61,-351.99,-114.470 +3320.61,-312.88,-101.645 +3320.61,-273.77,-88.770 +3320.61,-234.66,-75.846 +3320.61,-195.55,-62.871 +3320.61,-156.44,-49.844 +3320.61,-117.33,-36.762 +3320.61,-78.22,-23.614 +3320.61,-39.11,-10.335 +3320.61,-7.82,0.000 +3320.61,7.82,5.028 +3320.61,39.11,16.619 +3320.61,78.22,30.738 +3320.61,117.33,44.860 +3320.61,156.44,59.018 +3320.61,195.55,73.221 +3320.61,234.66,87.471 +3320.61,273.77,101.769 +3320.61,312.88,116.116 +3320.61,351.99,130.512 +3320.61,391.10,144.957 +3320.61,430.21,159.451 +3320.61,469.33,173.994 +3320.61,508.44,188.586 +3320.61,547.55,203.227 +3320.61,586.66,217.917 +3320.61,625.77,232.656 +3320.61,664.88,247.443 +3320.61,703.99,262.280 +3320.61,743.10,277.165 +3320.61,782.21,292.099 +3735.68,-782.21,-282.551 +3735.68,-743.10,-268.819 +3735.68,-703.99,-255.026 +3735.68,-664.88,-241.172 +3735.68,-625.77,-227.258 +3735.68,-586.66,-213.283 +3735.68,-547.55,-199.248 +3735.68,-508.44,-185.153 +3735.68,-469.33,-170.997 +3735.68,-430.21,-156.782 +3735.68,-391.10,-142.506 +3735.68,-351.99,-128.171 +3735.68,-312.88,-113.775 +3735.68,-273.77,-99.319 +3735.68,-234.66,-84.802 +3735.68,-195.55,-70.223 +3735.68,-156.44,-55.580 +3735.68,-117.33,-40.868 +3735.68,-78.22,-26.070 +3735.68,-39.11,-11.083 +3735.68,-7.82,0.000 +3735.68,7.82,5.973 +3735.68,39.11,19.116 +3735.68,78.22,35.026 +3735.68,117.33,50.928 +3735.68,156.44,66.872 +3735.68,195.55,82.868 +3735.68,234.66,98.921 +3735.68,273.77,115.031 +3735.68,312.88,131.200 +3735.68,351.99,147.429 +3735.68,391.10,163.716 +3735.68,430.21,180.063 +3735.68,469.33,196.470 +3735.68,508.44,212.936 +3735.68,547.55,229.461 +3735.68,586.66,246.045 +3735.68,625.77,262.689 +3735.68,664.88,279.392 +3735.68,703.99,296.154 +3735.68,743.10,312.975 +3735.68,782.21,329.854 +4150.76,-782.21,-312.414 +4150.76,-743.10,-297.254 +4150.76,-703.99,-282.021 +4150.76,-664.88,-266.715 +4150.76,-625.77,-251.337 +4150.76,-586.66,-235.887 +4150.76,-547.55,-220.364 +4150.76,-508.44,-204.768 +4150.76,-469.33,-189.101 +4150.76,-430.21,-173.361 +4150.76,-391.10,-157.550 +4150.76,-351.99,-141.666 +4150.76,-312.88,-125.710 +4150.76,-273.77,-109.681 +4150.76,-234.66,-93.579 +4150.76,-195.55,-77.402 +4150.76,-156.44,-61.147 +4150.76,-117.33,-44.806 +4150.76,-78.22,-28.354 +4150.76,-39.11,-11.628 +4150.76,-7.82,0.000 +4150.76,7.82,7.007 +4150.76,39.11,21.744 +4150.76,78.22,39.458 +4150.76,117.33,57.148 +4150.76,156.44,74.883 +4150.76,195.55,92.679 +4150.76,234.66,110.541 +4150.76,273.77,128.472 +4150.76,312.88,146.473 +4150.76,351.99,164.545 +4150.76,391.10,182.687 +4150.76,430.21,200.900 +4150.76,469.33,219.183 +4150.76,508.44,237.538 +4150.76,547.55,255.964 +4150.76,586.66,274.460 +4150.76,625.77,293.027 +4150.76,664.88,311.665 +4150.76,703.99,330.373 +4150.76,743.10,349.151 +4150.76,782.21,368.000 +4565.84,-782.21,-341.852 +4565.84,-743.10,-325.290 +4565.84,-703.99,-308.641 +4565.84,-664.88,-291.906 +4565.84,-625.77,-275.085 +4565.84,-586.66,-258.178 +4565.84,-547.55,-241.186 +4565.84,-508.44,-224.107 +4565.84,-469.33,-206.944 +4565.84,-430.21,-189.694 +4565.84,-391.10,-172.360 +4565.84,-351.99,-154.939 +4565.84,-312.88,-137.433 +4565.84,-273.77,-119.840 +4565.84,-234.66,-102.160 +4565.84,-195.55,-84.391 +4565.84,-156.44,-66.527 +4565.84,-117.33,-48.558 +4565.84,-78.22,-30.444 +4565.84,-39.11,-11.935 +4565.84,-7.82,0.000 +4565.84,7.82,8.135 +4565.84,39.11,24.512 +4565.84,78.22,44.044 +4565.84,117.33,63.530 +4565.84,156.44,83.063 +4565.84,195.55,102.666 +4565.84,234.66,122.346 +4565.84,273.77,142.106 +4565.84,312.88,161.948 +4565.84,351.99,181.873 +4565.84,391.10,201.881 +4565.84,430.21,221.973 +4565.84,469.33,242.148 +4565.84,508.44,262.407 +4565.84,547.55,282.749 +4565.84,586.66,303.174 +4565.84,625.77,323.683 +4565.84,664.88,344.275 +4565.84,703.99,364.950 +4565.84,743.10,385.708 +4565.84,782.21,406.549 +4980.91,-782.21,-370.848 +4980.91,-743.10,-352.909 +4980.91,-703.99,-334.869 +4980.91,-664.88,-316.727 +4980.91,-625.77,-298.484 +4980.91,-586.66,-280.141 +4980.91,-547.55,-261.697 +4980.91,-508.44,-243.153 +4980.91,-469.33,-224.509 +4980.91,-430.21,-205.764 +4980.91,-391.10,-186.919 +4980.91,-351.99,-167.974 +4980.91,-312.88,-148.928 +4980.91,-273.77,-129.780 +4980.91,-234.66,-110.529 +4980.91,-195.55,-91.172 +4980.91,-156.44,-71.702 +4980.91,-117.33,-52.102 +4980.91,-78.22,-32.318 +4980.91,-39.11,-11.957 +4980.91,-7.82,0.000 +4980.91,7.82,9.361 +4980.91,39.11,27.429 +4980.91,78.22,48.796 +4980.91,117.33,70.087 +4980.91,156.44,91.426 +4980.91,195.55,112.843 +4980.91,234.66,134.348 +4980.91,273.77,155.946 +4980.91,312.88,177.639 +4980.91,351.99,199.428 +4980.91,391.10,221.314 +4980.91,430.21,243.297 +4980.91,469.33,265.377 +4980.91,508.44,287.555 +4980.91,547.55,309.829 +4980.91,586.66,332.201 +4980.91,625.77,354.670 +4980.91,664.88,377.236 +4980.91,703.99,399.898 +4980.91,743.10,422.657 +4980.91,782.21,445.513 +5395.99,-782.21,-399.385 +5395.99,-743.10,-380.094 +5395.99,-703.99,-360.686 +5395.99,-664.88,-341.160 +5395.99,-625.77,-321.517 +5395.99,-586.66,-301.757 +5395.99,-547.55,-281.881 +5395.99,-508.44,-261.888 +5395.99,-469.33,-241.779 +5395.99,-430.21,-221.554 +5395.99,-391.10,-201.212 +5395.99,-351.99,-180.753 +5395.99,-312.88,-160.177 +5395.99,-273.77,-139.482 +5395.99,-234.66,-118.667 +5395.99,-195.55,-97.727 +5395.99,-156.44,-76.653 +5395.99,-117.33,-55.421 +5395.99,-78.22,-33.949 +5395.99,-39.11,-11.634 +5395.99,-7.82,0.000 +5395.99,7.82,10.687 +5395.99,39.11,30.502 +5395.99,78.22,53.724 +5395.99,117.33,76.830 +5395.99,156.44,99.982 +5395.99,195.55,123.221 +5395.99,234.66,146.560 +5395.99,273.77,170.004 +5395.99,312.88,193.558 +5395.99,351.99,217.222 +5395.99,391.10,240.997 +5395.99,430.21,264.884 +5395.99,469.33,288.883 +5395.99,508.44,312.994 +5395.99,547.55,337.218 +5395.99,586.66,361.553 +5395.99,625.77,386.000 +5395.99,664.88,410.559 +5395.99,703.99,435.229 +5395.99,743.10,460.011 +5395.99,782.21,484.904 +5811.07,-782.21,-427.443 +5811.07,-743.10,-406.827 +5811.07,-703.99,-386.075 +5811.07,-664.88,-365.188 +5811.07,-625.77,-344.166 +5811.07,-586.66,-323.010 +5811.07,-547.55,-301.720 +5811.07,-508.44,-280.296 +5811.07,-469.33,-258.738 +5811.07,-430.21,-237.046 +5811.07,-391.10,-215.220 +5811.07,-351.99,-193.259 +5811.07,-312.88,-171.163 +5811.07,-273.77,-148.930 +5811.07,-234.66,-126.557 +5811.07,-195.55,-104.038 +5811.07,-156.44,-81.361 +5811.07,-117.33,-58.491 +5811.07,-78.22,-35.312 +5811.07,-39.11,-10.881 +5811.07,-7.82,0.000 +5811.07,7.82,12.116 +5811.07,39.11,33.739 +5811.07,78.22,58.838 +5811.07,117.33,83.770 +5811.07,156.44,108.745 +5811.07,195.55,133.814 +5811.07,234.66,158.994 +5811.07,273.77,184.294 +5811.07,312.88,209.718 +5811.07,351.99,235.267 +5811.07,391.10,260.944 +5811.07,430.21,286.747 +5811.07,469.33,312.679 +5811.07,508.44,338.739 +5811.07,547.55,364.927 +5811.07,586.66,391.243 +5811.07,625.77,417.686 +5811.07,664.88,444.257 +5811.07,703.99,470.956 +5811.07,743.10,497.782 +5811.07,782.21,524.734 +6226.14,-782.21,-455.004 +6226.14,-743.10,-433.088 +6226.14,-703.99,-411.017 +6226.14,-664.88,-388.792 +6226.14,-625.77,-366.413 +6226.14,-586.66,-343.881 +6226.14,-547.55,-321.196 +6226.14,-508.44,-298.358 +6226.14,-469.33,-275.367 +6226.14,-430.21,-252.223 +6226.14,-391.10,-228.926 +6226.14,-351.99,-205.475 +6226.14,-312.88,-181.869 +6226.14,-273.77,-158.105 +6226.14,-234.66,-134.181 +6226.14,-195.55,-110.086 +6226.14,-156.44,-85.804 +6226.14,-117.33,-61.289 +6226.14,-78.22,-36.374 +6226.14,-39.11,-9.556 +6226.14,-7.82,0.000 +6226.14,7.82,13.650 +6226.14,39.11,37.147 +6226.14,78.22,64.146 +6226.14,117.33,90.918 +6226.14,156.44,117.725 +6226.14,195.55,144.632 +6226.14,234.66,171.663 +6226.14,273.77,198.828 +6226.14,312.88,226.131 +6226.14,351.99,253.577 +6226.14,391.10,281.166 +6226.14,430.21,308.900 +6226.14,469.33,336.778 +6226.14,508.44,364.801 +6226.14,547.55,392.969 +6226.14,586.66,421.282 +6226.14,625.77,449.740 +6226.14,664.88,478.343 +6226.14,703.99,507.090 +6226.14,743.10,535.981 +6226.14,782.21,565.016 +6641.22,-782.21,-482.049 +6641.22,-743.10,-458.859 +6641.22,-703.99,-435.494 +6641.22,-664.88,-411.954 +6641.22,-625.77,-388.240 +6641.22,-586.66,-364.353 +6641.22,-547.55,-340.291 +6641.22,-508.44,-316.056 +6641.22,-469.33,-291.648 +6641.22,-430.21,-267.067 +6641.22,-391.10,-242.312 +6641.22,-351.99,-217.381 +6641.22,-312.88,-192.275 +6641.22,-273.77,-166.989 +6641.22,-234.66,-141.518 +6641.22,-195.55,-115.850 +6641.22,-156.44,-89.963 +6641.22,-117.33,-63.791 +6641.22,-78.22,-37.101 +6641.22,-39.11,-7.377 +6641.22,-7.82,0.000 +6641.22,7.82,15.292 +6641.22,39.11,40.731 +6641.22,78.22,69.659 +6641.22,117.33,98.284 +6641.22,156.44,126.933 +6641.22,195.55,155.688 +6641.22,234.66,184.578 +6641.22,273.77,213.617 +6641.22,312.88,242.811 +6641.22,351.99,272.164 +6641.22,391.10,301.677 +6641.22,430.21,331.353 +6641.22,469.33,361.191 +6641.22,508.44,391.193 +6641.22,547.55,421.357 +6641.22,586.66,451.685 +6641.22,625.77,482.175 +6641.22,664.88,512.828 +6641.22,703.99,543.643 +6641.22,743.10,574.621 +6641.22,782.21,605.760 +7056.29,-782.21,-508.558 +7056.29,-743.10,-484.121 +7056.29,-703.99,-459.487 +7056.29,-664.88,-434.656 +7056.29,-625.77,-409.628 +7056.29,-586.66,-384.405 +7056.29,-547.55,-358.987 +7056.29,-508.44,-333.373 +7056.29,-469.33,-307.564 +7056.29,-430.21,-281.560 +7056.29,-391.10,-255.359 +7056.29,-351.99,-228.961 +7056.29,-312.88,-202.363 +7056.29,-273.77,-175.562 +7056.29,-234.66,-148.549 +7056.29,-195.55,-121.310 +7056.29,-156.44,-93.812 +7056.29,-117.33,-65.969 +7056.29,-78.22,-37.452 +7056.29,-39.11,-3.372 +7056.29,-7.82,0.000 +7056.29,7.82,17.044 +7056.29,39.11,44.498 +7056.29,78.22,75.384 +7056.29,117.33,105.878 +7056.29,156.44,136.381 +7056.29,195.55,166.993 +7056.29,234.66,197.752 +7056.29,273.77,228.674 +7056.29,312.88,259.768 +7056.29,351.99,291.039 +7056.29,391.10,322.489 +7056.29,430.21,354.119 +7056.29,469.33,385.932 +7056.29,508.44,417.926 +7056.29,547.55,450.103 +7056.29,586.66,482.461 +7056.29,625.77,515.002 +7056.29,664.88,547.724 +7056.29,703.99,580.628 +7056.29,743.10,613.713 +7056.29,782.21,646.979 +7471.37,-782.21,-534.510 +7471.37,-743.10,-508.853 +7471.37,-703.99,-482.975 +7471.37,-664.88,-456.876 +7471.37,-625.77,-430.558 +7471.37,-586.66,-404.021 +7471.37,-547.55,-377.264 +7471.37,-508.44,-350.289 +7471.37,-469.33,-323.095 +7471.37,-430.21,-295.682 +7471.37,-391.10,-268.049 +7471.37,-351.99,-240.194 +7471.37,-312.88,-212.114 +7471.37,-273.77,-183.804 +7471.37,-234.66,-155.254 +7471.37,-195.55,-126.444 +7471.37,-156.44,-97.329 +7471.37,-117.33,-67.794 +7471.37,-78.22,-37.377 +7471.37,-39.11,0.000 +7471.37,-7.82,0.000 +7471.37,7.82,18.907 +7471.37,39.11,48.454 +7471.37,78.22,81.330 +7471.37,117.33,113.709 +7471.37,156.44,146.077 +7471.37,195.55,178.557 +7471.37,234.66,211.194 +7471.37,273.77,244.010 +7471.37,312.88,277.015 +7471.37,351.99,310.215 +7471.37,391.10,343.613 +7471.37,430.21,377.211 +7471.37,469.33,411.011 +7471.37,508.44,445.013 +7471.37,547.55,479.218 +7471.37,586.66,513.624 +7471.37,625.77,548.233 +7471.37,664.88,583.043 +7471.37,703.99,618.056 +7471.37,743.10,653.269 +7471.37,782.21,688.683 +7886.45,-782.21,-559.886 +7886.45,-743.10,-533.036 +7886.45,-703.99,-505.939 +7886.45,-664.88,-478.597 +7886.45,-625.77,-451.010 +7886.45,-586.66,-423.179 +7886.45,-547.55,-395.104 +7886.45,-508.44,-366.785 +7886.45,-469.33,-338.222 +7886.45,-430.21,-309.415 +7886.45,-391.10,-280.362 +7886.45,-351.99,-251.061 +7886.45,-312.88,-221.508 +7886.45,-273.77,-191.695 +7886.45,-234.66,-161.611 +7886.45,-195.55,-131.227 +7886.45,-156.44,-100.487 +7886.45,-117.33,-69.233 +7886.45,-78.22,-36.816 +7886.45,-39.11,0.000 +7886.45,-7.82,0.000 +7886.45,7.82,20.883 +7886.45,39.11,52.603 +7886.45,78.22,87.503 +7886.45,117.33,121.787 +7886.45,156.44,156.033 +7886.45,195.55,190.391 +7886.45,234.66,224.917 +7886.45,273.77,259.637 +7886.45,312.88,294.563 +7886.45,351.99,329.703 +7886.45,391.10,365.061 +7886.45,430.21,400.640 +7886.45,469.33,436.442 +7886.45,508.44,472.466 +7886.45,547.55,508.714 +7886.45,586.66,545.185 +7886.45,625.77,581.879 +7886.45,664.88,618.797 +7886.45,703.99,655.937 +7886.45,743.10,693.300 +7886.45,782.21,730.885 +8301.52,-782.21,-584.664 +8301.52,-743.10,-556.648 +8301.52,-703.99,-528.358 +8301.52,-664.88,-499.797 +8301.52,-625.77,-470.964 +8301.52,-586.66,-441.860 +8301.52,-547.55,-412.486 +8301.52,-508.44,-382.841 +8301.52,-469.33,-352.925 +8301.52,-430.21,-322.738 +8301.52,-391.10,-292.278 +8301.52,-351.99,-261.541 +8301.52,-312.88,-230.523 +8301.52,-273.77,-199.214 +8301.52,-234.66,-167.596 +8301.52,-195.55,-135.637 +8301.52,-156.44,-103.259 +8301.52,-117.33,-70.249 +8301.52,-78.22,-35.692 +8301.52,-39.11,0.000 +8301.52,-7.82,0.000 +8301.52,7.82,22.974 +8301.52,39.11,56.950 +8301.52,78.22,93.912 +8301.52,117.33,130.120 +8301.52,156.44,166.259 +8301.52,195.55,202.506 +8301.52,234.66,238.931 +8301.52,273.77,275.565 +8301.52,312.88,312.423 +8301.52,351.99,349.515 +8301.52,391.10,386.845 +8301.52,430.21,424.418 +8301.52,469.33,462.235 +8301.52,508.44,500.296 +8301.52,547.55,538.603 +8301.52,586.66,577.155 +8301.52,625.77,615.953 +8301.52,664.88,654.996 +8301.52,703.99,694.284 +8301.52,743.10,733.817 +8301.52,782.21,773.593 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..b260bad52cdbc5a8ffc840fb53d76c0e35182e79 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_drag.vemd @@ -0,0 +1,24 @@ +n [rpm] , T_drag [Nm] +0, -1.85 +41.5076091583663, -1.94 +415.076091583663, -2.83 +830.152183167326, -3.82 +1245.22827475099, -4.81 +1660.30436633465, -5.79 +2075.38045791832, -6.78 +2490.45654950198, -7.77 +2905.53264108564, -8.75 +3320.6087326693, -9.74 +3735.68482425297, -10.73 +4150.76091583663, -11.71 +4565.83700742029, -12.7 +4980.91309900396, -13.69 +5395.98919058762, -14.67 +5811.06528217128, -15.66 +6226.14137375495, -16.65 +6641.21746533861, -17.64 +7056.29355692227, -18.62 +7471.36964850593, -19.61 +7886.4457400896, -20.6 +8301.52183167326, -21.58 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..562357b610a408ed0c6c36d123c9a89a37863089 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Gen_fld.vemp @@ -0,0 +1,26 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 782.21, -782.21 +42, 782.21, -782.21 +415, 782.21, -782.21 +830, 782.21, -782.21 +1245, 782.21, -782.21 +1660, 782.21, -782.21 +2075, 782.21, -782.21 +2490, 651.84, -651.84 +2906, 558.72, -558.72 +3321, 488.88, -488.88 +3736, 434.56, -434.56 +4151, 391.10, -391.10 +4566, 355.55, -355.55 +4981, 325.92, -325.92 +5396, 300.85, -300.85 +5811, 279.36, -279.36 +6226, 260.74, -260.74 +6641, 244.44, -244.44 +7056, 230.06, -230.06 +7471, 217.28, -217.28 +7886, 205.84, -205.84 +8302, 195.55, -195.55 + + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericBattery.vbatr b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericBattery.vbatr new file mode 100644 index 0000000000000000000000000000000000000000..a6939be42acc832210d10b61c2ab817f3cf37334 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericBattery.vbatr @@ -0,0 +1,3 @@ +SoC, Ri +0, 0.024 +100, 0.024 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericBattery.vreess b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericBattery.vreess new file mode 100644 index 0000000000000000000000000000000000000000..2043a8069034a8b5d5fa54029d1d48cfac0c22d5 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericBattery.vreess @@ -0,0 +1,19 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-16T09:37:48.3166199Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "REESSType": "Battery", + "Model": "Generic Battery", + "Capacity": 37.14, + "SOC_min": 20, + "SOC_max": 80, + "MaxCurrentMap": "MaxCurrent.vimax", + "InternalResistanceCurve": "GenericBattery.vbatr", + "SoCCurve": "REESS_SOC_curve.vbatv" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericEMotor.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericEMotor.vem new file mode 100644 index 0000000000000000000000000000000000000000..3bd5383d3fffa2bd7d04149e40e38714248b0173 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericEMotor.vem @@ -0,0 +1,33 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-05T14:49:40.5920495Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "Inertia": 0.134, + "ContinuousTorque": 506.13, + "ContinuousTorqueSpeed": 2075.38045791832, + "OverloadTorque": 506.13, + "OverloadTorqueSpeed": 2075.38045791832, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9, + "VoltageLevels": [ + { + "Voltage": 0.0, + "FullLoadCurve": "EM_fld.vemp", + "DragCurve": "EM_drag.vemd", + "EfficiencyMap": "EM_Map.vemo" + }, + { + "Voltage": 1000.0, + "FullLoadCurve": "EM_fld.vemp", + "DragCurve": "EM_drag.vemd", + "EfficiencyMap": "EM_Map.vemo" + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericGen.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericGen.vem new file mode 100644 index 0000000000000000000000000000000000000000..5d5432e0436919344cf5a9d12bd7b03610d36a87 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/GenericGen.vem @@ -0,0 +1,33 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-05T14:49:40.5920495Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "Inertia": 0.134, + "ContinuousTorque": 521, + "ContinuousTorqueSpeed": 2075.38045791832, + "OverloadTorque": 782.208589, + "OverloadTorqueSpeed": 2075.38045791832, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9, + "VoltageLevels": [ + { + "Voltage": 0.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + }, + { + "Voltage": 1000.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_6l.veng b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_6l.veng new file mode 100644 index 0000000000000000000000000000000000000000..3de13c23664c36203f06c53c11fe4c6db3d6499b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_6l.veng @@ -0,0 +1,35 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-17T07:29:46.1581600Z", + "AppVersion": "3", + "FileVersion": 5 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "175kW 6.0l Engine", + "Displacement": "6000", + "IdlingSpeed": 600.0, + "Inertia": 3.33, + "Fuels": [ + { + "WHTC-Urban": 0.0, + "WHTC-Rural": 0.0, + "WHTC-Motorway": 0.0, + "WHTC-Engineering": 1.0090832895, + "ColdHotBalancingFactor": 0.0, + "CFRegPer": 1.0, + "FuelMap": "Group2_ICE_Map.vmap", + "FuelType": "DieselCI" + } + ], + "RatedPower": 170000, + "RatedSpeed": 2150.0, + "MaxTorque": 950, + "FullLoadCurve": "Group2_ICE_fld.vfld", + "WHRType": [ + "None" + ], + "WHRCorrectionFactors": {} + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_ICE_Map.vmap b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_ICE_Map.vmap new file mode 100644 index 0000000000000000000000000000000000000000..c18bd7267b86004005055959217a8abb85579194 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_ICE_Map.vmap @@ -0,0 +1,171 @@ +engine speed [rpm], torque [Nm], fuel consumption [g/h] +493.1,0,472.16 +493.1,68.14,1092.71 +493.1,97.34,1385.09 +493.1,193.47,2362.56 +493.1,290.81,3349.21 +493.1,388.15,4323.3 +493.1,484.28,5615.1 +493.1,581.62,6885.35 +493.1,677.75,8141.37 +493.1,775.09,9324.05 +493.1,872.43,10502.65 +493.1,968.56,11671.38 +493.1,1065.9,12854.85 +493.1,1163.24,14041.1 +493.1,1345.76,16279.46 +706.9,0,654.56 +706.9,63.38,1300.66 +706.9,90.54,1685.83 +706.9,179.94,2934.98 +706.9,270.48,4209.73 +706.9,361.01,5489.64 +706.9,450.42,7131.94 +706.9,540.96,8749.33 +706.9,630.36,10355.07 +706.9,720.9,11892.3 +706.9,811.43,13423.46 +706.9,900.84,14932.81 +706.9,991.38,16460.36 +706.9,1081.91,17990.15 +706.9,1251.67,20868.88 +920.69,0,834.13 +920.69,60.82,1539.32 +920.69,86.89,1996.25 +920.69,172.7,3527.91 +920.69,259.59,5103.77 +920.69,346.48,6698.6 +920.69,432.28,8534.56 +920.69,519.18,10302.62 +920.69,604.98,12051.26 +920.69,691.87,13799.21 +920.69,778.76,15560.69 +920.69,864.57,17324 +920.69,951.46,19082.4 +920.69,1038.35,20849.66 +920.69,1201.27,24184.98 +1134.48,0,1012.43 +1134.48,59.23,1702.79 +1134.48,84.62,2219.71 +1134.48,168.18,3986.47 +1134.48,252.8,5811.14 +1134.48,337.42,7665.32 +1134.48,420.98,9608.64 +1134.48,505.6,11442.89 +1134.48,589.17,13241.57 +1134.48,673.79,15118.07 +1134.48,758.41,17022.48 +1134.48,841.97,18944.17 +1134.48,926.59,20869.63 +1134.48,1011.21,23114.89 +1134.48,1169.87,27512.11 +1348.28,0,1294.34 +1348.28,58.15,1997.87 +1348.28,83.07,2598.94 +1348.28,165.1,4624.77 +1348.28,248.17,6737.78 +1348.28,331.24,8867.28 +1348.28,413.27,10944.84 +1348.28,496.34,13061.55 +1348.28,578.37,15269.8 +1348.28,661.44,17440.79 +1348.28,744.51,19507.76 +1348.28,826.54,21571.23 +1348.28,909.61,23711.69 +1348.28,992.68,25966.58 +1348.28,1148.43,30235.15 +1562.07,0,1564.61 +1562.07,57.36,2313.91 +1562.07,81.94,2984.72 +1562.07,162.86,5250.37 +1562.07,244.8,7668.52 +1562.07,326.75,10085.19 +1562.07,407.66,12512.83 +1562.07,489.61,14888.07 +1562.07,570.53,17294.79 +1562.07,652.47,19699.54 +1562.07,734.41,22035.67 +1562.07,815.33,24300.61 +1562.07,897.27,26869.17 +1562.07,979.21,29479.27 +1562.07,1132.86,34444.32 +1775.86,0,1863.36 +1775.86,56.76,2698.21 +1775.86,81.09,3431.79 +1775.86,161.16,5910.81 +1775.86,242.25,8635.74 +1775.86,323.34,11334.83 +1775.86,403.41,14031.9 +1775.86,484.5,16635.84 +1775.86,564.57,19283.72 +1775.86,645.66,22068.32 +1775.86,726.75,24815.91 +1775.86,806.82,27688.06 +1775.86,887.91,30790.81 +1775.86,968.99,33952.49 +1775.86,1121.03,40033.18 +1989.66,0,2223.14 +1989.66,56.29,3220.96 +1989.66,80.42,4008.53 +1989.66,159.83,6662.21 +1989.66,240.24,9700.2 +1989.66,320.66,12667.85 +1989.66,400.07,15692.26 +1989.66,480.49,18679.2 +1989.66,559.9,21609.8 +1989.66,640.31,24775.04 +1989.66,720.73,28010.68 +1989.66,800.14,31252.58 +1989.66,880.55,34385.56 +1989.66,960.97,37524.12 +1989.66,1111.75,43403.66 +2203.45,0,2709.67 +2203.45,55.91,3705.82 +2203.45,79.87,4568.38 +2203.45,158.75,7476.19 +2203.45,238.63,10780.73 +2203.45,318.5,14089.18 +2203.45,397.38,17362.53 +2203.45,477.25,20768.53 +2203.45,556.13,24379.4 +2203.45,636,28003.36 +2203.45,715.88,31565.94 +2203.45,794.75,35149.25 +2203.45,874.63,38779.16 +2203.45,954.5,42412.1 +2203.45,1104.27,49265.36 +2417.24,0,3185.92 +2417.24,55.6,4180.3 +2417.24,79.43,5130.88 +2417.24,157.87,8358.59 +2417.24,237.3,11902.92 +2417.24,316.72,15661.32 +2417.24,395.16,19569.39 +2417.24,474.59,23518.51 +2417.24,553.03,27751.41 +2417.24,632.46,32032.12 +2417.24,711.89,35952.81 +2417.24,790.32,39807.26 +2417.24,869.75,43671.01 +2417.24,949.18,47549.94 +2417.24,1098.11,54776.77 +493.1,-57.18,0 +706.9,-61.47,0 +920.69,-65.18,0 +1134.48,-69.57,0 +1348.28,-80.01,0 +1562.07,-86.98,0 +1775.86,-97.64,0 +1989.66,-111.91,0 +2203.45,-126.35,0 +2417.24,-142.1,0 +493.1,-67.18,0 +706.9,-71.47,0 +920.69,-75.18,0 +1134.48,-79.57,0 +1348.28,-90.01,0 +1562.07,-96.98,0 +1775.86,-107.64,0 +1989.66,-121.91,0 +2203.45,-136.35,0 +2417.24,-152.1,0 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_ICE_fld.vfld b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_ICE_fld.vfld new file mode 100644 index 0000000000000000000000000000000000000000..528ce38f823dcd0b50f4179bcb26325df001969a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Group2_ICE_fld.vfld @@ -0,0 +1,7 @@ +engine speed [1/min], full load torque [Nm], motoring torque [Nm] +600,218.50,-59.32 +1096,950,-67.77 +1700.5,950,-92.87 +2150,755.06,-122.42 +2522,0,-149.84 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/HeavyUrban.vdri b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/HeavyUrban.vdri new file mode 100644 index 0000000000000000000000000000000000000000..e13c5ed3b1f89cabe5a410a90110e40822b52dbc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/HeavyUrban.vdri @@ -0,0 +1,1408 @@ +<s>,<v>,<grad>,<stop> +0,0,0.6,45.4 +1,34.4,0.6,0 +2,34.4,0.6,0 +4,34.4,0.7,0 +23,34.4,0.8,0 +101,29.9,0.8,0 +154,22,0.8,0 +155,33.6,0.8,0 +162,33.6,0.9,0 +300,23.6,0.9,0 +341,0,0.9,22.2 +342,33.1,0.9,0 +348,33.1,0.8,0 +396,33.1,0.7,0 +430,28.7,0.7,0 +505,11.4,0.7,0 +506,31.1,0.7,0 +511,31.1,0.6,0 +597,14.6,0.6,0 +604,37.5,0.6,0 +669,41.5,0.6,0 +729,38.6,0.6,0 +758,34.4,0.5,0 +823,0,0.5,10.2 +824,20.3,0.5,0 +828,20.3,0.5,0 +859,15.6,0.5,0 +860,20.3,0.5,0 +861,20.3,0.4,0 +910,20.3,0.3,0 +928,20.3,0.2,0 +945,21.8,0.2,0 +947,21.8,0.1,0 +995,23.2,0.1,0 +1014,23.2,0,0 +1031,23.2,-0.1,0 +1047,23.2,-0.2,0 +1072,16.7,-0.2,0 +1076,24.8,-0.2,0 +1135,29,-0.2,0 +1198,29,-0.4,0 +1220,0,-0.4,10.2 +1221,34.4,-0.4,0 +1222,34.4,-0.4,0 +1241,34.4,-0.5,0 +1294,37.8,-0.5,0 +1314,37.8,-0.6,0 +1374,0,-0.6,2 +1375,30.5,-0.6,0 +1483,30.5,-0.5,0 +1484,0,-0.5,12 +1485,14.8,-0.5,0 +1486,14.8,-0.5,0 +1490,14.8,-0.6,0 +1513,14.8,-0.5,0 +1516,0,-0.5,38.4 +1517,35,-0.5,0 +1520,35,-0.6,0 +1669,0,-0.6,6.2 +1670,40.9,-0.6,0 +1676,40.9,-0.6,0 +1823,40.9,-0.7,0 +1839,40.9,-0.8,0 +1908,40.9,-0.9,0 +1926,40.9,-1,0 +1937,40.9,-1.1,0 +1949,40.9,-1.2,0 +1960,0,-1.2,10.8 +1961,15.2,-1.2,0 +1968,15.2,-1.3,0 +1991,10,-1.3,0 +1992,37.5,-1.3,0 +2026,37.5,-1.4,0 +2104,37.5,-1.3,0 +2119,37.5,-1.2,0 +2131,37.5,-1.1,0 +2146,37.5,-1,0 +2157,0,-1,43.2 +2158,20.5,-1,0 +2194,28.3,-1,0 +2235,28.3,-0.9,0 +2246,28.3,-0.8,0 +2254,28.3,-0.7,0 +2262,28.3,-0.6,0 +2270,28.3,-0.5,0 +2277,0,-0.5,9.6 +2278,37,-0.5,0 +2285,37,-0.4,0 +2344,37,-0.3,0 +2352,37,-0.2,0 +2360,37,-0.1,0 +2366,37,0,0 +2371,37,0.1,0 +2377,37,0.2,0 +2387,37,0.3,0 +2399,37,0.4,0 +2415,37,0.5,0 +2423,42.6,0.5,0 +2427,42.6,0.6,0 +2436,42.6,0.7,0 +2442,42.6,0.8,0 +2451,42.6,0.9,0 +2460,42.6,1,0 +2477,42.6,1.1,0 +2601,42.6,1,0 +2615,42.6,0.9,0 +2626,0,0.8,8.8 +2627,19.7,0.8,0 +2628,19.7,0.8,0 +2641,19.7,0.7,0 +2677,0,0.7,38.2 +2678,23.9,0.7,0 +2692,23.9,0.5,0 +2707,23.9,0.4,0 +2732,23.9,0.3,0 +2772,0,0.3,12.2 +2773,25.9,0.3,0 +2776,25.9,0.3,0 +2838,58.7,0.3,0 +2886,58.7,0.4,0 +2909,58.7,0.3,0 +2952,58.7,0.2,0 +2976,58.7,0.1,0 +3129,58.7,0,0 +3151,58.7,-0.1,0 +3263,0,-0.1,2 +3264,32.9,-0.1,0 +3271,32.9,-0.2,0 +3301,32.9,-0.3,0 +3362,0,-0.3,9.2 +3363,36.8,-0.3,0 +3380,36.8,-0.3,0 +3383,36.8,-0.2,0 +3397,36.8,-0.3,0 +3444,36.8,-0.4,0 +3462,36.8,-0.5,0 +3468,47.2,-0.5,0 +3702,47.2,-0.6,0 +3711,47.2,-0.7,0 +3718,47.2,-0.8,0 +3723,47.2,-0.9,0 +3729,47.2,-1,0 +3733,47.2,-1.1,0 +3737,47.2,-1.2,0 +3741,0,-1.2,8 +3742,30.2,-1.2,0 +3743,30.2,-1.3,0 +3749,30.2,-1.4,0 +3756,30.2,-1.5,0 +3782,30.2,-1.6,0 +3800,30.2,-1.7,0 +3808,30.2,-1.8,0 +3813,30.2,-1.9,0 +3817,30.2,-2,0 +3820,30.2,-2.1,0 +3823,30.2,-2.2,0 +3826,30.2,-2.3,0 +3829,30.2,-2.4,0 +3832,30.2,-2.5,0 +3835,30.2,-2.6,0 +3837,24.1,-2.6,0 +3839,24.1,-2.7,0 +3842,30,-2.8,0 +3846,30,-2.9,0 +3852,30,-3,0 +3858,30,-3.1,0 +3872,30,-3.2,0 +3905,22.8,-3.2,0 +3907,22.8,-3.3,0 +3916,22.8,-3.4,0 +3922,22.8,-3.5,0 +3927,22.8,-3.6,0 +3933,22.8,-3.7,0 +3939,22.8,-3.8,0 +3945,22.8,-3.9,0 +3955,22.8,-4,0 +3993,0,-4,73.6 +3994,17.7,-4,0 +4007,17.7,-4.2,0 +4043,0,-4.2,133.2 +4044,14.2,-4.2,0 +4045,14.2,-4.2,0 +4082,14.2,-4.1,0 +4083,0,-4.1,3.4 +4084,23,-4.1,0 +4095,23,-4.1,0 +4112,23,-4,0 +4122,23,-3.9,0 +4127,0,-3.9,9.8 +4128,22.6,-3.9,0 +4129,22.6,-3.9,0 +4132,22.6,-3.8,0 +4165,18.3,-3.8,0 +4169,30,-3.8,0 +4174,30,-3.7,0 +4192,30,-3.6,0 +4200,30,-3.5,0 +4205,30,-3.4,0 +4210,30,-3.3,0 +4215,30,-3.2,0 +4221,30,-3.1,0 +4227,30,-3,0 +4233,30,-2.9,0 +4241,30,-2.8,0 +4249,0,-2.8,9.2 +4250,13.7,-2.8,0 +4251,13.7,-2.8,0 +4260,13.7,-2.7,0 +4279,13.7,-2.6,0 +4280,0,-2.7,53.2 +4281,27.1,-2.7,0 +4294,27.1,-2.5,0 +4306,27.1,-2.4,0 +4320,27.1,-2.3,0 +4362,23,-2.3,0 +4455,30,-2.4,0 +4497,30,-2.5,0 +4565,21,-2.5,0 +4581,21,-2.6,0 +4612,27.3,-2.5,0 +4695,0,-2.5,9.4 +4696,40.8,-2.5,0 +4856,40.8,-2.5,0 +4909,40.8,-2.4,0 +4925,40.8,-2.3,0 +4944,40.8,-2.2,0 +4967,0,-2.2,63 +4968,34.5,-2.2,0 +5000,34.5,-2.1,0 +5015,34.5,-2,0 +5026,34.5,-1.9,0 +5039,34.5,-1.8,0 +5083,34.5,-1.7,0 +5091,0,-1.7,7.2 +5092,37.6,-1.7,0 +5107,37.6,-1.6,0 +5117,37.6,-1.5,0 +5125,37.6,-1.4,0 +5135,37.6,-1.3,0 +5148,37.6,-1.2,0 +5250,37.6,-1.1,0 +5262,37.6,-1,0 +5272,37.6,-0.9,0 +5280,37.6,-0.8,0 +5291,34.7,-0.7,0 +5365,34.7,-0.6,0 +5387,34.7,-0.5,0 +5389,0,-0.5,12.4 +5390,11.7,-0.5,0 +5403,11.7,-0.4,0 +5415,0,-0.4,36.8 +5416,25.5,-0.4,0 +5417,25.5,-0.4,0 +5519,14.1,-0.4,0 +5522,41.1,-0.4,0 +5716,0,-0.4,9.6 +5717,38.9,-0.4,0 +5828,38.9,-0.5,0 +5854,38.9,-0.6,0 +5870,38.9,-0.7,0 +5915,0,-0.7,13.4 +5916,37.2,-0.7,0 +5950,37.2,-0.8,0 +5969,37.2,-0.9,0 +5986,37.2,-1,0 +6152,30.4,-1,0 +6197,30.4,-1.1,0 +6213,30.4,-1.2,0 +6225,30.4,-1.3,0 +6231,20,-1.3,0 +6239,20,-1.4,0 +6271,0,-1.4,11.8 +6272,40.9,-1.4,0 +6277,40.9,-1.5,0 +6293,40.9,-1.6,0 +6302,40.9,-1.7,0 +6312,40.9,-1.8,0 +6321,40.9,-1.9,0 +6341,40.9,-2,0 +6374,40.9,-1.9,0 +6439,40.9,-1.8,0 +6459,40.8,-1.7,0 +6461,0,-1.7,53.6 +6462,33.2,-1.7,0 +6471,33.2,-1.6,0 +6480,33.2,-1.5,0 +6489,33.2,-1.4,0 +6501,33.2,-1.3,0 +6583,33.2,-1.2,0 +6597,33.2,-1.1,0 +6608,33.2,-1,0 +6618,33.2,-0.9,0 +6628,0,-0.9,9.2 +6629,21.8,-0.9,0 +6631,21.8,-0.9,0 +6641,21.8,-0.8,0 +6666,21.8,-0.9,0 +6698,19.8,-0.9,0 +6731,15,-0.9,0 +6735,32.7,-0.9,0 +6799,32.7,-0.8,0 +6881,0,-0.8,60.2 +6882,33.1,-0.8,0 +6885,33.1,-0.8,0 +7018,33.1,-0.9,0 +7028,33.1,-1,0 +7037,33.1,-1.1,0 +7045,33.1,-1.2,0 +7057,33.1,-1.3,0 +7075,10.3,-1.3,0 +7076,31.4,-1.3,0 +7094,31.4,-1.4,0 +7111,31.4,-1.5,0 +7120,31.4,-1.6,0 +7126,31.4,-1.7,0 +7131,31.4,-1.8,0 +7137,31.4,-1.9,0 +7142,31.4,-2,0 +7149,31.4,-2.1,0 +7160,31.4,-2.2,0 +7213,31.4,-2.3,0 +7228,31.4,-2.4,0 +7237,31.4,-2.5,0 +7244,31.4,-2.6,0 +7251,31.4,-2.7,0 +7260,31.4,-2.8,0 +7266,0,-2.8,8.8 +7267,31.1,-2.8,0 +7272,31.1,-2.9,0 +7303,31.1,-3,0 +7325,31.1,-3.1,0 +7339,31.1,-3.2,0 +7351,31.1,-3.3,0 +7444,31.1,-3.2,0 +7466,16.9,-3.2,0 +7470,16.9,-3.1,0 +7497,16.9,-3,0 +7501,0,-3,8.4 +7502,19.5,-3,0 +7518,19.5,-2.9,0 +7532,19.5,-2.8,0 +7538,0,-2.8,8 +7539,40.6,-2.8,0 +7584,40.6,-2.7,0 +7609,40.6,-2.6,0 +7626,40.6,-2.5,0 +7692,40.6,-2.4,0 +7737,40.6,-2.5,0 +7765,40.6,-2.6,0 +7780,40.6,-2.7,0 +7811,40.6,-2.8,0 +7819,32.9,-2.8,0 +7837,32.9,-2.9,0 +7852,32.9,-3,0 +7894,12.4,-3,0 +7895,15.7,-3,0 +7913,15.7,-3.1,0 +7925,0,-3.1,64 +7926,37.5,-3.1,0 +7927,37.5,-3.2,0 +7943,37.5,-3.3,0 +8091,37.5,-3.2,0 +8113,37.5,-3.1,0 +8123,37.5,-3,0 +8130,37.5,-2.9,0 +8137,37.5,-2.8,0 +8143,37.5,-2.7,0 +8150,37.5,-2.6,0 +8151,0,-2.6,10.4 +8152,11.9,-2.6,0 +8162,11.9,-2.5,0 +8174,0,-2.5,63 +8175,23.9,-2.5,0 +8194,23.9,-2.4,0 +8205,23.9,-2.3,0 +8211,23.9,-2.2,0 +8217,23.9,-2.1,0 +8222,23.9,-2,0 +8226,23.9,-1.9,0 +8231,23.9,-1.8,0 +8235,23.9,-1.7,0 +8242,23.9,-1.6,0 +8249,23.9,-1.5,0 +8254,0,-1.5,2 +8255,48.1,-1.5,0 +8265,48.1,-1.4,0 +8289,48.1,-1.3,0 +8298,48.1,-1.2,0 +8306,48.1,-1.1,0 +8313,48.1,-1,0 +8318,48.1,-0.9,0 +8325,48.1,-0.8,0 +8334,48.1,-0.7,0 +8353,48.1,-0.6,0 +8385,48.1,-0.7,0 +8474,43.9,-0.7,0 +8551,48.9,-0.7,0 +8663,48.9,-0.6,0 +8682,48.9,-0.5,0 +8691,48.9,-0.4,0 +8701,48.9,-0.3,0 +8711,48.9,-0.2,0 +8736,48.9,-0.1,0 +8761,0,-0.1,61.6 +8762,20.9,-0.1,0 +8763,20.9,-0.1,0 +8772,20.9,-0.2,0 +8860,20.9,-0.1,0 +8877,20.9,0,0 +8886,20.9,0.1,0 +8893,20.9,0.2,0 +8897,10,0.2,0 +8898,26.5,0.2,0 +8901,26.5,0.3,0 +8912,26.5,0.4,0 +8965,29.8,0.4,0 +8994,29.8,0.5,0 +9007,29.8,0.6,0 +9017,29.8,0.7,0 +9025,29.8,0.8,0 +9033,29.8,0.9,0 +9042,29.8,1,0 +9061,29.8,1.1,0 +9083,29.8,1.2,0 +9093,0,1.2,3.6 +9094,18.2,1.2,0 +9102,18.2,1.4,0 +9108,18.2,1.5,0 +9115,18.2,1.6,0 +9122,18.2,1.7,0 +9129,0,1.7,10 +9130,35.5,1.7,0 +9133,35.5,1.8,0 +9161,35.5,1.9,0 +9178,35.5,2,0 +9186,35.5,2.1,0 +9194,35.5,2.2,0 +9199,35.5,2.3,0 +9206,35.5,2.4,0 +9215,35.5,2.5,0 +9227,35.5,2.6,0 +9251,35.5,2.7,0 +9266,35.5,2.8,0 +9275,35.5,2.9,0 +9285,35.5,3,0 +9297,35.5,3.1,0 +9328,35.5,3.2,0 +9371,0,3.3,91.2 +9372,32.6,3.3,0 +9386,32.6,3.3,0 +9429,32.6,3.2,0 +9450,32.6,3.1,0 +9467,32.6,3,0 +9504,32.6,2.9,0 +9510,0,3,9.2 +9511,33.8,3,0 +9523,33.8,2.8,0 +9534,33.8,2.7,0 +9543,33.8,2.6,0 +9554,33.8,2.5,0 +9578,33.8,2.4,0 +9626,33.8,2.3,0 +9639,33.8,2.2,0 +9650,33.8,2.1,0 +9675,33.8,2,0 +9773,0,2,12.4 +9774,27.9,2,0 +9804,27.9,2.1,0 +9830,27.9,2.2,0 +9841,33.1,2.2,0 +9925,33.1,2.3,0 +10045,0,2.2,17.8 +10046,10,2.2,0 +10047,10,2.2,0 +10062,0,2.2,52.6 +10063,28.3,2.2,0 +10091,28.4,2.3,0 +10108,28.4,2.2,0 +10194,17.8,2.2,0 +10199,17.8,2.1,0 +10217,17.8,2,0 +10233,17.8,1.9,0 +10257,17.8,1.8,0 +10264,17.8,1.9,0 +10265,0,1.9,34.8 +10266,19,1.9,0 +10294,19,1.7,0 +10301,23.9,1.7,0 +10368,23.9,1.6,0 +10410,0,1.6,2 +10411,28,1.6,0 +10502,0,1.6,5.6 +10503,13.8,1.6,0 +10543,0,1.5,45.8 +10544,35.5,1.5,0 +10779,35.5,1.4,0 +10788,10,1.4,0 +10809,0,1.4,52.4 +10810,14.6,1.4,0 +10860,0,1.4,28.2 +10861,12.4,1.4,0 +10888,0,1.3,72.6 +10889,18,1.3,0 +10891,18,1.3,0 +10919,18,1.2,0 +10924,0,1.2,139 +10925,19.1,1.2,0 +10961,19.1,1.3,0 +10983,19.1,1.2,0 +10991,10.8,1.2,0 +10992,20.8,1.2,0 +11010,20.8,1.1,0 +11027,20.8,1,0 +11041,0,1,10.2 +11042,29.6,1,0 +11043,29.6,1,0 +11104,29.6,0.9,0 +11125,29.6,0.8,0 +11148,29.6,0.7,0 +11157,23.1,0.7,0 +11204,28.6,0.6,0 +11321,0,0.6,8.8 +11322,33.7,0.6,0 +11330,33.7,0.6,0 +11350,33.7,0.7,0 +11414,33.7,0.8,0 +11492,27.8,0.8,0 +11508,33.7,0.8,0 +11517,33.7,0.9,0 +11537,33.7,1,0 +11598,33.7,1.1,0 +11615,33.7,1.2,0 +11625,15,1.2,0 +11629,15,1.3,0 +11646,15,1.4,0 +11689,15,1.5,0 +11705,15,1.6,0 +11711,0,1.6,9.2 +11712,36.9,1.6,0 +11719,36.9,1.7,0 +11741,36.9,1.8,0 +11791,36.9,1.9,0 +11815,36.9,2,0 +11882,0,2,32.2 +11883,27.4,2,0 +11948,27.4,1.9,0 +11983,0,1.9,11.4 +11984,18.1,1.9,0 +11985,18.1,1.8,0 +11995,18.1,1.7,0 +12026,11.7,1.7,0 +12046,44.1,1.7,0 +12049,44.1,1.6,0 +12086,44.1,1.5,0 +12136,44.1,1.6,0 +12241,44.1,1.5,0 +12280,44.1,1.4,0 +12283,26.2,1.4,0 +12315,20.6,1.4,0 +12317,20.6,1.3,0 +12328,20.6,1.2,0 +12335,20.6,1.1,0 +12342,20.6,1,0 +12351,0,1,153.4 +12352,10.5,1,0 +12361,10.5,0.8,0 +12375,0,0.8,6.6 +12376,10,0.8,0 +12388,0,0.8,15.4 +12389,43.2,0.8,0 +12399,43.2,0.7,0 +12418,43.2,0.6,0 +12426,43.2,0.5,0 +12433,43.2,0.4,0 +12439,43.2,0.3,0 +12447,43.2,0.2,0 +12455,43.2,0.1,0 +12465,43.2,0,0 +12576,43.2,0.1,0 +12593,43.2,0,0 +12602,34.3,0,0 +12613,34.3,-0.1,0 +12621,34.3,-0.2,0 +12626,34.3,-0.3,0 +12632,34.3,-0.4,0 +12636,34.3,-0.5,0 +12641,34.3,-0.6,0 +12645,34.3,-0.7,0 +12651,34.3,-0.8,0 +12656,34.3,-0.9,0 +12667,34.3,-1,0 +12686,34.3,-1.1,0 +12702,34.3,-1.2,0 +12710,34.3,-1.3,0 +12716,34.3,-1.4,0 +12721,34.3,-1.5,0 +12726,34.3,-1.6,0 +12730,0,-1.6,4.2 +12731,24.5,-1.6,0 +12735,24.5,-1.8,0 +12741,24.5,-1.9,0 +12748,24.5,-2,0 +12758,24.5,-2.1,0 +12821,11.1,-2.1,0 +12824,18.4,-2.1,0 +12866,18.4,-2,0 +12877,18.4,-1.9,0 +12886,18.4,-1.8,0 +12893,0,-1.7,47.8 +12894,23.8,-1.7,0 +12913,23.8,-1.6,0 +12933,35.1,-1.6,0 +12973,35.1,-1.7,0 +13005,35.1,-1.6,0 +13026,35.1,-1.5,0 +13036,35.1,-1.4,0 +13043,35.1,-1.3,0 +13052,35.1,-1.2,0 +13061,35.1,-1.1,0 +13083,35.1,-1,0 +13106,0,-1,2 +13107,37.2,-1,0 +13150,37.2,-0.9,0 +13166,37.2,-0.8,0 +13198,37.2,-0.7,0 +13233,37.2,-0.8,0 +13333,37.2,-0.7,0 +13336,0,-0.7,2 +13337,41.4,-0.7,0 +13346,41.4,-0.8,0 +13391,41.4,-0.7,0 +13441,41.4,-0.8,0 +13461,41.4,-0.9,0 +13473,41.4,-1,0 +13479,41.4,-1.1,0 +13488,41.4,-1.2,0 +13494,36.8,-1.2,0 +13498,36.8,-1.3,0 +13527,43.7,-1.3,0 +13568,43.7,-1.4,0 +13579,43.7,-1.5,0 +13586,43.7,-1.6,0 +13593,43.7,-1.7,0 +13598,43.7,-1.8,0 +13603,43.7,-1.9,0 +13605,43.7,-2,0 +13610,43.7,-2.1,0 +13617,43.7,-2.2,0 +13622,43.7,-2.3,0 +13634,43.7,-2.4,0 +13658,43.7,-2.5,0 +13673,43.7,-2.6,0 +13682,43.7,-2.7,0 +13689,43.7,-2.8,0 +13692,0,-2.8,2 +13693,23.2,-2.8,0 +13696,23.2,-2.9,0 +13702,23.2,-3,0 +13710,23.2,-3.1,0 +13753,0,-3.1,13 +13754,27.8,-3.1,0 +13755,27.8,-3.2,0 +13771,27.8,-3.3,0 +13791,27.8,-3.4,0 +13840,14.7,-3.4,0 +13844,14.7,-3.3,0 +13855,35.7,-3.3,0 +13860,35.7,-3.2,0 +13871,35.7,-3.1,0 +13886,35.7,-3,0 +13917,35.7,-2.9,0 +13934,35.7,-2.8,0 +13944,35.7,-2.7,0 +13952,35.7,-2.6,0 +13962,35.7,-2.5,0 +13972,35.7,-2.4,0 +13993,35.7,-2.3,0 +14004,0,-2.3,2 +14005,44.6,-2.3,0 +14039,44.6,-2.2,0 +14064,44.6,-2.1,0 +14102,44.6,-2.2,0 +14129,44.6,-2.3,0 +14171,44.6,-2.4,0 +14198,44.6,-2.5,0 +14210,44.6,-2.6,0 +14218,38.9,-2.6,0 +14220,38.9,-2.7,0 +14231,38.9,-2.8,0 +14250,38.9,-2.9,0 +14277,38.9,-3,0 +14290,38.9,-3.1,0 +14299,38.9,-3.2,0 +14308,24.2,-3.2,0 +14309,24.2,-3.3,0 +14325,24.2,-3.4,0 +14361,14.2,-3.5,0 +14388,10,-3.4,0 +14402,0,-3.4,10.2 +14403,10,-3.4,0 +14404,10,-3.5,0 +14424,10,-3.4,0 +14427,0,-3.5,17.8 +14428,12.4,-3.5,0 +14473,12.4,-3.4,0 +14483,12.4,-3.3,0 +14496,12.4,-3.2,0 +14497,0,-3.3,75.2 +14498,21.9,-3.3,0 +14500,21.9,-3.3,0 +14513,21.9,-3.4,0 +14549,21.9,-3.3,0 +14553,0,-3.2,75.2 +14554,15.3,-3.2,0 +14563,15.3,-3.1,0 +14571,15.3,-3,0 +14577,15.4,-2.9,0 +14579,0,-2.9,52.2 +14580,20.9,-2.9,0 +14585,20.9,-2.8,0 +14594,20.9,-2.7,0 +14603,20.9,-2.6,0 +14612,20.9,-2.5,0 +14618,20.9,-2.4,0 +14623,20.9,-2.3,0 +14624,0,-2.4,31 +14625,24.6,-2.4,0 +14631,24.6,-2.2,0 +14638,24.6,-2.1,0 +14644,24.6,-2,0 +14650,24.6,-1.9,0 +14655,24.6,-1.8,0 +14662,24.6,-1.7,0 +14671,24.6,-1.6,0 +14688,24.6,-1.5,0 +14705,0,-1.5,2 +14706,41.5,-1.5,0 +14714,41.5,-1.3,0 +14721,41.5,-1.2,0 +14728,41.5,-1.1,0 +14733,41.5,-1,0 +14740,41.5,-0.9,0 +14746,41.5,-0.8,0 +14758,41.5,-0.7,0 +14808,49.7,-0.7,0 +14939,49.7,-0.6,0 +14952,49.7,-0.5,0 +14962,49.7,-0.4,0 +14974,43.5,-0.4,0 +14976,43.5,-0.3,0 +14986,49.6,-0.3,0 +15231,49.6,-0.2,0 +15239,0,-0.2,2 +15240,17.6,-0.2,0 +15251,17.6,-0.1,0 +15268,17.6,0,0 +15289,14.3,0,0 +15290,31.9,0,0 +15412,31.9,0.1,0 +15422,35.4,0.1,0 +15436,35.4,0.2,0 +15511,35.4,0.3,0 +15535,12.5,0.3,0 +15539,32.7,0.3,0 +15634,32.7,0.2,0 +15640,42.6,0.2,0 +15664,42.6,0.1,0 +15773,47.7,0.1,0 +15806,47.7,0,0 +15848,55.9,0,0 +16059,55.9,0.1,0 +16102,55.9,0.2,0 +16157,55.9,0.1,0 +16182,55.9,0.2,0 +16184,0,0.2,62 +16185,31.6,0.2,0 +16187,31.6,0.1,0 +16216,31.6,0.2,0 +16236,31.6,0.3,0 +16247,31.6,0.4,0 +16255,31.6,0.5,0 +16267,31.6,0.6,0 +16288,31.6,0.7,0 +16329,31.6,0.8,0 +16339,31.6,0.9,0 +16344,0,1,2.8 +16345,26.9,1,0 +16347,26.9,1,0 +16355,26.9,1.1,0 +16364,26.9,1.2,0 +16376,26.9,1.3,0 +16416,26.9,1.4,0 +16435,26.9,1.5,0 +16447,26.9,1.6,0 +16463,26.9,1.7,0 +16465,0,1.7,15.4 +16466,39.2,1.7,0 +16501,39.2,1.8,0 +16631,39.2,1.9,0 +16688,39.2,2,0 +16689,0,2,3.2 +16690,35.5,2,0 +16748,35.5,2.1,0 +16773,35.5,2.2,0 +16795,35.5,2.3,0 +16840,35.5,2.4,0 +16882,0,2.4,4 +16883,38.9,2.4,0 +16884,38.9,2.4,0 +16922,38.9,2.5,0 +16970,38.9,2.6,0 +17002,38.9,2.7,0 +17017,38.9,2.8,0 +17032,38.9,2.9,0 +17052,38.9,3,0 +17068,38.9,3.1,0 +17080,38.9,3.2,0 +17088,38.9,3.3,0 +17096,38.9,3.4,0 +17108,38.9,3.5,0 +17130,38.9,3.6,0 +17152,38.9,3.7,0 +17164,24.8,3.8,0 +17175,24.8,3.9,0 +17225,0,3.9,8 +17226,23.7,3.9,0 +17270,23.7,4.1,0 +17305,0,4,25.2 +17306,33.1,4,0 +17307,33.1,4,0 +17331,33.1,3.9,0 +17344,33.1,3.8,0 +17359,33.1,3.7,0 +17381,33.1,3.6,0 +17394,36.4,3.6,0 +17398,36.4,3.5,0 +17407,36.4,3.4,0 +17415,36.4,3.3,0 +17421,36.4,3.2,0 +17427,36.4,3.1,0 +17435,36.4,3,0 +17445,36.4,2.9,0 +17471,36.4,2.8,0 +17486,36.4,2.7,0 +17496,36.4,2.6,0 +17503,36.4,2.5,0 +17508,36.4,2.4,0 +17514,36.4,2.3,0 +17520,36.4,2.2,0 +17531,0,2.1,4.8 +17532,23.3,2.1,0 +17533,23.3,2.1,0 +17547,23.3,2,0 +17567,23.3,1.9,0 +17578,23.3,1.8,0 +17587,0,1.7,2 +17588,42.4,1.7,0 +17594,42.4,1.6,0 +17603,42.4,1.5,0 +17619,42.4,1.4,0 +17651,42.4,1.3,0 +17665,42.4,1.2,0 +17675,42.4,1.1,0 +17685,42.4,1,0 +17697,52.6,1,0 +17706,52.6,0.9,0 +17784,52.6,0.8,0 +17817,52.6,0.7,0 +17848,22.9,0.7,0 +17885,22.9,0.8,0 +17886,0,0.8,57.8 +17887,37.6,0.8,0 +17889,37.6,0.7,0 +17903,37.6,0.8,0 +17941,37.6,0.9,0 +18035,37.6,1,0 +18038,0,1,0.6 +18039,28.9,1,0 +18051,28.9,1.1,0 +18068,28.9,1.2,0 +18144,28.9,1.3,0 +18163,28.9,1.4,0 +18180,28.9,1.5,0 +18204,0,1.6,14.2 +18205,30.3,1.6,0 +18244,30.3,1.6,0 +18280,30.3,1.7,0 +18348,32.6,1.6,0 +18396,36.9,1.6,0 +18410,36.9,1.5,0 +18436,36.9,1.4,0 +18450,36.9,1.3,0 +18466,36.9,1.2,0 +18498,36.9,1.1,0 +18514,36.9,1,0 +18524,0,0.9,2.2 +18525,34.9,0.9,0 +18526,34.9,0.9,0 +18534,34.9,0.8,0 +18549,34.9,0.7,0 +18603,34.9,0.6,0 +18619,34.9,0.5,0 +18630,34.9,0.4,0 +18642,34.9,0.3,0 +18665,0,0.3,2 +18666,10,0.3,0 +18667,10,0.3,0 +18686,0,0.2,19.8 +18687,38.1,0.2,0 +18776,38.1,0.2,0 +18791,38.1,0.1,0 +18801,38.1,0,0 +18810,38.1,-0.1,0 +18820,38.1,-0.2,0 +18830,33.7,-0.2,0 +18837,33.7,-0.3,0 +18857,37,-0.3,0 +18882,37,-0.2,0 +18908,37,-0.3,0 +18927,37,-0.4,0 +18937,37,-0.5,0 +18945,39.6,-0.6,0 +18951,39.6,-0.7,0 +18960,39.6,-0.8,0 +18970,39.6,-0.9,0 +19018,39.6,-1,0 +19036,39.6,-1.1,0 +19046,39.6,-1.2,0 +19054,39.6,-1.3,0 +19063,39.6,-1.4,0 +19073,28.8,-1.4,0 +19076,28.8,-1.5,0 +19124,0,-1.5,28.2 +19125,12.7,-1.5,0 +19128,12.7,-1.6,0 +19143,12.7,-1.7,0 +19159,0,-1.7,59.6 +19160,35.7,-1.7,0 +19162,35.7,-1.8,0 +19259,27.1,-1.8,0 +19323,27.1,-1.7,0 +19338,0,-1.7,6.2 +19339,16.8,-1.7,0 +19365,16.8,-1.6,0 +19378,25.2,-1.6,0 +19440,0,-1.6,9.4 +19441,38.5,-1.6,0 +19442,38.5,-1.6,0 +19643,38.5,-1.5,0 +19649,23.1,-1.5,0 +19697,23.1,-1.4,0 +19699,0,-1.4,72 +19700,19.4,-1.4,0 +19701,19.4,-1.4,0 +19705,19.4,-1.5,0 +19745,0,-1.5,6.6 +19746,29.9,-1.5,0 +19782,29.9,-1.5,0 +19835,26.4,-1.5,0 +19840,34.7,-1.5,0 +19885,34.7,-1.4,0 +19978,0,-1.4,19.4 +19979,17.6,-1.4,0 +20040,17.6,-1.2,0 +20043,0,-1.3,16.4 +20044,32,-1.3,0 +20048,32,-1.3,0 +20221,32,-1.2,0 +20239,0,-1.2,42.2 +20240,28.8,-1.2,0 +20308,33.7,-1.2,0 +20425,18.5,-1.2,0 +20432,27,-1.2,0 +20496,0,-1.2,18 +20497,12.2,-1.2,0 +20514,12.2,-1.2,0 +20520,12.2,-1.1,0 +20523,21.6,-1.1,0 +20526,21.6,-1.2,0 +20545,21.6,-1.1,0 +20568,17.2,-1.1,0 +20574,26.2,-1.1,0 +20659,0,-1.1,36 +20660,22.1,-1.1,0 +20684,22.1,-1.2,0 +20719,22.1,-1.1,0 +20730,0,-1.2,7.4 +20731,38.5,-1.2,0 +20754,38.5,-1.2,0 +20804,38.5,-1.3,0 +20898,30,-1.3,0 +20920,30,-1.4,0 +20938,30,-1.5,0 +20994,0,-1.5,6.6 +20995,34.4,-1.5,0 +21013,34.4,-1.7,0 +21028,34.4,-1.8,0 +21040,34.4,-1.9,0 +21055,34.4,-2,0 +21114,34.4,-2.1,0 +21125,0,-2,6.6 +21126,15.1,-2,0 +21127,15.1,-2.1,0 +21158,10,-2.1,0 +21159,27.5,-2.1,0 +21205,27.5,-2,0 +21256,27.5,-1.9,0 +21264,0,-1.9,8.4 +21265,10,-1.9,0 +21289,0,-1.9,19.4 +21290,44.4,-1.9,0 +21410,44.4,-2,0 +21507,44.4,-2.1,0 +21527,0,-2.1,61 +21528,33.6,-2.1,0 +21530,33.6,-2.2,0 +21551,33.6,-2.3,0 +21645,33.6,-2.4,0 +21657,33.5,-2.5,0 +21663,0,-2.5,8.4 +21664,32.4,-2.5,0 +21667,32.4,-2.6,0 +21677,32.4,-2.7,0 +21696,32.4,-2.8,0 +21753,32.4,-2.9,0 +21772,32.4,-3,0 +21839,32.4,-2.9,0 +21854,32.4,-2.8,0 +21855,0,-2.8,6.6 +21856,17.7,-2.8,0 +21877,17.7,-2.7,0 +21904,0,-2.7,126.6 +21905,25.2,-2.7,0 +21962,25.2,-2.6,0 +21973,25.2,-2.5,0 +21980,25.2,-2.4,0 +21987,11.5,-2.3,0 +21989,27.2,-2.3,0 +21997,27.2,-2.2,0 +22020,27.2,-2.1,0 +22033,27.2,-2.2,0 +22069,35,-2.2,0 +22072,35,-2.1,0 +22087,35,-2,0 +22094,35,-1.9,0 +22101,35,-1.8,0 +22105,35,-1.7,0 +22110,35,-1.6,0 +22116,35,-1.5,0 +22122,35,-1.4,0 +22130,35,-1.3,0 +22147,35,-1.2,0 +22148,31.8,-1.2,0 +22166,42.2,-1.2,0 +22191,42.2,-1.1,0 +22201,42.2,-1,0 +22209,42.2,-0.9,0 +22215,42.2,-0.8,0 +22221,42.2,-0.7,0 +22230,42.2,-0.6,0 +22247,42.2,-0.5,0 +22415,42.2,-0.6,0 +22469,42.2,-0.5,0 +22494,42.2,-0.4,0 +22506,42.2,-0.3,0 +22517,42.2,-0.2,0 +22534,42.2,-0.1,0 +22548,34.5,-0.1,0 +22585,34.5,0,0 +22598,34.5,0.1,0 +22607,34.5,0.2,0 +22615,34.5,0.3,0 +22624,34.5,0.4,0 +22625,10,0.4,0 +22637,25.8,0.4,0 +22679,25.8,0.5,0 +22698,25.8,0.6,0 +22707,25.8,0.7,0 +22717,25.8,0.8,0 +22727,25.8,0.9,0 +22735,0,0.9,11.2 +22736,27.2,0.9,0 +22737,27.2,0.9,0 +22746,27.2,1,0 +22781,27.2,1.1,0 +22794,27.2,1.2,0 +22805,27.2,1.3,0 +22817,27.2,1.4,0 +22856,27.2,1.5,0 +22878,0,1.5,17.4 +22879,38.4,1.5,0 +22880,38.4,1.5,0 +22891,38.4,1.6,0 +22932,38.4,1.7,0 +23042,38.4,1.8,0 +23077,38.4,2,0 +23096,0,2,10 +23097,30.3,2,0 +23098,30.3,1.9,0 +23127,30.3,2,0 +23165,30.3,2.1,0 +23187,30.3,2.2,0 +23278,30.3,2.3,0 +23285,10,2.3,0 +23286,12.1,2.3,0 +23299,0,2.3,8.6 +23300,37.6,2.3,0 +23367,37.6,2.4,0 +23411,37.6,2.5,0 +23429,37.6,2.6,0 +23443,37.6,2.7,0 +23472,37.6,2.8,0 +23492,37.6,2.9,0 +23505,37.6,3,0 +23515,37.6,3.1,0 +23534,37.6,3.2,0 +23575,37.6,3.3,0 +23590,25.8,3.3,0 +23592,25.8,3.4,0 +23607,25.8,3.5,0 +23646,0,3.6,31 +23647,18.2,3.6,0 +23657,18.2,3.6,0 +23680,18.2,3.7,0 +23697,22.6,3.7,0 +23722,22.6,3.6,0 +23742,20.4,3.6,0 +23744,20.4,3.5,0 +23766,20.4,3.4,0 +23796,20.4,3.3,0 +23806,20.4,3.2,0 +23810,32.6,3.2,0 +23814,32.6,3.1,0 +23821,32.6,3,0 +23827,32.6,2.9,0 +23833,32.6,2.8,0 +23840,32.6,2.7,0 +23854,32.6,2.6,0 +23893,32.6,2.5,0 +23904,32.6,2.4,0 +23910,32.6,2.3,0 +23916,32.6,2.2,0 +23920,32.6,2.1,0 +23924,32.6,2,0 +23929,32.6,1.9,0 +23935,32.6,1.8,0 +23941,0,1.8,45.8 +23942,19.3,1.8,0 +23943,19.3,1.7,0 +23951,19.3,1.5,0 +23979,0,1.5,16 +23980,20.6,1.5,0 +23983,20.6,1.5,0 +23998,20.6,1.4,0 +24007,20.6,1.3,0 +24013,26.6,1.3,0 +24016,26.6,1.2,0 +24025,26.6,1.1,0 +24036,26.6,1,0 +24055,30.3,1,0 +24158,0,1,51.2 +24159,25.8,1,0 +24217,37.9,1,0 +24254,38,0.9,0 +24283,46.9,0.9,0 +24285,46.9,0.8,0 +24386,46.9,0.9,0 +24415,46.9,1,0 +24422,0,1,11.2 +24423,38.2,1,0 +24474,38.2,1.1,0 +24490,38.2,1.2,0 +24502,38.2,1.3,0 +24507,41.3,1.3,0 +24513,41.3,1.4,0 +24535,41.3,1.5,0 +24571,41.3,1.6,0 +24590,41.3,1.7,0 +24617,0,1.7,52.8 +24618,46.9,1.7,0 +24619,46.9,1.7,0 +24648,46.9,1.8,0 +24721,46.9,1.7,0 +24761,46.9,1.6,0 +24822,46.9,1.5,0 +24847,46.9,1.4,0 +24902,46.9,1.3,0 +24905,46.9,1.4,0 +24906,0,1.4,5.4 +24907,11.8,1.4,0 +24947,10,1.3,0 +24948,33.8,1.3,0 +24952,33.8,1.2,0 +24993,33.8,1.1,0 +25019,33.8,1,0 +25061,0,1,10.2 +25062,10.3,1,0 +25074,10.3,0.9,0 +25090,28.9,0.8,0 +25105,28.9,0.7,0 +25166,26.4,0.7,0 +25178,26.4,0.6,0 +25180,30.9,0.6,0 +25196,30.9,0.5,0 +25214,30.9,0.4,0 +25280,34,0.4,0 +25344,34,0.3,0 +25360,26.2,0.3,0 +25385,16.7,0.3,0 +25391,26.4,0.3,0 +25458,0,0.3,7.4 +25459,14.9,0.3,0 +25495,0,0.4,22.6 +25496,26.7,0.4,0 +25564,40.8,0.3,0 +25659,40.8,0.4,0 +25684,40.8,0.5,0 +25736,0,0.5,15 +25737,24.1,0.5,0 +25811,0,0.5,26.6 +25812,39.2,0.5,0 +25840,39.2,0.6,0 +25855,39.2,0.7,0 +25867,39.2,0.8,0 +25879,39.2,0.9,0 +25994,39.2,1,0 +26008,39.2,1.1,0 +26019,39.2,1.2,0 +26027,39.2,1.5,0 +26030,0,1.5,38.6 +26031,27.4,1.5,0 +26040,27.4,1.5,0 +26072,27.4,1.6,0 +26085,27.4,1.7,0 +26094,27.4,1.8,0 +26104,27.4,1.9,0 +26119,27.4,2,0 +26144,0,2,101.6 +26145,30.9,2,0 +26165,30.9,2.1,0 +26180,30.9,2.2,0 +26195,30.9,2.3,0 +26266,30.9,2.4,0 +26295,30.9,2.5,0 +26299,0,2.5,8.6 +26300,23.3,2.5,0 +26321,23.3,2.6,0 +26367,31.2,2.6,0 +26372,31.2,2.7,0 +26413,31.2,2.8,0 +26485,31.2,3,0 +26502,0,3,2 +26503,14,3,0 +26542,0,2.9,8.4 +26543,32.3,2.9,0 +26544,32.3,2.9,0 +26549,32.3,3,0 +26578,32.3,3.1,0 +26697,32.3,3.2,0 +26722,32.3,3.1,0 +26736,32.3,3.2,0 +26771,32.3,3.3,0 +26773,0,3.3,9.6 +26774,34,3.3,0 +26786,34,3.4,0 +26802,34,3.5,0 +26847,34,3.6,0 +26861,28.9,3.6,0 +26864,28.9,3.7,0 +26869,32.9,3.7,0 +26875,32.9,3.8,0 +26888,32.9,3.9,0 +26911,32.9,4,0 +26947,32.9,3.9,0 +26980,29.4,3.9,0 +27033,29.4,3.7,0 +27055,0,3.7,56 +27056,16.6,3.7,0 +27058,16.6,3.7,0 +27068,16.6,3.6,0 +27077,16.6,3.5,0 +27086,10,3.4,0 +27089,17.5,3.4,0 +27095,17.5,3.3,0 +27109,17.5,3.2,0 +27119,0,3.2,6.4 +27120,23,3.2,0 +27129,23,3.1,0 +27140,23,3,0 +27147,23,2.9,0 +27154,23,2.8,0 +27160,23,2.7,0 +27162,10,2.7,0 +27163,46.2,2.7,0 +27166,46.2,2.6,0 +27171,46.2,2.5,0 +27180,46.2,2.4,0 +27198,46.2,2.3,0 +27235,46.2,2.2,0 +27246,46.2,2.1,0 +27251,46.2,2,0 +27258,46.2,1.9,0 +27263,46.2,1.8,0 +27270,46.2,1.7,0 +27275,46.2,1.6,0 +27285,46.2,1.5,0 +27337,46.2,1.4,0 +27352,46.2,1.3,0 +27361,46.2,1.2,0 +27369,46.2,1.1,0 +27379,0,1.1,43 +27380,30.9,1.1,0 +27391,30.9,0.9,0 +27454,30.9,0.7,0 +27469,0,0.7,36.6 +27470,62.9,0.7,0 +27471,62.9,0.7,0 +27485,62.9,0.6,0 +27583,62.9,0.5,0 +27608,62.9,0.4,0 +27629,62.9,0.3,0 +27958,62.9,0.2,0 +27972,62.9,0.1,0 +28049,0,0.1,40.8 +28050,14.6,0.1,0 +28072,43.2,0,0 +28133,43.2,-0.1,0 +28148,43.2,-0.2,0 +28161,43.2,-0.3,0 +28248,0,-0.3,6.8 +28249,49.3,-0.3,0 +28378,49.3,-0.4,0 +28405,49.3,-0.5,0 +28440,49.3,-0.6,0 +28481,49.3,-0.5,0 +28518,10,-0.5,0 +28519,12.8,-0.6,0 +28540,0,-0.6,12.6 +28541,26.7,-0.6,0 +28545,26.7,-0.6,0 +28576,26.7,-0.5,0 +28607,26.7,-0.4,0 +28608,17.8,-0.4,0 +28616,43.8,-0.4,0 +28640,43.8,-0.3,0 +28711,43.8,-0.4,0 +28770,43.8,-0.3,0 +28790,43.8,-0.2,0 +28802,43.8,-0.1,0 +28811,43.8,0,0 +28814,0,0,9.6 +28815,40,0,0 +28823,40,0.1,0 +28904,40,0.2,0 +28922,40,0.3,0 +28932,40,0.4,0 +28943,40,0.5,0 +28965,40,0.6,0 +29015,23.4,0.6,0 +29051,0,0.6,67.4 +29052,30.7,0.6,0 +29147,0,0.7,7.6 +29148,30.2,0.7,0 +29160,30.2,0.6,0 +29235,0,0.6,57.8 +29236,34,0.6,0 +29237,34,0.6,0 +29441,0,0.6,7.8 +29442,32.1,0.6,0 +29443,32.1,0.6,0 +29540,19.7,0.7,0 +29545,30.1,0.7,0 +29578,30.1,0.8,0 +29640,0,0.9,6.8 +29641,33.2,0.9,0 +29655,33.2,0.9,0 +29696,33.2,1,0 +29722,33.2,0.9,0 +29758,33.2,0.8,0 +29778,15.5,0.8,0 +29784,30.5,0.8,0 +29794,30.5,0.7,0 +29835,30.5,0.6,0 +29846,30.5,0.5,0 +29856,30.5,0.4,0 +29866,30.5,0.3,0 +29872,18.2,0.3,0 +29881,18.2,0.2,0 +29932,0,0.2,7.6 +29933,19.3,0.2,0 +29940,19.3,0.1,0 +29953,19.3,0,0 +29963,19.3,-0.1,0 +29974,19.3,-0.2,0 +29980,43.7,-0.2,0 +29993,43.7,-0.3,0 +30085,43.7,-0.4,0 +30099,43.7,-0.5,0 +30160,0,-0.5,20 +30161,23.3,-0.5,0 +30182,23.3,-0.6,0 +30208,0,-0.6,2 +30209,22.2,-0.6,0 +30250,0,-0.6,5.2 +30251,38.8,-0.6,0 +30361,40.6,-0.7,0 +30483,0,-0.7,2 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Hybrid_Parameters.vhctl b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Hybrid_Parameters.vhctl new file mode 100644 index 0000000000000000000000000000000000000000..2f2ed814fcff9e24e146e56f0d0ff41378f5a386 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Hybrid_Parameters.vhctl @@ -0,0 +1,18 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2020-09-07T15:28:08.3781385Z", + "AppVersion": "3", + "FileVersion": 2 + }, + "Body": { + "----EquivalenceFactor": 2.0, + "MinSoC": 24.0, + "----MaxSoC": 80.0, + "TargetSoC": 70.0, + "----AuxBufferTime": 5.0, + "----AuxBufferChgTime": 5.0, + "----MinICEOnTime": 10.0, + "GensetMinOptPowerFactor": 0.2 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/MaxCurrent.vimax b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/MaxCurrent.vimax new file mode 100644 index 0000000000000000000000000000000000000000..adf28fb9b5ced83296d2634fc6727e2d1b82357e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/MaxCurrent.vimax @@ -0,0 +1,3 @@ +SOC, I_charge, I_discharge +0, 1620, 1620 +100, 1620, 1620 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/REESS_SOC_curve.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/REESS_SOC_curve.vbatv new file mode 100644 index 0000000000000000000000000000000000000000..745afc9500ba00a1a4a49acb4752c88dd2105a4c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/REESS_SOC_curve.vbatv @@ -0,0 +1,13 @@ +SOC, V +0,718.4170472 +10,746.8408459 +20,763.1375469 +30,771.851826 +40,776.2574768 +50,778.6145358 +60,780.4264075 +70,782.6969898 +80,786.1877986 +90,791.6750932 +100,800.2070015 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Smart_BusAux.vaux b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Smart_BusAux.vaux new file mode 100644 index 0000000000000000000000000000000000000000..c18841dd75ff88449a60fcdfc81052fbfd87da05 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Smart_BusAux.vaux @@ -0,0 +1,34 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-06T13:05:34.7950328Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "PneumaticSystem": { + "CompressorMap": "", + "AverageAirDemand": 0.0, + "SmartAirCompression": false, + "GearRatio": 0.0 + }, + "ElectricSystem": { + "AlternatorEfficiency": 0.0, + "CurrentDemand": 0.0, + "CurrentDemandEngineOffDriving": 172.85, + "CurrentDemandEngineOffStandstill": 128.21, + "AlternatorType": "Conventional", + "ElectricStorageCapacity": 0.0, + "BatteryEfficiency": 1.0, + "MaxAlternatorPower": 0.0, + "DCDCConverterEfficiency": 0.98, + "ESSupplyFromHEVREESS": true + }, + "HVAC": { + "ElectricPowerDemand": 0.0, + "MechanicalPowerDemand": 0.0, + "AuxHeaterPower": 0.0, + "AverageHeatingDemand": 0.0 + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Suburban.vdri b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Suburban.vdri new file mode 100644 index 0000000000000000000000000000000000000000..3c2a796becfe9acff1eb7b99b7a1f29b4426c692 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Suburban.vdri @@ -0,0 +1,3665 @@ +<s>,<v>,<grad>,<stop> +0,0,-3.3,0.1 +1,32.3,-3.3,0 +2,32.3,-2.9,0 +3,32.3,-2.8,0 +5,32.3,-2.7,0 +7,32.3,-2.6,0 +10,32.3,-2.5,0 +13,32.3,-2.4,0 +15,32.3,-2.3,0 +18,32.3,-2.2,0 +20,32.3,-2.1,0 +23,32.3,-2,0 +24,32.3,-1.9,0 +27,32.3,-1.8,0 +28,32.3,-1.7,0 +31,32.3,-1.6,0 +32,32.3,-1.5,0 +34,32.3,-1.4,0 +35,32.3,-1.3,0 +38,32.3,-1.2,0 +40,32.3,-1.1,0 +41,32.3,-1,0 +44,32.3,-0.9,0 +46,32.3,-0.8,0 +47,32.3,-0.7,0 +50,32.3,-0.6,0 +52,32.3,-0.5,0 +55,32.3,-0.4,0 +59,32.3,-0.3,0 +62,32.3,-0.2,0 +65,32.3,-0.1,0 +84,32.3,-0.2,0 +90,32.3,-0.3,0 +93,32.3,-0.4,0 +95,52.3,-0.4,0 +97,52.3,-0.5,0 +101,52.3,-0.6,0 +104,52.3,-0.7,0 +108,52.3,-0.8,0 +112,52.3,-0.9,0 +114,52.3,-1,0 +120,52.3,-1.1,0 +124,52.3,-1.2,0 +150,52.3,-1.1,0 +155,52.3,-1,0 +160,52.3,-0.9,0 +165,52.3,-0.8,0 +171,52.3,-0.7,0 +176,52.3,-0.6,0 +182,52.3,-0.5,0 +202,52.3,-0.6,0 +208,52.3,-0.7,0 +214,52.3,-0.8,0 +216,52.3,-0.9,0 +219,52.3,-1,0 +222,52.3,-1.1,0 +225,52.3,-1.2,0 +227,52.3,-1.3,0 +232,52.3,-1.4,0 +235,52.3,-1.5,0 +237,52.3,-1.6,0 +239,52.3,-1.7,0 +243,52.3,-1.8,0 +246,52.3,-1.9,0 +251,52.3,-2,0 +257,52.3,-2.1,0 +270,52.3,-2.3,0 +272,52.3,-2.4,0 +273,52.3,-2.6,0 +274,52.3,-2.5,0 +275,18.5,-2.1,0 +276,18.5,-2,0 +277,18.5,-1.9,0 +279,18.5,-1.8,0 +280,18.5,-1.7,0 +282,18.5,-1.6,0 +284,18.5,-1.5,0 +286,18.5,-1.4,0 +288,18.5,-1.3,0 +290,18.5,-1.2,0 +292,18.5,-1.1,0 +295,18.5,-1,0 +297,18.5,-0.9,0 +299,18.5,-0.8,0 +301,18.5,-0.7,0 +304,18.5,-0.6,0 +306,18.5,-0.5,0 +308,18.5,-0.4,0 +311,11.3,-0.3,0 +312,37,-0.3,0 +313,37,-0.2,0 +316,37,-0.1,0 +317,37,0,0 +320,37,0.1,0 +322,37,0.2,0 +325,37,0.3,0 +330,37,0.4,0 +333,37,0.5,0 +339,37,0.6,0 +346,37,0.7,0 +362,37,0.8,0 +384,37,0.7,0 +396,37,0.6,0 +402,37,0.5,0 +407,37,0.4,0 +412,37,0.3,0 +416,37,0.2,0 +419,37,0.1,0 +421,37,0,0 +422,37,-0.1,0 +423,37,-0.3,0 +424,0,-0.8,12.4 +425,55.2,-0.8,0 +426,55.2,-0.3,0 +427,55.2,-0.2,0 +438,55.2,-0.3,0 +444,55.2,-0.4,0 +456,55.2,-0.5,0 +461,55.2,-0.4,0 +472,55.2,-0.3,0 +478,55.2,-0.2,0 +483,55.2,-0.1,0 +485,55.2,0,0 +489,55.2,0.1,0 +492,55.2,0.2,0 +496,55.2,0.3,0 +498,55.2,0.4,0 +501,55.2,0.5,0 +506,55.2,0.6,0 +508,55.2,0.7,0 +513,55.2,0.8,0 +516,55.2,0.9,0 +521,55.2,1,0 +526,55.2,1.1,0 +531,55.2,1.2,0 +542,55.2,1.3,0 +583,55.2,1.2,0 +598,55.2,1.1,0 +604,55.2,1,0 +611,55.2,0.9,0 +614,55.2,0.8,0 +620,55.2,0.7,0 +623,55.2,0.6,0 +626,55.2,0.5,0 +629,55.2,0.4,0 +632,55.2,0.3,0 +635,55.2,0.2,0 +638,55.2,0.1,0 +644,55.2,0,0 +647,55.2,-0.1,0 +649,55.2,-0.2,0 +652,55.2,-0.3,0 +658,55.2,-0.4,0 +661,55.2,-0.5,0 +669,55.2,-0.6,0 +679,55.2,-0.7,0 +684,55.2,-0.6,0 +691,43.6,-0.6,0 +698,43.6,-0.5,0 +705,43.6,-0.4,0 +710,43.6,-0.3,0 +717,43.6,-0.2,0 +722,43.6,-0.1,0 +729,43.6,0,0 +753,43.6,-0.1,0 +760,43.6,-0.2,0 +765,43.6,-0.3,0 +767,43.6,-0.4,0 +772,43.6,-0.5,0 +774,43.6,-0.6,0 +776,43.6,-0.7,0 +778,43.6,-0.8,0 +782,43.6,-0.9,0 +784,43.6,-1,0 +786,43.6,-1.1,0 +788,43.6,-1.2,0 +791,43.6,-1.3,0 +793,43.6,-1.4,0 +794,43.6,-1.5,0 +798,43.6,-1.6,0 +800,43.6,-1.7,0 +803,43.6,-1.8,0 +805,43.6,-1.9,0 +808,43.6,-2,0 +810,43.6,-2.1,0 +811,43.6,-2.2,0 +812,43.6,-2.5,0 +813,43.6,-1.9,0 +814,0,-2.7,3.6 +815,39.6,-2.7,0 +816,39.6,-2.2,0 +821,39.6,-2.1,0 +829,39.6,-2,0 +834,39.6,-1.9,0 +837,39.6,-1.8,0 +840,39.6,-1.7,0 +843,39.6,-1.6,0 +845,39.6,-1.5,0 +848,39.6,-1.4,0 +851,39.6,-1.3,0 +853,39.6,-1.2,0 +856,39.6,-1.1,0 +860,39.6,-1,0 +863,39.6,-0.9,0 +867,39.6,-0.8,0 +872,39.6,-0.7,0 +877,39.6,-0.6,0 +882,39.6,-0.5,0 +890,39.6,-0.4,0 +900,39.6,-0.3,0 +908,39.6,-0.2,0 +917,39.6,-0.1,0 +926,39.6,0,0 +932,39.6,0.1,0 +938,39.6,0.2,0 +945,39.6,0.3,0 +951,39.6,0.4,0 +957,39.6,0.5,0 +966,39.6,0.6,0 +997,42.2,0.5,0 +1003,42.2,0.4,0 +1010,42.2,0.3,0 +1015,42.2,0.2,0 +1022,42.2,0.1,0 +1029,42.2,0,0 +1057,42.2,0.1,0 +1064,39.6,0.2,0 +1071,39.6,0.3,0 +1077,39.6,0.4,0 +1084,39.6,0.5,0 +1108,39.6,0.4,0 +1115,39.6,0.3,0 +1119,39.6,0.2,0 +1124,39.6,0.1,0 +1128,39.6,0,0 +1133,39.6,-0.1,0 +1137,39.6,-0.2,0 +1141,39.6,-0.3,0 +1146,39.6,-0.4,0 +1152,39.6,-0.5,0 +1162,39.6,-0.6,0 +1173,39.6,-0.5,0 +1186,39.6,-0.4,0 +1188,44.8,-0.4,0 +1192,44.8,-0.3,0 +1199,44.8,-0.2,0 +1203,44.8,-0.1,0 +1208,44.8,0,0 +1210,44.8,0.1,0 +1215,44.8,0.2,0 +1220,44.8,0.3,0 +1225,44.8,0.4,0 +1227,44.8,0.5,0 +1232,44.8,0.6,0 +1237,44.8,0.7,0 +1241,44.8,0.8,0 +1249,44.8,0.9,0 +1261,44.8,1,0 +1264,44.8,0.9,0 +1279,44.8,0.8,0 +1286,44.8,0.7,0 +1291,44.8,0.6,0 +1296,44.8,0.5,0 +1301,44.8,0.4,0 +1306,44.8,0.3,0 +1311,44.8,0.2,0 +1316,44.8,0.1,0 +1321,44.8,0,0 +1326,44.8,-0.1,0 +1333,42,-0.2,0 +1364,42,-0.1,0 +1371,42,0,0 +1378,42,0.1,0 +1383,42,0.2,0 +1390,42,0.3,0 +1394,46,0.3,0 +1399,46,0.4,0 +1421,46,0.3,0 +1431,46,0.2,0 +1438,46,0.1,0 +1443,46,0,0 +1451,46,-0.1,0 +1461,46,-0.2,0 +1501,46,-0.1,0 +1518,46,-0.2,0 +1532,46,-0.3,0 +1538,46,-0.4,0 +1544,46,-0.5,0 +1550,46,-0.6,0 +1557,46,-0.7,0 +1563,46,-0.8,0 +1572,46,-0.9,0 +1582,46,-1,0 +1585,46,-1.2,0 +1586,46,-1.3,0 +1587,0,-0.7,32.4 +1588,15.8,-0.7,0 +1589,15.8,-1,0 +1590,15.8,-0.9,0 +1592,15.8,-0.8,0 +1596,15.8,-0.7,0 +1602,15.8,-0.6,0 +1608,15.8,-0.5,0 +1613,15.8,-0.4,0 +1616,42.2,-0.4,0 +1619,42.2,-0.3,0 +1624,42.2,-0.2,0 +1630,42.2,-0.1,0 +1655,42.2,-0.2,0 +1664,42.2,-0.3,0 +1672,42.2,-0.4,0 +1683,42.2,-0.5,0 +1699,42.2,-0.4,0 +1706,42.2,-0.3,0 +1710,42.2,-0.2,0 +1715,42.2,-0.1,0 +1720,42.2,0,0 +1722,42.2,0.1,0 +1726,42.2,0.2,0 +1731,42.2,0.3,0 +1733,42.2,0.4,0 +1737,42.2,0.5,0 +1741,42.2,0.6,0 +1745,42.2,0.7,0 +1751,42.2,0.8,0 +1767,42.2,0.7,0 +1769,42.2,0.6,0 +1770,42.2,0.5,0 +1771,42.2,0.4,0 +1772,42.2,0,0 +1773,0,0.1,12 +1774,16.7,0.1,0 +1775,16.7,0.5,0 +1776,16.7,0.6,0 +1778,16.7,0.7,0 +1782,16.7,0.6,0 +1789,16.7,0.5,0 +1790,32,0.5,0 +1798,32,0.4,0 +1806,32,0.3,0 +1813,32,0.2,0 +1820,32,0.1,0 +1825,32,0,0 +1828,32,-0.1,0 +1834,32,-0.2,0 +1837,32,-0.3,0 +1841,32,-0.4,0 +1844,32,-0.5,0 +1849,32,-0.6,0 +1852,32,-0.7,0 +1857,32,-0.8,0 +1860,32,-0.9,0 +1862,32,-1,0 +1863,32,-1.2,0 +1864,0,-0.7,23.8 +1865,41.3,-0.7,0 +1866,41.3,-1.1,0 +1868,41.3,-1,0 +1872,41.3,-0.9,0 +1880,41.3,-0.8,0 +1885,41.3,-0.7,0 +1889,41.3,-0.6,0 +1894,41.3,-0.5,0 +1897,41.3,-0.4,0 +1900,41.3,-0.3,0 +1903,41.3,-0.2,0 +1909,41.3,-0.1,0 +1912,41.3,0,0 +1916,41.3,0.1,0 +1922,41.3,0.2,0 +1951,41.3,0.1,0 +1960,41.3,0,0 +1968,41.3,-0.1,0 +1974,41.3,-0.2,0 +1981,41.3,-0.3,0 +1987,41.3,-0.4,0 +1990,41.3,-0.5,0 +1992,41.3,-0.6,0 +1994,42.1,-0.6,0 +1999,42.1,-0.5,0 +2014,42.1,-0.6,0 +2034,42.1,-0.5,0 +2048,42.1,-0.4,0 +2054,42.1,-0.3,0 +2061,42.1,-0.2,0 +2067,42.1,-0.1,0 +2072,42.1,0,0 +2076,42.1,0.1,0 +2083,42.1,0.2,0 +2090,42.1,0.3,0 +2100,42.1,0.4,0 +2119,42.1,0.3,0 +2129,42.1,0.2,0 +2135,42.1,0.1,0 +2136,41.1,0.1,0 +2140,41.1,0,0 +2146,41.1,-0.1,0 +2150,41.1,-0.2,0 +2155,41.1,-0.3,0 +2160,41.1,-0.4,0 +2167,41.1,-0.5,0 +2185,41.1,-0.4,0 +2191,41.1,-0.3,0 +2195,41.1,-0.2,0 +2200,41.1,-0.1,0 +2204,41.1,0,0 +2207,41.1,0.1,0 +2211,41.1,0.2,0 +2216,41.1,0.3,0 +2218,41.1,0.4,0 +2225,41.1,0.5,0 +2231,41.1,0.6,0 +2247,41.1,0.5,0 +2255,41.1,0.4,0 +2262,41.1,0.3,0 +2265,41.1,0.2,0 +2269,12.3,0.2,0 +2270,12.3,0.1,0 +2279,12.3,0,0 +2284,12.3,-0.1,0 +2289,12.3,-0.2,0 +2296,12.3,-0.4,0 +2297,12.3,-0.6,0 +2298,12.3,-0.8,0 +2299,12.3,-0.5,0 +2300,12.3,-0.4,0 +2301,12.3,-0.3,0 +2303,12.3,-0.2,0 +2308,12.3,-0.3,0 +2314,12.3,-0.4,0 +2315,12.3,-0.5,0 +2321,0,-0.6,1.2 +2322,10.6,-0.6,0 +2323,10.6,-0.4,0 +2324,10.6,-0.3,0 +2325,10.6,-0.2,0 +2331,10.6,-0.1,0 +2336,27,-0.1,0 +2337,27,0,0 +2340,27,0.1,0 +2342,27,0.2,0 +2345,27,0.3,0 +2348,27,0.4,0 +2353,27,0.5,0 +2356,27,0.6,0 +2361,27,0.7,0 +2368,27,0.8,0 +2383,27,0.7,0 +2390,27,0.6,0 +2396,27,0.5,0 +2401,27,0.4,0 +2406,27,0.3,0 +2409,27,0.2,0 +2411,27,0.1,0 +2412,27,-0.1,0 +2413,0,0.4,9.6 +2414,23.9,0.4,0 +2415,23.9,-0.1,0 +2416,23.9,0,0 +2417,23.9,0.1,0 +2423,23.9,0.2,0 +2443,23.9,0.3,0 +2480,23.9,0.2,0 +2496,23.9,0.1,0 +2498,23.9,0,0 +2499,23.9,-0.3,0 +2500,0,0.1,6.8 +2501,30.7,0.1,0 +2502,30.7,0.1,0 +2504,30.7,0.2,0 +2505,30.7,0.3,0 +2507,30.7,0.4,0 +2511,30.7,0.5,0 +2515,30.7,0.6,0 +2521,30.7,0.7,0 +2524,30.7,0.8,0 +2528,30.7,0.9,0 +2533,30.7,1,0 +2537,30.7,1.1,0 +2540,30.7,1.2,0 +2545,30.7,1.3,0 +2549,30.7,1.4,0 +2554,30.7,1.5,0 +2560,30.7,1.6,0 +2574,30.7,1.5,0 +2579,30.7,1.4,0 +2581,30.7,1.3,0 +2584,30.7,1.2,0 +2585,30.7,1,0 +2586,30.7,0.8,0 +2587,30.7,0.5,0 +2588,0,1.4,7.6 +2589,50.1,1.4,0 +2590,50.1,1,0 +2598,50.1,0.9,0 +2602,50.1,0.8,0 +2606,50.1,0.7,0 +2612,50.1,0.6,0 +2635,50.1,0.7,0 +2641,50.1,0.8,0 +2647,50.1,0.9,0 +2653,50.1,1,0 +2662,50.1,1.1,0 +2672,50.1,1,0 +2681,50.1,0.9,0 +2688,50.1,0.8,0 +2692,50.1,0.7,0 +2697,50.1,0.6,0 +2700,50.1,0.5,0 +2705,50.1,0.4,0 +2710,50.1,0.3,0 +2712,50.1,0.2,0 +2718,50.1,0.1,0 +2723,50.1,0,0 +2732,50.1,-0.1,0 +2743,50.1,-0.2,0 +2757,50.1,-0.3,0 +2771,50.1,-0.4,0 +2859,50.1,-0.5,0 +2864,50.1,-0.6,0 +2869,50.1,-0.7,0 +2874,50.1,-0.8,0 +2877,50.1,-0.9,0 +2881,50.1,-1,0 +2884,50.1,-1.1,0 +2886,50.1,-1.2,0 +2888,50.1,-1.3,0 +2892,50.1,-1.4,0 +2894,50.1,-1.5,0 +2898,50.1,-1.6,0 +2900,50.1,-1.7,0 +2905,50.1,-1.8,0 +2909,50.1,-1.9,0 +2914,50.1,-2,0 +2916,50.1,-2.1,0 +2917,50.1,-2.5,0 +2918,0,-3,21.4 +2919,48.7,-3,0 +2920,48.7,-2.1,0 +2921,48.7,-2,0 +2923,48.7,-1.9,0 +2926,48.7,-1.8,0 +2928,48.7,-1.7,0 +2932,48.7,-1.6,0 +2934,48.7,-1.5,0 +2936,48.7,-1.4,0 +2939,48.7,-1.3,0 +2940,48.7,-1.2,0 +2943,48.7,-1.1,0 +2944,48.7,-1,0 +2946,48.7,-0.9,0 +2949,48.7,-0.8,0 +2950,48.7,-0.7,0 +2952,48.7,-0.6,0 +2954,48.7,-0.5,0 +2957,48.7,-0.4,0 +2959,48.7,-0.3,0 +2961,48.7,-0.2,0 +2965,48.7,-0.1,0 +2967,48.7,0,0 +2971,48.7,0.1,0 +2977,48.7,0.2,0 +2983,48.7,0.3,0 +3009,48.7,0.2,0 +3093,48.7,0.3,0 +3098,48.7,0.4,0 +3103,48.7,0.5,0 +3108,48.7,0.6,0 +3110,48.7,0.7,0 +3115,48.7,0.8,0 +3117,48.7,0.9,0 +3121,48.7,1,0 +3125,48.7,1.1,0 +3129,48.7,1.2,0 +3133,35.1,1.3,0 +3141,35.1,1.4,0 +3143,35.1,1.3,0 +3153,35.1,1.2,0 +3155,35.1,1.1,0 +3158,35.1,1,0 +3160,35.1,0.9,0 +3162,35.1,0.8,0 +3164,35.1,0.7,0 +3166,35.1,0.6,0 +3168,35.1,0.4,0 +3170,35.1,0.2,0 +3172,35.1,0.1,0 +3173,35.1,0,0 +3175,35.1,-0.2,0 +3177,35.1,-0.3,0 +3179,35.1,-0.5,0 +3181,35.1,-0.6,0 +3182,35.1,-0.8,0 +3184,35.1,-1,0 +3186,35.1,-1.1,0 +3187,35.1,-1.3,0 +3189,35.1,-1.4,0 +3190,35.1,-1.5,0 +3191,35.1,-1.6,0 +3193,35.1,-1.7,0 +3194,35.1,-1.9,0 +3195,35.1,-2,0 +3196,35.1,-2.1,0 +3198,35.1,-2.2,0 +3199,35.1,-2.3,0 +3200,35.1,-2.4,0 +3201,35.1,-2.5,0 +3202,35.1,-2.7,0 +3203,35.1,-2.8,0 +3204,35.1,-3.2,0 +3205,0,-2.6,10.4 +3206,19,-2.6,0 +3207,19,-3.3,0 +3208,19,-3.4,0 +3209,19,-3.3,0 +3210,19,-3.4,0 +3212,19,-3.5,0 +3214,19,-3.6,0 +3215,19,-3.4,0 +3216,19,-3.3,0 +3218,19,-3.2,0 +3225,19,-3.1,0 +3228,19,-3,0 +3232,19,-2.9,0 +3234,19,-2.8,0 +3236,19,-2.7,0 +3238,19,-2.6,0 +3240,19,-2.5,0 +3241,19,-2.4,0 +3243,19,-2.3,0 +3244,19,-2.2,0 +3245,19,-2.1,0 +3247,19,-2,0 +3248,19,-1.9,0 +3249,19,-1.8,0 +3251,19,-1.7,0 +3252,19,-1.6,0 +3253,19,-1.5,0 +3255,19,-1.4,0 +3256,19,-1.3,0 +3258,19,-1.2,0 +3259,19,-1.1,0 +3260,19,-1,0 +3262,19,-0.9,0 +3263,19,-0.8,0 +3265,19,-0.7,0 +3266,19,-0.6,0 +3268,19,-0.5,0 +3271,19,-0.4,0 +3272,19,-0.3,0 +3274,35.5,-0.2,0 +3276,35.5,-0.1,0 +3280,35.5,0,0 +3283,35.5,0.1,0 +3290,35.5,0.2,0 +3296,35.5,0.1,0 +3304,35.5,0,0 +3309,35.5,-0.1,0 +3314,35.5,-0.2,0 +3317,35.5,-0.3,0 +3320,35.5,-0.4,0 +3326,35.5,-0.5,0 +3330,35.5,-0.6,0 +3337,35.5,-0.7,0 +3347,35.5,-0.8,0 +3373,35.5,-0.7,0 +3386,35.5,-0.6,0 +3394,35.5,-0.5,0 +3398,35.5,-0.4,0 +3402,35.5,-0.3,0 +3404,35.5,-0.2,0 +3407,35.5,-0.1,0 +3409,35.5,0,0 +3411,35.5,0.1,0 +3413,35.5,0.2,0 +3416,35.5,0.3,0 +3418,35.5,0.4,0 +3420,35.5,0.5,0 +3421,35.5,0.6,0 +3422,35.5,0.7,0 +3425,35.5,0.8,0 +3426,35.5,0.9,0 +3428,35.5,1,0 +3429,35.5,1.1,0 +3432,35.5,1.2,0 +3435,35.5,1.3,0 +3440,10,1.5,0 +3441,12.3,1.6,0 +3442,12.3,1.7,0 +3443,12.3,1.8,0 +3444,12.3,1.9,0 +3445,12.3,2,0 +3447,12.3,2.1,0 +3449,12.3,2.2,0 +3458,0,2,21.2 +3459,32,2,0 +3460,32,2,0 +3461,32,2.2,0 +3462,32,2.4,0 +3464,32,2.5,0 +3472,32,2.4,0 +3477,32,2.3,0 +3480,32,2.2,0 +3483,32,2.1,0 +3485,32,2,0 +3488,32,1.9,0 +3491,32,1.8,0 +3493,32,1.7,0 +3496,32,1.6,0 +3497,32,1.5,0 +3499,32,1.4,0 +3502,32,1.3,0 +3504,32,1.2,0 +3508,32,1.1,0 +3509,32,1,0 +3513,32,0.9,0 +3515,32,0.8,0 +3518,32,0.7,0 +3520,32,0.6,0 +3523,32,0.5,0 +3527,32,0.4,0 +3529,32,0.3,0 +3532,32,0.2,0 +3535,32,0.1,0 +3539,32,0,0 +3542,32,-0.1,0 +3545,32,-0.2,0 +3550,32,-0.3,0 +3554,32,-0.4,0 +3557,32,-0.5,0 +3561,32,-0.6,0 +3566,32,-0.7,0 +3571,32,-0.8,0 +3576,26.1,-0.8,0 +3578,26.1,-0.9,0 +3605,26.1,-1,0 +3614,26.1,-1.1,0 +3621,26.1,-1.2,0 +3629,26.1,-1.3,0 +3655,26.1,-1.2,0 +3660,26.1,-1.1,0 +3665,26.1,-1,0 +3671,26.1,-0.9,0 +3673,26.1,-1,0 +3676,26.1,-1.2,0 +3677,26.1,-1.1,0 +3678,26.1,-1,0 +3679,26.1,-1.1,0 +3680,26.1,-1.2,0 +3681,0,-1,16.2 +3682,29.3,-1,0 +3683,29.3,-0.5,0 +3684,29.3,-0.4,0 +3685,29.3,-0.3,0 +3688,29.3,-0.2,0 +3693,29.3,-0.1,0 +3694,29.3,0,0 +3699,29.3,0.1,0 +3719,29.3,0,0 +3729,29.3,-0.1,0 +3731,26,-0.1,0 +3732,30.7,-0.1,0 +3742,30.7,-0.2,0 +3757,30.7,-0.3,0 +3769,30.7,-0.4,0 +3776,30.7,-0.5,0 +3781,30.7,-0.6,0 +3786,30.7,-0.7,0 +3793,30.7,-0.8,0 +3801,30.7,-0.9,0 +3805,36.4,-0.9,0 +3813,36.4,-0.8,0 +3820,36.4,-0.7,0 +3824,36.4,-0.6,0 +3828,36.4,-0.5,0 +3832,36.4,-0.4,0 +3835,36.4,-0.3,0 +3838,36.4,-0.2,0 +3841,36.4,-0.1,0 +3844,36.4,0,0 +3846,36.4,0.1,0 +3850,36.4,0.2,0 +3853,36.4,0.3,0 +3856,36.4,0.4,0 +3862,36.4,0.5,0 +3869,36.4,0.6,0 +3882,36.4,0.5,0 +3890,36.4,0.4,0 +3895,36.4,0.3,0 +3901,36.4,0.2,0 +3907,36.4,0.1,0 +3919,36.4,0,0 +3927,36.4,0.1,0 +3931,32.6,0.1,0 +3941,32.6,0.2,0 +3942,27.5,0.2,0 +3950,27.5,0.3,0 +3957,39.6,0.3,0 +3959,39.6,0.4,0 +3973,39.6,0.3,0 +3982,39.6,0.2,0 +3988,39.6,0.1,0 +3992,39.6,0,0 +3999,39.6,-0.1,0 +4003,39.6,-0.2,0 +4009,39.6,-0.3,0 +4016,30,-0.3,0 +4021,32.1,-0.4,0 +4041,32.1,-0.3,0 +4056,32.1,-0.4,0 +4068,32.1,-0.5,0 +4071,32.1,-0.6,0 +4072,0,-0.9,9.6 +4073,23.1,-0.9,0 +4074,23.1,-0.9,0 +4075,23.1,-0.7,0 +4076,23.1,-0.6,0 +4078,23.1,-0.5,0 +4122,23.1,-0.6,0 +4123,23.1,-0.8,0 +4124,23.1,-1.1,0 +4125,0,-0.3,3.8 +4126,35.7,-0.3,0 +4127,35.7,-0.7,0 +4128,35.7,-0.6,0 +4130,35.7,-0.5,0 +4138,35.7,-0.4,0 +4143,35.7,-0.5,0 +4157,35.7,-0.6,0 +4165,35.7,-0.7,0 +4173,35.7,-0.8,0 +4186,35.7,-0.9,0 +4192,35.7,-0.8,0 +4204,35.7,-0.7,0 +4211,35.7,-0.6,0 +4215,35.7,-0.5,0 +4219,35.7,-0.4,0 +4225,35.7,-0.3,0 +4228,35.7,-0.2,0 +4232,35.7,-0.1,0 +4236,35.7,0,0 +4240,35.7,0.1,0 +4243,35.7,0.2,0 +4249,35.7,0.3,0 +4252,35.7,0.4,0 +4256,30.7,0.4,0 +4258,30.7,0.5,0 +4263,30.7,0.6,0 +4268,30.7,0.7,0 +4274,30.7,0.8,0 +4279,30.7,0.9,0 +4288,30.7,1,0 +4306,30.7,0.9,0 +4308,30.7,0.6,0 +4309,32.5,0.3,0 +4310,32.5,0.7,0 +4311,32.5,0.8,0 +4312,32.5,0.9,0 +4315,32.5,1,0 +4324,32.5,0.9,0 +4331,32.5,0.8,0 +4337,32.5,0.7,0 +4341,32.5,0.6,0 +4345,32.5,0.5,0 +4348,32.5,0.4,0 +4353,32.5,0.3,0 +4357,32.5,0.2,0 +4362,32.5,0.1,0 +4367,32.5,0,0 +4372,32.5,-0.1,0 +4381,32.5,-0.2,0 +4415,32.5,-0.1,0 +4430,32.5,0,0 +4458,32.5,-0.1,0 +4467,32.5,-0.2,0 +4478,32.5,-0.3,0 +4489,32.5,-0.4,0 +4490,42.1,-0.4,0 +4511,42.1,-0.3,0 +4529,42.1,-0.2,0 +4543,42.1,-0.3,0 +4555,42.1,-0.4,0 +4563,42.1,-0.5,0 +4569,42.1,-0.6,0 +4575,42.1,-0.7,0 +4581,42.1,-0.8,0 +4588,42.1,-0.9,0 +4596,42.1,-1,0 +4605,42.1,-1.1,0 +4619,42.1,-1.2,0 +4653,42.1,-1.1,0 +4664,42.1,-1,0 +4671,42.1,-0.9,0 +4680,42.1,-0.8,0 +4690,42.1,-0.7,0 +4720,42.1,-0.8,0 +4726,42.1,-0.9,0 +4733,42.1,-1,0 +4738,42.1,-1.1,0 +4742,42.1,-1.2,0 +4747,42.1,-1.3,0 +4751,42.1,-1.4,0 +4756,42.1,-1.5,0 +4760,42.1,-1.6,0 +4764,42.1,-1.7,0 +4768,42.1,-1.8,0 +4772,42.1,-1.9,0 +4776,42.1,-2,0 +4780,42.1,-2.1,0 +4784,42.1,-2.2,0 +4788,42.1,-2.3,0 +4794,42.1,-2.4,0 +4804,42.1,-2.5,0 +4813,42.1,-2.4,0 +4819,42.1,-2.3,0 +4823,42.1,-2.2,0 +4826,42.1,-2.1,0 +4829,42.1,-2,0 +4831,42.1,-1.9,0 +4834,42.1,-1.8,0 +4836,42.1,-1.7,0 +4838,42.1,-1.6,0 +4841,42.1,-1.5,0 +4843,42.1,-1.4,0 +4845,42.1,-1.3,0 +4848,39.3,-1.2,0 +4849,39.3,-1.1,0 +4851,39.3,-1,0 +4852,39.3,-0.9,0 +4854,39.3,-0.8,0 +4855,39.3,-0.7,0 +4857,39.3,-0.6,0 +4858,39.3,-0.5,0 +4859,39.3,-0.4,0 +4861,39.3,-0.3,0 +4863,39.3,-0.2,0 +4865,39.3,-0.1,0 +4866,39.3,0,0 +4867,39.3,0.2,0 +4871,39.3,0.3,0 +4874,39.3,0.4,0 +4876,39.3,0.5,0 +4879,39.3,0.6,0 +4883,39.3,0.7,0 +4902,39.3,0.6,0 +4907,39.3,0.5,0 +4911,39.3,0.4,0 +4917,39.3,0.3,0 +4921,39.3,0.2,0 +4927,39.3,0.1,0 +4946,39.3,0.2,0 +4953,39.3,0.3,0 +4959,39.3,0.4,0 +4964,39.3,0.5,0 +4968,39.3,0.6,0 +4974,39.3,0.7,0 +4981,39.3,0.8,0 +4999,39.3,0.7,0 +5007,39.3,0.6,0 +5011,39.3,0.5,0 +5016,39.3,0.4,0 +5020,28.4,0.3,0 +5021,45.1,0.3,0 +5023,45.1,0.2,0 +5028,45.1,0.1,0 +5031,45.1,0,0 +5035,45.1,-0.1,0 +5041,45.1,-0.2,0 +5047,45.1,-0.3,0 +5076,45.1,-0.2,0 +5083,45.1,-0.1,0 +5089,45.1,0,0 +5094,45.1,0.1,0 +5098,45.1,0.2,0 +5103,45.1,0.3,0 +5108,45.1,0.4,0 +5113,45.1,0.5,0 +5120,45.1,0.6,0 +5145,45.1,0.5,0 +5152,45.1,0.4,0 +5160,45.1,0.3,0 +5164,45.1,0.2,0 +5169,45.1,0.1,0 +5174,45.1,0,0 +5196,45.1,0.1,0 +5202,45.1,0.2,0 +5205,45.1,0.3,0 +5207,45.1,0.4,0 +5210,45.1,0.5,0 +5213,45.1,0.6,0 +5214,45.1,0.7,0 +5217,45.1,0.8,0 +5218,45.1,0.9,0 +5221,45.1,1,0 +5222,45.1,1.1,0 +5225,45.1,1.2,0 +5227,45.1,1.3,0 +5229,45.1,1.4,0 +5232,45.1,1.5,0 +5235,45.1,1.6,0 +5238,45.1,1.5,0 +5239,45.1,1.3,0 +5240,0,0.9,14.8 +5241,35.4,0.9,0 +5242,35.4,1.6,0 +5243,35.4,1.7,0 +5244,35.4,1.8,0 +5245,35.4,1.9,0 +5248,35.4,2,0 +5253,35.4,2.1,0 +5270,35.4,2,0 +5277,35.4,1.9,0 +5284,35.4,1.8,0 +5289,35.4,1.7,0 +5297,35.4,1.6,0 +5303,35.4,1.5,0 +5309,35.4,1.4,0 +5312,35.4,1.3,0 +5318,35.4,1.2,0 +5322,35.4,1.1,0 +5327,35.4,1,0 +5331,35.4,0.9,0 +5334,35.4,0.8,0 +5339,35.4,0.7,0 +5342,35.4,0.6,0 +5347,35.4,0.5,0 +5351,35.4,0.4,0 +5355,35.4,0.3,0 +5363,40.1,0.3,0 +5366,40.1,0.4,0 +5373,40.1,0.5,0 +5381,40.1,0.6,0 +5390,40.1,0.7,0 +5400,40.1,0.8,0 +5415,40.1,0.7,0 +5423,40.1,0.6,0 +5430,40.1,0.5,0 +5434,40.1,0.4,0 +5439,40.1,0.3,0 +5443,40.1,0.2,0 +5448,40.1,0.1,0 +5452,40.1,0,0 +5459,40.1,-0.1,0 +5465,40.1,-0.2,0 +5483,40.1,-0.1,0 +5492,40.1,0,0 +5497,40.1,0.1,0 +5503,40.1,0.2,0 +5511,40.1,0.3,0 +5518,54.9,0.3,0 +5538,54.9,0.2,0 +5545,54.9,0.1,0 +5553,54.9,0,0 +5558,54.9,-0.1,0 +5565,54.9,-0.2,0 +5571,54.9,-0.3,0 +5609,54.9,-0.2,0 +5616,54.9,-0.1,0 +5624,54.9,0,0 +5629,54.9,0.1,0 +5638,54.9,0.2,0 +5643,54.9,0.3,0 +5655,54.9,0.4,0 +5675,54.9,0.3,0 +5685,54.9,0.2,0 +5690,54.9,0.1,0 +5697,54.9,0,0 +5700,54.9,-0.1,0 +5706,54.9,-0.2,0 +5709,54.9,-0.3,0 +5712,54.9,-0.4,0 +5715,54.9,-0.5,0 +5721,54.9,-0.6,0 +5724,54.9,-0.7,0 +5727,54.9,-0.8,0 +5733,54.9,-0.9,0 +5736,54.9,-1,0 +5742,54.9,-1.1,0 +5773,54.9,-1,0 +5781,54.9,-0.9,0 +5788,54.9,-0.8,0 +5813,54.9,-0.9,0 +5819,54.9,-1,0 +5824,54.9,-1.1,0 +5829,54.9,-1.2,0 +5833,54.9,-1.3,0 +5836,54.9,-1.4,0 +5841,54.9,-1.5,0 +5851,54.9,-1.6,0 +5854,54.9,-1.9,0 +5855,0,-2.3,4.2 +5856,47.2,-2.3,0 +5857,47.2,-1.6,0 +5858,47.2,-1.5,0 +5859,47.2,-1.4,0 +5861,47.2,-1.3,0 +5864,47.2,-1.2,0 +5867,47.2,-1.1,0 +5869,47.2,-1,0 +5871,47.2,-0.9,0 +5874,47.2,-0.8,0 +5877,47.2,-0.7,0 +5878,47.2,-0.6,0 +5881,47.2,-0.5,0 +5883,47.2,-0.4,0 +5884,47.2,-0.3,0 +5887,47.2,-0.2,0 +5889,47.2,-0.1,0 +5891,47.2,0,0 +5893,47.2,0.1,0 +5894,47.2,0.2,0 +5898,47.2,0.3,0 +5900,47.2,0.4,0 +5902,47.2,0.5,0 +5906,47.2,0.6,0 +5908,47.2,0.7,0 +5912,47.2,0.8,0 +5916,47.2,0.9,0 +5920,47.2,1,0 +5947,47.2,0.9,0 +5955,47.2,0.8,0 +5962,47.2,0.7,0 +5970,47.2,0.6,0 +5977,47.2,0.5,0 +5985,47.2,0.4,0 +5990,49.9,0.4,0 +6004,57.8,0.4,0 +6037,57.8,0.3,0 +6052,57.8,0.2,0 +6058,57.8,0.1,0 +6067,57.8,0,0 +6074,57.8,-0.1,0 +6083,57.8,-0.2,0 +6112,57.8,-0.1,0 +6124,57.8,0,0 +6137,57.8,0.1,0 +6150,57.8,0.2,0 +6162,57.8,0.3,0 +6173,57.8,0.4,0 +6184,57.8,0.5,0 +6189,57.8,0.6,0 +6197,57.8,0.7,0 +6202,57.8,0.8,0 +6207,57.8,0.9,0 +6212,57.8,1,0 +6217,57.8,1.1,0 +6225,57.8,1.2,0 +6241,59.2,1.2,0 +6249,59.2,1.1,0 +6258,59.2,1,0 +6264,59.2,0.9,0 +6270,59.2,0.8,0 +6275,59.2,0.7,0 +6281,59.2,0.6,0 +6296,59.2,0.5,0 +6309,59.2,0.6,0 +6342,59.2,0.5,0 +6351,59.2,0.4,0 +6361,59.2,0.3,0 +6367,59.2,0.2,0 +6375,59.2,0.1,0 +6399,59.2,0.2,0 +6402,46.5,0.2,0 +6407,48.4,0.3,0 +6412,48.4,0.4,0 +6417,48.4,0.5,0 +6420,48.4,0.6,0 +6425,48.4,0.7,0 +6428,48.4,0.8,0 +6433,48.4,0.9,0 +6436,48.4,1,0 +6439,48.4,1.1,0 +6441,59,1.2,0 +6447,59,1.3,0 +6449,59,1.4,0 +6455,59,1.5,0 +6461,59,1.6,0 +6472,59,1.7,0 +6478,59,1.6,0 +6490,59,1.5,0 +6496,59,1.4,0 +6499,59,1.3,0 +6502,59,1.2,0 +6509,59,1.1,0 +6512,59,1,0 +6515,59,0.9,0 +6518,59,0.8,0 +6521,59,0.7,0 +6524,59,0.6,0 +6527,59,0.5,0 +6531,59,0.4,0 +6534,59,0.3,0 +6537,59,0.2,0 +6544,59,0.1,0 +6547,59,0,0 +6554,59,-0.1,0 +6581,59,0,0 +6588,59,0.1,0 +6591,59,0.2,0 +6598,59,0.3,0 +6601,59,0.4,0 +6605,59,0.5,0 +6611,59,0.6,0 +6615,59,0.7,0 +6622,59,0.8,0 +6628,59,0.9,0 +6658,59,0.8,0 +6668,59,0.7,0 +6687,59,0.6,0 +6738,59,0.5,0 +6748,67,0.4,0 +6754,67,0.3,0 +6761,67,0.2,0 +6767,67,0.1,0 +6774,67,0,0 +6781,67,-0.1,0 +6788,67,-0.2,0 +6795,67,-0.3,0 +6837,67,-0.2,0 +6851,67,-0.1,0 +6866,67,0,0 +6884,67,0.1,0 +6895,67,0.2,0 +6906,67,0.3,0 +6917,67,0.4,0 +6924,67,0.5,0 +6958,67,0.4,0 +6965,67,0.3,0 +6969,67,0.2,0 +6977,67,0.1,0 +6980,67,0,0 +6984,67,-0.1,0 +6992,67,-0.2,0 +6995,67,-0.3,0 +7003,67,-0.4,0 +7014,67,-0.5,0 +7033,67,-0.4,0 +7052,67,-0.3,0 +7067,67,-0.2,0 +7105,67,-0.1,0 +7127,67,0,0 +7146,67,0.1,0 +7160,67,0.2,0 +7185,67,0.3,0 +7205,67,0.2,0 +7226,67,0.1,0 +7232,52,0.1,0 +7241,52,0,0 +7249,58.4,-0.1,0 +7258,58.4,-0.2,0 +7264,58.4,-0.3,0 +7273,58.4,-0.4,0 +7279,58.4,-0.5,0 +7288,58.4,-0.6,0 +7294,58.4,-0.7,0 +7307,58.4,-0.8,0 +7319,58.4,-0.9,0 +7339,58.4,-0.8,0 +7351,58.4,-0.7,0 +7358,58.4,-0.6,0 +7368,58.4,-0.5,0 +7396,58.4,-0.6,0 +7402,58.4,-0.7,0 +7408,58.4,-0.8,0 +7411,58.4,-0.9,0 +7416,58.4,-1,0 +7421,58.4,-1.1,0 +7423,58.4,-1.2,0 +7428,58.4,-1.3,0 +7435,58.4,-1.4,0 +7441,58.4,-1.5,0 +7450,58.4,-1.6,0 +7469,58.4,-1.7,0 +7477,52,-1.7,0 +7490,52,-1.8,0 +7502,52,-1.9,0 +7524,52,-1.8,0 +7531,52,-1.7,0 +7537,52,-1.6,0 +7541,52,-1.5,0 +7545,52,-1.4,0 +7550,52,-1.3,0 +7555,52,-1.2,0 +7561,52,-1.1,0 +7566,52,-1,0 +7586,52,-1.1,0 +7593,52,-1.2,0 +7598,52,-1.3,0 +7603,52,-1.4,0 +7606,52,-1.5,0 +7611,52,-1.6,0 +7614,52,-1.7,0 +7620,52,-1.8,0 +7625,52,-1.9,0 +7631,52,-2,0 +7642,52,-2.1,0 +7665,52,-2,0 +7692,52,-1.9,0 +7701,52,-2,0 +7739,24.2,-2,0 +7742,30,-1.9,0 +7747,30,-1.8,0 +7752,30,-1.7,0 +7756,30,-1.6,0 +7759,30,-1.5,0 +7762,30,-1.4,0 +7763,30,-1.3,0 +7767,30,-1.2,0 +7770,30,-1.1,0 +7771,30,-1,0 +7773,30,-0.9,0 +7774,30,-0.8,0 +7777,30,-0.7,0 +7779,30,-0.6,0 +7780,30,-0.5,0 +7782,30,-0.4,0 +7783,30,-0.3,0 +7785,30,-0.2,0 +7786,30,-0.1,0 +7788,30,0,0 +7790,30,0.1,0 +7791,30,0.2,0 +7793,30,0.3,0 +7794,30,0.4,0 +7796,30,0.5,0 +7798,30,0.6,0 +7799,30,0.7,0 +7801,30,0.8,0 +7803,30,0.9,0 +7805,30,1,0 +7808,39.2,1.1,0 +7810,39.2,1.2,0 +7811,39.2,1.3,0 +7813,39.2,1.4,0 +7815,39.2,1.5,0 +7817,39.2,1.6,0 +7821,39.2,1.7,0 +7823,39.2,1.8,0 +7826,39.2,1.9,0 +7830,39.2,2,0 +7834,39.2,2.1,0 +7853,39.2,2,0 +7862,39.2,1.9,0 +7866,39.2,1.8,0 +7871,39.2,1.7,0 +7877,39.2,1.6,0 +7881,39.2,1.5,0 +7889,39.2,1.4,0 +7914,39.2,1.5,0 +7924,39.2,1.6,0 +7936,39.2,1.7,0 +7955,39.2,1.6,0 +7966,39.2,1.5,0 +7975,55.5,1.4,0 +7982,55.5,1.3,0 +7987,55.5,1.2,0 +7994,55.5,1.1,0 +8002,55.5,1,0 +8007,55.5,0.9,0 +8015,55.5,0.8,0 +8023,55.5,0.7,0 +8031,55.5,0.6,0 +8043,55.5,0.5,0 +8081,55.5,0.6,0 +8096,55.5,0.7,0 +8121,55.5,0.6,0 +8133,55.5,0.5,0 +8139,55.5,0.4,0 +8145,55.5,0.3,0 +8151,55.5,0.2,0 +8157,55.5,0.1,0 +8163,55.5,0,0 +8169,55.5,-0.1,0 +8175,55.5,-0.2,0 +8181,55.5,-0.3,0 +8190,55.5,-0.4,0 +8222,55.5,-0.3,0 +8232,55.5,-0.2,0 +8240,55.5,-0.1,0 +8245,55.5,0,0 +8247,44.9,0,0 +8252,44.9,0.1,0 +8262,44.9,0.2,0 +8286,44.9,0.1,0 +8300,44.9,0,0 +8315,44.9,-0.1,0 +8342,44.9,-0.2,0 +8358,44.9,-0.3,0 +8376,26.6,-0.3,0 +8378,42.5,-0.3,0 +8413,42.5,-0.4,0 +8423,42.5,-0.5,0 +8432,42.5,-0.6,0 +8438,42.5,-0.7,0 +8445,42.5,-0.8,0 +8469,42.5,-0.7,0 +8473,42.5,-0.6,0 +8475,42.5,-0.5,0 +8478,42.5,-0.4,0 +8480,42.5,-0.3,0 +8482,42.5,-0.2,0 +8484,42.5,-0.1,0 +8486,42.5,0,0 +8488,42.5,0.1,0 +8490,42.5,0.2,0 +8492,42.5,0.3,0 +8494,42.5,0.4,0 +8496,42.5,0.5,0 +8498,42.5,0.6,0 +8499,42.5,0.7,0 +8501,42.5,0.8,0 +8503,42.5,0.9,0 +8506,42.5,1,0 +8507,42.5,1.1,0 +8510,42.5,1.2,0 +8512,42.5,1.3,0 +8514,42.5,1.4,0 +8522,42.5,1.2,0 +8523,0,0.8,10.8 +8524,36.3,0.8,0 +8525,36.3,1.2,0 +8526,36.3,1.3,0 +8527,36.3,1.4,0 +8528,36.3,1.5,0 +8530,36.3,1.6,0 +8540,36.3,1.5,0 +8544,36.3,1.4,0 +8548,36.3,1.3,0 +8551,36.3,1.2,0 +8554,36.3,1.1,0 +8557,36.3,1,0 +8559,36.3,0.9,0 +8562,36.3,0.8,0 +8565,36.3,0.7,0 +8567,36.3,0.6,0 +8571,36.3,0.5,0 +8574,36.3,0.4,0 +8578,36.3,0.3,0 +8584,36.3,0.2,0 +8596,36.3,0.1,0 +8604,36.3,0.2,0 +8626,36.3,0.3,0 +8647,30,0.2,0 +8660,30,0.1,0 +8669,30,0,0 +8679,30,-0.1,0 +8689,36.3,-0.2,0 +8723,36.3,-0.1,0 +8734,36.3,0,0 +8743,36.3,0.1,0 +8753,36.3,0.2,0 +8764,36.3,0.3,0 +8774,36.3,0.4,0 +8775,27.4,0.4,0 +8785,27.4,0.5,0 +8793,27.4,0.6,0 +8800,27.4,0.7,0 +8810,27.4,0.8,0 +8825,27.4,0.9,0 +8833,27.4,0.8,0 +8839,27.4,0.7,0 +8841,27.4,0.6,0 +8842,27.4,0.2,0 +8843,0,0.2,21.2 +8844,33.8,0.2,0 +8845,33.8,0.6,0 +8846,33.8,0.7,0 +8848,33.8,0.8,0 +8860,33.8,0.7,0 +8877,33.8,0.6,0 +8904,33.8,0.7,0 +8933,33.8,0.6,0 +8937,28,0.6,0 +8939,28,0.5,0 +8944,28,0.4,0 +8947,28,0.3,0 +8950,28,0.2,0 +8953,28,0.1,0 +8956,28,0,0 +8957,28,-0.1,0 +8961,28,-0.2,0 +8962,28,-0.3,0 +8964,28,-0.4,0 +8967,28,-0.5,0 +8968,28,-0.6,0 +8970,28,-0.7,0 +8973,28,-0.8,0 +8974,28,-0.9,0 +8976,28,-1,0 +8978,35.4,-1,0 +8979,35.4,-1.1,0 +8981,35.4,-1.2,0 +8984,35.4,-1.3,0 +8987,35.4,-1.4,0 +8989,35.4,-1.5,0 +8993,35.4,-1.6,0 +8998,35.4,-1.7,0 +9020,35.4,-1.6,0 +9025,35.4,-1.5,0 +9031,35.4,-1.4,0 +9035,35.4,-1.3,0 +9039,35.4,-1.2,0 +9041,35.4,-1.1,0 +9045,35.4,-1,0 +9049,35.4,-0.9,0 +9052,35.4,-0.8,0 +9056,35.4,-0.7,0 +9060,35.4,-0.6,0 +9064,38.9,-0.5,0 +9068,38.9,-0.4,0 +9074,38.9,-0.3,0 +9080,38.9,-0.2,0 +9104,38.9,-0.3,0 +9116,38.9,-0.4,0 +9149,38.9,-0.3,0 +9155,38.9,-0.2,0 +9161,38.9,-0.1,0 +9165,38.9,0,0 +9169,38.9,0.1,0 +9171,38.9,0.2,0 +9175,38.9,0.3,0 +9179,43.5,0.4,0 +9183,43.5,0.5,0 +9185,43.5,0.6,0 +9191,43.5,0.7,0 +9196,43.5,0.8,0 +9216,43.5,0.7,0 +9221,43.5,0.6,0 +9225,43.5,0.5,0 +9228,43.5,0.4,0 +9230,43.5,0.3,0 +9235,43.5,0.2,0 +9237,43.5,0.1,0 +9240,43.5,0,0 +9242,43.5,-0.1,0 +9244,43.5,-0.2,0 +9247,43.5,-0.3,0 +9249,43.5,-0.4,0 +9251,43.5,-0.5,0 +9256,43.5,-0.6,0 +9258,43.5,-0.7,0 +9261,43.5,-0.8,0 +9265,43.5,-0.9,0 +9269,43.5,-1,0 +9276,43.5,-1.1,0 +9302,43.5,-1,0 +9308,34.2,-1,0 +9310,34.2,-0.9,0 +9316,34.2,-0.8,0 +9321,34.2,-0.7,0 +9327,34.2,-0.6,0 +9332,34.2,-0.5,0 +9337,34.2,-0.4,0 +9342,34.2,-0.3,0 +9349,34.2,-0.2,0 +9356,34.2,-0.4,0 +9358,34.2,-0.7,0 +9359,0,-0.5,8.8 +9360,34.2,-0.5,0 +9361,34.2,-0.2,0 +9363,34.2,-0.1,0 +9366,34.2,0,0 +9371,34.2,0.1,0 +9380,34.2,0.2,0 +9452,34.2,0.1,0 +9462,34.2,0,0 +9469,34.2,-0.1,0 +9472,34.2,-0.2,0 +9474,37.3,-0.2,0 +9478,37.3,-0.3,0 +9481,37.3,-0.4,0 +9485,37.3,-0.5,0 +9489,37.3,-0.6,0 +9493,37.3,-0.7,0 +9497,37.3,-0.8,0 +9499,37.3,-0.9,0 +9503,37.3,-1,0 +9507,37.3,-1.1,0 +9511,37.3,-1.2,0 +9515,37.3,-1.3,0 +9519,37.3,-1.4,0 +9523,37.3,-1.5,0 +9529,37.3,-1.6,0 +9534,37.3,-1.7,0 +9540,37.3,-1.8,0 +9546,37.3,-1.9,0 +9550,37.3,-2.1,0 +9552,37.3,-2.2,0 +9553,37.3,-2.3,0 +9554,26.9,-2.3,0 +9556,26.9,-2.2,0 +9557,26.9,-2.1,0 +9558,26.9,-2,0 +9560,26.9,-1.9,0 +9562,26.9,-1.8,0 +9568,26.9,-1.7,0 +9574,26.9,-1.6,0 +9579,26.9,-1.5,0 +9583,26.9,-1.4,0 +9588,26.9,-1.3,0 +9592,26.9,-1.2,0 +9598,26.9,-1.1,0 +9602,26.9,-1,0 +9608,26.9,-0.9,0 +9614,26.9,-0.8,0 +9623,26.9,-0.7,0 +9636,26.9,-0.6,0 +9642,41.5,-0.6,0 +9654,41.5,-0.5,0 +9666,41.5,-0.4,0 +9675,41.5,-0.3,0 +9686,41.5,-0.2,0 +9692,41.5,-0.1,0 +9701,41.5,0,0 +9717,41.5,0.1,0 +9724,41.5,0,0 +9739,41.5,-0.1,0 +9748,41.5,-0.2,0 +9750,31.5,-0.2,0 +9752,35.9,-0.2,0 +9759,35.9,-0.3,0 +9776,35.9,-0.2,0 +9784,35.9,-0.1,0 +9790,35.9,0,0 +9796,35.9,0.1,0 +9800,35.9,0.2,0 +9804,35.9,0.3,0 +9809,35.9,0.4,0 +9815,35.9,0.5,0 +9822,35.9,0.6,0 +9842,26.5,0.6,0 +9844,37.7,0.6,0 +9851,37.7,0.5,0 +9865,37.7,0.4,0 +9905,37.7,0.5,0 +9917,37.7,0.6,0 +9943,37.7,0.5,0 +9947,37.7,0.4,0 +9948,37.7,0.3,0 +9949,37.7,0,0 +9950,0,-0.1,7.4 +9951,37,-0.1,0 +9952,37,0.3,0 +9962,37,0.2,0 +9967,37,0.1,0 +9972,37,0,0 +9977,37,-0.1,0 +9981,37,-0.2,0 +9986,37,-0.3,0 +9991,37,-0.4,0 +10003,37,-0.5,0 +10007,37,-0.4,0 +10017,37,-0.3,0 +10023,37,-0.2,0 +10027,37,-0.1,0 +10033,37,0,0 +10036,37,0.1,0 +10040,37,0.2,0 +10044,37,0.3,0 +10050,37,0.4,0 +10058,37,0.5,0 +10059,37.8,0.5,0 +10074,37.8,0.4,0 +10080,37.8,0.3,0 +10083,37.8,0.2,0 +10087,37.8,0.1,0 +10091,37.8,0,0 +10094,37.8,-0.1,0 +10097,37.8,-0.2,0 +10100,37.8,-0.3,0 +10104,37.8,-0.4,0 +10107,37.8,-0.5,0 +10113,37.8,-0.6,0 +10118,37.8,-0.7,0 +10137,37.8,-0.6,0 +10147,37.8,-0.5,0 +10157,37.8,-0.4,0 +10183,36.4,-0.4,0 +10186,36.4,-0.5,0 +10222,36.4,-0.4,0 +10230,36.4,-0.3,0 +10235,36.4,-0.2,0 +10238,36.4,-0.1,0 +10243,36.4,0,0 +10246,36.4,0.1,0 +10250,36.4,0.2,0 +10252,36.4,0.3,0 +10256,36.4,0.4,0 +10259,36.4,0.5,0 +10263,36.4,0.6,0 +10268,36.4,0.7,0 +10274,36.4,0.8,0 +10301,36.4,0.7,0 +10309,36.4,0.6,0 +10315,36.4,0.5,0 +10323,36.4,0.4,0 +10331,36.4,0.3,0 +10339,36.4,0.2,0 +10347,36.4,0.1,0 +10360,36.4,0,0 +10390,36.4,-0.1,0 +10395,36.4,-0.2,0 +10396,36.4,-0.6,0 +10397,0,-0.5,8.8 +10398,29.1,-0.5,0 +10399,29.1,-0.2,0 +10400,29.1,-0.1,0 +10403,29.1,0,0 +10435,29.1,-0.1,0 +10451,29.1,-0.2,0 +10466,12.8,-0.2,0 +10470,56.5,-0.1,0 +10475,56.5,0,0 +10479,56.5,0.1,0 +10482,56.5,0.2,0 +10486,56.5,0.3,0 +10490,56.5,0.4,0 +10494,56.5,0.5,0 +10497,56.5,0.6,0 +10502,56.5,0.7,0 +10505,56.5,0.8,0 +10509,56.5,0.9,0 +10515,56.5,1,0 +10523,56.5,1.1,0 +10557,56.5,1,0 +10592,56.5,0.9,0 +10601,56.5,0.8,0 +10610,56.5,0.7,0 +10613,56.5,0.6,0 +10619,56.5,0.5,0 +10622,56.5,0.4,0 +10625,56.5,0.3,0 +10628,56.5,0.2,0 +10631,56.5,0.1,0 +10634,56.5,0,0 +10640,56.5,-0.1,0 +10643,56.5,-0.2,0 +10646,56.5,-0.3,0 +10650,56.5,-0.4,0 +10656,56.5,-0.5,0 +10659,56.5,-0.6,0 +10665,56.5,-0.7,0 +10675,56.5,-0.8,0 +10701,56.5,-0.9,0 +10706,56.5,-0.8,0 +10734,56.5,-0.7,0 +10745,56.5,-0.6,0 +10750,56.5,-0.5,0 +10756,57,-0.4,0 +10762,57,-0.3,0 +10767,57,-0.2,0 +10770,57,-0.1,0 +10775,57,0,0 +10779,57,0.1,0 +10784,57,0.2,0 +10788,57,0.3,0 +10793,57,0.4,0 +10799,57,0.5,0 +10803,57,0.6,0 +10810,57,0.7,0 +10817,57,0.8,0 +10851,57,0.7,0 +10859,57,0.6,0 +10868,57,0.5,0 +10877,57,0.4,0 +10886,57,0.3,0 +10895,57,0.2,0 +10901,57,0.1,0 +10911,57,0,0 +10917,57,-0.1,0 +10920,57,-0.2,0 +10926,57,-0.3,0 +10933,57,-0.4,0 +10936,57,-0.5,0 +10942,57,-0.6,0 +10948,57,-0.7,0 +10954,57,-0.8,0 +10965,57,-0.9,0 +10996,57,-0.8,0 +11004,49.6,-0.8,0 +11007,49.6,-0.7,0 +11014,49.6,-0.6,0 +11021,49.6,-0.5,0 +11027,49.6,-0.4,0 +11033,49.6,-0.3,0 +11039,49.6,-0.2,0 +11047,49.6,-0.1,0 +11056,49.6,0,0 +11069,49.6,0.1,0 +11089,49.6,0.2,0 +11106,49.6,0.3,0 +11119,49.6,0.4,0 +11143,49.6,0.3,0 +11146,53.7,0.3,0 +11154,53.7,0.2,0 +11159,53.7,0.1,0 +11168,53.7,0,0 +11174,53.7,-0.1,0 +11180,53.7,-0.2,0 +11186,53.7,-0.3,0 +11195,53.7,-0.4,0 +11203,53.7,-0.5,0 +11212,53.7,-0.6,0 +11250,53.7,-0.5,0 +11258,53.7,-0.4,0 +11263,45.3,-0.3,0 +11268,45.3,-0.2,0 +11271,45.3,-0.1,0 +11276,45.3,0,0 +11281,45.3,0.1,0 +11283,45.3,0.2,0 +11288,45.3,0.3,0 +11293,45.3,0.4,0 +11298,45.3,0.5,0 +11306,45.3,0.6,0 +11308,54.4,0.6,0 +11323,54.4,0.5,0 +11334,54.4,0.4,0 +11339,54.4,0.3,0 +11345,54.4,0.2,0 +11350,54.4,0.1,0 +11356,54.4,0,0 +11385,54.4,0.1,0 +11394,54.4,0.2,0 +11403,54.4,0.3,0 +11418,54.4,0.4,0 +11427,54.4,0.3,0 +11443,54.4,0.2,0 +11449,46.5,0.2,0 +11454,46.5,0.1,0 +11469,46.5,0,0 +11480,46.5,0.1,0 +11493,46.5,0.2,0 +11501,46.5,0.3,0 +11508,46.5,0.4,0 +11513,46.5,0.5,0 +11521,46.5,0.6,0 +11528,46.5,0.7,0 +11538,46.5,0.8,0 +11596,46.5,0.9,0 +11603,46.5,1,0 +11610,46.5,1.1,0 +11614,46.5,1.2,0 +11618,46.5,1.3,0 +11622,46.5,1.4,0 +11626,46.5,1.5,0 +11631,46.5,1.6,0 +11638,46.5,1.7,0 +11648,46.5,1.6,0 +11652,46.5,1.5,0 +11654,46.5,1.4,0 +11655,46.5,1.3,0 +11656,35.1,1.3,0 +11659,35.1,1.4,0 +11661,35.1,1.3,0 +11666,35.1,1.2,0 +11670,35.1,1.1,0 +11672,35.1,1,0 +11674,35.1,0.9,0 +11677,35.1,0.8,0 +11680,35.1,0.7,0 +11681,35.1,0.6,0 +11684,35.1,0.5,0 +11686,35.1,0.4,0 +11689,35.1,0.3,0 +11691,35.1,0.2,0 +11694,35.1,0.1,0 +11696,35.1,0,0 +11699,35.1,-0.1,0 +11701,35.1,-0.2,0 +11705,35.1,-0.3,0 +11708,35.1,-0.4,0 +11711,35.1,-0.5,0 +11714,35.1,-0.6,0 +11719,35.1,-0.7,0 +11722,35.1,-0.8,0 +11727,35.1,-0.9,0 +11733,35.1,-1,0 +11758,35.1,-0.9,0 +11766,35.1,-0.8,0 +11776,35.1,-0.9,0 +11777,35.1,-1.2,0 +11778,0,-1.3,12.2 +11779,26.6,-1.3,0 +11780,26.6,-0.8,0 +11781,26.6,-0.7,0 +11782,26.6,-0.6,0 +11784,26.6,-0.5,0 +11787,26.6,-0.4,0 +11791,26.6,-0.3,0 +11796,26.6,-0.2,0 +11805,26.6,-0.1,0 +11816,26.6,0,0 +11826,22.2,0,0 +11829,22.2,0.1,0 +11835,66.5,0.1,0 +11836,66.5,0.2,0 +11841,66.5,0.3,0 +11847,66.5,0.4,0 +11849,66.5,0.5,0 +11854,66.5,0.6,0 +11857,66.5,0.7,0 +11863,66.5,0.8,0 +11866,66.5,0.9,0 +11872,66.5,1,0 +11879,66.5,1.1,0 +11903,66.5,1,0 +11911,66.5,0.9,0 +11918,66.5,0.8,0 +11924,66.5,0.7,0 +11932,66.5,0.6,0 +11943,66.5,0.5,0 +11966,66.5,0.6,0 +11975,66.5,0.7,0 +11981,66.5,0.8,0 +11987,66.5,0.9,0 +11993,66.5,1,0 +12000,66.5,1.1,0 +12006,66.5,1.2,0 +12013,66.5,1.3,0 +12020,66.5,1.4,0 +12054,66.5,1.3,0 +12064,66.5,1.2,0 +12071,66.5,1.1,0 +12082,66.5,1,0 +12093,66.5,0.9,0 +12103,66.5,0.8,0 +12118,66.5,0.7,0 +12129,66.5,0.6,0 +12140,66.5,0.5,0 +12151,66.5,0.4,0 +12158,66.5,0.3,0 +12169,66.5,0.2,0 +12180,66.5,0.1,0 +12216,66.5,0.2,0 +12223,66.5,0.3,0 +12230,66.5,0.4,0 +12234,66.5,0.5,0 +12240,66.5,0.6,0 +12244,66.5,0.7,0 +12250,66.5,0.8,0 +12257,66.5,0.9,0 +12272,66.5,1,0 +12283,66.5,0.9,0 +12304,66.5,0.8,0 +12320,50,0.8,0 +12346,50,0.9,0 +12361,50,1,0 +12374,50,1.1,0 +12408,50,1,0 +12415,50,0.9,0 +12418,50,0.8,0 +12422,50,0.7,0 +12426,50,0.6,0 +12429,50,0.5,0 +12433,50,0.4,0 +12435,50,0.3,0 +12439,50,0.2,0 +12441,50,0.1,0 +12445,50,0,0 +12447,50,-0.1,0 +12452,50,-0.2,0 +12454,50,-0.3,0 +12458,50,-0.4,0 +12463,50,-0.5,0 +12467,50,-0.6,0 +12491,50,-0.5,0 +12496,50,-0.4,0 +12501,50,-0.3,0 +12507,50,-0.2,0 +12512,50,-0.1,0 +12515,50,0,0 +12520,50,0.1,0 +12525,50,0.2,0 +12531,50,0.3,0 +12536,50,0.4,0 +12544,50,0.5,0 +12594,50,0.4,0 +12613,50,0.3,0 +12627,50,0.2,0 +12638,50,0.1,0 +12646,50,0,0 +12658,50,-0.1,0 +12699,56.6,0,0 +12708,56.6,0.1,0 +12723,56.6,0.2,0 +12738,56.6,0.1,0 +12756,56.6,0,0 +12793,56.6,0.1,0 +12814,56.6,0,0 +12832,56.6,-0.1,0 +12854,56.6,-0.2,0 +12857,56.6,-0.1,0 +12875,56.6,0,0 +12881,56.6,0.1,0 +12888,56.6,0.2,0 +12894,56.6,0.3,0 +12897,56.6,0.4,0 +12903,56.6,0.5,0 +12910,56.6,0.6,0 +12916,56.6,0.7,0 +12925,56.6,0.8,0 +12954,56.6,0.7,0 +12969,56.6,0.6,0 +13004,56.6,0.7,0 +13033,56.6,0.6,0 +13039,61.3,0.6,0 +13042,61.3,0.5,0 +13049,61.3,0.4,0 +13052,61.3,0.3,0 +13059,61.3,0.2,0 +13065,61.3,0.1,0 +13069,61.3,0,0 +13075,61.3,-0.1,0 +13082,61.3,-0.2,0 +13089,61.3,-0.3,0 +13123,61.3,-0.2,0 +13156,61.3,-0.3,0 +13166,61.3,-0.4,0 +13169,61.3,-0.5,0 +13175,61.3,-0.6,0 +13178,61.3,-0.7,0 +13184,61.3,-0.8,0 +13187,61.3,-0.9,0 +13192,61.3,-1,0 +13195,61.3,-1.1,0 +13200,61.3,-1.2,0 +13205,61.3,-1.3,0 +13212,61.3,-1.4,0 +13234,61.3,-1.3,0 +13239,61.3,-1.2,0 +13243,61.3,-1.1,0 +13249,61.3,-1,0 +13252,61.3,-1.1,0 +13253,61.3,-1.3,0 +13254,0,-1.8,13.6 +13255,57.5,-1.8,0 +13256,57.5,-0.9,0 +13257,57.5,-0.8,0 +13258,57.5,-0.7,0 +13259,57.5,-0.6,0 +13261,57.5,-0.5,0 +13263,57.5,-0.4,0 +13265,57.5,-0.3,0 +13268,57.5,-0.2,0 +13270,57.5,-0.1,0 +13274,57.5,0,0 +13277,57.5,0.1,0 +13280,57.5,0.2,0 +13283,57.5,0.3,0 +13288,57.5,0.4,0 +13291,57.5,0.5,0 +13295,57.5,0.6,0 +13301,57.5,0.7,0 +13307,57.5,0.8,0 +13311,57.5,0.9,0 +13315,57.5,1,0 +13322,57.5,1.1,0 +13327,57.5,1.2,0 +13334,57.5,1.3,0 +13360,57.5,1.2,0 +13365,57.5,1.1,0 +13368,57.5,1,0 +13373,57.5,0.9,0 +13376,57.5,0.8,0 +13379,57.5,0.7,0 +13382,57.5,0.6,0 +13385,57.5,0.5,0 +13388,57.5,0.4,0 +13394,57.5,0.3,0 +13397,57.5,0.2,0 +13400,57.5,0.1,0 +13406,57.5,0,0 +13412,57.5,-0.1,0 +13418,57.5,-0.2,0 +13431,57.5,-0.3,0 +13450,57.5,-0.4,0 +13463,57.5,-0.5,0 +13472,57.5,-0.6,0 +13488,57.5,-0.7,0 +13507,57.5,-0.8,0 +13528,57.5,-0.9,0 +13537,57.5,-1,0 +13543,57.5,-1.1,0 +13548,57.5,-1.2,0 +13554,57.5,-1.3,0 +13556,57.5,-1.4,0 +13559,57.5,-1.5,0 +13564,57.5,-1.6,0 +13566,57.5,-1.7,0 +13569,57.5,-1.8,0 +13571,57.5,-1.9,0 +13575,57.5,-2,0 +13577,57.5,-2.1,0 +13579,57.5,-2.2,0 +13583,57.5,-2.3,0 +13587,57.5,-2.4,0 +13590,57.5,-2.5,0 +13596,57.5,-2.6,0 +13607,57.5,-2.5,0 +13617,57.5,-2.7,0 +13618,0,-2.1,6 +13619,25,-2.1,0 +13620,25,-2.3,0 +13621,25,-2.2,0 +13622,25,-2.1,0 +13623,25,-2,0 +13625,25,-1.9,0 +13626,25,-1.8,0 +13628,25,-1.7,0 +13629,25,-1.6,0 +13631,25,-1.5,0 +13632,25,-1.4,0 +13633,25,-1.3,0 +13635,25,-1.2,0 +13636,25,-1.1,0 +13637,25,-1,0 +13638,25,-0.9,0 +13641,25,-0.8,0 +13642,25,-0.7,0 +13643,25,-0.6,0 +13644,25,-0.5,0 +13645,25,-0.4,0 +13647,25,-0.3,0 +13649,25,-0.2,0 +13650,25,-0.1,0 +13651,25,0,0 +13652,25,0.1,0 +13654,25,0.2,0 +13655,25,0.3,0 +13656,25,0.4,0 +13659,25,0.5,0 +13660,25,0.6,0 +13661,25,0.7,0 +13663,25,0.8,0 +13666,25,0.9,0 +13667,25,1,0 +13670,25,1.1,0 +13673,25,1.2,0 +13677,25,1.3,0 +13684,25,1.4,0 +13687,25,1.3,0 +13689,15.3,1.3,0 +13690,41.8,1.3,0 +13703,41.8,1.2,0 +13709,41.8,1.1,0 +13713,41.8,1,0 +13718,41.8,0.9,0 +13724,41.8,0.8,0 +13731,41.8,0.7,0 +13742,41.8,0.6,0 +13769,41.8,0.7,0 +13794,41.8,0.8,0 +13820,48,0.8,0 +13826,48,0.7,0 +13837,48,0.6,0 +13844,48,0.5,0 +13851,48,0.4,0 +13856,48,0.3,0 +13861,48,0.2,0 +13866,48,0.1,0 +13871,48,0,0 +13876,48,-0.1,0 +13884,48,-0.2,0 +13889,48,-0.3,0 +13897,48,-0.4,0 +13905,48,-0.5,0 +13913,48,-0.6,0 +13921,48,-0.7,0 +13929,48,-0.8,0 +13934,48,-0.9,0 +13939,48,-1,0 +13944,48,-1.1,0 +13948,48,-1.2,0 +13953,48,-1.3,0 +13955,48,-1.4,0 +13959,48,-1.5,0 +13963,48,-1.6,0 +13967,48,-1.7,0 +13971,48,-1.8,0 +13976,48,-1.9,0 +13980,48,-2,0 +13998,30.4,-2,0 +14005,30.4,-1.9,0 +14010,30.4,-1.8,0 +14015,30.4,-1.7,0 +14019,30.4,-1.6,0 +14024,30.4,-1.5,0 +14031,30.4,-1.4,0 +14041,30.4,-1.3,0 +14049,30.4,-1.4,0 +14063,30.4,-1.5,0 +14068,30.4,-1.6,0 +14070,30.4,-1.7,0 +14071,30.4,-1.9,0 +14072,0,-2.5,12.4 +14073,42.7,-2.5,0 +14074,42.7,-1.7,0 +14075,42.7,-1.6,0 +14077,42.7,-1.5,0 +14082,42.7,-1.4,0 +14087,42.7,-1.3,0 +14093,42.7,-1.2,0 +14097,42.7,-1.1,0 +14101,42.7,-1,0 +14104,42.7,-0.9,0 +14108,42.7,-0.8,0 +14111,42.7,-0.7,0 +14117,42.7,-0.6,0 +14120,42.7,-0.5,0 +14126,42.7,-0.4,0 +14134,42.7,-0.3,0 +14150,42.7,-0.4,0 +14161,42.7,-0.5,0 +14170,42.7,-0.6,0 +14184,42.7,-0.7,0 +14196,42.7,-0.6,0 +14209,42.7,-0.5,0 +14219,42.7,-0.4,0 +14228,42.7,-0.3,0 +14230,30,-0.3,0 +14240,30,-0.2,0 +14245,33.1,-0.2,0 +14253,33.1,-0.3,0 +14262,33.1,-0.4,0 +14268,33.1,-0.5,0 +14273,33.1,-0.6,0 +14277,33.1,-0.7,0 +14280,33.1,-0.8,0 +14284,33.1,-0.9,0 +14289,33.1,-1,0 +14294,33.1,-1.1,0 +14302,33.1,-1.2,0 +14314,33.1,-1.1,0 +14322,33.1,-1.2,0 +14324,33.1,-1.3,0 +14325,41.1,-1.3,0 +14326,41.1,-1.2,0 +14327,41.1,-1.1,0 +14328,41.1,-1,0 +14329,41.1,-0.9,0 +14331,41.1,-0.8,0 +14333,41.1,-0.7,0 +14336,41.1,-0.6,0 +14340,41.1,-0.5,0 +14344,41.1,-0.4,0 +14348,41.1,-0.3,0 +14356,41.1,-0.2,0 +14378,41.1,-0.3,0 +14388,41.1,-0.4,0 +14401,41.1,-0.5,0 +14424,41.1,-0.6,0 +14469,41.1,-0.5,0 +14478,41.1,-0.4,0 +14483,32.8,-0.3,0 +14488,32.8,-0.2,0 +14492,32.8,-0.1,0 +14497,32.8,0,0 +14500,32.8,0.1,0 +14504,32.8,0.2,0 +14508,32.8,0.3,0 +14509,47,0.3,0 +14511,47,0.4,0 +14515,47,0.5,0 +14521,47,0.6,0 +14528,47,0.7,0 +14541,47,0.6,0 +14549,47,0.5,0 +14556,47,0.4,0 +14560,47,0.3,0 +14565,47,0.2,0 +14572,47,0.1,0 +14580,47,0,0 +14626,47,-0.1,0 +14636,47,-0.2,0 +14646,47,-0.3,0 +14654,47,-0.4,0 +14690,47,-0.3,0 +14703,47,-0.2,0 +14716,47,-0.1,0 +14728,47,0,0 +14738,47,0.1,0 +14744,35.2,0.1,0 +14747,35.2,0.2,0 +14751,35.2,0.3,0 +14754,35.2,0.4,0 +14759,35.2,0.5,0 +14769,35.2,0.6,0 +14783,35.2,0.5,0 +14791,35.2,0.4,0 +14796,35.2,0.3,0 +14799,35.2,0.2,0 +14803,35.2,0.1,0 +14807,35.2,0,0 +14810,35.2,-0.1,0 +14816,35.2,-0.2,0 +14822,35.2,-0.3,0 +14842,35.2,-0.2,0 +14848,35.2,-0.1,0 +14853,35.2,0,0 +14858,35.2,0.1,0 +14862,35.2,0.2,0 +14865,39.2,0.3,0 +14868,39.2,0.4,0 +14872,39.2,0.5,0 +14876,39.2,0.6,0 +14882,39.2,0.7,0 +14891,39.2,0.8,0 +14901,39.2,0.7,0 +14909,39.2,0.6,0 +14916,39.2,0.5,0 +14920,39.2,0.4,0 +14925,39.2,0.3,0 +14929,39.2,0.2,0 +14932,39.2,0.1,0 +14936,39.2,0,0 +14940,39.2,-0.1,0 +14943,39.2,-0.2,0 +14947,39.2,-0.3,0 +14951,39.2,-0.4,0 +14955,39.2,-0.5,0 +14957,39.2,-0.6,0 +14961,39.2,-0.7,0 +14965,39.2,-0.8,0 +14969,39.2,-0.9,0 +14974,39.2,-1,0 +14978,39.2,-1.1,0 +14983,39.2,-1.2,0 +14987,39.2,-1.3,0 +14991,39.2,-1.4,0 +14995,39.2,-1.5,0 +15002,39.2,-1.6,0 +15010,39.2,-1.7,0 +15026,26.5,-1.7,0 +15030,26.5,-1.6,0 +15037,26.5,-1.5,0 +15043,26.5,-1.4,0 +15047,32.6,-1.3,0 +15053,32.6,-1.2,0 +15057,32.6,-1.1,0 +15062,32.6,-1,0 +15065,32.6,-0.9,0 +15070,32.6,-0.8,0 +15077,32.6,-0.7,0 +15083,32.6,-0.6,0 +15090,32.6,-0.5,0 +15100,32.6,-0.4,0 +15113,32.6,-0.3,0 +15120,26.2,-0.3,0 +15128,32.9,-0.3,0 +15135,32.9,-0.4,0 +15149,32.9,-0.5,0 +15162,32.9,-0.6,0 +15195,32.9,-0.5,0 +15204,32.9,-0.4,0 +15208,32.9,-0.3,0 +15213,32.9,-0.2,0 +15218,32.9,-0.1,0 +15222,32.9,0,0 +15227,32.9,0.1,0 +15231,32.9,0.2,0 +15235,32.9,0.3,0 +15237,24.4,0.3,0 +15240,24.4,0.4,0 +15246,24.4,0.5,0 +15261,24.4,0.3,0 +15262,24.4,0,0 +15263,0,0.1,11 +15264,31.4,0.1,0 +15265,31.4,0.4,0 +15266,31.4,0.5,0 +15268,31.4,0.6,0 +15331,31.4,0.7,0 +15366,31.4,0.6,0 +15375,45.1,0.6,0 +15404,45.1,0.7,0 +15416,45.1,0.8,0 +15449,45.1,0.7,0 +15457,45.1,0.6,0 +15464,45.1,0.5,0 +15469,45.1,0.4,0 +15479,45.1,0.3,0 +15493,45.1,0.4,0 +15502,45.1,0.5,0 +15506,45.1,0.6,0 +15510,45.1,0.7,0 +15515,45.1,0.8,0 +15519,45.1,0.9,0 +15522,45.1,1,0 +15527,45.1,1.1,0 +15532,45.1,1.2,0 +15538,45.1,1.3,0 +15557,45.1,1.2,0 +15562,45.1,1.1,0 +15565,45.1,1,0 +15568,45.1,0.9,0 +15569,28.4,0.9,0 +15572,28.4,0.8,0 +15575,28.4,0.7,0 +15580,28.4,0.6,0 +15584,28.4,0.5,0 +15587,28.4,0.4,0 +15591,28.4,0.3,0 +15593,28.4,0.2,0 +15596,28.4,0.1,0 +15600,28.4,0,0 +15603,28.4,-0.1,0 +15606,28.4,-0.2,0 +15609,28.4,-0.3,0 +15612,28.4,-0.4,0 +15615,28.4,-0.5,0 +15618,28.4,-0.6,0 +15621,28.4,-0.7,0 +15625,28.4,-0.8,0 +15630,28.4,-0.9,0 +15634,28.4,-1,0 +15639,28.4,-1.1,0 +15644,28.4,-1.2,0 +15647,28.4,-1.3,0 +15648,28.4,-1.4,0 +15649,28.4,-1.6,0 +15650,0,-2.3,7.6 +15651,22.5,-2.3,0 +15652,22.5,-1.8,0 +15653,22.5,-1.5,0 +15654,22.5,-1.4,0 +15655,22.5,-1.3,0 +15658,22.5,-1.2,0 +15666,22.5,-1.1,0 +15675,22.5,-1,0 +15681,22.5,-0.9,0 +15687,22.5,-0.8,0 +15691,22.5,-0.7,0 +15695,22.5,-0.6,0 +15699,22.5,-0.5,0 +15703,22.5,-0.3,0 +15707,13.4,-0.3,0 +15708,45.5,-0.3,0 +15710,45.5,-0.2,0 +15712,45.5,-0.1,0 +15715,45.5,0,0 +15717,45.5,0.1,0 +15719,45.5,0.2,0 +15721,45.5,0.3,0 +15723,45.5,0.4,0 +15726,45.5,0.5,0 +15729,45.5,0.6,0 +15732,45.5,0.7,0 +15735,45.5,0.8,0 +15738,45.5,0.9,0 +15741,45.5,1,0 +15745,45.5,1.1,0 +15750,45.5,1.2,0 +15756,45.5,1.3,0 +15774,45.5,1.2,0 +15783,45.5,1.1,0 +15788,45.5,1,0 +15792,45.5,0.9,0 +15799,45.5,0.8,0 +15804,45.5,0.7,0 +15808,45.5,0.6,0 +15813,45.5,0.5,0 +15820,45.5,0.4,0 +15830,45.5,0.3,0 +15845,45.5,0.2,0 +15896,45.5,0.3,0 +15917,45.5,0.4,0 +15929,45.5,0.3,0 +15944,45.5,0.2,0 +15953,45.5,0.1,0 +15960,45.5,0,0 +15967,45.5,-0.1,0 +15974,45.5,-0.2,0 +15986,45.5,-0.3,0 +16008,45.5,-0.2,0 +16018,45.5,-0.1,0 +16026,45.5,0,0 +16031,45.5,0.1,0 +16036,45.5,0.2,0 +16041,45.5,0.3,0 +16048,45.5,0.4,0 +16076,45.5,0.3,0 +16083,45.5,0.2,0 +16088,45.5,0.1,0 +16093,45.5,0,0 +16098,45.5,-0.1,0 +16103,45.5,-0.2,0 +16111,45.5,-0.3,0 +16119,45.5,-0.4,0 +16142,45.5,-0.3,0 +16152,45.5,-0.2,0 +16162,45.5,-0.1,0 +16177,45.5,0,0 +16195,45.5,-0.1,0 +16212,45.5,-0.2,0 +16226,45.5,-0.3,0 +16248,45.5,-0.2,0 +16262,45.5,-0.1,0 +16269,45.5,0,0 +16275,45.5,0.1,0 +16282,45.5,0.2,0 +16288,45.5,0.3,0 +16295,45.5,0.4,0 +16303,45.5,0.5,0 +16310,45.5,0.6,0 +16318,45.5,0.7,0 +16321,26.1,0.7,0 +16326,26.1,0.8,0 +16337,26.1,0.9,0 +16370,26.1,0.8,0 +16379,26.1,0.7,0 +16388,27.9,0.7,0 +16394,27.9,0.6,0 +16407,27.9,0.5,0 +16418,27.9,0.4,0 +16433,27.9,0.3,0 +16446,27.9,0.2,0 +16448,26.1,0.2,0 +16452,26.1,0.3,0 +16455,26.1,0.4,0 +16459,26.1,0.5,0 +16463,26.1,0.6,0 +16467,26.1,0.7,0 +16472,26.1,0.8,0 +16479,26.1,0.9,0 +16490,26.1,1,0 +16492,26.1,0.9,0 +16501,26.1,0.8,0 +16502,26.1,0.7,0 +16503,0,-0.1,11.4 +16504,32.4,-0.1,0 +16505,32.4,0.5,0 +16506,32.4,0.6,0 +16507,32.4,0.7,0 +16508,32.4,0.8,0 +16509,32.4,0.9,0 +16562,32.4,0.8,0 +16570,32.4,0.7,0 +16575,32.4,0.6,0 +16581,32.4,0.5,0 +16584,32.4,0.4,0 +16588,32.4,0.3,0 +16593,32.4,0.2,0 +16596,32.4,0.1,0 +16601,32.4,0,0 +16607,28,-0.1,0 +16624,28,0,0 +16630,28,0.1,0 +16635,34.7,0.2,0 +16638,34.7,0.3,0 +16643,34.7,0.4,0 +16646,34.7,0.5,0 +16650,34.7,0.6,0 +16653,34.7,0.7,0 +16657,34.7,0.8,0 +16660,34.7,0.9,0 +16664,34.7,1,0 +16669,34.7,1.1,0 +16679,34.7,1.2,0 +16690,34.7,1.1,0 +16698,34.7,1,0 +16703,34.7,0.9,0 +16707,34.7,0.8,0 +16711,34.7,0.7,0 +16715,34.7,0.6,0 +16719,34.7,0.5,0 +16722,34.7,0.4,0 +16726,34.7,0.3,0 +16730,34.7,0.2,0 +16736,34.7,0.1,0 +16740,34.7,0,0 +16746,34.7,-0.1,0 +16775,34.7,0,0 +16783,34.7,0.1,0 +16790,34.7,0.2,0 +16797,34.7,0.3,0 +16803,34.7,0.4,0 +16811,34.7,0.5,0 +16822,34.7,0.4,0 +16824,34.7,0.2,0 +16825,0,-0.3,6 +16826,35.6,-0.3,0 +16827,35.6,0.4,0 +16828,35.6,0.5,0 +16831,35.6,0.6,0 +16848,35.6,0.5,0 +16855,35.6,0.4,0 +16860,35.6,0.3,0 +16866,35.6,0.2,0 +16871,35.6,0.1,0 +16877,35.6,0,0 +16881,35.6,-0.1,0 +16887,35.6,-0.2,0 +16895,35.6,-0.3,0 +16903,35.6,-0.4,0 +16911,35.6,-0.5,0 +16916,35.6,-0.6,0 +16924,35.6,-0.7,0 +16929,35.6,-0.8,0 +16935,35.6,-0.9,0 +16940,35.6,-1,0 +16945,35.6,-1.1,0 +16951,35.6,-1.2,0 +16956,35.6,-1.3,0 +16966,35.6,-1.4,0 +16979,35.6,-1.3,0 +16986,35.6,-1.2,0 +16990,35.6,-1.1,0 +16993,35.6,-1,0 +16997,35.6,-0.9,0 +17001,35.6,-0.8,0 +17002,35.6,-0.7,0 +17006,35.6,-0.6,0 +17008,35.6,-0.5,0 +17011,35.6,-0.4,0 +17012,35.6,-0.3,0 +17015,35.6,-0.2,0 +17018,35.6,-0.1,0 +17023,35.6,0,0 +17026,35.6,0.1,0 +17038,13.9,0.1,0 +17039,22.9,0.1,0 +17053,22.9,0,0 +17057,22.9,-0.1,0 +17063,22.9,-0.2,0 +17068,22.9,-0.3,0 +17077,22.9,-0.4,0 +17082,22.9,-0.3,0 +17091,22.9,-0.2,0 +17095,22.9,-0.1,0 +17100,22.9,-0.2,0 +17101,22.9,-0.5,0 +17102,0,0,11 +17103,21.8,0,0 +17104,21.8,0.1,0 +17105,21.8,0.2,0 +17106,21.8,0.3,0 +17108,21.8,0.4,0 +17109,21.8,0.5,0 +17110,21.8,0.6,0 +17112,21.8,0.7,0 +17114,21.8,0.8,0 +17115,21.8,0.9,0 +17117,21.8,1,0 +17118,21.8,1.1,0 +17121,21.8,1.2,0 +17123,21.8,1.3,0 +17124,21.8,1.4,0 +17126,21.8,1.5,0 +17127,21.8,1.6,0 +17130,21.8,1.7,0 +17131,21.8,1.8,0 +17133,21.8,1.9,0 +17136,21.8,2,0 +17138,21.8,2.1,0 +17141,21.8,2.2,0 +17143,21.8,2.3,0 +17147,21.8,2.4,0 +17151,50.8,2.5,0 +17157,50.8,2.6,0 +17169,50.8,2.5,0 +17175,50.8,2.4,0 +17181,50.8,2.3,0 +17186,50.8,2.2,0 +17188,50.8,2.1,0 +17192,50.8,2,0 +17196,50.8,1.9,0 +17200,50.8,1.8,0 +17202,50.8,1.7,0 +17207,50.8,1.6,0 +17211,50.8,1.5,0 +17213,50.8,1.4,0 +17218,50.8,1.3,0 +17220,50.8,1.2,0 +17225,50.8,1.1,0 +17230,50.8,1,0 +17232,50.8,0.9,0 +17237,50.8,0.8,0 +17242,50.8,0.7,0 +17245,50.8,0.6,0 +17250,50.8,0.5,0 +17256,50.8,0.4,0 +17261,50.8,0.3,0 +17269,50.8,0.2,0 +17278,50.8,0.1,0 +17295,50.8,0,0 +17347,50.8,-0.1,0 +17360,50.8,-0.2,0 +17367,50.8,-0.3,0 +17375,50.8,-0.4,0 +17380,50.8,-0.5,0 +17388,50.8,-0.6,0 +17396,50.8,-0.7,0 +17426,50.8,-0.6,0 +17437,50.8,-0.5,0 +17445,50.8,-0.4,0 +17453,50.8,-0.3,0 +17465,50.8,-0.2,0 +17479,50.8,-0.1,0 +17518,50.8,-0.2,0 +17526,50.8,-0.3,0 +17531,50.8,-0.4,0 +17537,50.8,-0.5,0 +17539,50.8,-0.6,0 +17545,50.8,-0.7,0 +17550,50.8,-0.8,0 +17552,50.8,-0.9,0 +17557,50.8,-1,0 +17564,50.8,-1.1,0 +17575,50.8,-1.2,0 +17589,50.8,-1.1,0 +17604,50.8,-1,0 +17612,32.8,-1,0 +17620,32.8,-0.9,0 +17665,32.8,-0.8,0 +17675,32.8,-0.7,0 +17683,32.8,-0.6,0 +17690,32.8,-0.5,0 +17696,32.8,-0.4,0 +17703,32.8,-0.3,0 +17708,32.8,-0.2,0 +17714,32.8,-0.1,0 +17720,32.8,0,0 +17727,32.8,0.1,0 +17733,32.8,0,0 +17734,32.8,-0.3,0 +17735,0,-0.8,13.6 +17736,30.9,-0.8,0 +17737,30.9,0.1,0 +17738,30.9,0.2,0 +17740,30.9,0.3,0 +17743,30.9,0.4,0 +17746,30.9,0.5,0 +17752,30.9,0.6,0 +17781,30.9,0.5,0 +17788,30.9,0.4,0 +17794,30.9,0.3,0 +17799,30.9,0.2,0 +17805,30.9,0.1,0 +17809,30.9,0,0 +17813,30.9,-0.1,0 +17817,30.9,-0.2,0 +17820,30.9,-0.3,0 +17823,30.9,-0.4,0 +17826,10,-0.5,0 +17831,10,-0.6,0 +17836,10,-0.7,0 +17838,10,-0.8,0 +17839,10,-1.1,0 +17840,0,-0.4,19 +17841,33.5,-0.4,0 +17842,33.5,-0.9,0 +17843,33.5,-0.8,0 +17845,33.5,-0.7,0 +17853,33.5,-0.8,0 +17862,33.5,-0.9,0 +17871,33.5,-1,0 +17890,33.5,-0.9,0 +17897,33.5,-0.8,0 +17903,33.5,-0.7,0 +17906,33.5,-0.6,0 +17910,33.5,-0.5,0 +17912,33.5,-0.4,0 +17915,33.5,-0.3,0 +17919,33.5,-0.2,0 +17922,33.5,-0.1,0 +17925,33.5,0,0 +17928,33.5,0.1,0 +17931,33.5,0.2,0 +17935,33.5,0.3,0 +17937,23.6,0.3,0 +17938,39.8,0.3,0 +17939,39.8,0.4,0 +17945,39.8,0.5,0 +17959,39.8,0.4,0 +17966,39.8,0.3,0 +17969,39.8,0.2,0 +17973,39.8,0.1,0 +17975,39.8,0,0 +17977,39.8,-0.1,0 +17982,39.8,-0.2,0 +17984,39.8,-0.3,0 +17986,39.8,-0.4,0 +17988,39.8,-0.5,0 +17990,39.8,-0.6,0 +17992,39.8,-0.7,0 +17997,39.8,-0.8,0 +17999,39.8,-0.9,0 +18001,39.8,-1,0 +18003,39.8,-1.1,0 +18006,39.8,-1.2,0 +18010,39.8,-1.3,0 +18012,39.8,-1.4,0 +18016,39.8,-1.5,0 +18023,39.8,-1.6,0 +18030,39.8,-1.7,0 +18043,25.4,-1.6,0 +18052,35.1,-1.5,0 +18057,35.1,-1.4,0 +18062,35.1,-1.3,0 +18066,35.1,-1.2,0 +18071,35.1,-1.1,0 +18076,35.1,-1,0 +18081,35.1,-0.9,0 +18093,35.1,-0.8,0 +18104,35.1,-0.9,0 +18116,35.1,-1,0 +18121,43.8,-1,0 +18123,43.8,-1.1,0 +18131,43.8,-1.2,0 +18145,43.8,-1.3,0 +18149,43.8,-1.2,0 +18160,43.8,-1.1,0 +18165,43.8,-1,0 +18170,43.8,-0.9,0 +18172,43.8,-0.8,0 +18175,43.8,-0.7,0 +18177,43.8,-0.6,0 +18180,43.8,-0.5,0 +18182,43.8,-0.4,0 +18184,43.8,-0.3,0 +18187,43.8,-0.2,0 +18189,43.8,-0.1,0 +18192,43.8,0,0 +18194,43.8,0.1,0 +18196,43.8,0.2,0 +18199,43.8,0.3,0 +18201,43.8,0.4,0 +18203,43.8,0.5,0 +18206,43.8,0.6,0 +18208,43.8,0.7,0 +18212,43.8,0.8,0 +18214,43.8,0.9,0 +18218,43.8,1,0 +18226,43.8,1.1,0 +18236,29.3,1.1,0 +18240,29.3,1,0 +18247,29.3,0.9,0 +18250,40.1,0.9,0 +18252,40.1,0.8,0 +18257,40.1,0.7,0 +18260,40.1,0.6,0 +18264,40.1,0.5,0 +18266,40.1,0.4,0 +18269,40.1,0.3,0 +18273,40.1,0.2,0 +18277,40.1,0.1,0 +18281,40.1,0,0 +18288,40.1,-0.1,0 +18303,40.1,0,0 +18310,40.1,0.1,0 +18314,40.1,0.2,0 +18316,40.1,0.3,0 +18320,40.1,0.4,0 +18323,40.1,0.5,0 +18327,40.1,0.6,0 +18331,40.1,0.7,0 +18334,40.1,0.8,0 +18338,40.1,0.9,0 +18353,40.1,0.8,0 +18354,40.1,0.6,0 +18355,0,0.2,12.8 +18356,45.7,0.2,0 +18357,45.7,0.6,0 +18358,45.7,0.7,0 +18359,45.7,0.8,0 +18365,45.7,0.7,0 +18370,45.7,0.6,0 +18374,45.7,0.5,0 +18378,45.7,0.4,0 +18381,45.7,0.3,0 +18386,45.7,0.2,0 +18389,45.7,0.1,0 +18394,45.7,0,0 +18419,45.7,0.1,0 +18426,45.7,0.2,0 +18430,45.7,0.3,0 +18438,45.7,0.4,0 +18445,45.7,0.5,0 +18465,45.7,0.4,0 +18473,45.7,0.3,0 +18478,45.7,0.2,0 +18483,45.7,0.1,0 +18490,45.7,0,0 +18495,45.7,-0.1,0 +18504,45.7,-0.2,0 +18523,49,-0.2,0 +18526,49,-0.1,0 +18535,49,0,0 +18547,49,0.1,0 +18581,49,0,0 +18597,49,-0.1,0 +18602,57.3,-0.1,0 +18627,57.4,-0.1,0 +18661,57.4,-0.2,0 +18680,57.4,-0.3,0 +18720,57.4,-0.2,0 +18735,57.4,-0.1,0 +18745,57.4,0,0 +18750,46.8,0,0 +18756,46.8,0.1,0 +18769,46.8,0.2,0 +18792,46.8,0.3,0 +18816,46.8,0.4,0 +18825,46.8,0.5,0 +18831,46.8,0.6,0 +18836,46.8,0.7,0 +18841,46.8,0.8,0 +18845,28.7,0.8,0 +18846,28.7,0.9,0 +18851,28.7,1,0 +18859,28.7,1.1,0 +18878,35.2,1,0 +18884,35.2,0.9,0 +18891,35.2,0.8,0 +18896,35.2,0.7,0 +18899,35.2,0.6,0 +18905,35.2,0.5,0 +18908,35.2,0.4,0 +18914,35.2,0.3,0 +18920,35.2,0.2,0 +18930,35.2,0.1,0 +18955,35.2,0.2,0 +18963,35.2,0.3,0 +18970,35.2,0.4,0 +18976,35.2,0.5,0 +18984,35.2,0.4,0 +18985,35.2,0.1,0 +18986,0,0.9,13 +18987,63.5,0.9,0 +18988,63.5,0.5,0 +18989,63.5,0.6,0 +18990,63.5,0.7,0 +18992,63.5,0.8,0 +18994,63.5,0.9,0 +19000,63.5,1,0 +19009,63.5,1.1,0 +19022,63.5,1,0 +19033,63.5,0.9,0 +19042,63.5,0.8,0 +19051,63.5,0.7,0 +19084,63.5,0.8,0 +19101,63.5,0.9,0 +19148,63.5,0.8,0 +19157,63.5,0.7,0 +19164,63.5,0.6,0 +19171,63.5,0.5,0 +19174,63.5,0.4,0 +19178,63.5,0.3,0 +19185,63.5,0.2,0 +19188,63.5,0.1,0 +19192,63.5,0,0 +19199,63.5,-0.1,0 +19202,63.5,-0.2,0 +19206,63.5,-0.3,0 +19213,63.5,-0.4,0 +19217,63.5,-0.5,0 +19223,63.5,-0.6,0 +19227,63.5,-0.7,0 +19234,63.5,-0.8,0 +19244,63.5,-0.9,0 +19254,63.5,-1,0 +19296,63.5,-0.9,0 +19308,63.5,-1,0 +19346,63.5,-0.9,0 +19358,63.5,-0.8,0 +19365,63.5,-1,0 +19368,63.5,-1.1,0 +19369,63.5,-1.7,0 +19370,0,-1.1,27 +19371,27.8,-1.1,0 +19372,27.8,-0.8,0 +19373,27.8,-0.7,0 +19375,27.8,-0.6,0 +19378,27.8,-0.5,0 +19381,27.8,-0.4,0 +19387,27.8,-0.3,0 +19399,27.8,-0.2,0 +19426,27.8,-0.1,0 +19436,27.8,0,0 +19446,27.8,0.1,0 +19454,27.8,0,0 +19455,27.8,-0.4,0 +19456,0,-0.5,9.4 +19457,49.8,-0.5,0 +19458,49.8,0.1,0 +19459,49.8,0.2,0 +19460,49.8,0.3,0 +19463,49.8,0.4,0 +19468,49.8,0.5,0 +19473,49.8,0.6,0 +19482,49.8,0.7,0 +19508,49.8,0.6,0 +19549,49.8,0.7,0 +19556,49.8,0.8,0 +19564,49.8,0.9,0 +19571,49.8,1,0 +19576,49.8,1.1,0 +19584,49.8,1.2,0 +19597,49.8,1.3,0 +19606,49.8,1.2,0 +19619,49.8,1.1,0 +19627,49.8,1,0 +19635,49.8,0.9,0 +19641,49.8,0.8,0 +19649,49.8,0.7,0 +19657,49.8,0.6,0 +19663,54.4,0.6,0 +19669,54.4,0.5,0 +19677,54.4,0.4,0 +19689,54.4,0.3,0 +19698,54.4,0.2,0 +19710,54.4,0.1,0 +19716,54.4,0,0 +19725,54.4,-0.1,0 +19731,54.4,-0.2,0 +19740,54.4,-0.3,0 +19749,54.4,-0.4,0 +19758,54.4,-0.5,0 +19769,54.4,-0.6,0 +19778,54.4,-0.7,0 +19786,54.4,-0.8,0 +19791,54.4,-0.9,0 +19797,54.4,-1,0 +19804,54.4,-1.1,0 +19809,54.4,-1.2,0 +19814,54.4,-1.3,0 +19820,54.4,-1.4,0 +19831,54.4,-1.5,0 +19839,54.4,-1.4,0 +19855,54.4,-1.5,0 +19856,54.4,-1.7,0 +19857,54.4,-2.3,0 +19858,0,-2,22.2 +19859,20.4,-2,0 +19860,20.4,-1.2,0 +19861,20.4,-1.1,0 +19862,20.4,-1,0 +19864,20.4,-0.9,0 +19865,20.4,-0.8,0 +19868,20.4,-0.7,0 +19871,20.4,-0.6,0 +19873,20.4,-0.5,0 +19877,20.4,-0.4,0 +19880,20.4,-0.3,0 +19883,20.4,-0.2,0 +19887,20.4,-0.1,0 +19891,44.7,0,0 +19896,44.7,0.1,0 +19903,44.7,0.2,0 +19952,44.7,0.3,0 +19962,44.7,0.4,0 +19969,44.7,0.5,0 +19977,44.7,0.6,0 +20001,44.7,0.5,0 +20009,44.7,0.4,0 +20016,44.7,0.3,0 +20020,44.7,0.2,0 +20025,44.7,0.1,0 +20029,44.7,0,0 +20034,44.7,-0.1,0 +20038,44.7,-0.2,0 +20045,44.7,-0.3,0 +20053,44.7,-0.4,0 +20072,44.7,-0.3,0 +20082,44.7,-0.2,0 +20087,44.1,-0.1,0 +20092,44.1,0,0 +20097,44.1,0.1,0 +20101,44.1,0.2,0 +20106,44.1,0.3,0 +20111,44.1,0.4,0 +20119,44.1,0.5,0 +20127,44.1,0.6,0 +20151,44.1,0.5,0 +20158,44.1,0.4,0 +20163,44.1,0.3,0 +20168,44.1,0.2,0 +20173,44.1,0.1,0 +20178,44.1,0,0 +20180,44.1,-0.1,0 +20185,44.1,-0.2,0 +20190,44.1,-0.3,0 +20194,44.1,-0.4,0 +20205,44.1,-0.5,0 +20209,44.1,-0.4,0 +20218,44.1,-0.3,0 +20224,44.1,-0.2,0 +20228,32.2,-0.1,0 +20231,32.2,0,0 +20235,32.2,0.1,0 +20238,32.2,0.2,0 +20242,32.2,0.3,0 +20245,32.2,0.4,0 +20250,32.2,0.5,0 +20254,36.2,0.5,0 +20257,36.2,0.6,0 +20268,36.2,0.5,0 +20275,36.2,0.4,0 +20279,36.2,0.3,0 +20283,36.2,0.2,0 +20287,36.2,0.1,0 +20289,36.2,0,0 +20293,36.2,-0.1,0 +20297,36.2,-0.2,0 +20299,36.2,-0.3,0 +20303,36.2,-0.4,0 +20307,36.2,-0.5,0 +20311,36.2,-0.6,0 +20321,36.2,-0.7,0 +20328,36.5,-0.6,0 +20334,48.5,-0.6,0 +20338,48.5,-0.5,0 +20341,48.5,-0.4,0 +20345,48.5,-0.3,0 +20349,48.5,-0.2,0 +20353,48.5,-0.1,0 +20355,48.5,0,0 +20359,48.5,0.1,0 +20361,48.5,0.2,0 +20365,48.5,0.3,0 +20367,48.5,0.4,0 +20371,48.5,0.5,0 +20375,48.5,0.6,0 +20377,48.5,0.7,0 +20384,48.5,0.8,0 +20391,48.5,0.9,0 +20405,48.5,0.8,0 +20413,48.5,0.7,0 +20418,48.5,0.6,0 +20421,48.5,0.5,0 +20426,48.5,0.4,0 +20428,48.5,0.3,0 +20434,48.5,0.2,0 +20436,48.5,0.1,0 +20439,48.5,0,0 +20445,48.5,-0.1,0 +20450,48.5,-0.2,0 +20455,48.5,-0.3,0 +20461,48.5,-0.4,0 +20485,48.5,-0.3,0 +20493,48.5,-0.2,0 +20501,48.5,-0.1,0 +20506,48.5,0,0 +20514,48.5,0.1,0 +20528,48.5,0.2,0 +20538,48.5,0.1,0 +20549,48.5,0,0 +20554,48.5,-0.1,0 +20559,48.5,-0.2,0 +20564,48.5,-0.3,0 +20567,48.5,-0.4,0 +20572,48.5,-0.5,0 +20574,48.5,-0.6,0 +20576,48.5,-0.7,0 +20579,48.5,-0.8,0 +20581,48.5,-0.9,0 +20586,48.5,-1,0 +20588,48.5,-1.1,0 +20590,48.5,-1.2,0 +20592,48.5,-1.3,0 +20596,48.5,-1.4,0 +20598,48.5,-1.5,0 +20602,48.5,-1.6,0 +20606,48.5,-1.7,0 +20609,48.5,-1.8,0 +20618,48.5,-1.9,0 +20623,48.5,-1.8,0 +20631,48.5,-1.7,0 +20635,48.5,-1.6,0 +20637,50.6,-1.6,0 +20639,50.6,-1.5,0 +20640,50.6,-1.4,0 +20643,50.6,-1.3,0 +20645,50.6,-1.2,0 +20648,50.6,-1.1,0 +20649,50.6,-1,0 +20651,50.6,-0.9,0 +20654,50.6,-0.8,0 +20655,50.6,-0.7,0 +20658,50.6,-0.6,0 +20660,50.6,-0.5,0 +20661,50.6,-0.4,0 +20664,50.6,-0.3,0 +20666,50.6,-0.2,0 +20669,50.6,-0.1,0 +20671,50.6,0,0 +20675,50.6,0.1,0 +20678,50.6,0.2,0 +20680,50.6,0.3,0 +20686,50.6,0.4,0 +20693,50.6,0.5,0 +20720,50.6,0.4,0 +20744,50.6,0.5,0 +20755,50.6,0.6,0 +20760,50.6,0.7,0 +20769,50.6,0.8,0 +20774,50.6,0.9,0 +20780,50.6,1,0 +20785,50.6,1.1,0 +20794,54.8,1.1,0 +20796,54.8,1.2,0 +20816,54.8,1.1,0 +20831,54.8,1,0 +20845,54.8,0.9,0 +20866,54.8,1,0 +20884,54.8,1.1,0 +20908,54.8,1,0 +20921,54.8,0.9,0 +20927,54.8,0.8,0 +20933,54.8,0.7,0 +20938,54.8,0.6,0 +20947,54.8,0.5,0 +20953,54.8,0.4,0 +20963,54.8,0.3,0 +20966,48.2,0.3,0 +20977,48.2,0.2,0 +20998,48.2,0.1,0 +21014,48.2,0,0 +21027,48.2,-0.1,0 +21035,48.2,-0.2,0 +21041,48.2,-0.3,0 +21049,48.2,-0.4,0 +21054,48.2,-0.5,0 +21059,48.2,-0.6,0 +21065,48.2,-0.7,0 +21070,48.2,-0.8,0 +21075,48.2,-0.9,0 +21081,48.2,-1,0 +21088,48.2,-1.1,0 +21110,48.2,-1,0 +21118,48.2,-0.9,0 +21123,48.2,-0.8,0 +21127,48.2,-0.7,0 +21130,48.2,-0.6,0 +21133,48.2,-0.5,0 +21135,48.2,-0.4,0 +21139,54.6,-0.3,0 +21142,54.6,-0.2,0 +21145,54.6,-0.1,0 +21148,54.6,0,0 +21151,54.6,0.1,0 +21154,54.6,0.2,0 +21155,54.6,0.3,0 +21159,54.6,0.4,0 +21162,54.6,0.5,0 +21166,54.6,0.6,0 +21170,54.6,0.7,0 +21174,54.6,0.8,0 +21180,54.6,0.9,0 +21208,54.6,0.8,0 +21214,54.6,0.7,0 +21219,54.6,0.6,0 +21225,54.6,0.5,0 +21227,54.6,0.4,0 +21233,54.6,0.3,0 +21236,54.6,0.2,0 +21239,54.6,0.1,0 +21244,54.6,0,0 +21250,54.6,-0.1,0 +21253,54.6,-0.2,0 +21262,54.6,-0.3,0 +21268,60.3,-0.3,0 +21278,60.3,-0.2,0 +21287,60.3,-0.1,0 +21297,60.3,0,0 +21300,60.3,0.1,0 +21307,60.3,0.2,0 +21314,60.3,0.3,0 +21324,60.3,0.4,0 +21330,60.3,0.5,0 +21340,60.3,0.6,0 +21373,60.3,0.5,0 +21379,60.3,0.4,0 +21382,56.4,0.3,0 +21389,56.4,0.2,0 +21392,56.4,0.1,0 +21395,56.4,0,0 +21398,56.4,-0.1,0 +21401,56.4,-0.2,0 +21404,56.4,-0.3,0 +21407,56.4,-0.4,0 +21411,56.4,-0.6,0 +21414,56.4,-0.7,0 +21417,56.4,-0.8,0 +21423,56.4,-0.9,0 +21426,56.4,-1,0 +21429,56.4,-1.1,0 +21435,56.4,-1.2,0 +21441,56.4,-1.3,0 +21462,56.4,-1.2,0 +21467,56.4,-1.1,0 +21473,56.4,-1,0 +21478,56.4,-0.9,0 +21483,56.4,-0.8,0 +21488,56.4,-0.7,0 +21492,56.4,-0.6,0 +21497,56.4,-0.5,0 +21502,56.4,-0.4,0 +21507,56.4,-0.3,0 +21520,56.4,-0.5,0 +21521,0,-1.2,8 +21522,49.3,-1.2,0 +21523,49.3,-0.3,0 +21525,49.3,-0.2,0 +21526,49.3,-0.1,0 +21532,49.3,0,0 +21540,49.3,0.1,0 +21553,49.3,0.2,0 +21562,49.3,0.3,0 +21570,49.3,0.4,0 +21574,49.3,0.5,0 +21580,49.3,0.6,0 +21585,49.3,0.7,0 +21587,49.3,0.8,0 +21592,49.3,0.9,0 +21596,49.3,1,0 +21599,49.3,1.1,0 +21604,49.3,1.2,0 +21608,49.3,1.3,0 +21613,49.3,1.4,0 +21643,49.3,1.3,0 +21651,49.3,1.2,0 +21656,49.3,1.1,0 +21667,49.3,1,0 +21686,49.3,1.1,0 +21699,49.3,1.2,0 +21704,51.6,1.2,0 +21732,51.6,1.1,0 +21737,51.6,1,0 +21743,51.6,0.9,0 +21746,51.6,0.8,0 +21752,51.6,0.7,0 +21754,51.6,0.6,0 +21760,51.6,0.5,0 +21763,51.6,0.4,0 +21769,51.6,0.3,0 +21774,51.5,0.2,0 +21783,48.3,0.1,0 +21806,48.3,0.2,0 +21814,48.3,0.3,0 +21821,48.3,0.4,0 +21828,48.3,0.5,0 +21835,48.3,0.6,0 +21842,48.3,0.7,0 +21855,48.3,0.8,0 +21872,27,0.8,0 +21873,30.8,0.8,0 +21882,30.8,0.7,0 +21895,30.8,0.6,0 +21902,30.8,0.5,0 +21907,30.8,0.4,0 +21912,30.8,0.3,0 +21915,30.8,0.2,0 +21918,30.8,0.1,0 +21921,30.8,0,0 +21923,30.8,-0.1,0 +21925,30.8,-0.2,0 +21927,30.8,-0.3,0 +21929,30.8,-0.4,0 +21930,30.8,-0.5,0 +21931,30.8,-0.7,0 +21932,0,-1.6,10.8 +21933,28.1,-1.6,0 +21934,28.1,-0.8,0 +21935,28.1,-0.7,0 +21938,28.1,-0.8,0 +21940,28.1,-0.9,0 +21943,28.1,-1,0 +21945,28.1,-1.1,0 +21947,28.1,-1.2,0 +21949,28.1,-1.3,0 +21951,28.1,-1.4,0 +21953,28.1,-1.5,0 +21954,28.1,-1.6,0 +21957,28.1,-1.7,0 +21959,28.1,-1.8,0 +21961,28.1,-1.9,0 +21963,28.1,-2,0 +21967,28.1,-2.1,0 +21970,28.1,-2.2,0 +21973,28.1,-2.3,0 +21977,28.1,-2.4,0 +21997,28.1,-2.3,0 +22001,28.1,-2.2,0 +22005,28.1,-2.1,0 +22008,28.1,-2,0 +22012,28.1,-1.9,0 +22013,18.9,-1.9,0 +22014,46.7,-1.9,0 +22015,46.7,-1.8,0 +22017,46.7,-1.7,0 +22019,46.7,-1.6,0 +22022,46.7,-1.5,0 +22023,46.7,-1.4,0 +22026,46.7,-1.3,0 +22029,46.7,-1.2,0 +22030,46.7,-1.1,0 +22033,46.7,-1,0 +22037,46.7,-0.9,0 +22038,46.7,-0.8,0 +22042,46.7,-0.7,0 +22045,46.7,-0.6,0 +22049,46.7,-0.5,0 +22053,46.7,-0.4,0 +22057,46.7,-0.3,0 +22061,46.7,-0.2,0 +22066,46.7,-0.1,0 +22073,46.7,0,0 +22078,46.7,0.1,0 +22083,46.7,0.2,0 +22088,46.7,0.3,0 +22093,46.7,0.4,0 +22101,46.7,0.5,0 +22106,46.7,0.6,0 +22111,46.7,0.7,0 +22118,46.7,0.8,0 +22129,46.7,0.9,0 +22137,46.7,0.8,0 +22147,46.7,0.7,0 +22153,46.7,0.6,0 +22155,50.6,0.6,0 +22158,50.6,0.5,0 +22162,50.6,0.4,0 +22164,50.6,0.3,0 +22168,50.6,0.2,0 +22170,50.6,0.1,0 +22174,50.6,0,0 +22176,50.6,-0.1,0 +22180,50.6,-0.2,0 +22182,50.6,-0.3,0 +22186,50.6,-0.4,0 +22190,50.6,-0.5,0 +22193,50.6,-0.6,0 +22197,50.6,-0.7,0 +22206,50.6,-0.8,0 +22218,50.6,-0.7,0 +22226,50.6,-0.6,0 +22232,50.6,-0.5,0 +22237,50.6,-0.4,0 +22240,50.6,-0.3,0 +22245,50.6,-0.2,0 +22248,50.6,-0.1,0 +22251,50.6,0,0 +22256,50.6,0.1,0 +22259,50.6,0.2,0 +22265,50.6,0.3,0 +22270,50.6,0.4,0 +22273,50.6,0.5,0 +22278,50.6,0.6,0 +22284,50.6,0.7,0 +22286,50.6,0.8,0 +22292,50.6,0.9,0 +22297,50.6,1,0 +22299,50.6,1.1,0 +22304,44,1.2,0 +22307,44,1.3,0 +22312,44,1.4,0 +22317,44,1.5,0 +22319,44,1.6,0 +22321,55.7,1.6,0 +22324,55.7,1.7,0 +22329,55.7,1.8,0 +22334,55.7,1.9,0 +22341,55.7,2,0 +22353,55.7,1.9,0 +22361,55.7,1.8,0 +22366,55.7,1.7,0 +22369,55.7,1.6,0 +22372,55.7,1.5,0 +22374,55.7,1.4,0 +22377,55.7,1.3,0 +22380,55.7,1.2,0 +22383,55.7,1.1,0 +22385,55.7,1,0 +22388,55.7,0.9,0 +22391,55.7,0.8,0 +22394,55.7,0.6,0 +22397,55.7,0.5,0 +22400,55.7,0.4,0 +22402,55.7,0.3,0 +22405,55.7,0.2,0 +22408,55.7,0.1,0 +22411,55.7,0,0 +22417,55.7,-0.1,0 +22420,55.7,-0.2,0 +22426,55.7,-0.3,0 +22433,55.7,-0.4,0 +22442,55.7,-0.5,0 +22451,55.7,-0.6,0 +22457,55.7,-0.7,0 +22466,55.7,-0.8,0 +22472,55.7,-0.9,0 +22478,55.7,-1,0 +22481,55.7,-1.1,0 +22487,55.7,-1.2,0 +22495,55.7,-1.3,0 +22516,55.7,-1.2,0 +22522,55.7,-1.1,0 +22527,55.7,-1,0 +22531,55.7,-1.1,0 +22532,0,-1.7,21.6 +22533,26.6,-1.7,0 +22534,26.6,-0.8,0 +22535,26.6,-0.7,0 +22536,26.6,-0.6,0 +22537,26.6,-0.5,0 +22538,26.6,-0.4,0 +22540,26.6,-0.3,0 +22541,26.6,-0.2,0 +22542,26.6,-0.1,0 +22544,26.6,0,0 +22546,26.6,0.1,0 +22547,26.6,0.2,0 +22549,26.6,0.3,0 +22550,26.6,0.4,0 +22552,26.6,0.5,0 +22554,26.6,0.6,0 +22556,26.6,0.7,0 +22557,26.6,0.8,0 +22559,26.6,0.9,0 +22562,26.6,1,0 +22563,26.6,1.1,0 +22566,26.6,1.2,0 +22567,26.6,1.3,0 +22570,26.6,1.4,0 +22573,26.6,1.5,0 +22576,26.6,1.6,0 +22579,26.6,1.7,0 +22586,26.6,1.8,0 +22590,18.5,1.8,0 +22593,39.3,1.8,0 +22609,39.3,1.7,0 +22617,39.3,1.6,0 +22624,39.3,1.5,0 +22631,39.3,1.4,0 +22640,39.3,1.3,0 +22648,50.6,1.3,0 +22653,50.6,1.2,0 +22667,50.6,1.1,0 +22677,50.6,1,0 +22685,50.6,0.9,0 +22690,50.6,0.8,0 +22695,50.6,0.7,0 +22701,50.6,0.6,0 +22704,50.6,0.5,0 +22709,50.6,0.4,0 +22712,50.6,0.3,0 +22718,50.6,0.2,0 +22721,50.6,0.1,0 +22726,50.6,0,0 +22729,50.6,-0.1,0 +22735,50.6,-0.2,0 +22740,50.6,-0.3,0 +22743,50.6,-0.4,0 +22749,50.6,-0.5,0 +22757,50.6,-0.6,0 +22765,50.6,-0.7,0 +22799,50.6,-0.6,0 +22813,50.6,-0.5,0 +22821,50.6,-0.4,0 +22828,50.6,-0.3,0 +22834,50.6,-0.2,0 +22839,50.6,-0.1,0 +22844,50.6,-0.2,0 +22845,50.6,-0.4,0 +22846,0,-0.7,17.2 +22847,60.2,-0.7,0 +22848,60.2,0.1,0 +22850,60.2,0.2,0 +22851,60.2,0.3,0 +22854,60.2,0.4,0 +22857,60.2,0.5,0 +22860,60.2,0.6,0 +22862,60.2,0.7,0 +22866,60.2,0.8,0 +22869,60.2,0.9,0 +22872,60.2,1,0 +22877,60.2,1.1,0 +22882,60.2,1.2,0 +22888,60.2,1.3,0 +22918,60.2,1.2,0 +22922,60.2,1.1,0 +22930,60.2,1,0 +22932,60.2,0.9,0 +22937,60.2,0.8,0 +22940,60.2,0.7,0 +22945,60.2,0.6,0 +22948,60.2,0.5,0 +22953,60.2,0.4,0 +22956,60.2,0.3,0 +22962,60.2,0.2,0 +22970,60.2,0.1,0 +22982,60.2,0.2,0 +22991,60.2,0.3,0 +22994,60.2,0.4,0 +23001,60.2,0.5,0 +23004,60.2,0.6,0 +23007,60.2,0.7,0 +23013,60.2,0.8,0 +23016,60.2,0.9,0 +23020,60.2,1,0 +23026,60.2,1.1,0 +23033,60.2,1.2,0 +23059,60.2,1.1,0 +23065,60.2,1,0 +23072,60.2,0.9,0 +23078,60.2,0.8,0 +23085,60.2,0.7,0 +23092,60.2,0.6,0 +23095,60.2,0.5,0 +23102,60.2,0.4,0 +23105,60.2,0.3,0 +23112,60.2,0.2,0 +23115,60.2,0.1,0 +23122,60.2,0,0 +23128,60.2,-0.1,0 +23132,60.2,-0.2,0 +23139,60.2,-0.3,0 +23142,60.2,-0.4,0 +23149,60.2,-0.5,0 +23158,60.2,-0.6,0 +23168,60.2,-0.7,0 +23181,60.2,-0.8,0 +23207,60.2,-0.9,0 +23230,60.2,-1,0 +23248,55.1,-1,0 +23251,55.1,-1.1,0 +23263,55.1,-1.2,0 +23272,55.1,-1.3,0 +23277,55.1,-1.4,0 +23282,55.1,-1.5,0 +23290,55.1,-1.6,0 +23294,55.1,-1.7,0 +23300,55.1,-1.8,0 +23302,33.7,-1.8,0 +23311,33.7,-1.9,0 +23322,33.7,-1.8,0 +23331,33.7,-1.7,0 +23338,33.7,-1.6,0 +23342,33.7,-1.5,0 +23347,33.7,-1.4,0 +23350,33.7,-1.3,0 +23355,33.7,-1.2,0 +23361,33.7,-1.1,0 +23366,33.7,-1,0 +23377,33.3,-1,0 +23378,33.3,-0.9,0 +23392,33.3,-1,0 +23402,33.3,-1.1,0 +23410,33.3,-1.2,0 +23420,33.3,-1.3,0 +23437,33.3,-1.2,0 +23444,33.3,-1.1,0 +23449,33.3,-1,0 +23454,33.3,-0.9,0 +23459,33.3,-0.8,0 +23463,33.3,-0.7,0 +23467,33.3,-0.6,0 +23471,33.3,-0.5,0 +23476,33.3,-0.4,0 +23480,33.3,-0.3,0 +23501,33.3,-0.5,0 +23503,0,-1.2,3.2 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Truck.vacc b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Truck.vacc new file mode 100644 index 0000000000000000000000000000000000000000..b03ec7e47e9765ae57e43462c7f4c3ad15a38e7e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Truck.vacc @@ -0,0 +1,6 @@ +v [km/h],acc [m/s�],dec [m/s�] +0,1,-1 +25,1,-1 +50,0.642857143,-1 +60,0.5,-0.5 +120,0.5,-0.5 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Urban.vdri b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Urban.vdri new file mode 100644 index 0000000000000000000000000000000000000000..31475e48785586b06b4bab58bdfc12f81037c37c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx/Urban.vdri @@ -0,0 +1,10062 @@ +<s>,<v>,<grad>,<stop> +0,0,-7,12.6 +1,23.7,-7,0 +2,23.7,-7,0 +5,23.7,-7.1,0 +10,23.7,-7.2,0 +18,23.7,-7.3,0 +24,23.7,-7.2,0 +30,23.7,-7.1,0 +33,23.7,-7,0 +35,23.7,-6.9,0 +38,23.7,-6.8,0 +39,23.7,-6.7,0 +40,23.7,-6.6,0 +42,23.7,-6.5,0 +43,23.7,-6.4,0 +44,23.7,-6.3,0 +45,23.7,-6.2,0 +47,23.7,-6.1,0 +48,23.7,-6,0 +49,23.7,-5.8,0 +51,23.7,-5.6,0 +52,23.7,-5.5,0 +53,23.7,-5.3,0 +55,23.7,-5.2,0 +56,23.7,-5,0 +57,23.7,-4.8,0 +58,23.7,-4.6,0 +60,23.7,-4.5,0 +61,23.7,-4.3,0 +62,23.7,-4.1,0 +63,23.7,-3.9,0 +64,23.7,-3.8,0 +65,23.7,-3.6,0 +66,23.7,-3.3,0 +68,23.7,-3.1,0 +69,23.7,-2.9,0 +70,23.7,-2.7,0 +71,23.7,-2.5,0 +72,23.7,-2.4,0 +73,23.7,-2.2,0 +74,23.7,-2,0 +75,23.7,-1.8,0 +76,23.7,-1.6,0 +77,23.7,-1.4,0 +78,23.7,-1.2,0 +79,23.7,-1,0 +80,23.7,-0.8,0 +81,23.7,-0.6,0 +82,23.7,-0.4,0 +83,23.7,-0.2,0 +84,23.7,0,0 +85,23.7,0.2,0 +86,23.7,0.4,0 +87,23.7,0.6,0 +88,23.7,0.8,0 +89,23.7,1,0 +90,23.7,1.2,0 +91,10,1.4,0 +92,10,1.6,0 +93,10,1.8,0 +94,18.4,2,0 +95,18.4,2.1,0 +96,18.4,2.3,0 +97,18.4,2.5,0 +98,18.4,2.7,0 +99,18.4,2.8,0 +100,18.4,3,0 +101,18.4,3.2,0 +102,18.4,3.3,0 +103,18.4,3.5,0 +104,18.4,3.7,0 +105,18.4,3.9,0 +106,18.4,4,0 +107,18.4,4.2,0 +108,18.4,4.3,0 +109,18.4,4.5,0 +110,18.4,4.6,0 +111,18.4,4.7,0 +112,18.4,4.9,0 +113,18.4,5,0 +114,18.4,5.1,0 +115,18.4,5.2,0 +116,18.4,5.3,0 +117,18.4,5.5,0 +118,18.4,5.6,0 +119,18.4,5.7,0 +120,18.4,5.8,0 +121,18.4,5.9,0 +123,18.4,6,0 +124,18.4,6.1,0 +125,18.4,6.2,0 +127,18.4,6.3,0 +129,18.4,6.4,0 +130,14.1,6.4,0 +132,14.1,6.5,0 +139,14.1,6.4,0 +142,14.1,6.3,0 +144,14.1,6.2,0 +146,14.1,6.1,0 +147,14.1,5.9,0 +149,14.1,5.8,0 +151,14.1,5.6,0 +153,14.1,5.4,0 +155,14.1,5.2,0 +156,14.1,5.1,0 +157,14.1,5,0 +158,14.1,4.8,0 +159,14.1,4.7,0 +160,14.1,4.5,0 +161,14.1,4.4,0 +162,14.1,4.3,0 +163,14.1,4.1,0 +164,14.1,4,0 +165,14.1,3.8,0 +166,14.1,3.7,0 +167,0,3.4,5.6 +168,31.2,3.4,0 +169,31.2,3.1,0 +170,31.2,2.9,0 +171,31.2,2.8,0 +172,31.2,2.6,0 +173,31.2,2.5,0 +174,31.2,2.3,0 +175,31.2,2.2,0 +176,31.2,2,0 +177,31.2,1.8,0 +178,31.2,1.6,0 +179,31.2,1.5,0 +180,31.2,1.3,0 +181,31.2,1,0 +183,31.2,0.8,0 +184,31.2,0.6,0 +185,31.2,0.5,0 +186,31.2,0.3,0 +187,31.2,0.2,0 +188,31.2,0.1,0 +189,31.2,-0.3,0 +191,31.2,-0.4,0 +192,31.2,-0.6,0 +193,31.2,-0.9,0 +195,31.2,-1,0 +196,31.2,-1.1,0 +197,31.2,-1.4,0 +199,31.2,-1.6,0 +201,31.2,-1.7,0 +202,31.2,-1.9,0 +204,31.2,-2,0 +205,31.2,-2.3,0 +207,31.2,-2.4,0 +209,31.2,-2.7,0 +211,31.2,-2.8,0 +212,31.2,-2.9,0 +214,31.2,-3,0 +216,31.2,-3.2,0 +217,31.2,-3.3,0 +219,31.2,-3.4,0 +221,31.2,-3.5,0 +223,31.2,-3.6,0 +224,37.1,-3.7,0 +226,37.1,-3.8,0 +228,37.1,-3.9,0 +231,37.1,-4,0 +233,37.1,-4.1,0 +237,37.1,-4.2,0 +240,37.1,-4.3,0 +244,37.1,-4.4,0 +247,37.1,-4.5,0 +251,37.1,-4.6,0 +257,37.1,-4.7,0 +263,37.1,-4.8,0 +271,37.1,-4.9,0 +298,33.6,-4.9,0 +300,33.6,-4.8,0 +306,33.6,-4.7,0 +311,33.6,-4.6,0 +313,33.6,-4.5,0 +317,33.6,-4.4,0 +319,33.6,-4.3,0 +321,33.6,-4.2,0 +324,33.6,-4.1,0 +326,33.6,-4,0 +328,33.6,-3.9,0 +330,33.6,-3.8,0 +332,33.6,-3.6,0 +334,33.6,-3.5,0 +335,33.6,-3.4,0 +337,33.6,-3.3,0 +339,33.6,-3.1,0 +341,33.6,-3,0 +343,33.6,-2.8,0 +345,33.6,-2.7,0 +347,33.6,-2.5,0 +349,33.6,-2.4,0 +350,33.6,-2.2,0 +352,33.6,-2,0 +354,33.6,-1.9,0 +356,33.6,-1.7,0 +358,33.6,-1.5,0 +360,33.6,-1.3,0 +362,33.6,-1.2,0 +363,33.6,-1,0 +365,33.6,-0.8,0 +367,33.6,-0.6,0 +369,33.6,-0.5,0 +371,33.6,-0.2,0 +373,33.6,-0.1,0 +374,33.6,0.1,0 +376,33.6,0.2,0 +378,33.6,0.4,0 +380,33.6,0.5,0 +381,33.6,0.7,0 +383,33.6,0.8,0 +385,33.6,1,0 +386,33.6,1.1,0 +388,33.6,1.3,0 +390,33.6,1.4,0 +391,33.6,1.5,0 +393,33.6,1.6,0 +394,33.6,1.7,0 +396,33.6,1.8,0 +397,33.6,1.9,0 +399,33.6,2,0 +401,33.6,2.1,0 +403,33.6,2.2,0 +405,33.6,2.3,0 +408,33.6,2.4,0 +411,33.6,2.5,0 +414,12.1,2.5,0 +415,33.8,2.5,0 +416,33.8,2.6,0 +430,33.8,2.5,0 +436,33.8,2.4,0 +441,33.8,2.3,0 +444,33.8,2.2,0 +448,33.8,2.1,0 +451,33.8,2,0 +455,33.8,1.9,0 +458,33.8,1.8,0 +462,33.8,1.7,0 +468,33.8,1.6,0 +471,33.8,1.5,0 +477,33.8,1.4,0 +486,33.8,1.3,0 +499,33.8,1.2,0 +524,33.8,1.1,0 +539,33.8,1,0 +550,33.8,0.9,0 +559,33.8,0.8,0 +566,33.8,0.7,0 +574,33.8,0.6,0 +583,33.8,0.5,0 +596,33.8,0.4,0 +614,33.8,0.5,0 +616,13.9,0.5,0 +623,18.4,0.5,0 +628,18.4,0.6,0 +640,18.4,0.7,0 +661,0,0.7,5.2 +662,28.9,0.7,0 +668,28.9,0.6,0 +676,28.9,0.5,0 +685,28.9,0.4,0 +692,28.9,0.3,0 +699,28.9,0.2,0 +709,28.9,0.1,0 +721,28.9,0,0 +808,28.9,0.1,0 +817,28.9,0.2,0 +824,28.9,0.3,0 +828,28.9,0.4,0 +834,28.9,0.5,0 +837,28.9,0.6,0 +841,28.9,0.7,0 +845,28.9,0.8,0 +849,28.9,0.9,0 +853,28.9,1,0 +863,28.9,1.1,0 +864,28.9,1,0 +872,28.9,0.9,0 +876,28.9,0.8,0 +878,0,0.8,32.6 +879,13.6,0.8,0 +880,13.6,0.6,0 +882,13.6,0.5,0 +883,13.6,0.4,0 +885,13.6,0.3,0 +886,13.6,0.2,0 +887,13.6,0.1,0 +889,13.6,0,0 +890,13.6,-0.1,0 +891,13.6,-0.2,0 +892,13.6,-0.3,0 +893,13.6,-0.5,0 +895,13.6,-0.6,0 +896,13.6,-0.7,0 +897,13.6,-0.8,0 +898,13.6,-0.9,0 +899,13.6,-1,0 +900,13.6,-1.1,0 +901,29.6,-1.2,0 +902,29.6,-1.3,0 +903,29.6,-1.4,0 +904,29.6,-1.6,0 +905,29.6,-1.7,0 +906,29.6,-1.8,0 +907,29.6,-1.9,0 +908,29.6,-2,0 +909,29.6,-2.1,0 +910,29.6,-2.2,0 +911,29.6,-2.3,0 +912,29.6,-2.5,0 +913,29.6,-2.6,0 +914,29.6,-2.7,0 +915,29.6,-2.8,0 +916,29.6,-3,0 +917,29.6,-3.1,0 +919,29.6,-3.2,0 +920,29.6,-3.4,0 +921,29.6,-3.5,0 +922,29.6,-3.7,0 +924,29.6,-3.8,0 +925,29.6,-3.9,0 +926,29.6,-4.1,0 +928,29.6,-4.2,0 +929,29.6,-4.3,0 +931,29.6,-4.5,0 +932,29.6,-4.6,0 +934,29.6,-4.7,0 +935,29.6,-4.8,0 +937,29.6,-4.9,0 +938,29.6,-5,0 +940,29.6,-5.1,0 +942,29.6,-5.2,0 +943,29.6,-5.3,0 +945,29.6,-5.4,0 +946,37.5,-5.4,0 +948,37.5,-5.5,0 +951,37.5,-5.6,0 +957,37.5,-5.7,0 +969,37.5,-5.6,0 +974,37.5,-5.5,0 +980,37.5,-5.4,0 +984,37.5,-5.3,0 +985,37.5,-5.2,0 +989,37.5,-5.1,0 +993,37.5,-5,0 +995,37.5,-4.9,0 +997,37.5,-4.8,0 +1001,37.5,-4.7,0 +1003,37.5,-4.6,0 +1005,37.5,-4.5,0 +1006,37.5,-4.4,0 +1008,37.5,-4.3,0 +1010,37.5,-4.2,0 +1012,37.5,-4.1,0 +1016,37.5,-4,0 +1018,37.5,-3.9,0 +1020,37.5,-3.8,0 +1022,37.5,-3.7,0 +1024,37.5,-3.6,0 +1026,37.5,-3.4,0 +1028,37.5,-3.3,0 +1030,37.5,-3.2,0 +1032,37.5,-3.1,0 +1034,37.5,-3,0 +1037,37.5,-2.9,0 +1039,37.5,-2.8,0 +1041,37.5,-2.7,0 +1043,37.5,-2.6,0 +1045,37.5,-2.5,0 +1047,37.5,-2.4,0 +1049,37.5,-2.3,0 +1051,37.5,-2.2,0 +1053,37.5,-2.1,0 +1055,37.5,-2,0 +1057,37.5,-1.9,0 +1061,37.5,-1.8,0 +1064,37.5,-1.7,0 +1066,37.5,-1.6,0 +1070,37.5,-1.5,0 +1072,37.5,-1.4,0 +1078,37.5,-1.3,0 +1082,37.5,-1.2,0 +1104,37.5,-1.3,0 +1112,37.5,-1.4,0 +1114,33.3,-1.4,0 +1118,33.3,-1.5,0 +1123,33.3,-1.6,0 +1128,33.3,-1.7,0 +1138,33.3,-1.8,0 +1146,33.3,-1.7,0 +1153,33.3,-1.6,0 +1158,33.3,-1.5,0 +1160,33.3,-1.4,0 +1163,33.3,-1.3,0 +1166,33.3,-1.2,0 +1168,33.3,-1.1,0 +1169,33.3,-1,0 +1172,33.3,-0.9,0 +1174,33.3,-0.8,0 +1176,33.3,-0.7,0 +1178,33.3,-0.6,0 +1179,33.3,-0.5,0 +1180,33.3,-0.4,0 +1182,33.3,-0.3,0 +1184,33.3,-0.2,0 +1185,33.3,-0.1,0 +1187,33.3,0,0 +1188,0,0.1,25.4 +1189,34.2,0.1,0 +1191,34.2,0.3,0 +1193,34.2,0.4,0 +1195,34.2,0.5,0 +1197,34.2,0.6,0 +1200,34.2,0.7,0 +1202,34.2,0.8,0 +1205,34.2,0.9,0 +1209,34.2,1,0 +1216,34.2,1.1,0 +1222,34.2,1,0 +1229,34.2,0.9,0 +1234,34.2,0.8,0 +1237,34.2,0.7,0 +1241,34.2,0.6,0 +1244,34.2,0.5,0 +1248,34.2,0.4,0 +1251,34.2,0.3,0 +1255,34.2,0.2,0 +1258,34.2,0.1,0 +1262,34.2,0,0 +1269,34.2,-0.1,0 +1279,34.2,0,0 +1286,34.2,0.1,0 +1290,34.2,0.2,0 +1292,34.2,0.3,0 +1294,34.2,0.4,0 +1298,34.2,0.5,0 +1299,34.2,0.6,0 +1301,34.2,0.7,0 +1303,34.2,0.8,0 +1305,34.2,1,0 +1307,34.2,1.1,0 +1309,34.2,1.2,0 +1311,34.2,1.3,0 +1312,34.2,1.5,0 +1314,34.2,1.6,0 +1316,34.2,1.8,0 +1318,34.2,1.9,0 +1320,34.2,2.1,0 +1322,34.2,2.2,0 +1323,34.2,2.3,0 +1325,34.2,2.5,0 +1327,34.2,2.6,0 +1329,34.2,2.7,0 +1330,34.2,2.9,0 +1332,34.2,3,0 +1334,34.2,3.1,0 +1335,34.2,3.3,0 +1337,34.2,3.4,0 +1339,34.2,3.5,0 +1341,34.2,3.6,0 +1342,34.2,3.7,0 +1344,34.2,3.8,0 +1346,34.2,3.9,0 +1349,34.2,4,0 +1352,34.2,4.1,0 +1355,34.2,4.2,0 +1364,34.2,4.1,0 +1368,34.2,4,0 +1371,34.2,3.9,0 +1373,34.2,3.8,0 +1375,34.2,3.7,0 +1377,34.2,3.6,0 +1378,34.2,3.5,0 +1380,34.2,3.4,0 +1381,34.2,3.3,0 +1383,34.2,3.2,0 +1384,34.2,3,0 +1386,34.2,2.9,0 +1388,34.2,2.8,0 +1389,34.2,2.7,0 +1391,34.2,2.6,0 +1392,34.2,2.5,0 +1393,0,2.3,57.2 +1394,31.3,2.3,0 +1395,31.3,2.2,0 +1397,31.3,2.1,0 +1398,31.3,2,0 +1399,31.3,1.9,0 +1400,31.3,1.8,0 +1402,31.3,1.7,0 +1404,31.3,1.6,0 +1405,31.3,1.5,0 +1407,31.3,1.4,0 +1409,31.3,1.3,0 +1411,31.3,1.2,0 +1414,31.3,1.1,0 +1418,31.3,1,0 +1427,31.3,1.1,0 +1431,31.3,1.2,0 +1434,31.3,1.3,0 +1437,31.3,1.4,0 +1439,31.3,1.5,0 +1441,31.3,1.6,0 +1443,31.3,1.7,0 +1444,31.3,1.8,0 +1446,31.3,1.9,0 +1448,31.3,2,0 +1451,31.3,2.1,0 +1453,31.3,2.2,0 +1455,31.3,2.3,0 +1456,31.3,2.4,0 +1458,31.3,2.5,0 +1461,31.3,2.6,0 +1463,31.3,2.7,0 +1466,31.3,2.8,0 +1470,31.2,2.9,0 +1473,25.5,2.9,0 +1483,25.5,2.8,0 +1487,25.5,2.7,0 +1488,25.5,2.6,0 +1491,25.5,2.5,0 +1492,25.5,2.4,0 +1495,25.5,2.3,0 +1497,25.5,2.2,0 +1498,25.5,2.1,0 +1499,25.5,2,0 +1501,25.5,1.9,0 +1502,25.5,1.8,0 +1503,25.5,1.7,0 +1505,25.5,1.6,0 +1506,25.5,1.4,0 +1508,25.5,1.3,0 +1509,37.1,1.2,0 +1510,37.1,1.1,0 +1512,37.1,1,0 +1513,37.1,0.8,0 +1515,37.1,0.7,0 +1516,37.1,0.5,0 +1518,37.1,0.4,0 +1519,37.1,0.2,0 +1521,37.1,0.1,0 +1522,37.1,0,0 +1524,37.1,-0.2,0 +1525,37.1,-0.3,0 +1527,37.1,-0.5,0 +1529,37.1,-0.6,0 +1530,37.1,-0.8,0 +1532,37.1,-0.9,0 +1534,37.1,-1.1,0 +1535,37.1,-1.2,0 +1537,37.1,-1.4,0 +1539,37.1,-1.5,0 +1541,37.1,-1.7,0 +1543,37.1,-1.8,0 +1545,37.1,-1.9,0 +1546,37.1,-2.1,0 +1548,37.1,-2.2,0 +1550,37.1,-2.3,0 +1552,37.1,-2.4,0 +1554,37.1,-2.5,0 +1556,37.1,-2.6,0 +1558,37.1,-2.7,0 +1560,37.1,-2.8,0 +1562,37.1,-2.9,0 +1564,37.1,-3,0 +1568,37.1,-3.1,0 +1570,37.1,-3.2,0 +1574,37.1,-3.3,0 +1578,37.1,-3.4,0 +1584,37.1,-3.5,0 +1592,37.1,-3.6,0 +1603,37.1,-3.7,0 +1617,37.1,-3.8,0 +1631,37.1,-3.9,0 +1646,37.1,-4,0 +1687,37.1,-3.9,0 +1696,37.1,-3.8,0 +1698,33.5,-3.8,0 +1702,33.5,-3.7,0 +1706,33.5,-3.6,0 +1711,33.5,-3.5,0 +1714,33.5,-3.4,0 +1716,35.5,-3.3,0 +1720,35.5,-3.2,0 +1723,35.5,-3.1,0 +1727,35.5,-3,0 +1729,35.5,-2.9,0 +1732,35.5,-2.8,0 +1734,35.5,-2.7,0 +1736,35.5,-2.6,0 +1740,35.5,-2.5,0 +1742,35.5,-2.4,0 +1745,35.5,-2.3,0 +1747,35.5,-2.2,0 +1751,35.5,-2.1,0 +1755,35.5,-2,0 +1759,35.5,-1.9,0 +1763,35.5,-1.8,0 +1773,35.5,-1.7,0 +1778,35.5,-1.8,0 +1786,35.5,-1.9,0 +1792,35.5,-2,0 +1796,35.5,-2.1,0 +1800,35.5,-2.2,0 +1803,17.6,-2.3,0 +1804,33.7,-2.3,0 +1806,33.7,-2.4,0 +1809,33.7,-2.5,0 +1811,33.7,-2.6,0 +1814,33.7,-2.7,0 +1817,33.7,-2.8,0 +1820,33.7,-2.9,0 +1823,33.7,-3,0 +1826,33.7,-3.1,0 +1829,33.7,-3.2,0 +1834,33.7,-3.3,0 +1842,33.7,-3.4,0 +1855,33.7,-3.3,0 +1862,33.7,-3.2,0 +1866,33.7,-3.1,0 +1869,33.7,-3,0 +1873,33.7,-2.9,0 +1877,33.7,-2.8,0 +1879,33.7,-2.7,0 +1882,33.7,-2.6,0 +1884,33.7,-2.5,0 +1888,33.7,-2.4,0 +1890,33.7,-2.3,0 +1891,33.7,-2.2,0 +1893,33.7,-2.1,0 +1897,33.7,-2,0 +1898,33.7,-1.9,0 +1900,33.7,-1.8,0 +1904,33.7,-1.7,0 +1905,33.7,-1.6,0 +1907,33.7,-1.5,0 +1911,33.7,-1.4,0 +1912,33.7,-1.3,0 +1914,33.7,-1.2,0 +1918,33.7,-1.1,0 +1919,33.7,-1,0 +1923,33.7,-0.9,0 +1925,33.7,-0.8,0 +1928,33.7,-0.7,0 +1930,33.7,-0.6,0 +1934,33.7,-0.5,0 +1937,33.7,-0.4,0 +1941,33.7,-0.3,0 +1944,33.7,-0.2,0 +1948,33.7,-0.1,0 +1952,33.7,0,0 +1955,33.7,0.1,0 +1959,33.7,0.2,0 +1963,33.7,0.3,0 +1967,33.7,0.4,0 +1970,33.7,0.5,0 +1974,33.7,0.6,0 +1977,33.7,0.7,0 +1981,33.7,0.8,0 +1985,33.7,0.9,0 +1988,33.7,1,0 +1991,33.7,1.1,0 +1993,33.7,1.2,0 +1996,33.7,1.3,0 +1999,33.7,1.4,0 +2002,33.7,1.5,0 +2005,33.7,1.6,0 +2008,33.7,1.7,0 +2010,33.7,1.8,0 +2013,33.7,1.9,0 +2016,33.7,2,0 +2019,33.7,2.1,0 +2022,33.7,2.2,0 +2025,33.7,2.3,0 +2027,0,2.3,5 +2028,18.8,2.3,0 +2032,18.8,2.5,0 +2037,18.8,2.6,0 +2042,18.8,2.7,0 +2051,18.8,2.8,0 +2071,18.8,2.9,0 +2084,14.3,2.9,0 +2085,14.3,3,0 +2092,14.3,3.1,0 +2097,14.3,3.2,0 +2102,14.3,3.3,0 +2107,14.3,3.4,0 +2111,14.3,3.5,0 +2115,14.3,3.6,0 +2135,0,3.6,23.8 +2136,11.1,3.6,0 +2137,11.1,3.6,0 +2141,11.1,3.5,0 +2144,11.1,3.4,0 +2146,11.1,3.3,0 +2148,11.1,3.2,0 +2150,11.1,3.1,0 +2152,11.1,3,0 +2153,11.1,2.9,0 +2155,11.1,2.8,0 +2157,11.1,2.7,0 +2158,11.1,2.6,0 +2159,11.1,2.5,0 +2160,11.1,2.4,0 +2161,25.3,2.4,0 +2162,25.3,2.3,0 +2163,25.3,2.2,0 +2164,25.3,2.1,0 +2165,25.3,2,0 +2166,25.3,1.9,0 +2168,25.3,1.8,0 +2169,25.3,1.7,0 +2170,25.3,1.6,0 +2171,25.3,1.5,0 +2172,25.3,1.4,0 +2173,25.3,1.3,0 +2175,25.3,1.2,0 +2176,25.3,1.1,0 +2177,25.3,1,0 +2178,25.3,0.9,0 +2179,25.3,0.8,0 +2180,25.3,0.7,0 +2181,25.3,0.5,0 +2183,25.3,0.4,0 +2184,25.3,0.3,0 +2185,25.3,0.2,0 +2186,25.3,0,0 +2188,25.3,-0.1,0 +2189,25.3,-0.2,0 +2190,25.3,-0.3,0 +2192,25.3,-0.4,0 +2193,25.3,-0.5,0 +2194,25.3,-0.7,0 +2196,25.3,-0.8,0 +2197,25.3,-0.9,0 +2199,25.3,-1,0 +2200,25.3,-1.1,0 +2201,25.3,-1.3,0 +2203,25.3,-1.4,0 +2204,25.3,-1.6,0 +2206,25.3,-1.7,0 +2207,25.3,-1.8,0 +2208,25.3,-1.9,0 +2210,25.3,-2,0 +2211,25.3,-2.1,0 +2212,25.3,-2.2,0 +2214,25.3,-2.3,0 +2215,25.3,-2.4,0 +2216,26.6,-2.5,0 +2217,26.6,-2.7,0 +2219,26.6,-2.8,0 +2220,26.6,-2.9,0 +2221,26.6,-3,0 +2223,26.6,-3.1,0 +2224,26.6,-3.2,0 +2225,26.6,-3.4,0 +2227,26.6,-3.5,0 +2228,26.6,-3.6,0 +2229,26.6,-3.7,0 +2231,26.6,-3.8,0 +2232,26.6,-3.9,0 +2233,26.6,-4,0 +2235,26.6,-4.2,0 +2236,26.6,-4.3,0 +2238,26.6,-4.4,0 +2239,26.6,-4.5,0 +2240,26.6,-4.6,0 +2242,26.6,-4.7,0 +2243,26.6,-4.9,0 +2245,26.6,-5,0 +2246,26.6,-5.1,0 +2248,26.6,-5.2,0 +2249,26.6,-5.3,0 +2251,26.6,-5.4,0 +2252,26.6,-5.5,0 +2254,26.6,-5.6,0 +2255,26.6,-5.7,0 +2257,26.6,-5.8,0 +2258,26.6,-5.9,0 +2259,26.6,-6,0 +2261,26.6,-6.1,0 +2262,26.6,-6.2,0 +2264,26.6,-6.3,0 +2266,26.6,-6.4,0 +2268,26.6,-6.5,0 +2270,26.6,-6.6,0 +2271,26.6,-6.7,0 +2274,26.6,-6.8,0 +2275,22.8,-6.8,0 +2277,22.8,-6.9,0 +2279,22.8,-7,0 +2280,27.8,-7,0 +2282,27.8,-7.1,0 +2284,27.8,-7.2,0 +2288,27.8,-7.3,0 +2292,27.8,-7.4,0 +2299,27.8,-7.5,0 +2307,27.8,-7.4,0 +2313,27.8,-7.3,0 +2317,27.8,-7.2,0 +2319,27.8,-7.1,0 +2322,27.8,-7,0 +2323,27.8,-6.9,0 +2324,27.8,-6.8,0 +2326,27.8,-6.7,0 +2327,27.8,-6.6,0 +2329,27.8,-6.5,0 +2330,27.8,-6.4,0 +2331,27.8,-6.3,0 +2333,27.8,-6.2,0 +2334,27.8,-6.1,0 +2335,27.8,-6,0 +2336,27.8,-5.9,0 +2337,27.8,-5.7,0 +2339,27.8,-5.6,0 +2340,27.8,-5.5,0 +2341,27.8,-5.4,0 +2342,27.8,-5.2,0 +2343,27.8,-5.1,0 +2344,27.8,-5,0 +2345,27.8,-4.8,0 +2346,27.8,-4.7,0 +2347,27.8,-4.6,0 +2348,27.8,-4.5,0 +2349,27.8,-4.3,0 +2350,27.8,-4.2,0 +2351,27.8,-4,0 +2352,27.8,-3.9,0 +2353,27.8,-3.8,0 +2354,27.8,-3.6,0 +2355,27.8,-3.5,0 +2356,0,-3.3,55 +2357,35.1,-3.3,0 +2358,35.1,-3,0 +2359,35.1,-2.9,0 +2360,35.1,-2.7,0 +2361,35.1,-2.6,0 +2362,35.1,-2.4,0 +2363,35.1,-2.3,0 +2364,35.1,-2.2,0 +2365,35.1,-2,0 +2366,35.1,-1.9,0 +2367,35.1,-1.8,0 +2368,35.1,-1.6,0 +2369,35.1,-1.5,0 +2370,35.1,-1.4,0 +2371,35.1,-1.3,0 +2372,35.1,-1.1,0 +2373,35.1,-1,0 +2374,35.1,-0.8,0 +2376,35.1,-0.7,0 +2377,35.1,-0.5,0 +2378,35.1,-0.4,0 +2379,35.1,-0.2,0 +2381,35.1,-0.1,0 +2382,35.1,0.1,0 +2384,35.1,0.2,0 +2385,35.1,0.3,0 +2387,35.1,0.4,0 +2388,35.1,0.6,0 +2390,35.1,0.7,0 +2392,35.1,0.8,0 +2393,35.1,0.9,0 +2396,35.1,1,0 +2398,35.1,1.1,0 +2400,35.1,1.2,0 +2405,35.1,1.3,0 +2425,35.1,1.2,0 +2429,35.1,1.1,0 +2433,35.1,1,0 +2437,35.1,0.9,0 +2441,35.1,0.8,0 +2445,35.1,0.7,0 +2447,35.1,0.6,0 +2450,35.1,0.5,0 +2452,35.1,0.4,0 +2454,35.1,0.3,0 +2458,35.1,0.2,0 +2460,35.1,0.1,0 +2464,35.1,0,0 +2466,35.1,-0.1,0 +2470,35.1,-0.2,0 +2471,35.1,-0.3,0 +2475,35.1,-0.4,0 +2479,35.1,-0.5,0 +2484,35.1,-0.6,0 +2495,35.1,-0.5,0 +2500,35.1,-0.4,0 +2503,35.1,-0.3,0 +2506,35.1,-0.2,0 +2507,35.1,-0.1,0 +2508,35.1,0,0 +2511,35.1,0.1,0 +2512,35.1,0.2,0 +2514,35.1,0.3,0 +2515,35.1,0.4,0 +2517,35.1,0.5,0 +2519,35.1,0.6,0 +2520,35.1,0.7,0 +2521,35.1,0.8,0 +2522,35.1,0.9,0 +2524,35.1,1,0 +2525,35.1,1.1,0 +2526,35.1,1.2,0 +2527,35.1,1.3,0 +2528,35.1,1.4,0 +2530,35.1,1.5,0 +2531,0,1.6,35.8 +2532,38.9,1.6,0 +2533,38.9,1.8,0 +2534,38.9,1.9,0 +2536,38.9,2,0 +2538,38.9,2.1,0 +2539,38.9,2.2,0 +2541,38.9,2.3,0 +2542,38.9,2.4,0 +2544,38.9,2.5,0 +2547,38.9,2.6,0 +2549,38.9,2.7,0 +2551,38.9,2.8,0 +2557,38.9,2.9,0 +2563,38.9,2.8,0 +2568,38.9,2.7,0 +2571,38.9,2.6,0 +2573,38.9,2.5,0 +2577,38.9,2.4,0 +2579,38.9,2.3,0 +2581,38.9,2.2,0 +2583,38.9,2.1,0 +2585,38.9,1.9,0 +2587,38.9,1.8,0 +2588,38.9,1.7,0 +2590,38.9,1.6,0 +2592,38.9,1.5,0 +2594,38.9,1.4,0 +2596,38.9,1.3,0 +2598,38.9,1.1,0 +2600,38.9,1,0 +2602,38.9,0.9,0 +2604,38.9,0.8,0 +2606,38.9,0.7,0 +2608,38.9,0.6,0 +2610,38.9,0.5,0 +2612,38.9,0.4,0 +2614,38.9,0.3,0 +2615,38.9,0.2,0 +2619,38.9,0.1,0 +2621,38.9,0,0 +2623,38.9,-0.1,0 +2627,38.9,-0.2,0 +2631,38.9,-0.3,0 +2632,38.9,-0.4,0 +2638,38.9,-0.5,0 +2642,38.9,-0.6,0 +2648,38.9,-0.7,0 +2656,38.9,-0.8,0 +2665,38.9,-0.9,0 +2675,38.9,-1,0 +2683,38.9,-1.1,0 +2694,38.9,-1.2,0 +2702,38.9,-1.3,0 +2711,38.9,-1.4,0 +2717,38.9,-1.5,0 +2728,38.9,-1.6,0 +2741,38.9,-1.7,0 +2760,42,-1.6,0 +2771,42,-1.5,0 +2779,42,-1.4,0 +2786,42,-1.3,0 +2790,42,-1.2,0 +2797,42,-1.1,0 +2802,42,-1,0 +2806,42,-0.9,0 +2813,42,-0.8,0 +2820,42,-0.7,0 +2829,42,-0.6,0 +2841,42,-0.5,0 +2879,42,-0.4,0 +2891,42,-0.3,0 +2895,42,-0.2,0 +2900,42,-0.1,0 +2904,42,0,0 +2906,42,0.1,0 +2909,42,0.2,0 +2911,42,0.3,0 +2913,42,0.4,0 +2915,42,0.5,0 +2917,42,0.6,0 +2920,42,0.8,0 +2922,42,0.9,0 +2924,42,1.1,0 +2926,42,1.2,0 +2928,42,1.4,0 +2930,42,1.6,0 +2932,42,1.8,0 +2934,42,2,0 +2936,42,2.2,0 +2938,32.9,2.3,0 +2939,32.9,2.5,0 +2941,32.9,2.8,0 +2943,32.9,3,0 +2945,32.9,3.3,0 +2947,32.9,3.4,0 +2948,32.9,3.6,0 +2950,32.9,3.9,0 +2952,32.9,4.1,0 +2953,32.9,4.3,0 +2955,32.9,4.5,0 +2957,32.9,4.6,0 +2958,32.9,4.9,0 +2960,32.9,5.2,0 +2962,32.9,5.3,0 +2963,32.9,5.4,0 +2964,32.9,5.7,0 +2966,32.9,5.8,0 +2967,32.9,5.9,0 +2968,32.9,6.1,0 +2970,32.9,6.2,0 +2971,32.9,6.4,0 +2972,32.9,6.5,0 +2973,32.9,6.6,0 +2974,32.9,6.7,0 +2976,32.9,6.8,0 +2977,32.9,6.9,0 +2979,32.9,7,0 +2981,32.9,7.1,0 +2983,32.9,7.2,0 +2988,32.9,7.3,0 +2990,0,7.3,20.8 +2991,10,7.3,0 +2994,10,7.1,0 +2996,10,7,0 +2997,10,6.9,0 +2999,10,6.8,0 +3000,10,6.7,0 +3001,10,6.6,0 +3002,10,6.5,0 +3003,10,6.4,0 +3004,10,6.3,0 +3005,10,6.2,0 +3006,10,6.1,0 +3007,10,6,0 +3008,0,5.8,2 +3009,20.9,5.8,0 +3010,20.9,5.6,0 +3011,20.9,5.4,0 +3012,20.9,5.3,0 +3013,20.9,5.1,0 +3014,20.9,5,0 +3015,20.9,4.8,0 +3016,20.9,4.7,0 +3017,20.9,4.6,0 +3018,20.9,4.4,0 +3019,20.9,4.2,0 +3020,20.9,4,0 +3021,20.9,3.9,0 +3022,20.9,3.8,0 +3023,20.9,3.6,0 +3024,20.9,3.5,0 +3025,20.9,3.3,0 +3026,20.9,3.2,0 +3027,20.9,3,0 +3028,20.9,2.8,0 +3029,20.9,2.7,0 +3030,20.9,2.5,0 +3031,20.9,2.4,0 +3032,20.9,2.2,0 +3033,20.9,2.1,0 +3034,20.9,2,0 +3035,20.9,1.8,0 +3036,20.9,1.7,0 +3037,20.9,1.6,0 +3038,20.9,1.4,0 +3039,20.9,1.3,0 +3040,20.9,1.2,0 +3041,20.9,1,0 +3043,20.9,0.9,0 +3044,20.9,0.8,0 +3045,20.9,0.7,0 +3046,20.9,0.6,0 +3047,20.9,0.5,0 +3048,20.9,0.4,0 +3049,20.9,0.3,0 +3052,20.9,0.2,0 +3053,20.9,0.1,0 +3054,20.9,0,0 +3056,20.9,-0.1,0 +3058,20.9,-0.2,0 +3062,20.9,-0.3,0 +3066,20.9,-0.4,0 +3067,17.4,-0.4,0 +3070,43.4,-0.4,0 +3084,43.4,-0.3,0 +3093,43.4,-0.2,0 +3103,43.4,-0.1,0 +3124,43.4,-0.2,0 +3138,43.4,-0.3,0 +3149,43.4,-0.4,0 +3159,43.4,-0.5,0 +3168,43.4,-0.6,0 +3180,43.4,-0.7,0 +3192,43.4,-0.8,0 +3204,43.4,-0.9,0 +3218,43.4,-1,0 +3230,43.4,-1.1,0 +3262,43.4,-1,0 +3268,43.4,-0.9,0 +3272,43.4,-0.8,0 +3275,43.4,-0.7,0 +3277,43.4,-0.6,0 +3281,43.4,-0.5,0 +3282,43.4,-0.4,0 +3286,43.4,-0.3,0 +3287,43.4,-0.2,0 +3289,43.4,-0.1,0 +3292,43.4,0,0 +3293,43.4,0.1,0 +3294,43.4,0.2,0 +3297,43.4,0.3,0 +3299,43.4,0.4,0 +3301,43.4,0.5,0 +3302,43.4,0.6,0 +3304,43.4,0.7,0 +3306,43.4,0.8,0 +3308,43.4,0.9,0 +3311,43.4,1,0 +3313,43.4,1.1,0 +3315,43.4,1.2,0 +3316,0,1.2,22 +3317,18.7,1.2,0 +3318,18.7,1.3,0 +3322,18.7,1.4,0 +3339,18.7,1.3,0 +3344,18.7,1.2,0 +3346,33.2,1.2,0 +3347,33.2,1.1,0 +3349,33.2,1,0 +3352,33.2,0.9,0 +3354,33.2,0.8,0 +3356,33.2,0.7,0 +3359,33.2,0.6,0 +3360,33.2,0.5,0 +3363,33.2,0.4,0 +3364,33.2,0.3,0 +3366,33.2,0.2,0 +3367,33.2,0.1,0 +3369,33.2,0,0 +3372,33.2,-0.1,0 +3373,33.2,-0.2,0 +3375,33.2,-0.3,0 +3377,33.2,-0.4,0 +3378,33.2,-0.5,0 +3380,33.2,-0.6,0 +3382,33.2,-0.7,0 +3384,33.2,-0.8,0 +3385,33.2,-0.9,0 +3387,33.2,-1,0 +3389,33.2,-1.1,0 +3391,33.2,-1.3,0 +3393,33.2,-1.4,0 +3394,33.2,-1.5,0 +3396,33.2,-1.6,0 +3398,33.2,-1.7,0 +3400,33.2,-1.8,0 +3402,33.2,-1.9,0 +3404,33.2,-2,0 +3405,33.2,-2.1,0 +3409,33.2,-2.2,0 +3410,33.2,-2.3,0 +3412,33.2,-2.4,0 +3414,33.2,-2.5,0 +3417,25.8,-2.6,0 +3418,25.8,-2.7,0 +3421,47.1,-2.8,0 +3424,47.1,-2.9,0 +3425,47.1,-3,0 +3428,47.1,-3.1,0 +3431,47.1,-3.2,0 +3435,47.1,-3.3,0 +3440,47.1,-3.4,0 +3445,47.1,-3.5,0 +3468,47.1,-3.4,0 +3475,47.1,-3.3,0 +3482,47.1,-3.2,0 +3486,47.1,-3.1,0 +3491,47.1,-3,0 +3496,47.1,-2.9,0 +3502,47.1,-2.8,0 +3507,47.1,-2.7,0 +3512,47.1,-2.6,0 +3517,47.1,-2.5,0 +3523,47.1,-2.4,0 +3530,47.1,-2.3,0 +3536,47.1,-2.2,0 +3541,47.1,-2.1,0 +3546,47.1,-2,0 +3554,47.1,-1.9,0 +3559,47.1,-1.8,0 +3564,47.1,-1.7,0 +3567,47.1,-1.6,0 +3572,47.1,-1.5,0 +3577,47.1,-1.4,0 +3582,47.1,-1.3,0 +3584,47.1,-1.2,0 +3589,47.1,-1.1,0 +3591,47.1,-1,0 +3596,47.1,-0.9,0 +3599,47.1,-0.8,0 +3603,47.1,-0.7,0 +3608,47.1,-0.6,0 +3611,47.1,-0.5,0 +3615,47.1,-0.4,0 +3618,47.1,-0.3,0 +3622,47.1,-0.2,0 +3627,47.1,-0.1,0 +3631,47.1,0,0 +3635,47.1,0.1,0 +3640,47.1,0.2,0 +3646,47.1,0.3,0 +3653,47.1,0.4,0 +3689,47.1,0.3,0 +3696,47.1,0.2,0 +3701,0,0.2,23.2 +3702,45.5,0.2,0 +3704,45.5,0.1,0 +3710,45.5,0,0 +3717,45.5,-0.1,0 +3724,45.5,-0.2,0 +3734,45.5,-0.3,0 +3754,45.5,-0.4,0 +3801,45.5,-0.5,0 +3813,45.5,-0.6,0 +3821,45.5,-0.7,0 +3831,45.5,-0.8,0 +3839,45.5,-0.9,0 +3846,45.5,-1,0 +3854,45.5,-1.1,0 +3862,45.5,-1.2,0 +3869,45.5,-1.3,0 +3884,45.5,-1.4,0 +3911,45.5,-1.3,0 +3924,45.5,-1.2,0 +3931,45.5,-1.1,0 +3938,45.5,-1,0 +3946,45.5,-0.9,0 +3951,45.5,-0.8,0 +3956,45.5,-0.7,0 +3963,45.5,-0.6,0 +3968,45.5,-0.5,0 +3973,45.5,-0.4,0 +3978,45.5,-0.3,0 +3986,45.5,-0.2,0 +3990,45.5,-0.1,0 +3995,45.5,0,0 +4003,45.5,0.1,0 +4008,45.5,0.2,0 +4013,45.5,0.3,0 +4020,45.5,0.4,0 +4025,45.5,0.5,0 +4032,45.5,0.6,0 +4037,45.5,0.7,0 +4044,45.5,0.8,0 +4052,45.5,0.9,0 +4057,45.5,1,0 +4066,45.5,1.1,0 +4073,45.5,1.2,0 +4090,45.5,1.3,0 +4107,45.5,1.2,0 +4121,45.5,1.1,0 +4127,45.5,1,0 +4136,45.5,0.9,0 +4145,45.5,0.8,0 +4169,45.5,0.9,0 +4175,45.5,1,0 +4179,45.5,1.1,0 +4182,45.5,1.2,0 +4185,45.5,1.3,0 +4188,45.5,1.4,0 +4190,45.5,1.5,0 +4192,45.5,1.6,0 +4195,45.5,1.7,0 +4198,45.5,1.8,0 +4200,45.5,1.9,0 +4202,45.5,2,0 +4204,45.5,2.1,0 +4207,45.5,2.2,0 +4210,45.5,2.3,0 +4212,45.5,2.4,0 +4213,0,2.4,10.2 +4214,51.5,2.4,0 +4216,51.5,2.5,0 +4221,51.5,2.6,0 +4234,51.5,2.5,0 +4239,51.5,2.4,0 +4242,51.5,2.3,0 +4244,51.5,2.2,0 +4247,51.5,2.1,0 +4249,51.5,2,0 +4251,51.5,1.9,0 +4252,51.5,1.8,0 +4256,51.5,1.6,0 +4258,51.5,1.5,0 +4260,51.5,1.4,0 +4262,51.5,1.3,0 +4264,51.5,1.2,0 +4266,51.5,1.1,0 +4268,51.5,0.9,0 +4270,51.5,0.8,0 +4272,51.5,0.7,0 +4274,51.5,0.6,0 +4276,51.5,0.5,0 +4279,51.5,0.3,0 +4281,51.5,0.2,0 +4283,51.5,0.1,0 +4285,51.5,0,0 +4288,51.5,-0.1,0 +4290,51.5,-0.2,0 +4292,51.5,-0.3,0 +4295,51.5,-0.4,0 +4297,51.5,-0.5,0 +4300,51.5,-0.6,0 +4302,51.5,-0.7,0 +4305,51.5,-0.8,0 +4310,51.5,-0.9,0 +4315,51.5,-1,0 +4318,51.5,-1.1,0 +4326,51.5,-1.2,0 +4334,51.5,-1.3,0 +4349,51.5,-1.4,0 +4371,59.4,-1.4,0 +4383,59.4,-1.3,0 +4403,59.4,-1.2,0 +4419,59.4,-1.1,0 +4434,59.4,-1,0 +4500,59.4,-1.1,0 +4516,59.4,-1.2,0 +4536,59.4,-1.3,0 +4561,59.4,-1.4,0 +4580,59.4,-1.3,0 +4615,59.4,-1.2,0 +4731,59.4,-1.1,0 +4744,59.4,-1,0 +4754,59.4,-0.9,0 +4763,59.4,-0.8,0 +4770,59.4,-0.7,0 +4776,59.4,-0.6,0 +4783,59.4,-0.5,0 +4789,59.4,-0.4,0 +4792,59.4,-0.3,0 +4798,59.4,-0.2,0 +4805,59.4,-0.1,0 +4811,59.4,0,0 +4817,59.4,0.1,0 +4821,59.4,0.2,0 +4827,59.4,0.3,0 +4833,59.4,0.4,0 +4842,59.4,0.5,0 +4852,59.4,0.6,0 +4861,59.4,0.7,0 +4876,59.4,0.8,0 +4909,59.4,0.7,0 +4924,59.4,0.6,0 +4933,59.4,0.5,0 +4941,59.4,0.4,0 +4950,59.4,0.3,0 +4955,59.4,0.2,0 +4961,59.4,0.1,0 +4967,59.4,0,0 +4975,59.4,-0.1,0 +4980,59.4,-0.2,0 +4988,59.4,-0.3,0 +5013,59.4,-0.2,0 +5018,59.4,-0.1,0 +5023,59.4,0,0 +5025,59.4,0.1,0 +5027,59.4,0.2,0 +5029,59.4,0.3,0 +5032,59.4,0.4,0 +5034,59.4,0.5,0 +5036,59.4,0.6,0 +5038,59.4,0.7,0 +5040,59.4,0.8,0 +5042,59.4,0.9,0 +5044,59.4,1,0 +5046,59.4,1.1,0 +5048,59.4,1.2,0 +5050,59.4,1.3,0 +5051,59.4,1.4,0 +5055,59.4,1.5,0 +5056,59.4,1.6,0 +5058,59.4,1.7,0 +5061,59.4,1.8,0 +5062,59.4,1.9,0 +5064,59.4,2,0 +5068,59.4,2.1,0 +5071,59.4,2.2,0 +5076,59.4,2.3,0 +5077,0,2.3,8.6 +5078,44.2,2.3,0 +5084,44.2,2.2,0 +5091,44.2,2.1,0 +5094,44.2,2,0 +5098,44.2,1.9,0 +5101,44.2,1.8,0 +5103,44.2,1.7,0 +5105,44.2,1.6,0 +5108,44.2,1.5,0 +5110,44.2,1.4,0 +5113,44.2,1.3,0 +5115,44.2,1.2,0 +5116,44.2,1.1,0 +5120,44.2,1,0 +5122,44.2,0.9,0 +5124,44.2,0.8,0 +5128,44.2,0.7,0 +5130,44.2,0.6,0 +5134,44.2,0.5,0 +5136,44.2,0.4,0 +5140,44.2,0.3,0 +5144,44.2,0.2,0 +5151,44.2,0.1,0 +5160,44.2,0,0 +5216,44.2,-0.1,0 +5236,44.2,-0.2,0 +5250,44.2,-0.3,0 +5261,44.2,-0.4,0 +5270,44.2,-0.5,0 +5284,44.2,-0.6,0 +5297,44.2,-0.5,0 +5306,44.2,-0.4,0 +5310,44.2,-0.3,0 +5312,44.2,-0.2,0 +5316,44.2,-0.1,0 +5318,44.2,0,0 +5319,44.2,0.1,0 +5321,44.2,0.2,0 +5323,44.2,0.3,0 +5325,44.2,0.4,0 +5327,44.2,0.5,0 +5328,44.2,0.7,0 +5330,44.2,0.8,0 +5332,44.2,0.9,0 +5333,44.2,1.1,0 +5335,44.2,1.2,0 +5336,44.2,1.4,0 +5338,44.2,1.5,0 +5339,44.2,1.6,0 +5341,44.2,1.8,0 +5342,44.2,2,0 +5344,44.2,2.1,0 +5345,44.2,2.2,0 +5346,44.2,2.4,0 +5348,44.2,2.5,0 +5349,44.2,2.7,0 +5350,44.2,2.8,0 +5351,44.2,2.9,0 +5352,44.2,3.1,0 +5354,44.2,3.2,0 +5355,44.2,3.3,0 +5356,44.2,3.5,0 +5357,44.2,3.6,0 +5358,44.2,3.7,0 +5359,44.2,3.8,0 +5360,44.2,3.9,0 +5361,44.2,4,0 +5362,44.2,4.1,0 +5363,44.2,4.2,0 +5364,44.2,4.3,0 +5365,44.2,4.4,0 +5366,44.2,4.5,0 +5367,44.2,4.6,0 +5368,0,4.7,32.4 +5369,32.2,4.7,0 +5370,32.2,4.9,0 +5372,32.2,5,0 +5373,32.2,5.1,0 +5374,32.2,5.2,0 +5376,32.2,5.3,0 +5378,32.2,5.4,0 +5379,32.2,5.5,0 +5382,32.2,5.6,0 +5384,32.2,5.7,0 +5390,32.2,5.8,0 +5394,32.2,5.7,0 +5398,32.2,5.6,0 +5401,32.2,5.5,0 +5403,32.2,5.4,0 +5406,32.2,5.3,0 +5408,32.2,5.2,0 +5409,32.2,5,0 +5411,32.2,4.9,0 +5412,32.2,4.8,0 +5414,32.2,4.6,0 +5416,32.2,4.4,0 +5418,32.2,4.3,0 +5419,32.2,4.2,0 +5421,32.2,4,0 +5423,32.2,3.8,0 +5425,32.2,3.6,0 +5426,32.2,3.4,0 +5428,32.2,3.2,0 +5430,32.2,3,0 +5432,32.2,2.7,0 +5434,32.2,2.6,0 +5435,32.2,2.4,0 +5437,32.2,2.2,0 +5439,32.2,1.9,0 +5441,32.2,1.7,0 +5443,32.2,1.5,0 +5444,32.2,1.3,0 +5446,32.2,1.1,0 +5448,32.2,0.9,0 +5450,32.2,0.7,0 +5451,32.2,0.5,0 +5453,32.2,0.3,0 +5455,32.2,0.1,0 +5456,32.2,-0.1,0 +5458,32.2,-0.3,0 +5460,32.2,-0.4,0 +5461,32.2,-0.6,0 +5463,32.2,-0.7,0 +5464,32.2,-0.9,0 +5466,32.2,-1,0 +5467,32.2,-1.1,0 +5468,32.2,-1.3,0 +5470,32.2,-1.4,0 +5471,32.2,-1.5,0 +5473,32.2,-1.6,0 +5474,32.2,-1.7,0 +5475,32.2,-1.8,0 +5477,24.6,-1.9,0 +5478,24.6,-2,0 +5479,24.6,-2.1,0 +5481,24.6,-2.2,0 +5482,24.6,-2.3,0 +5483,35.5,-2.4,0 +5485,35.5,-2.5,0 +5486,35.5,-2.6,0 +5488,35.5,-2.7,0 +5490,35.5,-2.8,0 +5492,35.5,-2.9,0 +5493,35.5,-3,0 +5497,35.5,-3.1,0 +5498,35.5,-3.2,0 +5501,35.5,-3.3,0 +5505,35.5,-3.4,0 +5508,35.5,-3.5,0 +5512,35.5,-3.6,0 +5517,35.5,-3.7,0 +5523,35.5,-3.8,0 +5529,35.5,-3.9,0 +5537,35.5,-4,0 +5542,35.5,-4.1,0 +5548,35.5,-4.2,0 +5553,35.5,-4.3,0 +5559,35.5,-4.4,0 +5565,35.5,-4.5,0 +5572,35.5,-4.6,0 +5592,35.5,-4.5,0 +5595,0,-4.5,9.4 +5596,38.4,-4.5,0 +5597,38.4,-4.4,0 +5602,38.4,-4.3,0 +5606,38.4,-4.2,0 +5609,38.4,-4.1,0 +5611,38.4,-4,0 +5614,38.4,-3.9,0 +5616,38.4,-3.8,0 +5619,38.4,-3.7,0 +5621,38.4,-3.6,0 +5624,38.4,-3.5,0 +5626,38.4,-3.4,0 +5629,38.4,-3.3,0 +5631,38.4,-3.2,0 +5634,38.4,-3.1,0 +5636,38.4,-3,0 +5640,38.4,-2.9,0 +5642,38.4,-2.8,0 +5646,38.4,-2.7,0 +5650,38.4,-2.6,0 +5655,38.4,-2.5,0 +5663,38.4,-2.4,0 +5690,38.4,-2.5,0 +5716,38.4,-2.4,0 +5727,38.4,-2.3,0 +5729,32.3,-2.3,0 +5735,32.3,-2.2,0 +5742,32.3,-2.1,0 +5749,32.3,-2,0 +5756,32.3,-1.9,0 +5765,32.3,-1.8,0 +5778,32.3,-1.7,0 +5821,32.3,-1.6,0 +5829,32.3,-1.5,0 +5835,17.9,-1.4,0 +5838,39.9,-1.4,0 +5840,39.9,-1.3,0 +5844,39.9,-1.2,0 +5848,39.9,-1.1,0 +5852,39.9,-1,0 +5856,39.9,-0.9,0 +5861,39.9,-0.8,0 +5864,39.9,-0.7,0 +5868,39.9,-0.6,0 +5873,39.9,-0.5,0 +5878,39.9,-0.4,0 +5884,39.9,-0.3,0 +5915,39.9,-0.4,0 +5921,39.9,-0.5,0 +5928,39.9,-0.6,0 +5932,39.9,-0.7,0 +5937,39.9,-0.8,0 +5941,39.9,-0.9,0 +5946,39.9,-1,0 +5948,39.9,-1.1,0 +5953,39.9,-1.2,0 +5957,39.9,-1.3,0 +5962,39.9,-1.4,0 +5966,39.9,-1.5,0 +5971,39.9,-1.6,0 +5975,39.9,-1.7,0 +5981,39.9,-1.8,0 +5988,39.9,-1.9,0 +6001,39.9,-2,0 +6027,39.9,-1.9,0 +6037,39.9,-1.8,0 +6045,39.9,-1.7,0 +6051,39.9,-1.6,0 +6055,39.9,-1.5,0 +6059,39.9,-1.4,0 +6061,39.9,-1.3,0 +6064,39.9,-1.2,0 +6066,39.9,-1.1,0 +6070,39.9,-1,0 +6072,39.9,-0.9,0 +6073,39.9,-0.8,0 +6075,39.9,-0.7,0 +6077,39.9,-0.6,0 +6079,39.9,-0.5,0 +6080,39.9,-0.3,0 +6082,39.9,-0.2,0 +6084,39.9,-0.1,0 +6086,39.9,0,0 +6087,39.9,0.1,0 +6089,39.9,0.3,0 +6090,39.9,0.4,0 +6092,39.9,0.6,0 +6094,39.9,0.7,0 +6095,39.9,0.8,0 +6097,39.9,0.9,0 +6098,39.9,1,0 +6099,39.9,1.2,0 +6101,39.9,1.3,0 +6102,39.9,1.4,0 +6103,39.9,1.5,0 +6104,39.9,1.6,0 +6106,39.9,1.7,0 +6107,39.9,1.8,0 +6108,39.9,1.9,0 +6109,39.9,2,0 +6110,39.9,2.1,0 +6111,39.9,2.2,0 +6112,39.9,2.3,0 +6114,39.9,2.5,0 +6116,39.9,2.6,0 +6118,39.9,2.7,0 +6119,39.9,2.8,0 +6120,0,2.8,21 +6121,50,2.8,0 +6122,50,3,0 +6124,50,3.1,0 +6125,50,3.2,0 +6128,50,3.3,0 +6131,50,3.4,0 +6135,50,3.5,0 +6145,50,3.4,0 +6149,50,3.3,0 +6152,50,3.2,0 +6154,50,3.1,0 +6157,50,3,0 +6159,50,2.9,0 +6161,50,2.8,0 +6162,50,2.7,0 +6164,50,2.6,0 +6166,50,2.5,0 +6168,50,2.4,0 +6170,50,2.3,0 +6171,50,2.1,0 +6173,50,2,0 +6175,50,1.9,0 +6177,50,1.8,0 +6179,50,1.7,0 +6181,50,1.5,0 +6183,50,1.4,0 +6186,50,1.3,0 +6188,50,1.2,0 +6190,50,1.1,0 +6192,50,1,0 +6194,50,0.9,0 +6196,50,0.8,0 +6199,50,0.7,0 +6203,50,0.6,0 +6205,50,0.5,0 +6210,50,0.4,0 +6215,50,0.3,0 +6224,50,0.2,0 +6250,50,0.1,0 +6271,50,0,0 +6281,50,-0.1,0 +6290,50,-0.2,0 +6298,50,-0.3,0 +6306,50,-0.4,0 +6315,50,-0.5,0 +6320,50,-0.6,0 +6328,50,-0.7,0 +6337,50,-0.8,0 +6347,50,-0.9,0 +6350,56.8,-0.9,0 +6361,56.8,-1,0 +6437,56.8,-1.1,0 +6471,68.1,-1.1,0 +6477,68.1,-1,0 +6540,68.1,-0.9,0 +6567,68.1,-0.8,0 +6589,68.1,-0.7,0 +6610,68.1,-0.6,0 +6625,68.1,-0.5,0 +6644,68.1,-0.4,0 +6663,68.1,-0.3,0 +6682,68.1,-0.2,0 +6780,68.1,-0.3,0 +6907,68.1,-0.4,0 +6929,68.1,-0.5,0 +6947,68.1,-0.6,0 +7009,68.1,-0.5,0 +7019,68.1,-0.4,0 +7029,68.1,-0.3,0 +7035,68.1,-0.2,0 +7045,68.1,-0.1,0 +7051,68.1,0,0 +7058,68.1,0.1,0 +7067,68.1,0.2,0 +7076,68.1,0.3,0 +7088,68.1,0.4,0 +7119,68.1,0.3,0 +7130,68.1,0.2,0 +7138,68.1,0.1,0 +7143,68.1,0,0 +7148,68.1,-0.1,0 +7153,68.1,-0.2,0 +7156,44.6,-0.2,0 +7158,44.6,-0.3,0 +7163,44.6,-0.4,0 +7168,44.6,-0.5,0 +7176,44.6,-0.6,0 +7181,44.6,-0.7,0 +7186,44.6,-0.8,0 +7193,44.6,-0.9,0 +7201,44.6,-1,0 +7211,44.6,-1.1,0 +7225,44.6,-1.2,0 +7280,44.6,-1.1,0 +7294,44.6,-1,0 +7301,44.6,-0.9,0 +7308,44.6,-0.8,0 +7312,44.6,-0.7,0 +7317,44.6,-0.6,0 +7322,44.6,-0.5,0 +7326,44.6,-0.4,0 +7329,44.6,-0.3,0 +7333,44.6,-0.2,0 +7336,44.6,-0.1,0 +7340,44.6,0,0 +7342,44.6,0.1,0 +7347,44.6,0.2,0 +7349,44.6,0.3,0 +7351,44.6,0.4,0 +7355,44.6,0.5,0 +7357,44.6,0.6,0 +7360,44.6,0.7,0 +7364,44.6,0.8,0 +7366,44.6,0.9,0 +7368,44.6,1,0 +7372,44.6,1.1,0 +7374,44.6,1.2,0 +7376,44.6,1.3,0 +7378,44.6,1.4,0 +7382,44.6,1.5,0 +7384,34.5,1.6,0 +7386,34.5,1.7,0 +7388,34.5,1.8,0 +7390,34.5,1.9,0 +7391,34.5,2,0 +7395,34.5,2.1,0 +7397,34.5,2.2,0 +7399,34.5,2.3,0 +7401,34.5,2.4,0 +7402,34.5,2.5,0 +7404,34.5,2.6,0 +7406,34.5,2.7,0 +7407,34.5,2.8,0 +7409,34.5,2.9,0 +7411,34.5,3,0 +7412,34.5,3.1,0 +7415,34.5,3.2,0 +7417,34.5,3.3,0 +7418,34.5,3.4,0 +7419,34.5,3.5,0 +7422,34.5,3.6,0 +7423,34.5,3.7,0 +7426,34.5,3.8,0 +7427,34.5,3.9,0 +7429,34.5,4,0 +7431,34.5,4.1,0 +7433,34.5,4.2,0 +7436,34.5,4.3,0 +7439,34.5,4.4,0 +7443,0,4.4,51.2 +7444,43.4,4.4,0 +7455,43.4,4.4,0 +7459,43.4,4.3,0 +7462,43.4,4.2,0 +7464,43.4,4.1,0 +7467,43.4,4,0 +7469,43.4,3.9,0 +7471,43.4,3.8,0 +7472,43.4,3.7,0 +7474,43.4,3.6,0 +7475,43.4,3.5,0 +7477,43.4,3.4,0 +7478,43.4,3.3,0 +7479,43.4,3.2,0 +7482,43.4,3.1,0 +7483,43.4,3,0 +7484,43.4,2.9,0 +7486,43.4,2.8,0 +7487,43.4,2.7,0 +7488,43.4,2.6,0 +7490,43.4,2.5,0 +7491,43.4,2.4,0 +7493,43.4,2.2,0 +7494,43.4,2.1,0 +7496,43.4,2,0 +7498,43.4,1.9,0 +7499,43.4,1.8,0 +7501,43.4,1.7,0 +7503,43.4,1.6,0 +7504,43.4,1.5,0 +7506,43.4,1.4,0 +7508,43.4,1.3,0 +7511,43.4,1.2,0 +7513,43.4,1.1,0 +7517,43.4,1,0 +7519,43.4,0.9,0 +7523,43.4,0.8,0 +7531,43.4,0.7,0 +7549,43.4,0.8,0 +7560,43.4,0.9,0 +7570,43.4,1,0 +7584,43.4,1.1,0 +7627,43.4,1,0 +7641,43.4,0.9,0 +7648,43.4,0.8,0 +7658,43.4,0.7,0 +7663,43.4,0.6,0 +7670,43.4,0.5,0 +7674,43.4,0.4,0 +7681,43.4,0.3,0 +7683,39.4,0.3,0 +7685,39.4,0.2,0 +7690,39.4,0.1,0 +7694,39.4,0,0 +7698,39.4,-0.1,0 +7702,39.4,-0.2,0 +7709,39.4,-0.3,0 +7713,39.4,-0.4,0 +7719,39.4,-0.5,0 +7722,39.4,-0.6,0 +7730,39.4,-0.7,0 +7747,30.4,-0.7,0 +7752,35.8,-0.7,0 +7759,35.8,-0.6,0 +7766,35.8,-0.5,0 +7770,35.8,-0.4,0 +7774,35.8,-0.3,0 +7777,35.8,-0.2,0 +7779,35.8,-0.1,0 +7783,35.8,0,0 +7785,35.8,0.1,0 +7787,35.8,0.2,0 +7791,35.8,0.3,0 +7793,35.8,0.4,0 +7795,35.8,0.5,0 +7797,35.8,0.6,0 +7799,35.8,0.7,0 +7801,35.8,0.8,0 +7803,35.8,1,0 +7805,35.8,1.1,0 +7807,35.8,1.2,0 +7809,35.8,1.3,0 +7811,35.8,1.4,0 +7813,35.8,1.5,0 +7815,35.8,1.7,0 +7817,35.8,1.8,0 +7819,35.8,1.9,0 +7821,35.8,2,0 +7823,35.8,2.2,0 +7825,35.8,2.3,0 +7827,35.8,2.4,0 +7829,35.8,2.5,0 +7831,35.8,2.6,0 +7832,35.8,2.7,0 +7834,35.8,2.8,0 +7836,35.8,2.9,0 +7838,35.8,3,0 +7840,35.8,3.1,0 +7842,35.8,3.2,0 +7843,35.8,3.3,0 +7845,35.8,3.4,0 +7847,35.8,3.5,0 +7850,35.8,3.6,0 +7852,35.8,3.7,0 +7855,35.8,3.8,0 +7859,35.8,3.9,0 +7864,35.8,4,0 +7877,21.3,3.9,0 +7878,33.8,3.9,0 +7883,33.8,3.8,0 +7887,33.8,3.7,0 +7890,33.8,3.6,0 +7892,33.8,3.5,0 +7895,33.8,3.4,0 +7898,33.8,3.3,0 +7900,33.8,3.2,0 +7902,33.8,3.1,0 +7905,33.8,3,0 +7907,33.8,2.9,0 +7908,33.8,2.8,0 +7912,33.8,2.7,0 +7914,33.8,2.6,0 +7915,33.8,2.5,0 +7917,33.8,2.4,0 +7919,33.8,2.3,0 +7921,33.8,2.2,0 +7925,33.8,2.1,0 +7927,33.8,2,0 +7929,33.8,1.9,0 +7930,33.8,1.8,0 +7934,33.8,1.7,0 +7936,33.8,1.6,0 +7938,33.8,1.5,0 +7942,33.8,1.4,0 +7943,33.8,1.3,0 +7947,33.8,1.2,0 +7949,33.8,1.1,0 +7952,33.8,1,0 +7954,33.8,0.9,0 +7956,33.8,0.8,0 +7959,33.8,0.7,0 +7961,33.8,0.6,0 +7962,33.8,0.5,0 +7966,33.8,0.4,0 +7967,33.8,0.3,0 +7969,33.8,0.2,0 +7970,33.8,0.1,0 +7973,33.8,0,0 +7975,33.8,-0.1,0 +7976,33.8,-0.2,0 +7979,33.8,-0.3,0 +7980,33.8,-0.4,0 +7982,33.8,-0.5,0 +7984,33.8,-0.6,0 +7985,33.8,-0.7,0 +7988,33.8,-0.8,0 +7990,33.8,-0.9,0 +7992,33.8,-1,0 +7994,33.8,-1.1,0 +7996,33.8,-1.2,0 +7998,33.8,-1.3,0 +7999,0,-1.3,73.8 +8000,27.8,-1.3,0 +8001,27.8,-1.4,0 +8003,27.8,-1.5,0 +8006,27.8,-1.6,0 +8010,27.8,-1.7,0 +8024,27.8,-1.6,0 +8029,27.8,-1.5,0 +8032,27.8,-1.4,0 +8035,27.8,-1.3,0 +8038,27.8,-1.2,0 +8039,27.8,-1.1,0 +8042,27.8,-1,0 +8044,27.8,-0.9,0 +8047,27.8,-0.8,0 +8048,27.8,-0.7,0 +8050,27.8,-0.6,0 +8053,27.8,-0.5,0 +8054,27.8,-0.4,0 +8056,27.8,-0.3,0 +8057,27.8,-0.2,0 +8061,27.8,-0.1,0 +8062,27.8,0,0 +8065,27.8,0.1,0 +8067,27.8,0.2,0 +8070,27.8,0.3,0 +8073,27.8,0.4,0 +8076,27.8,0.5,0 +8081,27.8,0.6,0 +8091,27.8,0.5,0 +8096,27.8,0.4,0 +8099,27.8,0.3,0 +8102,27.8,0.2,0 +8104,27.8,0.1,0 +8106,27.8,0,0 +8108,27.8,-0.1,0 +8109,27.8,-0.2,0 +8110,27.8,-0.4,0 +8114,27.8,-0.6,0 +8116,27.8,-0.7,0 +8117,27.8,-0.8,0 +8119,27.8,-0.9,0 +8120,27.8,-1,0 +8121,27.8,-1.2,0 +8123,27.8,-1.3,0 +8125,27.8,-1.5,0 +8127,27.8,-1.6,0 +8128,27.8,-1.7,0 +8129,27.8,-1.8,0 +8130,27.8,-1.9,0 +8131,10,-2,0 +8132,17.9,-2.1,0 +8133,17.9,-2.2,0 +8134,17.9,-2.3,0 +8135,17.9,-2.4,0 +8136,17.9,-2.6,0 +8138,17.9,-2.7,0 +8140,17.9,-2.8,0 +8141,17.9,-2.9,0 +8142,17.9,-3,0 +8143,17.9,-3.1,0 +8144,17.9,-3.2,0 +8146,17.9,-3.3,0 +8147,17.9,-3.4,0 +8148,17.9,-3.5,0 +8150,17.9,-3.6,0 +8152,17.9,-3.7,0 +8153,17.9,-3.8,0 +8155,17.9,-3.9,0 +8157,17.9,-4,0 +8160,17.9,-4.1,0 +8169,0,-4.1,7.8 +8170,28.5,-4.1,0 +8173,28.5,-4,0 +8176,28.5,-3.9,0 +8178,28.5,-3.8,0 +8180,28.5,-3.7,0 +8182,28.5,-3.6,0 +8183,28.5,-3.5,0 +8185,28.5,-3.4,0 +8187,28.5,-3.3,0 +8188,28.5,-3.2,0 +8189,28.5,-3.1,0 +8190,28.5,-3,0 +8191,28.5,-2.9,0 +8193,28.5,-2.8,0 +8194,28.5,-2.7,0 +8195,28.5,-2.6,0 +8197,28.5,-2.4,0 +8198,28.5,-2.3,0 +8200,28.5,-2.2,0 +8201,28.5,-2,0 +8203,28.5,-1.9,0 +8204,28.5,-1.7,0 +8206,28.5,-1.6,0 +8207,28.5,-1.5,0 +8209,28.5,-1.4,0 +8210,28.5,-1.2,0 +8212,28.5,-1.1,0 +8213,28.5,-1,0 +8215,28.5,-0.9,0 +8216,28.5,-0.7,0 +8218,28.5,-0.6,0 +8219,28.5,-0.5,0 +8220,28.5,-0.4,0 +8222,28.5,-0.3,0 +8223,28.5,-0.2,0 +8225,28.5,-0.1,0 +8226,28.5,0,0 +8229,28.5,0.1,0 +8231,28.5,0.2,0 +8232,28.5,0.3,0 +8235,28.5,0.4,0 +8238,28.5,0.5,0 +8241,28.5,0.6,0 +8247,28.5,0.7,0 +8268,28.5,0.6,0 +8274,28.5,0.5,0 +8279,28.5,0.4,0 +8284,28.5,0.3,0 +8287,28.5,0.2,0 +8290,28.5,0.1,0 +8295,28.5,0,0 +8298,28.5,-0.1,0 +8301,28.5,-0.2,0 +8303,28.5,-0.3,0 +8306,28.5,-0.4,0 +8309,28.5,-0.5,0 +8312,28.5,-0.6,0 +8315,28.5,-0.7,0 +8319,28.5,-0.8,0 +8322,28.5,-0.9,0 +8323,28.5,-1,0 +8328,28.5,-1.1,0 +8331,28.5,-1.2,0 +8334,28.5,-1.3,0 +8336,28.5,-1.4,0 +8340,28.5,-1.5,0 +8344,28.5,-1.6,0 +8349,21.2,-1.6,0 +8350,21.2,-1.7,0 +8353,30.2,-1.7,0 +8356,30.2,-1.8,0 +8368,30.2,-1.9,0 +8376,30.2,-1.8,0 +8388,30.2,-1.7,0 +8395,30.2,-1.6,0 +8402,30.2,-1.5,0 +8407,30.2,-1.4,0 +8410,30.2,-1.3,0 +8415,30.2,-1.2,0 +8420,30.2,-1.1,0 +8423,30.2,-1,0 +8428,30.2,-0.9,0 +8431,30.2,-0.8,0 +8435,30.2,-0.7,0 +8439,30.2,-0.6,0 +8443,30.2,-0.5,0 +8448,30.2,-0.4,0 +8449,20.1,-0.4,0 +8453,23.6,-0.3,0 +8457,23.6,-0.2,0 +8462,23.6,-0.1,0 +8467,23.6,0,0 +8474,23.6,0.1,0 +8480,23.6,0.2,0 +8489,23.6,0.3,0 +8498,0,0.4,25.6 +8499,28.6,0.4,0 +8519,28.6,0.2,0 +8527,28.6,0.1,0 +8534,28.6,0,0 +8540,28.6,-0.1,0 +8546,28.6,-0.2,0 +8551,28.6,-0.3,0 +8558,28.6,-0.4,0 +8565,28.6,-0.5,0 +8576,28.6,-0.6,0 +8610,28.6,-0.5,0 +8629,28.6,-0.4,0 +8650,28.6,-0.3,0 +8652,37.9,-0.3,0 +8687,37.9,-0.4,0 +8745,37.9,-0.3,0 +8793,37.9,-0.4,0 +8809,37.9,-0.5,0 +8820,33.4,-0.5,0 +8822,33.4,-0.6,0 +8834,33.4,-0.7,0 +8845,33.4,-0.8,0 +8860,33.4,-0.9,0 +8892,33.4,-0.8,0 +8901,33.4,-0.7,0 +8909,33.4,-0.6,0 +8912,33.4,-0.5,0 +8918,33.4,-0.4,0 +8922,33.4,-0.3,0 +8923,33.4,-0.2,0 +8927,33.4,-0.1,0 +8931,33.4,0,0 +8933,33.4,0.1,0 +8935,33.4,0.2,0 +8938,33.4,0.3,0 +8940,33.4,0.4,0 +8942,33.4,0.5,0 +8944,33.4,0.6,0 +8947,33.4,0.7,0 +8949,33.4,0.8,0 +8951,33.4,0.9,0 +8953,33.4,1,0 +8955,33.4,1.1,0 +8957,33.4,1.2,0 +8958,33.4,1.3,0 +8962,33.4,1.4,0 +8964,33.4,1.5,0 +8965,33.4,1.6,0 +8967,33.4,1.7,0 +8971,33.4,1.8,0 +8973,33.4,1.9,0 +8976,33.4,2,0 +8978,33.4,2.1,0 +8982,33.4,2.2,0 +8987,33.4,2.3,0 +8998,33.4,2.2,0 +9003,33.4,2.1,0 +9006,33.4,2,0 +9008,33.4,1.9,0 +9011,33.4,1.8,0 +9013,33.4,1.7,0 +9014,33.4,1.6,0 +9016,33.4,1.5,0 +9018,33.4,1.4,0 +9019,33.4,1.3,0 +9021,33.4,1.2,0 +9022,33.4,1.1,0 +9024,33.4,1,0 +9026,33.4,0.8,0 +9027,33.4,0.7,0 +9029,33.4,0.6,0 +9030,33.4,0.5,0 +9032,33.4,0.4,0 +9033,33.4,0.2,0 +9035,33.4,0.1,0 +9037,33.4,0,0 +9038,33.4,-0.1,0 +9040,33.4,-0.2,0 +9041,33.4,-0.3,0 +9043,33.4,-0.4,0 +9044,33.4,-0.5,0 +9046,33.4,-0.6,0 +9049,33.4,-0.7,0 +9052,33.4,-0.8,0 +9062,33.4,-0.7,0 +9065,33.4,-0.6,0 +9066,33.4,-0.5,0 +9068,33.4,-0.4,0 +9069,33.4,-0.3,0 +9070,33.4,-0.2,0 +9072,33.4,-0.1,0 +9073,33.4,0,0 +9074,33.4,0.2,0 +9076,33.4,0.3,0 +9077,33.4,0.4,0 +9078,33.4,0.5,0 +9079,33.4,0.7,0 +9081,33.4,0.9,0 +9082,33.4,1,0 +9083,33.4,1.1,0 +9084,33.4,1.3,0 +9085,33.4,1.4,0 +9086,33.4,1.5,0 +9087,33.4,1.7,0 +9088,33.4,1.8,0 +9089,33.4,2,0 +9090,33.4,2.1,0 +9091,33.4,2.3,0 +9092,33.4,2.4,0 +9093,33.4,2.5,0 +9094,33.4,2.7,0 +9095,33.4,2.8,0 +9096,33.4,2.9,0 +9097,33.4,3.1,0 +9098,33.4,3.2,0 +9099,33.4,3.3,0 +9100,0,3.4,14.4 +9101,10,3.4,0 +9102,10,3.6,0 +9103,10,3.7,0 +9104,10,3.8,0 +9105,10,3.9,0 +9106,10,4,0 +9108,10,4.1,0 +9110,10,4.2,0 +9112,10,4.3,0 +9116,10,4.4,0 +9117,10,4.3,0 +9118,0,4.3,13.6 +9119,14.5,4.3,0 +9121,14.5,4.2,0 +9123,14.5,4.1,0 +9125,14.5,4,0 +9126,14.5,3.9,0 +9127,14.5,3.8,0 +9129,14.5,3.7,0 +9130,14.5,3.5,0 +9131,14.5,3.4,0 +9133,14.5,3.3,0 +9134,14.5,3.1,0 +9135,14.5,3,0 +9136,14.5,2.9,0 +9137,14.5,2.7,0 +9138,14.5,2.6,0 +9139,14.5,2.5,0 +9140,14.5,2.3,0 +9141,14.5,2.2,0 +9142,14.5,2.1,0 +9143,14.5,1.9,0 +9144,14.5,1.8,0 +9145,14.5,1.6,0 +9146,14.5,1.5,0 +9147,14.5,1.4,0 +9148,14.5,1.3,0 +9149,11,1.1,0 +9150,11,1,0 +9151,11,0.8,0 +9152,11,0.7,0 +9153,11,0.4,0 +9155,11,0.3,0 +9156,37.4,0.2,0 +9157,37.4,0.1,0 +9158,37.4,-0.2,0 +9160,37.4,-0.3,0 +9161,37.4,-0.4,0 +9162,37.4,-0.5,0 +9163,37.4,-0.6,0 +9164,37.4,-0.7,0 +9165,37.4,-0.9,0 +9167,37.4,-1,0 +9168,37.4,-1.1,0 +9169,37.4,-1.2,0 +9171,37.4,-1.3,0 +9172,37.4,-1.4,0 +9175,37.4,-1.5,0 +9176,37.4,-1.6,0 +9178,37.4,-1.7,0 +9181,37.4,-1.8,0 +9185,37.4,-1.9,0 +9199,37.4,-1.8,0 +9204,37.4,-1.7,0 +9209,37.4,-1.6,0 +9212,37.4,-1.5,0 +9216,37.4,-1.4,0 +9220,37.4,-1.3,0 +9223,37.4,-1.2,0 +9227,37.4,-1.1,0 +9231,37.4,-1,0 +9235,37.4,-0.9,0 +9239,37.4,-0.8,0 +9245,37.4,-0.7,0 +9251,37.4,-0.6,0 +9262,37.4,-0.5,0 +9293,37.4,-0.6,0 +9330,37.4,-0.5,0 +9337,37.4,-0.4,0 +9340,37.4,-0.3,0 +9343,37.4,-0.2,0 +9346,37.4,-0.1,0 +9349,37.4,0,0 +9352,37.4,0.1,0 +9354,37.4,0.2,0 +9356,37.4,0.3,0 +9358,37.4,0.4,0 +9360,37.4,0.5,0 +9362,37.4,0.6,0 +9364,10.9,0.7,0 +9366,10.9,0.9,0 +9368,20.4,0.9,0 +9369,20.4,1,0 +9371,20.4,1.1,0 +9373,20.4,1.2,0 +9376,20.4,1.3,0 +9377,20.4,1.4,0 +9380,20.4,1.5,0 +9382,20.4,1.6,0 +9384,20.4,1.7,0 +9387,20.4,1.8,0 +9390,20.4,1.9,0 +9395,20.4,2,0 +9408,20.4,1.9,0 +9412,20.4,1.8,0 +9415,20.4,1.7,0 +9418,20.4,1.6,0 +9420,20.4,1.5,0 +9422,14.8,1.4,0 +9424,14.8,1.3,0 +9425,14.8,1.2,0 +9427,14.8,1.1,0 +9429,20.1,1,0 +9430,20.1,0.9,0 +9432,20.1,0.8,0 +9434,20.1,0.7,0 +9435,20.1,0.6,0 +9436,20.1,0.5,0 +9437,20.1,0.4,0 +9439,20.1,0.3,0 +9440,20.1,0.2,0 +9442,20.1,0.1,0 +9443,20.1,0,0 +9445,20.1,-0.1,0 +9446,20.1,-0.2,0 +9447,20.1,-0.3,0 +9450,20.1,-0.4,0 +9451,20.1,-0.5,0 +9452,20.1,-0.6,0 +9454,20.1,-0.7,0 +9455,20.1,-0.8,0 +9458,20.1,-0.9,0 +9460,20.1,-1,0 +9462,20.1,-1.1,0 +9465,20.1,-1.2,0 +9468,20.1,-1.3,0 +9471,20.1,-1.4,0 +9484,11.6,-1.4,0 +9486,11.6,-1.3,0 +9488,17.5,-1.3,0 +9491,17.5,-1.2,0 +9495,17.5,-1.1,0 +9497,17.5,-1,0 +9500,17.5,-0.9,0 +9502,17.5,-0.8,0 +9504,17.5,-0.7,0 +9506,17.5,-0.6,0 +9508,17.5,-0.5,0 +9510,17.5,-0.4,0 +9512,17.5,-0.3,0 +9514,17.5,-0.2,0 +9515,17.5,-0.1,0 +9517,17.5,0,0 +9519,17.5,0.1,0 +9520,17.5,0.2,0 +9522,0,0.3,18.6 +9523,20.4,0.3,0 +9524,20.4,0.4,0 +9526,20.4,0.5,0 +9528,20.4,0.6,0 +9530,20.4,0.7,0 +9532,20.4,0.8,0 +9534,20.4,0.9,0 +9537,20.4,1,0 +9538,20.4,1.1,0 +9541,20.4,1.2,0 +9545,20.4,1.3,0 +9548,20.4,1.4,0 +9551,20.4,1.5,0 +9557,20.4,1.6,0 +9573,20.4,1.5,0 +9579,20.4,1.4,0 +9582,20.4,1.3,0 +9583,12.9,1.3,0 +9587,12.9,1.2,0 +9589,12.9,1.1,0 +9590,60.7,1.1,0 +9592,60.7,1,0 +9595,60.7,0.9,0 +9598,60.7,0.8,0 +9601,60.7,0.7,0 +9604,60.7,0.6,0 +9607,60.7,0.5,0 +9610,60.7,0.4,0 +9614,60.7,0.3,0 +9618,60.7,0.2,0 +9623,60.7,0.1,0 +9627,60.7,0,0 +9652,60.7,0.1,0 +9659,60.7,0.2,0 +9665,60.7,0.3,0 +9670,60.7,0.4,0 +9675,60.7,0.5,0 +9679,60.7,0.6,0 +9684,60.7,0.7,0 +9689,60.7,0.8,0 +9694,60.7,0.9,0 +9699,60.7,1,0 +9705,60.7,1.1,0 +9713,60.7,1.2,0 +9718,60.7,1.3,0 +9727,60.7,1.4,0 +9738,60.7,1.5,0 +9793,60.7,1.4,0 +9806,60.7,1.3,0 +9816,60.7,1.2,0 +9826,60.7,1.1,0 +9833,60.7,1,0 +9836,63.7,1,0 +9843,63.7,0.9,0 +9850,63.7,0.8,0 +9856,63.7,0.7,0 +9860,63.7,0.6,0 +9867,63.7,0.5,0 +9874,63.7,0.4,0 +9877,63.7,0.3,0 +9884,63.7,0.2,0 +9888,63.7,0.1,0 +9895,63.7,0,0 +9898,63.7,-0.1,0 +9905,63.7,-0.2,0 +9909,63.7,-0.3,0 +9912,63.7,-0.4,0 +9919,63.7,-0.5,0 +9923,63.7,-0.6,0 +9926,63.7,-0.7,0 +9930,63.7,-0.8,0 +9937,63.7,-0.9,0 +9941,63.7,-1,0 +9944,63.7,-1.1,0 +9948,63.7,-1.2,0 +9955,63.7,-1.3,0 +9958,63.7,-1.4,0 +9962,63.7,-1.5,0 +9969,63.7,-1.6,0 +9972,63.7,-1.7,0 +9979,63.7,-1.8,0 +9983,63.7,-1.9,0 +9990,63.7,-2,0 +9997,63.7,-2.1,0 +10000,63.7,-2.2,0 +10007,63.7,-2.3,0 +10017,63.7,-2.4,0 +10024,63.7,-2.5,0 +10035,63.7,-2.6,0 +10048,63.7,-2.7,0 +10065,63.7,-2.8,0 +10082,58.4,-2.8,0 +10095,58.4,-2.9,0 +10141,58.4,-2.8,0 +10161,58.4,-2.7,0 +10172,58.4,-2.6,0 +10180,58.4,-2.5,0 +10189,58.4,-2.4,0 +10194,58.4,-2.3,0 +10199,58.4,-2.2,0 +10205,46.6,-2.1,0 +10210,46.6,-2,0 +10212,46.6,-1.9,0 +10217,46.6,-1.8,0 +10220,46.6,-1.7,0 +10225,46.6,-1.6,0 +10228,46.6,-1.5,0 +10230,46.6,-1.4,0 +10235,46.6,-1.3,0 +10237,46.6,-1.2,0 +10240,46.6,-1.1,0 +10242,46.6,-1,0 +10245,46.6,-0.9,0 +10247,46.6,-0.8,0 +10250,46.6,-0.7,0 +10252,46.6,-0.6,0 +10254,46.6,-0.5,0 +10257,46.6,-0.4,0 +10259,46.6,-0.3,0 +10261,46.6,-0.2,0 +10263,46.6,-0.1,0 +10266,46.6,0,0 +10268,46.6,0.1,0 +10270,46.6,0.2,0 +10272,46.6,0.3,0 +10275,46.6,0.4,0 +10277,46.6,0.5,0 +10279,46.6,0.6,0 +10281,46.6,0.7,0 +10283,46.6,0.8,0 +10285,46.6,0.9,0 +10287,46.6,1,0 +10291,46.6,1.1,0 +10293,46.6,1.2,0 +10295,46.6,1.3,0 +10297,46.6,1.4,0 +10299,33.4,1.4,0 +10301,33.4,1.5,0 +10303,33.4,1.6,0 +10307,33.4,1.7,0 +10310,33.4,1.8,0 +10315,33.4,1.9,0 +10320,33.4,2,0 +10344,0,2,13.2 +10345,17.4,2,0 +10346,17.4,2,0 +10352,17.4,1.9,0 +10363,17.4,1.8,0 +10378,17.4,1.7,0 +10385,0,1.8,4 +10386,47.1,1.8,0 +10396,47.1,1.6,0 +10409,47.1,1.5,0 +10417,47.1,1.4,0 +10424,47.1,1.3,0 +10432,47.1,1.2,0 +10438,47.1,1.1,0 +10444,47.1,1,0 +10451,47.1,0.9,0 +10457,47.1,0.8,0 +10465,47.1,0.7,0 +10472,47.1,0.6,0 +10482,47.1,0.5,0 +10489,47.1,0.4,0 +10500,47.1,0.3,0 +10510,47.1,0.2,0 +10520,47.1,0.1,0 +10528,47.1,0,0 +10539,47.1,-0.1,0 +10546,47.1,-0.2,0 +10554,47.1,-0.3,0 +10565,47.1,-0.4,0 +10573,47.1,-0.5,0 +10583,47.1,-0.6,0 +10594,47.1,-0.7,0 +10607,47.1,-0.8,0 +10625,47.1,-0.9,0 +10651,47.1,-0.8,0 +10668,47.1,-0.7,0 +10676,47.1,-0.6,0 +10683,47.1,-0.5,0 +10691,47.1,-0.4,0 +10696,47.1,-0.3,0 +10703,47.1,-0.2,0 +10708,47.1,-0.1,0 +10713,47.1,0,0 +10719,47.1,0.1,0 +10726,47.1,0.2,0 +10738,47.1,0.4,0 +10774,0,0.4,43.2 +10775,33.5,0.4,0 +10781,33.5,0.4,0 +10788,33.5,0.5,0 +10794,33.5,0.6,0 +10797,33.5,0.7,0 +10801,33.5,0.8,0 +10804,33.5,0.9,0 +10808,33.5,1,0 +10812,33.5,1.1,0 +10815,33.5,1.2,0 +10818,33.5,1.3,0 +10821,33.5,1.4,0 +10825,33.5,1.5,0 +10828,33.5,1.6,0 +10832,33.5,1.7,0 +10837,33.5,1.8,0 +10845,33.5,1.9,0 +10858,33.5,1.8,0 +10867,33.5,1.7,0 +10870,33.5,1.6,0 +10875,33.5,1.5,0 +10879,33.5,1.4,0 +10882,33.5,1.3,0 +10884,33.5,1.2,0 +10887,33.5,1.1,0 +10888,33.5,1,0 +10892,33.5,0.9,0 +10893,33.5,0.8,0 +10896,33.5,0.7,0 +10898,33.5,0.6,0 +10899,33.5,0.5,0 +10902,33.5,0.4,0 +10903,33.5,0.3,0 +10906,33.5,0.2,0 +10907,33.5,0.1,0 +10909,33.5,0,0 +10911,33.5,-0.1,0 +10913,33.5,-0.2,0 +10915,33.5,-0.3,0 +10917,33.5,-0.4,0 +10919,33.5,-0.5,0 +10921,33.5,-0.6,0 +10924,33.5,-0.7,0 +10927,33.5,-0.8,0 +10929,33.5,-0.9,0 +10932,33.5,-1,0 +10933,11.6,-1,0 +10937,11.6,-1.1,0 +10950,11.6,-1,0 +10954,11.6,-0.9,0 +10958,11.6,-0.8,0 +10960,11.6,-0.7,0 +10962,11.6,-0.6,0 +10964,11.6,-0.5,0 +10966,11.6,-0.4,0 +10968,11.6,-0.3,0 +10969,30,-0.2,0 +10971,30,-0.1,0 +10973,30,0,0 +10974,30,0.1,0 +10976,30,0.2,0 +10978,30,0.3,0 +10979,30,0.4,0 +10980,30,0.5,0 +10982,30,0.6,0 +10983,30,0.7,0 +10985,30,0.8,0 +10986,30,0.9,0 +10987,30,1,0 +10989,30,1.1,0 +10990,30,1.2,0 +10992,30,1.3,0 +10993,30,1.4,0 +10995,30,1.5,0 +10996,30,1.6,0 +10998,30,1.7,0 +10999,30,1.8,0 +11001,30,1.9,0 +11002,30,2,0 +11006,30,2.1,0 +11007,30,2.2,0 +11009,30,2.3,0 +11012,30,2.4,0 +11014,30,2.5,0 +11017,30,2.6,0 +11022,30,2.7,0 +11027,30,2.8,0 +11055,30,2.7,0 +11061,20.8,2.7,0 +11073,25.1,2.7,0 +11081,25.1,2.8,0 +11087,25.1,2.9,0 +11092,25.1,3,0 +11096,25.1,3.1,0 +11100,25.1,3.2,0 +11103,25.1,3.3,0 +11105,25.1,3.4,0 +11108,25.1,3.5,0 +11111,25.1,3.6,0 +11114,25.1,3.7,0 +11116,25.1,3.8,0 +11119,25.1,3.9,0 +11122,25.1,4,0 +11126,25.1,4.1,0 +11130,25.1,4.2,0 +11137,25.1,4.3,0 +11144,25.1,4.2,0 +11149,25.1,4.1,0 +11152,25.1,4,0 +11155,25.1,3.9,0 +11157,25.1,3.8,0 +11159,25.1,3.7,0 +11161,25.1,3.6,0 +11162,0,3.6,18.8 +11163,15.4,3.6,0 +11164,15.4,3.4,0 +11165,15.4,3.3,0 +11167,15.4,3.2,0 +11168,15.4,3.1,0 +11169,15.4,3,0 +11171,15.4,2.9,0 +11172,15.4,2.8,0 +11173,15.4,2.7,0 +11174,15.4,2.5,0 +11176,15.4,2.4,0 +11177,15.4,2.3,0 +11179,15.4,2.2,0 +11180,15.4,2,0 +11181,15.4,1.9,0 +11183,15.4,1.8,0 +11184,15.4,1.7,0 +11185,15.4,1.6,0 +11186,15.4,1.5,0 +11187,15.4,1.4,0 +11188,15.4,1.3,0 +11189,15.4,1.2,0 +11190,15.4,1.1,0 +11192,15.4,1,0 +11193,15.4,0.8,0 +11195,15.4,0.7,0 +11196,15.4,0.6,0 +11197,15.4,0.5,0 +11198,15.4,0.4,0 +11200,15.4,0.3,0 +11201,10,0.2,0 +11203,31,0.1,0 +11204,31,0,0 +11206,31,-0.1,0 +11207,31,-0.2,0 +11209,31,-0.3,0 +11211,31,-0.4,0 +11213,31,-0.5,0 +11216,31,-0.6,0 +11218,31,-0.7,0 +11222,31,-0.8,0 +11244,31,-0.7,0 +11250,31,-0.6,0 +11257,31,-0.5,0 +11262,31,-0.4,0 +11270,31,-0.3,0 +11285,31,-0.4,0 +11292,31,-0.5,0 +11297,31,-0.6,0 +11301,31,-0.7,0 +11304,31,-0.8,0 +11306,31,-0.9,0 +11309,31,-1,0 +11312,31,-1.1,0 +11314,31,-1.2,0 +11317,31,-1.3,0 +11318,31,-1.4,0 +11320,31,-1.5,0 +11323,31,-1.6,0 +11324,31,-1.7,0 +11327,31,-1.8,0 +11329,31,-1.9,0 +11331,31,-2,0 +11334,31,-2.1,0 +11337,31,-2.2,0 +11339,31,-2.3,0 +11342,31,-2.4,0 +11346,31,-2.5,0 +11351,31,-2.6,0 +11365,14.8,-2.6,0 +11368,21.7,-2.5,0 +11375,21.7,-2.4,0 +11381,21.7,-2.3,0 +11387,21.7,-2.2,0 +11404,21.7,-2.3,0 +11408,21.7,-2.4,0 +11410,21.7,-2.5,0 +11414,21.7,-2.6,0 +11415,21.7,-2.7,0 +11418,21.7,-2.8,0 +11420,21.7,-2.9,0 +11421,21.7,-3,0 +11422,21.7,-3.1,0 +11425,21.7,-3.2,0 +11426,21.7,-3.3,0 +11427,21.7,-3.4,0 +11428,21.7,-3.5,0 +11430,25.2,-3.6,0 +11431,25.2,-3.7,0 +11433,25.2,-3.8,0 +11434,25.2,-3.9,0 +11436,25.2,-4,0 +11437,25.2,-4.1,0 +11438,25.2,-4.2,0 +11439,25.2,-4.3,0 +11441,25.2,-4.4,0 +11442,25.2,-4.5,0 +11443,25.2,-4.6,0 +11444,25.2,-4.7,0 +11446,25.2,-4.8,0 +11447,25.2,-4.9,0 +11448,25.2,-5,0 +11450,25.2,-5.1,0 +11451,25.2,-5.2,0 +11452,25.2,-5.3,0 +11454,25.2,-5.4,0 +11455,25.2,-5.5,0 +11456,25.2,-5.6,0 +11458,25.2,-5.7,0 +11459,25.2,-5.8,0 +11462,25.2,-5.9,0 +11463,25.2,-6,0 +11466,25.2,-6.1,0 +11469,25.2,-6.2,0 +11474,25.2,-6.3,0 +11477,25.2,-6.2,0 +11483,25.2,-6.1,0 +11485,25.2,-6,0 +11487,25.2,-5.9,0 +11489,25.2,-5.8,0 +11491,25.2,-5.7,0 +11492,25.2,-5.6,0 +11493,25.2,-5.5,0 +11494,25.2,-5.4,0 +11496,25.2,-5.2,0 +11497,25.2,-5.1,0 +11498,25.2,-5,0 +11499,25.2,-4.8,0 +11501,25.2,-4.7,0 +11502,25.2,-4.6,0 +11503,25.2,-4.4,0 +11504,25.2,-4.3,0 +11505,25.2,-4.2,0 +11506,25.2,-3.9,0 +11508,25.2,-3.8,0 +11509,25.2,-3.6,0 +11510,25.2,-3.5,0 +11511,25.2,-3.3,0 +11512,25.2,-3.2,0 +11513,25.2,-3,0 +11514,25.2,-2.8,0 +11515,25.2,-2.7,0 +11516,25.2,-2.5,0 +11517,25.2,-2.4,0 +11518,25.2,-2.2,0 +11519,25.2,-2.1,0 +11520,25.2,-1.9,0 +11521,10,-1.7,0 +11522,10,-1.6,0 +11523,41.3,-1.5,0 +11524,41.3,-1.3,0 +11525,41.3,-1.1,0 +11526,41.3,-1,0 +11527,41.3,-0.9,0 +11528,41.3,-0.7,0 +11529,41.3,-0.5,0 +11530,41.3,-0.4,0 +11531,41.3,-0.3,0 +11532,41.3,-0.1,0 +11533,41.3,0,0 +11534,41.3,0.2,0 +11535,41.3,0.3,0 +11536,41.3,0.4,0 +11537,41.3,0.6,0 +11538,41.3,0.7,0 +11539,41.3,0.8,0 +11540,41.3,1,0 +11542,41.3,1.1,0 +11543,41.3,1.2,0 +11544,41.3,1.4,0 +11546,41.3,1.5,0 +11547,41.3,1.7,0 +11549,41.3,1.8,0 +11550,41.3,1.9,0 +11552,41.3,2,0 +11554,41.3,2.1,0 +11555,41.3,2.2,0 +11557,41.3,2.3,0 +11560,41.3,2.4,0 +11564,41.3,2.5,0 +11570,41.3,2.4,0 +11576,41.3,2.3,0 +11580,41.3,2.2,0 +11582,41.3,2.1,0 +11584,41.3,2,0 +11587,41.3,1.9,0 +11589,41.3,1.8,0 +11591,41.3,1.7,0 +11593,41.3,1.6,0 +11596,41.3,1.5,0 +11598,41.3,1.3,0 +11600,41.3,1.2,0 +11603,41.3,1.1,0 +11605,41.3,1,0 +11607,41.3,0.8,0 +11609,41.3,0.7,0 +11612,41.3,0.6,0 +11614,41.3,0.5,0 +11616,41.3,0.3,0 +11618,41.3,0.2,0 +11621,41.3,0.1,0 +11623,41.3,0,0 +11625,41.3,-0.2,0 +11627,41.3,-0.3,0 +11629,41.3,-0.4,0 +11631,41.3,-0.5,0 +11633,41.3,-0.6,0 +11636,41.3,-0.7,0 +11638,41.3,-0.8,0 +11640,41.3,-0.9,0 +11641,41.3,-1,0 +11643,41.3,-1.1,0 +11645,41.3,-1.2,0 +11647,41.3,-1.3,0 +11651,41.3,-1.4,0 +11652,41.3,-1.5,0 +11656,41.3,-1.6,0 +11659,41.3,-1.7,0 +11662,41.3,-1.8,0 +11668,41.3,-1.9,0 +11675,41.3,-1.8,0 +11681,41.3,-1.6,0 +11683,0,-1.6,17 +11684,40.3,-1.6,0 +11687,40.3,-1.5,0 +11689,40.3,-1.4,0 +11691,40.3,-1.3,0 +11693,40.3,-1.2,0 +11695,40.3,-1.1,0 +11697,40.3,-1,0 +11698,40.3,-0.9,0 +11699,40.3,-0.8,0 +11702,40.3,-0.7,0 +11703,40.3,-0.6,0 +11704,40.3,-0.5,0 +11706,40.3,-0.4,0 +11707,40.3,-0.3,0 +11708,40.3,-0.2,0 +11710,40.3,-0.1,0 +11711,40.3,0.1,0 +11713,40.3,0.2,0 +11715,40.3,0.3,0 +11716,40.3,0.4,0 +11718,40.3,0.6,0 +11720,40.3,0.7,0 +11721,40.3,0.8,0 +11723,40.3,0.9,0 +11725,40.3,1.1,0 +11727,40.3,1.2,0 +11729,40.3,1.3,0 +11730,40.3,1.4,0 +11732,40.3,1.5,0 +11734,40.3,1.6,0 +11736,40.3,1.7,0 +11738,40.3,1.8,0 +11740,40.3,1.9,0 +11744,40.3,2,0 +11748,40.3,2.1,0 +11756,40.3,2.2,0 +11761,40.3,2.1,0 +11769,40.3,2,0 +11776,40.3,1.9,0 +11780,40.3,1.8,0 +11782,40.3,1.7,0 +11787,40.3,1.6,0 +11791,40.3,1.5,0 +11793,40.3,1.4,0 +11798,40.3,1.3,0 +11800,40.3,1.2,0 +11804,40.3,1.1,0 +11809,40.3,1,0 +11811,40.3,0.9,0 +11818,40.3,0.8,0 +11822,40.3,0.7,0 +11829,40.3,0.6,0 +11856,40.3,0.7,0 +11866,40.3,0.8,0 +11875,40.3,0.9,0 +11900,34,0.8,0 +11904,34,0.7,0 +11906,34,0.6,0 +11910,34,0.5,0 +11911,34,0.4,0 +11913,34,0.3,0 +11915,34,0.2,0 +11917,34,0.1,0 +11918,34,0,0 +11920,34,-0.2,0 +11922,34,-0.3,0 +11923,34,-0.4,0 +11925,34,-0.6,0 +11927,34,-0.7,0 +11928,34,-0.9,0 +11930,34,-1,0 +11931,34,-1.2,0 +11933,34,-1.3,0 +11934,34,-1.5,0 +11936,34,-1.6,0 +11937,34,-1.8,0 +11939,34,-1.9,0 +11940,34,-2.1,0 +11941,34,-2.2,0 +11942,34,-2.4,0 +11944,34,-2.5,0 +11945,34,-2.6,0 +11946,34,-2.7,0 +11947,34,-2.8,0 +11948,34,-2.9,0 +11949,34,-3,0 +11950,34,-3.2,0 +11951,34,-3.3,0 +11953,34,-3.4,0 +11954,34,-3.5,0 +11955,34,-3.6,0 +11956,34,-3.7,0 +11957,34,-3.8,0 +11959,34,-3.9,0 +11960,0,-4,32.6 +11961,29.6,-4,0 +11963,29.6,-4.2,0 +11964,29.6,-4.3,0 +11966,29.6,-4.4,0 +11968,29.6,-4.5,0 +11972,29.6,-4.6,0 +11978,29.6,-4.5,0 +11982,29.6,-4.4,0 +11985,29.6,-4.3,0 +11986,29.6,-4.2,0 +11988,29.6,-4.1,0 +11989,29.6,-4,0 +11991,29.6,-3.9,0 +11992,29.6,-3.8,0 +11994,29.6,-3.7,0 +11995,29.6,-3.6,0 +11996,29.6,-3.4,0 +11997,29.6,-3.3,0 +11998,29.6,-3.2,0 +12000,29.6,-3.1,0 +12001,29.6,-2.9,0 +12002,29.6,-2.7,0 +12004,29.6,-2.6,0 +12005,29.6,-2.5,0 +12006,29.6,-2.3,0 +12008,29.6,-2.1,0 +12009,29.6,-1.9,0 +12011,29.6,-1.8,0 +12012,29.6,-1.7,0 +12013,29.6,-1.5,0 +12015,29.6,-1.3,0 +12016,29.6,-1.1,0 +12018,29.6,-0.9,0 +12019,29.6,-0.8,0 +12021,29.6,-0.5,0 +12023,29.6,-0.4,0 +12024,29.6,-0.3,0 +12026,29.6,-0.1,0 +12027,36.8,0.1,0 +12029,36.8,0.2,0 +12031,36.8,0.4,0 +12033,36.8,0.5,0 +12034,36.8,0.6,0 +12036,36.8,0.8,0 +12038,36.8,0.9,0 +12040,36.8,1,0 +12041,36.8,1.1,0 +12043,36.8,1.2,0 +12045,36.8,1.3,0 +12047,36.8,1.4,0 +12051,36.8,1.5,0 +12055,36.8,1.6,0 +12065,36.8,1.5,0 +12071,36.8,1.4,0 +12075,44.2,1.3,0 +12077,44.2,1.2,0 +12081,44.2,1.1,0 +12083,44.2,1,0 +12086,44.2,0.9,0 +12088,44.2,0.8,0 +12090,44.2,0.7,0 +12092,44.2,0.6,0 +12094,44.2,0.5,0 +12096,44.2,0.4,0 +12098,44.2,0.3,0 +12101,44.2,0.2,0 +12103,44.2,0.1,0 +12105,44.2,0,0 +12107,44.2,-0.1,0 +12109,44.2,-0.2,0 +12111,44.2,-0.4,0 +12114,44.2,-0.5,0 +12116,44.2,-0.6,0 +12118,44.2,-0.7,0 +12120,44.2,-0.8,0 +12123,44.2,-0.9,0 +12125,44.2,-1,0 +12127,44.2,-1.1,0 +12130,44.2,-1.2,0 +12132,44.2,-1.3,0 +12134,44.2,-1.4,0 +12136,44.2,-1.5,0 +12139,44.2,-1.6,0 +12141,44.2,-1.7,0 +12146,44.2,-1.8,0 +12148,44.2,-1.9,0 +12151,44.2,-2,0 +12155,44.2,-2.1,0 +12158,44.2,-2.2,0 +12162,44.2,-2.3,0 +12167,44.2,-2.4,0 +12172,44.2,-2.5,0 +12179,44.2,-2.6,0 +12189,44.2,-2.7,0 +12206,44.2,-2.8,0 +12265,44.2,-2.7,0 +12271,44.2,-2.6,0 +12278,44.2,-2.5,0 +12280,44.2,-2.4,0 +12282,44.2,-2.3,0 +12284,44.2,-2.2,0 +12286,44.2,-2.1,0 +12288,44.2,-2,0 +12290,44.2,-1.9,0 +12291,44.2,-1.8,0 +12293,44.2,-1.6,0 +12295,44.2,-1.5,0 +12297,44.2,-1.3,0 +12299,44.2,-1,0 +12301,44.2,-0.9,0 +12302,44.2,-0.7,0 +12304,44.2,-0.4,0 +12306,44.2,-0.3,0 +12307,44.2,-0.1,0 +12309,44.2,0.1,0 +12310,44.2,0.4,0 +12312,44.2,0.5,0 +12313,44.2,0.6,0 +12314,44.2,1,0 +12316,44.2,1.2,0 +12317,44.2,1.4,0 +12318,44.2,1.6,0 +12319,44.2,1.7,0 +12320,44.2,2,0 +12322,44.2,2.2,0 +12323,44.2,2.4,0 +12324,44.2,2.6,0 +12325,44.2,2.8,0 +12326,44.2,2.9,0 +12327,44.2,3.1,0 +12328,44.2,3.3,0 +12329,44.2,3.5,0 +12330,44.2,3.7,0 +12331,44.2,3.8,0 +12332,44.2,4,0 +12333,44.2,4.2,0 +12334,0,4.4,22 +12335,33.4,4.4,0 +12336,33.4,4.8,0 +12337,33.4,4.9,0 +12338,33.4,5.1,0 +12339,33.4,5.3,0 +12340,33.4,5.4,0 +12341,33.4,5.6,0 +12342,33.4,5.7,0 +12343,33.4,5.9,0 +12344,33.4,6,0 +12345,33.4,6.2,0 +12346,33.4,6.3,0 +12347,33.4,6.4,0 +12348,33.4,6.5,0 +12349,33.4,6.7,0 +12350,33.4,6.9,0 +12352,33.4,7,0 +12353,33.4,7.1,0 +12355,33.4,7.3,0 +12356,33.4,7.4,0 +12358,33.4,7.5,0 +12360,33.4,7.6,0 +12362,33.4,7.7,0 +12365,33.4,7.8,0 +12374,33.4,7.7,0 +12378,33.4,7.6,0 +12379,33.4,7.5,0 +12382,33.4,7.4,0 +12383,33.4,7.3,0 +12384,33.4,7.2,0 +12386,33.4,7.1,0 +12387,33.4,7,0 +12388,33.4,6.8,0 +12390,33.4,6.7,0 +12391,33.4,6.6,0 +12392,33.4,6.5,0 +12394,33.4,6.3,0 +12395,33.4,6.1,0 +12397,33.4,6,0 +12398,33.4,5.9,0 +12399,33.4,5.7,0 +12401,33.4,5.6,0 +12402,33.4,5.3,0 +12404,33.4,5.2,0 +12405,33.4,5,0 +12407,33.4,4.9,0 +12408,33.4,4.6,0 +12410,33.4,4.5,0 +12411,33.4,4.4,0 +12413,33.4,4.2,0 +12414,33.4,4,0 +12416,33.4,3.8,0 +12417,33.4,3.6,0 +12419,33.4,3.5,0 +12420,33.4,3.3,0 +12422,33.4,3.1,0 +12424,33.4,3,0 +12425,33.4,2.8,0 +12427,33.4,2.6,0 +12428,33.4,2.5,0 +12430,33.4,2.3,0 +12431,33.4,2.1,0 +12433,33.4,2,0 +12435,33.4,1.8,0 +12436,33.4,1.7,0 +12438,33.4,1.5,0 +12440,33.4,1.4,0 +12441,33.4,1.3,0 +12443,33.4,1.1,0 +12445,33.4,1,0 +12446,33.4,0.9,0 +12448,33.4,0.8,0 +12449,33.4,0.7,0 +12451,33.4,0.6,0 +12453,33.4,0.4,0 +12455,33.4,0.3,0 +12456,33.4,0.2,0 +12458,33.4,0.1,0 +12460,33.4,0,0 +12463,33.4,-0.1,0 +12465,33.4,-0.2,0 +12467,33.4,-0.3,0 +12469,33.4,-0.4,0 +12472,33.4,-0.5,0 +12474,33.4,-0.6,0 +12478,33.4,-0.7,0 +12481,33.4,-0.8,0 +12485,33.4,-0.9,0 +12489,33.4,-1,0 +12493,33.4,-1.1,0 +12496,33.4,-1.2,0 +12502,33.4,-1.3,0 +12508,33.4,-1.4,0 +12513,33.4,-1.5,0 +12521,33.4,-1.6,0 +12528,33.4,-1.7,0 +12537,33.4,-1.8,0 +12567,33.4,-1.7,0 +12573,33.4,-1.6,0 +12579,33.4,-1.5,0 +12582,33.4,-1.4,0 +12586,33.4,-1.3,0 +12590,33.4,-1.2,0 +12593,33.4,-1.1,0 +12595,33.4,-1,0 +12599,33.4,-0.9,0 +12601,33.4,-0.8,0 +12604,33.4,-0.7,0 +12606,33.4,-0.6,0 +12610,33.4,-0.5,0 +12613,33.4,-0.4,0 +12615,33.4,-0.3,0 +12618,33.4,-0.2,0 +12622,33.4,-0.1,0 +12625,33.4,0,0 +12628,33.4,0.1,0 +12631,33.4,0.2,0 +12639,33.4,0.3,0 +12650,33.4,0.2,0 +12655,33.4,0.1,0 +12659,33.4,0,0 +12662,33.4,-0.1,0 +12664,33.4,-0.2,0 +12667,33.4,-0.3,0 +12668,0,-0.3,7.8 +12669,34.8,-0.3,0 +12671,34.8,-0.5,0 +12672,34.8,-0.6,0 +12674,34.8,-0.7,0 +12676,34.8,-0.9,0 +12678,34.8,-1,0 +12680,34.8,-1.1,0 +12682,34.8,-1.2,0 +12684,34.8,-1.3,0 +12685,34.8,-1.4,0 +12686,34.8,-1.5,0 +12688,34.8,-1.6,0 +12689,34.8,-1.7,0 +12692,34.8,-1.8,0 +12693,34.8,-1.9,0 +12695,34.8,-2,0 +12696,34.8,-2.1,0 +12698,34.8,-2.2,0 +12699,34.8,-2.3,0 +12701,34.8,-2.4,0 +12703,34.8,-2.5,0 +12706,34.8,-2.6,0 +12708,34.8,-2.7,0 +12712,34.8,-2.8,0 +12716,34.8,-2.9,0 +12729,34.8,-2.8,0 +12733,34.8,-2.7,0 +12735,34.8,-2.6,0 +12738,34.8,-2.5,0 +12740,34.8,-2.4,0 +12742,34.8,-2.3,0 +12744,34.8,-2.2,0 +12745,34.8,-2.1,0 +12747,34.8,-2,0 +12749,34.8,-1.9,0 +12751,34.8,-1.7,0 +12752,34.8,-1.6,0 +12754,34.8,-1.5,0 +12756,34.8,-1.3,0 +12757,34.8,-1.2,0 +12759,34.8,-1,0 +12761,34.8,-0.9,0 +12762,34.8,-0.8,0 +12764,34.8,-0.6,0 +12765,34.8,-0.5,0 +12767,34.8,-0.4,0 +12768,34.8,-0.2,0 +12770,34.8,-0.1,0 +12771,34.8,0.1,0 +12773,34.8,0.2,0 +12774,34.8,0.3,0 +12775,34.8,0.4,0 +12777,34.8,0.6,0 +12778,34.8,0.7,0 +12780,34.8,0.8,0 +12781,34.8,0.9,0 +12782,34.8,1,0 +12784,34.8,1.1,0 +12785,34.8,1.2,0 +12786,34.8,1.3,0 +12787,34.8,1.4,0 +12789,34.8,1.5,0 +12791,34.8,1.6,0 +12792,34.8,1.7,0 +12793,34.8,1.8,0 +12796,34.8,1.9,0 +12798,34.8,2,0 +12800,34.8,2.1,0 +12803,34.8,2.2,0 +12810,34.8,2.3,0 +12814,34.8,2.2,0 +12820,34.8,2,0 +12824,0,2,0.8 +12825,48.3,2,0 +12827,48.3,1.9,0 +12829,48.3,1.8,0 +12832,48.3,1.7,0 +12834,48.3,1.6,0 +12837,48.3,1.5,0 +12839,48.3,1.4,0 +12842,48.3,1.3,0 +12844,48.3,1.2,0 +12847,48.3,1.1,0 +12850,48.3,1,0 +12853,48.3,0.9,0 +12857,48.3,0.8,0 +12876,48.3,0.9,0 +12882,48.3,1,0 +12884,48.3,1.1,0 +12888,48.3,1.2,0 +12890,48.3,1.3,0 +12895,48.3,1.4,0 +12897,48.3,1.5,0 +12900,48.3,1.6,0 +12902,48.3,1.7,0 +12907,48.3,1.8,0 +12909,48.3,1.9,0 +12911,48.3,2,0 +12914,48.3,2.1,0 +12919,48.3,2.2,0 +12921,48.3,2.3,0 +12926,48.3,2.4,0 +12932,48.3,2.5,0 +12937,48.3,2.6,0 +12948,48.3,2.7,0 +12974,48.3,2.6,0 +12987,48.3,2.5,0 +12996,48.3,2.4,0 +13004,48.3,2.3,0 +13008,48.3,2.2,0 +13015,48.3,2.1,0 +13020,48.3,2,0 +13024,48.3,1.9,0 +13029,48.3,1.8,0 +13033,48.3,1.7,0 +13037,48.3,1.6,0 +13041,48.3,1.5,0 +13043,48.3,1.4,0 +13047,48.3,1.3,0 +13050,48.3,1.2,0 +13054,48.3,1.1,0 +13057,48.3,1,0 +13059,48.3,0.9,0 +13062,48.3,0.8,0 +13066,48.3,0.7,0 +13069,48.3,0.6,0 +13072,48.3,0.5,0 +13075,48.3,0.4,0 +13079,48.3,0.3,0 +13083,48.3,0.2,0 +13088,48.3,0,0 +13091,0,0,15 +13092,41.7,0,0 +13093,41.7,0,0 +13100,41.7,-0.1,0 +13114,41.7,-0.2,0 +13148,41.7,-0.3,0 +13161,41.7,-0.4,0 +13171,41.7,-0.5,0 +13183,41.7,-0.6,0 +13222,41.7,-0.5,0 +13233,41.7,-0.4,0 +13242,41.7,-0.3,0 +13253,41.7,-0.2,0 +13262,41.7,-0.1,0 +13270,41.7,0,0 +13281,41.7,0.1,0 +13294,41.7,0.2,0 +13308,41.7,0.3,0 +13321,21.4,0.3,0 +13322,45.7,0.3,0 +13325,45.7,0.4,0 +13343,45.7,0.5,0 +13379,45.7,0.6,0 +13392,45.7,0.5,0 +13432,45.7,0.4,0 +13457,45.7,0.3,0 +13503,45.7,0.4,0 +13520,45.7,0.5,0 +13536,45.7,0.6,0 +13574,45.7,0.5,0 +13585,45.7,0.4,0 +13593,45.7,0.3,0 +13605,0,0.3,17 +13606,62.7,0.3,0 +13607,62.7,0.2,0 +13613,62.7,0.1,0 +13631,62.7,0,0 +13645,62.7,0.1,0 +13678,62.7,0.2,0 +13707,62.7,0.3,0 +13742,62.7,0.4,0 +13814,62.7,0.5,0 +13855,62.7,0.4,0 +14018,62.7,0.5,0 +14040,62.7,0.6,0 +14051,62.7,0.7,0 +14061,62.7,0.8,0 +14066,62.7,0.9,0 +14071,62.7,1,0 +14076,62.7,1.1,0 +14080,62.7,1.2,0 +14082,62.7,1.3,0 +14087,62.7,1.4,0 +14089,62.7,1.5,0 +14091,62.7,1.6,0 +14095,62.7,1.7,0 +14097,62.7,1.8,0 +14099,62.7,1.9,0 +14101,62.7,2,0 +14103,62.7,2.1,0 +14105,62.7,2.2,0 +14108,62.7,2.3,0 +14110,62.7,2.4,0 +14111,62.7,2.5,0 +14113,62.7,2.6,0 +14115,62.7,2.7,0 +14117,62.7,2.8,0 +14119,62.7,2.9,0 +14120,62.7,3,0 +14123,62.7,3.1,0 +14124,62.7,3.2,0 +14127,62.7,3.3,0 +14128,62.7,3.4,0 +14130,62.7,3.5,0 +14132,62.7,3.6,0 +14135,62.7,3.7,0 +14138,62.7,3.8,0 +14142,62.7,3.9,0 +14146,0,3.9,12.2 +14147,33.4,3.9,0 +14151,33.4,3.9,0 +14159,33.4,3.8,0 +14162,33.4,3.7,0 +14165,33.4,3.6,0 +14166,33.4,3.5,0 +14169,33.4,3.4,0 +14170,33.4,3.3,0 +14172,33.4,3.2,0 +14173,33.4,3.1,0 +14175,33.4,3,0 +14176,33.4,2.9,0 +14178,33.4,2.7,0 +14180,33.4,2.6,0 +14182,33.4,2.5,0 +14183,33.4,2.3,0 +14185,33.4,2.1,0 +14187,33.4,2,0 +14189,33.4,1.8,0 +14190,33.4,1.6,0 +14192,33.4,1.4,0 +14194,33.4,1.2,0 +14196,33.4,1,0 +14198,33.4,0.8,0 +14200,33.4,0.6,0 +14202,33.4,0.4,0 +14203,33.4,0.2,0 +14205,33.4,0,0 +14207,33.4,-0.2,0 +14209,33.4,-0.4,0 +14211,33.4,-0.6,0 +14212,33.4,-0.8,0 +14214,33.4,-1,0 +14216,33.4,-1.2,0 +14218,33.4,-1.4,0 +14219,33.4,-1.6,0 +14221,33.4,-1.8,0 +14223,33.4,-1.9,0 +14224,33.4,-2.1,0 +14226,33.4,-2.3,0 +14228,33.4,-2.4,0 +14229,33.4,-2.6,0 +14231,33.4,-2.7,0 +14232,33.4,-2.8,0 +14233,33.4,-3,0 +14235,33.4,-3.1,0 +14236,33.4,-3.2,0 +14237,33.4,-3.3,0 +14238,33.4,-3.4,0 +14239,33.4,-3.5,0 +14242,33.4,-3.6,0 +14243,33.4,-3.7,0 +14244,33.4,-3.8,0 +14246,33.4,-3.9,0 +14248,33.4,-4,0 +14250,33.4,-4.1,0 +14253,33.4,-4.2,0 +14254,0,-4.2,18.4 +14255,28.2,-4.2,0 +14257,28.2,-4.3,0 +14265,28.2,-4.2,0 +14269,28.2,-4.1,0 +14271,28.2,-4,0 +14274,28.2,-3.9,0 +14277,28.2,-3.8,0 +14278,28.2,-3.7,0 +14279,28.2,-3.6,0 +14281,28.2,-3.5,0 +14282,28.2,-3.4,0 +14284,28.2,-3.3,0 +14285,28.2,-3.2,0 +14287,28.2,-3,0 +14289,28.2,-2.9,0 +14290,28.2,-2.8,0 +14292,28.2,-2.7,0 +14293,28.2,-2.5,0 +14295,28.2,-2.4,0 +14296,28.2,-2.3,0 +14298,28.2,-2.1,0 +14299,28.2,-2,0 +14301,28.2,-1.9,0 +14302,28.2,-1.7,0 +14304,28.2,-1.6,0 +14305,28.2,-1.5,0 +14307,28.2,-1.4,0 +14308,28.2,-1.3,0 +14310,28.2,-1.2,0 +14311,28.2,-1.1,0 +14312,28.2,-1,0 +14314,28.2,-0.9,0 +14315,28.2,-0.8,0 +14317,28.2,-0.7,0 +14318,28.2,-0.6,0 +14319,28.2,-0.5,0 +14320,28.2,-0.4,0 +14323,28.2,-0.3,0 +14324,28.2,-0.2,0 +14327,28.2,-0.1,0 +14328,28.2,0,0 +14330,28.2,0.1,0 +14333,28.2,0.2,0 +14336,28.2,0.3,0 +14338,28.2,0.4,0 +14341,28.2,0.5,0 +14345,28.2,0.6,0 +14348,28.2,0.7,0 +14349,0,0.7,11.6 +14350,44,0.7,0 +14353,44,0.8,0 +14358,44,0.9,0 +14363,44,1,0 +14368,44,1.1,0 +14374,44,1.2,0 +14378,44,1.3,0 +14384,44,1.4,0 +14390,44,1.5,0 +14395,44,1.6,0 +14403,44,1.7,0 +14412,44,1.8,0 +14444,44,1.7,0 +14456,44,1.6,0 +14464,44,1.5,0 +14471,44,1.4,0 +14478,44,1.3,0 +14485,44,1.2,0 +14492,44,1.1,0 +14498,44,1,0 +14505,44,0.9,0 +14509,44,0.8,0 +14517,44,0.7,0 +14522,44,0.6,0 +14530,44,0.5,0 +14537,44,0.4,0 +14545,44,0.3,0 +14553,44,0.2,0 +14562,44,0.1,0 +14570,44,0,0 +14578,0,0,20.6 +14579,49.6,0,0 +14580,49.6,-0.1,0 +14584,49.6,-0.2,0 +14590,49.6,-0.3,0 +14596,49.6,-0.4,0 +14602,49.6,-0.5,0 +14608,49.6,-0.6,0 +14612,49.6,-0.7,0 +14618,49.6,-0.8,0 +14623,49.6,-0.9,0 +14627,49.6,-1,0 +14633,49.6,-1.1,0 +14639,49.6,-1.2,0 +14646,49.6,-1.3,0 +14651,49.6,-1.4,0 +14660,49.6,-1.5,0 +14667,49.6,-1.6,0 +14678,49.6,-1.7,0 +14691,49.6,-1.8,0 +14718,49.6,-1.9,0 +14737,49.6,-1.8,0 +14763,49.6,-1.7,0 +14776,49.6,-1.6,0 +14785,49.6,-1.5,0 +14792,49.6,-1.4,0 +14797,49.6,-1.3,0 +14803,49.6,-1.2,0 +14807,49.6,-1.1,0 +14812,49.6,-1,0 +14816,49.6,-0.9,0 +14820,49.6,-0.8,0 +14823,49.6,-0.7,0 +14827,49.6,-0.6,0 +14831,49.6,-0.5,0 +14835,0,-0.5,10.8 +14836,45.5,-0.5,0 +14839,45.5,-0.3,0 +14844,45.5,-0.2,0 +14851,45.5,-0.1,0 +14861,45.5,0,0 +14890,45.5,-0.1,0 +14915,45.5,-0.2,0 +14960,45.5,-0.1,0 +14993,45.5,0,0 +15013,45.5,0.1,0 +15026,45.5,0.2,0 +15038,45.5,0.3,0 +15046,45.5,0.4,0 +15056,45.5,0.5,0 +15063,45.5,0.6,0 +15068,45.5,0.7,0 +15075,45.5,0.8,0 +15079,45.5,0.9,0 +15084,45.5,1,0 +15088,45.5,1.1,0 +15092,45.5,1.2,0 +15096,45.5,1.3,0 +15100,45.5,1.4,0 +15106,45.5,1.5,0 +15109,45.5,1.6,0 +15115,45.5,1.7,0 +15121,45.5,1.8,0 +15140,0,1.7,9 +15141,55.2,1.7,0 +15142,55.2,1.7,0 +15147,55.2,1.6,0 +15151,55.2,1.5,0 +15154,55.2,1.4,0 +15158,55.2,1.3,0 +15160,55.2,1.2,0 +15163,55.2,1.1,0 +15166,55.2,1,0 +15169,55.2,0.9,0 +15170,55.2,0.8,0 +15174,55.2,0.7,0 +15175,55.2,0.6,0 +15179,55.2,0.5,0 +15181,55.2,0.4,0 +15184,55.2,0.3,0 +15186,55.2,0.2,0 +15190,55.2,0.1,0 +15194,55.2,0,0 +15198,55.2,-0.1,0 +15202,55.2,-0.2,0 +15209,55.2,-0.3,0 +15218,55.2,-0.4,0 +15247,55.2,-0.3,0 +15269,55.2,-0.2,0 +15291,55.2,-0.1,0 +15320,55.2,0,0 +15397,55.2,-0.1,0 +15428,55.2,-0.2,0 +15452,55.2,-0.3,0 +15479,55.2,-0.4,0 +15544,46.8,-0.4,0 +15552,46.8,-0.3,0 +15569,46.8,-0.2,0 +15580,46.8,-0.1,0 +15590,46.8,0,0 +15602,46.8,0.1,0 +15614,46.8,0.2,0 +15624,46.8,0.4,0 +15628,0,0.4,11 +15629,53.4,0.4,0 +15635,53.4,0.4,0 +15646,53.4,0.5,0 +15655,53.4,0.6,0 +15665,53.4,0.7,0 +15678,53.4,0.8,0 +15710,53.4,0.7,0 +15722,53.4,0.6,0 +15732,53.4,0.5,0 +15740,53.4,0.4,0 +15748,53.4,0.3,0 +15756,53.4,0.2,0 +15765,53.4,0.1,0 +15773,53.4,0,0 +15782,53.4,-0.1,0 +15797,53.4,-0.2,0 +15814,53.4,-0.3,0 +15913,53.4,-0.2,0 +15934,53.4,-0.1,0 +15946,60.8,-0.1,0 +15949,60.8,0,0 +15968,60.8,0.1,0 +15988,60.8,0.2,0 +16021,60.8,0.3,0 +16096,60.8,0.4,0 +16119,60.8,0.5,0 +16135,60.8,0.6,0 +16147,60.8,0.7,0 +16157,60.8,0.8,0 +16165,60.8,0.9,0 +16173,60.8,1,0 +16181,60.8,1.1,0 +16188,60.8,1.2,0 +16197,60.8,1.3,0 +16208,60.8,1.4,0 +16215,0,1.4,9 +16216,48.6,1.4,0 +16221,48.6,1.3,0 +16231,48.6,1.2,0 +16237,48.6,1.1,0 +16241,48.6,1,0 +16246,48.6,0.9,0 +16249,48.6,0.8,0 +16252,48.6,0.7,0 +16256,48.6,0.6,0 +16259,48.6,0.5,0 +16263,48.6,0.4,0 +16265,48.6,0.3,0 +16269,48.6,0.2,0 +16271,48.6,0.1,0 +16275,48.6,0,0 +16277,48.6,-0.1,0 +16282,48.6,-0.2,0 +16284,48.6,-0.3,0 +16288,48.6,-0.4,0 +16293,48.6,-0.5,0 +16295,48.6,-0.6,0 +16300,48.6,-0.7,0 +16305,48.6,-0.8,0 +16309,48.6,-0.9,0 +16314,48.6,-1,0 +16320,48.6,-1.1,0 +16327,48.6,-1.2,0 +16333,48.6,-1.3,0 +16344,48.6,-1.4,0 +16357,48.6,-1.5,0 +16391,48.6,-1.6,0 +16399,48.6,-1.5,0 +16451,48.6,-1.4,0 +16473,48.6,-1.3,0 +16486,48.6,-1.2,0 +16498,48.6,-1.1,0 +16509,48.6,-1,0 +16517,48.6,-0.9,0 +16526,48.6,-0.8,0 +16534,48.6,-0.7,0 +16542,48.6,-0.6,0 +16547,48.6,-0.5,0 +16552,48.6,-0.4,0 +16557,48.6,-0.3,0 +16562,48.6,-0.2,0 +16566,48.6,-0.1,0 +16570,48.6,0,0 +16574,21.6,0.1,0 +16577,21.6,0.2,0 +16581,21.6,0.3,0 +16583,21.6,0.4,0 +16586,21.6,0.5,0 +16588,38.3,0.5,0 +16589,38.3,0.6,0 +16592,38.3,0.7,0 +16595,38.3,0.8,0 +16598,38.3,0.9,0 +16600,38.3,1,0 +16602,38.3,1.1,0 +16605,38.3,1.2,0 +16608,38.3,1.3,0 +16611,38.3,1.4,0 +16613,38.3,1.5,0 +16616,38.3,1.6,0 +16618,38.3,1.7,0 +16621,38.3,1.8,0 +16623,38.3,1.9,0 +16627,38.3,2,0 +16629,38.3,2.1,0 +16633,38.3,2.2,0 +16637,38.3,2.3,0 +16639,38.3,2.4,0 +16643,38.3,2.5,0 +16647,38.3,2.6,0 +16653,38.3,2.7,0 +16659,38.3,2.8,0 +16668,38.3,2.9,0 +16689,38.3,2.8,0 +16699,38.3,2.7,0 +16705,38.3,2.6,0 +16711,38.3,2.5,0 +16714,38.3,2.4,0 +16716,33.4,2.4,0 +16718,33.4,2.3,0 +16722,33.4,2.2,0 +16726,33.4,2.1,0 +16729,33.4,2,0 +16733,33.4,1.9,0 +16737,35.6,1.8,0 +16740,35.6,1.7,0 +16742,35.6,1.6,0 +16746,35.6,1.5,0 +16748,35.6,1.4,0 +16752,35.6,1.3,0 +16754,35.6,1.2,0 +16758,35.6,1.1,0 +16760,35.6,1,0 +16764,35.6,0.9,0 +16766,35.6,0.8,0 +16770,35.6,0.7,0 +16772,35.6,0.6,0 +16776,35.6,0.5,0 +16780,35.6,0.4,0 +16784,35.6,0.3,0 +16786,35.6,0.2,0 +16789,35.6,0.1,0 +16793,35.6,0,0 +16799,35.6,-0.1,0 +16803,35.6,-0.2,0 +16808,35.6,-0.3,0 +16816,35.6,-0.4,0 +16825,35.6,-0.5,0 +16864,35.6,-0.4,0 +16880,35.6,-0.3,0 +16896,35.6,-0.2,0 +16912,0,-0.2,40.6 +16913,43,-0.2,0 +16926,43,-0.3,0 +16941,43,-0.4,0 +16952,43,-0.5,0 +16961,43,-0.6,0 +16970,43,-0.7,0 +16977,43,-0.8,0 +16985,43,-0.9,0 +16993,43,-1,0 +17002,43,-1.1,0 +17010,43,-1.2,0 +17022,43,-1.3,0 +17043,43,-1.4,0 +17071,43,-1.3,0 +17092,43,-1.2,0 +17104,43,-1.1,0 +17111,43,-1,0 +17116,43,-0.9,0 +17121,43,-0.8,0 +17126,43,-0.7,0 +17130,43,-0.6,0 +17135,43,-0.5,0 +17138,43,-0.4,0 +17141,43,-0.3,0 +17145,43,-0.2,0 +17148,43,-0.1,0 +17149,0,-0.1,8.8 +17150,32.4,-0.1,0 +17151,32.4,0,0 +17155,32.4,0.1,0 +17159,32.4,0.2,0 +17162,32.4,0.3,0 +17166,32.4,0.4,0 +17170,32.4,0.5,0 +17175,32.4,0.6,0 +17181,32.4,0.7,0 +17205,32.4,0.6,0 +17211,32.4,0.5,0 +17214,32.4,0.4,0 +17217,32.4,0.3,0 +17219,32.4,0.2,0 +17222,32.4,0.1,0 +17225,32.4,0,0 +17227,32.4,-0.1,0 +17228,32.4,-0.2,0 +17231,32.4,-0.3,0 +17232,32.4,-0.4,0 +17235,32.4,-0.5,0 +17236,32.4,-0.6,0 +17239,32.4,-0.7,0 +17241,32.4,-0.8,0 +17242,32.4,-0.9,0 +17245,32.4,-1,0 +17247,32.4,-1.1,0 +17249,32.4,-1.2,0 +17251,32.4,-1.3,0 +17253,32.4,-1.4,0 +17255,18.4,-1.5,0 +17258,18.4,-1.6,0 +17261,18.4,-1.7,0 +17265,18.4,-1.8,0 +17283,18.4,-1.7,0 +17288,18.4,-1.6,0 +17290,0,-1.6,10.8 +17291,31.7,-1.6,0 +17294,31.7,-1.4,0 +17298,31.7,-1.3,0 +17300,31.7,-1.2,0 +17303,31.7,-1.1,0 +17306,31.7,-1,0 +17308,31.7,-0.9,0 +17312,31.7,-0.8,0 +17315,31.7,-0.7,0 +17319,31.7,-0.6,0 +17321,31.7,-0.5,0 +17326,31.7,-0.4,0 +17332,31.7,-0.3,0 +17365,39.7,-0.3,0 +17372,39.7,-0.4,0 +17387,39.7,-0.5,0 +17413,39.7,-0.6,0 +17448,39.7,-0.5,0 +17493,39.7,-0.4,0 +17513,39.7,-0.3,0 +17526,39.7,-0.2,0 +17537,39.7,-0.1,0 +17547,39.7,0,0 +17556,39.7,0.1,0 +17564,39.7,0.2,0 +17572,36.5,0.3,0 +17583,36.5,0.4,0 +17595,36.5,0.5,0 +17611,36.5,0.6,0 +17672,36.5,0.5,0 +17690,36.5,0.4,0 +17702,36.5,0.3,0 +17712,36.5,0.2,0 +17720,36.5,0.1,0 +17725,36.5,0,0 +17733,36.5,-0.1,0 +17739,36.5,-0.2,0 +17742,36.5,-0.3,0 +17748,36.5,-0.4,0 +17752,36.5,-0.5,0 +17756,36.5,-0.6,0 +17762,36.5,-0.7,0 +17766,36.5,-0.8,0 +17769,36.5,-0.9,0 +17773,36.5,-1,0 +17777,36.5,-1.1,0 +17782,36.5,-1.2,0 +17786,36.5,-1.3,0 +17792,30.9,-1.4,0 +17797,30.9,-1.5,0 +17804,30.9,-1.6,0 +17825,30.9,-1.5,0 +17831,30.9,-1.4,0 +17836,30.9,-1.3,0 +17840,30.9,-1.2,0 +17843,30.9,-1.1,0 +17846,30.9,-1,0 +17849,30.9,-0.9,0 +17852,30.9,-0.8,0 +17854,30.9,-0.7,0 +17856,30.9,-0.6,0 +17859,30.9,-0.5,0 +17861,30.9,-0.4,0 +17863,30.9,-0.3,0 +17866,30.9,-0.2,0 +17868,30.9,-0.1,0 +17870,30.9,0,0 +17873,30.9,0.1,0 +17876,30.9,0.2,0 +17878,30.9,0.3,0 +17881,30.9,0.5,0 +17883,0,0.5,194.2 +17884,36.2,0.5,0 +17889,36.2,0.8,0 +17917,36.2,0.7,0 +17925,36.2,0.6,0 +17934,36.2,0.5,0 +17942,36.2,0.4,0 +17952,36.2,0.3,0 +17969,36.2,0.2,0 +18020,33.4,0.2,0 +18022,33.4,0.1,0 +18034,37.7,0.1,0 +18085,37.7,0,0 +18157,33.7,-0.1,0 +18177,33.7,-0.2,0 +18187,33.7,-0.3,0 +18193,33.7,-0.4,0 +18198,33.7,-0.5,0 +18203,33.7,-0.6,0 +18206,33.7,-0.7,0 +18210,33.7,-0.8,0 +18212,33.7,-0.9,0 +18215,33.7,-1,0 +18218,33.7,-1.1,0 +18221,33.7,-1.2,0 +18223,33.7,-1.3,0 +18226,33.7,-1.4,0 +18227,0,-1.4,10.4 +18228,22.8,-1.4,0 +18229,22.8,-1.5,0 +18231,22.8,-1.6,0 +18233,22.8,-1.7,0 +18235,22.8,-1.8,0 +18237,22.8,-1.9,0 +18239,22.8,-2,0 +18242,22.8,-2.1,0 +18244,22.8,-2.2,0 +18246,22.8,-2.3,0 +18248,22.8,-2.4,0 +18252,22.8,-2.5,0 +18254,22.8,-2.6,0 +18257,22.8,-2.7,0 +18260,22.8,-2.8,0 +18264,22.8,-2.9,0 +18268,22.8,-3.1,0 +18280,22.8,-3,0 +18290,22.8,-2.9,0 +18295,22.8,-2.8,0 +18298,22.8,-2.7,0 +18301,22.8,-2.6,0 +18303,22.8,-2.5,0 +18306,22.8,-2.4,0 +18309,22.8,-2.3,0 +18310,22.8,-2.2,0 +18313,22.8,-2.1,0 +18315,22.8,-2,0 +18317,22.8,-1.8,0 +18318,0,-1.8,57.2 +18319,18,-1.8,0 +18321,18,-1.7,0 +18323,18,-1.6,0 +18325,18,-1.5,0 +18327,18,-1.4,0 +18329,18,-1.3,0 +18331,18,-1.2,0 +18333,18,-1.1,0 +18335,18,-1,0 +18337,18,-0.9,0 +18339,18,-0.8,0 +18342,18,-0.7,0 +18344,18,-0.6,0 +18347,18,-0.5,0 +18350,18,-0.4,0 +18353,18,-0.3,0 +18355,36.8,-0.3,0 +18357,36.8,-0.2,0 +18361,36.8,-0.1,0 +18366,36.8,0,0 +18375,36.8,0.1,0 +18394,36.8,0,0 +18405,36.8,-0.1,0 +18411,36.8,-0.2,0 +18417,36.8,-0.3,0 +18422,36.8,-0.4,0 +18426,36.8,-0.5,0 +18429,36.8,-0.6,0 +18433,36.8,-0.7,0 +18437,36.8,-0.8,0 +18439,36.8,-0.9,0 +18443,36.8,-1,0 +18445,36.8,-1.1,0 +18449,36.8,-1.2,0 +18451,36.8,-1.3,0 +18452,36.8,-1.4,0 +18456,36.8,-1.5,0 +18458,36.8,-1.6,0 +18460,36.8,-1.7,0 +18462,36.8,-1.8,0 +18464,36.8,-1.9,0 +18466,36.8,-2,0 +18468,36.8,-2.2,0 +18471,36.8,-2.3,0 +18473,36.8,-2.4,0 +18475,36.8,-2.5,0 +18477,36.8,-2.6,0 +18479,36.8,-2.7,0 +18481,36.8,-2.9,0 +18483,36.8,-3,0 +18485,36.8,-3.1,0 +18487,36.8,-3.2,0 +18489,36.8,-3.4,0 +18491,36.8,-3.5,0 +18493,36.8,-3.6,0 +18495,36.8,-3.7,0 +18497,36.8,-3.8,0 +18498,36.8,-3.9,0 +18500,36.8,-4.1,0 +18502,36.8,-4.2,0 +18504,36.8,-4.3,0 +18508,36.8,-4.4,0 +18510,36.8,-4.5,0 +18511,36.8,-4.6,0 +18515,36.8,-4.7,0 +18518,36.8,-4.8,0 +18533,36.8,-4.7,0 +18536,36.8,-4.6,0 +18538,0,-4.6,26.8 +18539,41,-4.6,0 +18541,41,-4.4,0 +18543,41,-4.3,0 +18545,41,-4.2,0 +18546,41,-4.1,0 +18548,41,-4,0 +18549,41,-3.9,0 +18551,41,-3.8,0 +18552,41,-3.7,0 +18553,41,-3.6,0 +18554,41,-3.5,0 +18555,41,-3.4,0 +18557,41,-3.3,0 +18558,41,-3.2,0 +18559,41,-3.1,0 +18560,41,-3,0 +18562,41,-2.9,0 +18563,41,-2.8,0 +18564,41,-2.7,0 +18566,41,-2.6,0 +18567,41,-2.4,0 +18569,41,-2.3,0 +18570,41,-2.2,0 +18572,41,-2.1,0 +18573,41,-1.9,0 +18575,41,-1.8,0 +18576,41,-1.7,0 +18578,41,-1.6,0 +18579,41,-1.5,0 +18581,41,-1.3,0 +18583,41,-1.2,0 +18584,41,-1.1,0 +18586,41,-1,0 +18588,41,-0.9,0 +18590,41,-0.8,0 +18591,41,-0.7,0 +18593,41,-0.6,0 +18597,41,-0.5,0 +18599,41,-0.4,0 +18603,41,-0.3,0 +18606,41,-0.2,0 +18632,41,-0.3,0 +18636,41,-0.4,0 +18643,41,-0.5,0 +18647,41,-0.6,0 +18651,41,-0.7,0 +18653,41,-0.8,0 +18658,41,-0.9,0 +18662,41,-1,0 +18664,41,-1.1,0 +18669,41,-1.2,0 +18671,41,-1.3,0 +18676,41,-1.4,0 +18678,41,-1.5,0 +18683,41,-1.6,0 +18687,41,-1.7,0 +18689,41,-1.8,0 +18694,41,-1.9,0 +18698,41,-2,0 +18703,41,-2.1,0 +18710,41,-2.2,0 +18738,41,-2.1,0 +18744,41,-2,0 +18749,41,-1.9,0 +18753,41,-1.8,0 +18755,41,-1.7,0 +18759,41,-1.6,0 +18761,41,-1.5,0 +18763,41,-1.4,0 +18767,41,-1.3,0 +18769,41,-1.2,0 +18771,41,-1.1,0 +18775,41,-1,0 +18777,41,-0.9,0 +18778,41,-0.8,0 +18782,41,-0.7,0 +18784,41,-0.6,0 +18785,41,-0.5,0 +18789,41,-0.4,0 +18792,41,-0.3,0 +18795,41,-0.2,0 +18798,41,-0.1,0 +18800,41,0,0 +18804,41,0.1,0 +18808,41,0.2,0 +18813,41,0.3,0 +18823,41,0.4,0 +18824,0,0.4,34.8 +18825,25.6,0.4,0 +18828,25.6,0.3,0 +18841,25.6,0.2,0 +18848,25.6,0.1,0 +18853,25.6,0,0 +18857,25.6,-0.1,0 +18861,25.6,-0.2,0 +18865,25.6,-0.3,0 +18868,25.6,-0.4,0 +18872,25.6,-0.5,0 +18875,25.6,-0.6,0 +18877,25.6,-0.7,0 +18880,25.6,-0.8,0 +18883,25.6,-0.9,0 +18886,25.6,-1,0 +18888,25.6,-1.1,0 +18891,25.6,-1.2,0 +18894,25.6,-1.3,0 +18897,25.6,-1.4,0 +18899,25.6,-1.5,0 +18903,0,-1.6,2 +18904,38.9,-1.6,0 +18906,38.9,-1.7,0 +18908,38.9,-1.8,0 +18912,38.9,-1.9,0 +18915,38.9,-2,0 +18919,38.9,-2.1,0 +18925,38.9,-2.2,0 +18935,38.9,-2.3,0 +18938,38.9,-2.2,0 +18950,38.9,-2.1,0 +18955,38.9,-2,0 +18960,38.9,-1.9,0 +18964,38.9,-1.8,0 +18966,38.9,-1.7,0 +18970,38.9,-1.6,0 +18972,38.9,-1.5,0 +18976,38.9,-1.4,0 +18978,38.9,-1.3,0 +18982,38.9,-1.2,0 +18984,38.9,-1.1,0 +18986,38.9,-1,0 +18989,38.9,-0.9,0 +18993,38.9,-0.8,0 +18995,38.9,-0.7,0 +18997,38.9,-0.6,0 +19002,38.9,-0.5,0 +19004,38.9,-0.4,0 +19008,38.9,-0.3,0 +19012,38.9,-0.2,0 +19017,38.9,-0.1,0 +19023,38.9,0,0 +19050,38.9,-0.1,0 +19058,38.9,-0.2,0 +19062,38.9,-0.3,0 +19067,38.9,-0.4,0 +19071,38.9,-0.5,0 +19076,38.9,-0.6,0 +19080,38.9,-0.7,0 +19086,38.9,-0.8,0 +19092,38.9,-0.9,0 +19101,38.9,-1,0 +19111,38.9,-0.9,0 +19115,0,-0.9,3.4 +19116,28.1,-0.9,0 +19118,28.1,-0.8,0 +19124,28.1,-0.7,0 +19128,28.1,-0.6,0 +19132,28.1,-0.5,0 +19135,28.1,-0.4,0 +19138,28.1,-0.3,0 +19142,28.1,-0.2,0 +19145,28.1,-0.1,0 +19149,28.1,0,0 +19152,28.1,0.1,0 +19156,28.1,0.2,0 +19161,28.1,0.3,0 +19169,28.1,0.4,0 +19179,28.1,0.3,0 +19189,28.1,0.2,0 +19194,28.1,0.1,0 +19201,28.1,0,0 +19207,28.1,-0.1,0 +19208,0,0,21.2 +19209,37.6,0,0 +19215,37.6,-0.2,0 +19226,37.6,-0.1,0 +19235,37.6,0,0 +19239,37.6,0.1,0 +19243,37.6,0.2,0 +19246,37.6,0.3,0 +19250,37.6,0.4,0 +19253,37.6,0.5,0 +19256,37.6,0.6,0 +19259,37.6,0.7,0 +19263,37.6,0.8,0 +19265,37.6,0.9,0 +19268,37.6,1,0 +19272,37.6,1.1,0 +19276,37.6,1.2,0 +19278,37.6,1.3,0 +19281,37.6,1.4,0 +19285,37.6,1.5,0 +19289,37.6,1.6,0 +19293,37.6,1.7,0 +19300,37.6,1.8,0 +19304,37.6,1.9,0 +19308,37.6,2,0 +19314,37.6,2.1,0 +19318,37.6,2.2,0 +19322,37.6,2.3,0 +19324,37.6,2.4,0 +19328,37.6,2.5,0 +19330,37.6,2.6,0 +19334,37.6,2.7,0 +19336,37.6,2.8,0 +19338,37.6,2.9,0 +19340,37.6,3,0 +19342,37.6,3.1,0 +19343,37.6,3.2,0 +19345,37.6,3.3,0 +19347,37.6,3.4,0 +19349,37.6,3.5,0 +19350,37.6,3.6,0 +19352,37.6,3.7,0 +19353,37.6,3.8,0 +19355,37.6,3.9,0 +19356,37.6,4,0 +19357,37.6,4.1,0 +19359,37.6,4.2,0 +19360,37.6,4.3,0 +19362,37.6,4.4,0 +19363,37.6,4.5,0 +19364,37.6,4.6,0 +19365,37.6,4.7,0 +19366,37.6,4.8,0 +19368,37.6,4.9,0 +19369,37.6,5,0 +19370,37.6,5.2,0 +19372,37.6,5.3,0 +19374,37.6,5.4,0 +19375,37.6,5.5,0 +19377,37.6,5.6,0 +19378,37.6,5.7,0 +19379,37.6,5.8,0 +19381,0,5.9,51 +19382,38.3,5.9,0 +19383,38.3,6.1,0 +19385,38.3,6.2,0 +19387,38.3,6.3,0 +19389,38.3,6.4,0 +19390,38.3,6.5,0 +19393,38.3,6.6,0 +19396,38.3,6.7,0 +19400,38.3,6.8,0 +19412,38.3,6.7,0 +19417,38.3,6.6,0 +19420,38.3,6.5,0 +19422,38.3,6.4,0 +19425,38.3,6.3,0 +19427,38.3,6.2,0 +19428,38.3,6.1,0 +19431,38.3,6,0 +19433,38.3,5.9,0 +19434,38.3,5.8,0 +19436,38.3,5.7,0 +19437,38.3,5.6,0 +19439,38.3,5.5,0 +19441,38.3,5.4,0 +19444,38.3,5.3,0 +19446,38.3,5.2,0 +19447,38.3,5.1,0 +19449,38.3,5,0 +19451,38.3,4.9,0 +19453,38.3,4.8,0 +19454,38.3,4.7,0 +19456,38.3,4.6,0 +19458,38.3,4.5,0 +19460,38.3,4.4,0 +19462,38.3,4.3,0 +19463,38.3,4.2,0 +19465,38.3,4.1,0 +19469,38.3,4,0 +19471,38.3,3.9,0 +19473,38.3,3.8,0 +19475,38.3,3.7,0 +19478,38.3,3.6,0 +19480,38.3,3.5,0 +19482,38.3,3.4,0 +19486,38.3,3.3,0 +19488,38.3,3.2,0 +19490,38.3,3.1,0 +19494,38.3,3,0 +19495,38.3,2.9,0 +19497,38.3,2.8,0 +19501,38.3,2.7,0 +19503,38.3,2.6,0 +19505,38.3,2.5,0 +19509,38.3,2.4,0 +19511,38.3,2.3,0 +19514,38.3,2.2,0 +19516,38.3,2.1,0 +19518,38.3,2,0 +19522,38.3,1.9,0 +19524,38.3,1.8,0 +19526,38.3,1.7,0 +19530,38.3,1.6,0 +19532,38.3,1.5,0 +19534,38.3,1.4,0 +19538,38.3,1.3,0 +19542,38.3,1.2,0 +19544,38.3,1.1,0 +19549,38.3,1,0 +19553,38.3,0.9,0 +19557,38.3,0.8,0 +19561,38.3,0.7,0 +19567,38.3,0.6,0 +19575,38.3,0.5,0 +19614,38.3,0.6,0 +19631,38.3,0.7,0 +19661,38.3,0.6,0 +19669,38.3,0.5,0 +19675,38.3,0.4,0 +19679,38.3,0.3,0 +19683,38.3,0.2,0 +19687,38.3,0.1,0 +19689,38.3,0,0 +19691,38.3,-0.1,0 +19695,38.3,-0.2,0 +19697,38.3,-0.3,0 +19699,38.3,-0.4,0 +19701,38.3,-0.5,0 +19703,38.3,-0.6,0 +19705,38.3,-0.7,0 +19707,38.3,-0.8,0 +19709,38.3,-1,0 +19711,38.3,-1.1,0 +19712,38.3,-1.2,0 +19714,38.3,-1.3,0 +19716,38.3,-1.5,0 +19718,38.3,-1.6,0 +19720,38.3,-1.7,0 +19722,38.3,-1.9,0 +19724,38.3,-2.1,0 +19726,38.3,-2.2,0 +19727,38.3,-2.3,0 +19729,38.3,-2.4,0 +19731,38.3,-2.6,0 +19733,38.3,-2.7,0 +19734,38.3,-2.8,0 +19736,38.3,-2.9,0 +19738,38.3,-3,0 +19739,38.3,-3.1,0 +19741,38.3,-3.2,0 +19742,38.3,-3.3,0 +19744,38.3,-3.4,0 +19747,38.3,-3.5,0 +19749,38.3,-3.6,0 +19752,38.3,-3.7,0 +19763,0,-3.7,8.8 +19764,24.2,-3.7,0 +19766,24.2,-3.5,0 +19768,24.2,-3.4,0 +19770,24.2,-3.3,0 +19772,24.2,-3.2,0 +19773,24.2,-3.1,0 +19774,24.2,-3,0 +19776,24.2,-2.9,0 +19777,24.2,-2.8,0 +19778,24.2,-2.7,0 +19779,24.2,-2.6,0 +19780,24.2,-2.4,0 +19781,24.2,-2.3,0 +19782,24.2,-2.2,0 +19783,24.2,-2.1,0 +19784,24.2,-1.9,0 +19785,24.2,-1.8,0 +19786,24.2,-1.6,0 +19788,24.2,-1.5,0 +19789,24.2,-1.3,0 +19790,24.2,-1.1,0 +19791,24.2,-0.9,0 +19793,24.2,-0.8,0 +19794,24.2,-0.6,0 +19795,24.2,-0.3,0 +19797,24.2,-0.2,0 +19798,24.2,0,0 +19799,24.2,0.3,0 +19801,24.2,0.4,0 +19802,24.2,0.6,0 +19803,24.2,0.8,0 +19805,24.2,0.9,0 +19806,24.2,1.1,0 +19807,24.2,1.3,0 +19808,24.2,1.5,0 +19810,24.2,1.6,0 +19811,24.2,1.7,0 +19812,24.2,1.8,0 +19813,24.2,2,0 +19814,24.2,2.1,0 +19815,24.2,2.2,0 +19816,24.2,2.3,0 +19818,24.2,2.4,0 +19819,24.2,2.5,0 +19821,24.2,2.6,0 +19822,24.2,2.7,0 +19824,24.2,2.9,0 +19827,0,2.8,43 +19828,33.5,2.8,0 +19835,33.5,2.8,0 +19838,33.5,2.7,0 +19841,33.5,2.6,0 +19842,33.5,2.5,0 +19844,33.5,2.4,0 +19845,33.5,2.2,0 +19847,33.5,2.1,0 +19848,33.5,2,0 +19850,33.5,1.9,0 +19851,33.5,1.8,0 +19852,33.5,1.7,0 +19853,33.5,1.6,0 +19854,33.5,1.5,0 +19855,33.5,1.4,0 +19856,33.5,1.3,0 +19857,33.5,1.2,0 +19858,33.5,1,0 +19859,33.5,0.9,0 +19860,33.5,0.8,0 +19861,33.5,0.7,0 +19862,33.5,0.6,0 +19863,33.5,0.4,0 +19865,33.5,0.3,0 +19866,33.5,0.1,0 +19867,33.5,0,0 +19868,33.5,-0.2,0 +19870,33.5,-0.3,0 +19871,33.5,-0.5,0 +19872,33.5,-0.6,0 +19873,33.5,-0.8,0 +19875,33.5,-1,0 +19876,33.5,-1.2,0 +19878,33.5,-1.3,0 +19879,33.5,-1.4,0 +19880,33.5,-1.6,0 +19882,33.5,-1.7,0 +19883,33.5,-1.9,0 +19885,33.5,-2,0 +19886,33.5,-2.1,0 +19888,33.5,-2.3,0 +19889,33.5,-2.4,0 +19891,33.5,-2.5,0 +19892,33.5,-2.7,0 +19894,33.5,-2.8,0 +19896,33.5,-2.9,0 +19897,33.5,-3,0 +19899,33.5,-3.1,0 +19901,33.5,-3.2,0 +19902,33.5,-3.3,0 +19906,33.5,-3.4,0 +19907,33.5,-3.5,0 +19909,33.5,-3.6,0 +19913,33.5,-3.7,0 +19918,33.5,-3.8,0 +19936,33.5,-3.7,0 +19941,33.5,-3.6,0 +19947,33.5,-3.5,0 +19950,33.5,-3.4,0 +19954,33.5,-3.3,0 +19958,33.5,-3.2,0 +19961,33.5,-3.1,0 +19965,33.5,-3,0 +19969,33.5,-2.9,0 +19973,33.5,-2.8,0 +19976,33.5,-2.7,0 +19980,33.5,-2.6,0 +19982,33.5,-2.5,0 +19988,33.5,-2.4,0 +19992,33.5,-2.3,0 +19995,33.5,-2.2,0 +20001,33.5,-2.1,0 +20006,33.5,-2,0 +20012,33.5,-1.9,0 +20019,33.5,-1.8,0 +20032,33.5,-1.7,0 +20045,33.5,-1.6,0 +20059,33.5,-1.5,0 +20069,33.5,-1.4,0 +20078,33.5,-1.3,0 +20086,33.5,-1.2,0 +20094,33.5,-1.1,0 +20107,33.5,-1,0 +20121,33.5,-1.1,0 +20131,33.5,-1.2,0 +20138,33.5,-1.3,0 +20143,33.5,-1.4,0 +20146,33.5,-1.5,0 +20151,33.5,-1.6,0 +20156,33.5,-1.7,0 +20162,33.5,-1.8,0 +20170,33.5,-1.9,0 +20180,33.5,-1.8,0 +20189,33.5,-1.7,0 +20193,33.5,-1.6,0 +20196,0,-1.6,9.6 +20197,27,-1.6,0 +20201,27,-1.4,0 +20205,27,-1.3,0 +20208,27,-1.2,0 +20211,27,-1.1,0 +20215,27,-1,0 +20218,27,-0.9,0 +20222,27,-0.8,0 +20226,27,-0.7,0 +20231,27,-0.6,0 +20236,27,-0.5,0 +20244,27,-0.4,0 +20257,27,-0.3,0 +20271,27,-0.2,0 +20278,27,-0.1,0 +20284,27,0,0 +20287,0,0,2 +20288,25.7,0,0 +20294,25.7,0.2,0 +20298,25.7,0.3,0 +20302,25.7,0.4,0 +20306,25.7,0.5,0 +20310,25.7,0.6,0 +20313,25.7,0.7,0 +20317,25.7,0.8,0 +20321,25.7,0.9,0 +20326,25.7,1,0 +20330,25.7,1.1,0 +20336,25.7,1.2,0 +20340,25.7,1.3,0 +20345,25.7,1.4,0 +20351,25.7,1.5,0 +20355,25.7,1.6,0 +20361,25.7,1.7,0 +20367,25.7,1.8,0 +20373,25.7,1.9,0 +20381,25.7,2,0 +20393,25.7,1.9,0 +20397,0,1.9,13 +20398,36.3,1.9,0 +20399,36.3,1.8,0 +20403,36.3,1.7,0 +20406,36.3,1.6,0 +20409,36.3,1.5,0 +20411,36.3,1.4,0 +20414,36.3,1.3,0 +20416,36.3,1.2,0 +20418,36.3,1.1,0 +20420,36.3,1,0 +20421,36.3,0.9,0 +20424,36.3,0.8,0 +20425,36.3,0.7,0 +20427,36.3,0.6,0 +20429,36.3,0.5,0 +20430,36.3,0.4,0 +20433,36.3,0.3,0 +20434,36.3,0.2,0 +20435,36.3,0.1,0 +20437,36.3,0,0 +20440,36.3,-0.1,0 +20441,36.3,-0.2,0 +20443,36.3,-0.3,0 +20446,36.3,-0.4,0 +20447,36.3,-0.5,0 +20449,36.3,-0.6,0 +20452,36.3,-0.7,0 +20454,36.3,-0.8,0 +20457,36.3,-0.9,0 +20459,36.3,-1,0 +20462,36.3,-1.1,0 +20466,36.3,-1.2,0 +20470,36.3,-1.3,0 +20473,36.3,-1.4,0 +20477,36.3,-1.5,0 +20481,36.3,-1.6,0 +20487,36.3,-1.7,0 +20490,36.3,-1.8,0 +20494,36.3,-1.9,0 +20498,36.3,-2,0 +20502,36.3,-2.1,0 +20506,36.3,-2.2,0 +20511,36.3,-2.3,0 +20515,36.3,-2.4,0 +20519,36.3,-2.5,0 +20525,36.3,-2.6,0 +20531,36.3,-2.7,0 +20541,36.3,-2.8,0 +20545,36.3,-2.7,0 +20555,36.3,-2.6,0 +20561,36.3,-2.5,0 +20563,36.3,-2.4,0 +20567,36.3,-2.3,0 +20571,36.3,-2.2,0 +20573,36.3,-2.1,0 +20575,36.3,-2,0 +20579,36.3,-1.9,0 +20581,36.3,-1.8,0 +20583,36.3,-1.7,0 +20585,36.3,-1.6,0 +20587,36.3,-1.5,0 +20589,36.3,-1.4,0 +20593,36.3,-1.3,0 +20595,36.3,-1.2,0 +20597,36.3,-1.1,0 +20599,36.3,-1,0 +20601,36.3,-0.9,0 +20605,36.3,-0.8,0 +20607,36.3,-0.7,0 +20609,36.3,-0.6,0 +20613,36.3,-0.5,0 +20615,36.3,-0.4,0 +20620,36.3,-0.3,0 +20623,36.3,-0.2,0 +20627,36.3,-0.1,0 +20633,36.3,0,0 +20641,36.3,0.1,0 +20650,36.3,0.2,0 +20661,36.3,0.3,0 +20670,36.3,0.4,0 +20678,36.3,0.5,0 +20683,36.3,0.6,0 +20689,36.3,0.7,0 +20694,36.3,0.8,0 +20702,36.3,0.9,0 +20710,36.3,1,0 +20727,36.3,0.9,0 +20733,36.3,0.8,0 +20737,36.3,0.7,0 +20739,36.3,0.6,0 +20743,36.3,0.5,0 +20745,36.3,0.4,0 +20747,36.3,0.3,0 +20749,36.3,0.2,0 +20751,36.3,0.1,0 +20753,36.3,0,0 +20755,36.3,-0.2,0 +20757,36.3,-0.3,0 +20759,36.3,-0.4,0 +20761,36.3,-0.6,0 +20763,36.3,-0.7,0 +20765,36.3,-0.8,0 +20767,36.3,-1,0 +20769,36.3,-1.1,0 +20771,36.3,-1.3,0 +20773,36.3,-1.4,0 +20775,36.3,-1.6,0 +20777,36.3,-1.7,0 +20779,36.3,-1.8,0 +20781,36.3,-1.9,0 +20783,36.3,-2.1,0 +20785,36.3,-2.2,0 +20787,36.3,-2.3,0 +20790,36.3,-2.4,0 +20792,36.3,-2.5,0 +20798,36.3,-2.6,0 +20801,36.3,-2.5,0 +20806,36.3,-2.4,0 +20808,36.3,-2.3,0 +20810,36.3,-2.2,0 +20811,36.3,-2.1,0 +20813,36.3,-1.9,0 +20815,36.3,-1.8,0 +20816,36.3,-1.6,0 +20818,36.3,-1.5,0 +20819,36.3,-1.3,0 +20821,36.3,-1.2,0 +20822,36.3,-1,0 +20823,36.3,-0.9,0 +20824,36.3,-0.6,0 +20826,36.3,-0.5,0 +20827,36.3,-0.4,0 +20828,36.3,-0.2,0 +20829,36.3,-0.1,0 +20830,36.3,0.1,0 +20831,36.3,0.3,0 +20832,36.3,0.5,0 +20833,36.3,0.6,0 +20834,36.3,0.8,0 +20835,36.3,1,0 +20836,36.3,1.1,0 +20837,36.3,1.3,0 +20838,36.3,1.5,0 +20839,0,1.6,2 +20840,16.7,1.6,0 +20841,16.7,1.9,0 +20842,16.7,2.1,0 +20843,16.7,2.2,0 +20844,16.7,2.4,0 +20845,16.7,2.5,0 +20846,16.7,2.7,0 +20847,16.7,2.8,0 +20848,16.7,3,0 +20849,16.7,3.1,0 +20850,16.7,3.2,0 +20851,16.7,3.5,0 +20853,16.7,3.6,0 +20854,16.7,3.7,0 +20855,16.7,3.9,0 +20857,16.7,4,0 +20859,16.7,4.1,0 +20860,16.7,4.2,0 +20861,16.7,4.3,0 +20863,16.7,4.4,0 +20867,16.7,4.5,0 +20871,16.7,4.4,0 +20874,16.7,4.3,0 +20877,16.7,4.2,0 +20878,16.7,4.1,0 +20879,12.9,4.1,0 +20880,12.9,4,0 +20881,33.1,3.8,0 +20883,33.1,3.7,0 +20884,33.1,3.6,0 +20886,33.1,3.4,0 +20887,33.1,3.3,0 +20888,33.1,3.2,0 +20889,33.1,3.1,0 +20890,33.1,3,0 +20891,33.1,2.8,0 +20892,33.1,2.6,0 +20894,33.1,2.5,0 +20895,33.1,2.4,0 +20896,33.1,2.2,0 +20897,33.1,1.9,0 +20899,33.1,1.8,0 +20900,33.1,1.7,0 +20901,33.1,1.5,0 +20903,33.1,1.3,0 +20904,33.1,1,0 +20906,33.1,0.9,0 +20907,33.1,0.7,0 +20909,33.1,0.5,0 +20910,33.1,0.4,0 +20912,33.1,0.1,0 +20914,33.1,0,0 +20915,33.1,-0.1,0 +20917,33.1,-0.3,0 +20918,33.1,-0.4,0 +20920,33.1,-0.6,0 +20922,33.1,-0.7,0 +20924,33.1,-0.8,0 +20925,33.1,-0.9,0 +20927,33.1,-1,0 +20931,33.1,-1.1,0 +20934,33.1,-1.2,0 +20942,33.1,-1.1,0 +20947,33.1,-1,0 +20949,33.1,-0.9,0 +20951,33.1,-0.8,0 +20953,33.1,-0.7,0 +20954,33.1,-0.6,0 +20956,33.1,-0.5,0 +20958,33.1,-0.4,0 +20960,33.1,-0.3,0 +20961,33.1,-0.2,0 +20963,33.1,0,0 +20965,33.1,0.1,0 +20967,33.1,0.3,0 +20968,33.1,0.4,0 +20970,33.1,0.6,0 +20972,33.1,0.7,0 +20973,33.1,0.9,0 +20975,33.1,1.1,0 +20977,33.1,1.2,0 +20978,33.1,1.4,0 +20980,33.1,1.7,0 +20982,33.1,1.8,0 +20983,33.1,1.9,0 +20985,33.1,2,0 +20986,33.1,2.3,0 +20988,33.1,2.5,0 +20990,33.1,2.6,0 +20991,33.1,2.9,0 +20993,33.1,3,0 +20994,33.1,3.1,0 +20995,33.1,3.3,0 +20997,33.1,3.5,0 +20998,33.1,3.6,0 +21000,33.1,3.8,0 +21001,33.1,3.9,0 +21002,33.1,4.1,0 +21004,33.1,4.2,0 +21005,33.1,4.3,0 +21006,33.1,4.5,0 +21007,33.1,4.6,0 +21008,33.1,4.7,0 +21009,33.1,4.8,0 +21010,33.1,4.9,0 +21012,33.1,5,0 +21013,33.1,5.1,0 +21014,33.1,5.2,0 +21015,33.1,5.3,0 +21016,0,5.4,51 +21017,46.6,5.4,0 +21019,46.6,5.6,0 +21020,46.6,5.7,0 +21022,46.6,5.8,0 +21024,46.6,5.9,0 +21026,46.6,6,0 +21029,46.6,6.1,0 +21032,46.6,6.2,0 +21039,46.6,6.1,0 +21043,46.6,6,0 +21046,46.6,5.9,0 +21048,46.6,5.8,0 +21049,46.6,5.7,0 +21052,46.6,5.6,0 +21053,46.6,5.5,0 +21054,46.6,5.4,0 +21055,46.6,5.3,0 +21056,46.6,5.2,0 +21058,46.6,5.1,0 +21059,46.6,5,0 +21060,46.6,4.8,0 +21062,46.6,4.7,0 +21063,46.6,4.6,0 +21064,46.6,4.4,0 +21066,46.6,4.3,0 +21067,46.6,4.1,0 +21069,46.6,3.9,0 +21070,46.6,3.8,0 +21072,46.6,3.7,0 +21073,46.6,3.4,0 +21075,46.6,3.2,0 +21077,46.6,3,0 +21078,46.6,2.8,0 +21080,46.6,2.6,0 +21082,46.6,2.4,0 +21083,46.6,2.2,0 +21085,46.6,2,0 +21087,46.6,1.8,0 +21089,46.6,1.6,0 +21090,46.6,1.4,0 +21092,46.6,1.3,0 +21094,46.6,1.1,0 +21096,46.6,0.9,0 +21098,46.6,0.7,0 +21100,46.6,0.5,0 +21102,46.6,0.4,0 +21104,46.6,0.2,0 +21106,46.6,0,0 +21108,46.6,-0.1,0 +21110,46.6,-0.3,0 +21112,46.6,-0.4,0 +21114,46.6,-0.6,0 +21116,46.6,-0.7,0 +21119,46.6,-0.8,0 +21121,46.6,-0.9,0 +21123,46.6,-1,0 +21125,46.6,-1.1,0 +21128,46.6,-1.2,0 +21132,46.6,-1.3,0 +21135,46.6,-1.4,0 +21139,46.6,-1.5,0 +21146,46.6,-1.6,0 +21163,46.6,-1.7,0 +21171,46.6,-1.6,0 +21205,46.6,-1.5,0 +21315,46.6,-1.4,0 +21327,46.6,-1.3,0 +21338,46.6,-1.2,0 +21348,46.6,-1.1,0 +21353,46.6,-1,0 +21360,46.6,-0.9,0 +21368,46.6,-0.8,0 +21373,46.6,-0.7,0 +21380,46.6,-0.6,0 +21388,46.6,-0.5,0 +21393,46.6,-0.4,0 +21401,46.6,-0.3,0 +21408,46.6,-0.2,0 +21418,46.6,-0.1,0 +21429,46.6,0,0 +21442,46.6,0.1,0 +21475,46.6,0,0 +21485,46.6,-0.1,0 +21493,46.6,-0.2,0 +21498,46.6,-0.3,0 +21500,46.6,-0.4,0 +21505,46.6,-0.5,0 +21508,46.6,-0.6,0 +21512,46.6,-0.7,0 +21515,46.6,-0.8,0 +21517,46.6,-0.9,0 +21519,46.6,-1,0 +21522,46.6,-1.1,0 +21524,46.6,-1.2,0 +21526,46.6,-1.3,0 +21530,46.6,-1.4,0 +21532,46.6,-1.5,0 +21534,46.6,-1.6,0 +21536,46.6,-1.7,0 +21538,46.6,-1.8,0 +21540,46.6,-1.9,0 +21544,46.6,-2,0 +21545,46.6,-2.1,0 +21549,46.6,-2.2,0 +21552,46.6,-2.3,0 +21555,46.6,-2.4,0 +21559,46.6,-2.5,0 +21567,46.6,-2.6,0 +21571,46.6,-2.5,0 +21579,46.6,-2.3,0 +21581,0,-2.3,30.6 +21582,29.9,-2.3,0 +21586,29.9,-2.2,0 +21589,29.9,-2.1,0 +21591,29.9,-2,0 +21594,29.9,-1.9,0 +21597,29.9,-1.8,0 +21599,29.9,-1.7,0 +21601,29.9,-1.6,0 +21603,29.9,-1.5,0 +21606,29.9,-1.4,0 +21609,29.9,-1.3,0 +21610,29.9,-1.2,0 +21613,29.9,-1.1,0 +21615,29.9,-1,0 +21618,29.9,-0.9,0 +21621,29.9,-0.8,0 +21624,29.9,-0.7,0 +21628,29.9,-0.6,0 +21633,29.9,-0.5,0 +21639,29.9,-0.4,0 +21668,29.9,-0.5,0 +21677,29.9,-0.6,0 +21684,29.9,-0.7,0 +21691,29.9,-0.8,0 +21698,29.9,-0.9,0 +21705,29.9,-1,0 +21713,29.9,-1.1,0 +21715,10.9,-1.1,0 +21726,10.9,-1.2,0 +21738,26.9,-1.2,0 +21749,26.9,-1.1,0 +21770,26.9,-1,0 +21820,26.9,-0.9,0 +21830,0,-0.9,38.4 +21831,31.6,-0.9,0 +21832,31.6,-0.9,0 +21835,31.6,-0.8,0 +21845,31.6,-0.7,0 +21854,31.6,-0.6,0 +21862,31.6,-0.5,0 +21869,31.6,-0.4,0 +21879,31.6,-0.3,0 +21890,31.6,-0.2,0 +21907,31.6,-0.1,0 +21923,37.3,-0.1,0 +21939,37.3,0,0 +21988,37.3,0.1,0 +22032,37.3,0.2,0 +22073,37.3,0.3,0 +22110,37.3,0.4,0 +22144,37.3,0.5,0 +22171,37.3,0.6,0 +22195,37.3,0.7,0 +22209,30.4,0.7,0 +22212,30.4,0.8,0 +22222,30.4,0.9,0 +22229,30.4,1,0 +22234,30.4,1.1,0 +22239,30.4,1.2,0 +22244,30.4,1.3,0 +22247,30.4,1.4,0 +22250,30.4,1.5,0 +22253,30.4,1.6,0 +22257,30.4,1.7,0 +22259,30.4,1.8,0 +22262,30.4,1.9,0 +22265,30.4,2,0 +22268,30.4,2.1,0 +22271,30.4,2.2,0 +22273,30.4,2.3,0 +22276,30.4,2.4,0 +22279,30.4,2.5,0 +22282,30.4,2.6,0 +22284,30.4,2.7,0 +22288,30.4,2.8,0 +22292,0,2.9,11.6 +22293,30.5,2.9,0 +22296,30.5,3,0 +22305,30.5,3.1,0 +22323,30.5,3,0 +22356,30.5,3.1,0 +22362,30.5,3.2,0 +22369,30.5,3.3,0 +22373,30.5,3.4,0 +22378,30.5,3.5,0 +22382,30.5,3.6,0 +22386,30.5,3.7,0 +22392,30.5,3.8,0 +22398,30.5,3.9,0 +22399,15.1,3.9,0 +22403,37.2,3.9,0 +22422,37.2,3.8,0 +22428,37.2,3.7,0 +22434,37.2,3.6,0 +22439,37.2,3.5,0 +22444,37.2,3.4,0 +22449,37.2,3.3,0 +22456,37.2,3.2,0 +22463,37.2,3.1,0 +22493,37.2,3.2,0 +22501,37.2,3.3,0 +22509,37.2,3.4,0 +22515,37.2,3.5,0 +22521,37.2,3.6,0 +22527,37.2,3.7,0 +22537,37.2,3.8,0 +22558,37.2,3.7,0 +22564,37.2,3.6,0 +22569,37.2,3.5,0 +22573,37.2,3.4,0 +22575,37.2,3.3,0 +22577,37.2,3.2,0 +22581,37.2,3.1,0 +22583,37.2,2.9,0 +22585,37.2,2.8,0 +22587,37.2,2.7,0 +22589,37.2,2.6,0 +22591,37.2,2.4,0 +22593,37.2,2.3,0 +22595,37.2,2.1,0 +22597,37.2,2,0 +22599,37.2,1.8,0 +22601,37.2,1.6,0 +22603,37.2,1.4,0 +22605,37.2,1.2,0 +22607,37.2,1,0 +22609,37.2,0.8,0 +22611,37.2,0.6,0 +22613,37.2,0.3,0 +22615,37.2,0,0 +22617,37.2,-0.2,0 +22618,37.2,-0.4,0 +22620,37.2,-0.6,0 +22622,37.2,-0.9,0 +22624,37.2,-1.2,0 +22626,37.2,-1.4,0 +22627,37.2,-1.7,0 +22629,37.2,-1.9,0 +22631,37.2,-2.3,0 +22633,37.2,-2.4,0 +22634,37.2,-2.7,0 +22636,37.2,-3,0 +22638,37.2,-3.2,0 +22639,37.2,-3.4,0 +22641,37.2,-3.7,0 +22643,37.2,-3.9,0 +22644,37.2,-4.2,0 +22646,37.2,-4.3,0 +22647,37.2,-4.4,0 +22648,37.2,-4.6,0 +22650,37.2,-4.8,0 +22651,37.2,-5,0 +22652,37.2,-5.1,0 +22654,37.2,-5.2,0 +22655,37.2,-5.3,0 +22656,37.2,-5.4,0 +22657,37.2,-5.6,0 +22659,37.2,-5.7,0 +22660,37.2,-5.8,0 +22661,37.2,-5.9,0 +22662,37.2,-6,0 +22664,37.2,-6.1,0 +22667,37.2,-6.2,0 +22669,37.2,-6.3,0 +22672,0,-6.3,16 +22673,25.7,-6.3,0 +22678,25.7,-6.2,0 +22681,25.7,-6.1,0 +22683,25.7,-6,0 +22684,25.7,-5.9,0 +22685,25.7,-5.8,0 +22687,25.7,-5.7,0 +22689,25.7,-5.6,0 +22690,25.7,-5.5,0 +22691,25.7,-5.4,0 +22692,25.7,-5.3,0 +22693,25.7,-5.1,0 +22694,25.7,-5,0 +22695,25.7,-4.9,0 +22696,25.7,-4.7,0 +22698,25.7,-4.6,0 +22699,25.7,-4.4,0 +22700,25.7,-4.3,0 +22701,25.7,-4,0 +22703,25.7,-3.9,0 +22704,25.7,-3.7,0 +22705,25.7,-3.6,0 +22706,25.7,-3.3,0 +22708,25.7,-3.2,0 +22709,25.7,-3,0 +22710,25.7,-2.7,0 +22712,25.7,-2.6,0 +22713,25.7,-2.4,0 +22714,25.7,-2.1,0 +22716,25.7,-2,0 +22717,25.7,-1.9,0 +22718,25.7,-1.6,0 +22720,25.7,-1.4,0 +22721,25.7,-1.1,0 +22723,25.7,-1,0 +22724,25.7,-0.9,0 +22725,25.7,-0.7,0 +22727,25.7,-0.5,0 +22728,25.7,-0.2,0 +22730,25.7,-0.1,0 +22731,25.7,0,0 +22732,25.7,0.2,0 +22734,25.7,0.4,0 +22735,25.7,0.6,0 +22737,25.7,0.7,0 +22738,25.7,0.8,0 +22740,25.7,0.9,0 +22741,25.7,1.1,0 +22742,25.7,1.2,0 +22744,25.7,1.3,0 +22745,25.7,1.4,0 +22747,25.7,1.5,0 +22748,25.7,1.6,0 +22749,25.7,1.7,0 +22751,25.7,1.8,0 +22754,25.7,1.9,0 +22755,25.7,2,0 +22758,25.7,2.1,0 +22761,25.7,2.2,0 +22767,25.7,2.3,0 +22778,25.7,2.2,0 +22784,25.7,2.1,0 +22789,25.7,2,0 +22794,25.7,1.9,0 +22799,25.7,1.8,0 +22802,0,1.8,8.2 +22803,25.6,1.8,0 +22805,25.6,1.7,0 +22821,25.6,1.8,0 +22827,25.6,1.9,0 +22829,25.6,2,0 +22833,25.6,2.1,0 +22836,25.6,2.2,0 +22837,25.6,2.3,0 +22840,25.6,2.4,0 +22841,25.6,2.5,0 +22844,25.6,2.6,0 +22845,25.6,2.7,0 +22847,25.6,2.8,0 +22848,25.6,2.9,0 +22849,25.6,3,0 +22851,25.6,3.1,0 +22852,25.6,3.2,0 +22855,25.6,3.3,0 +22856,25.6,3.5,0 +22858,25.6,3.6,0 +22859,25.6,3.7,0 +22861,25.6,3.8,0 +22862,25.6,3.9,0 +22863,25.6,4,0 +22865,25.6,4.1,0 +22866,25.6,4.2,0 +22868,25.6,4.3,0 +22869,25.6,4.4,0 +22870,25.6,4.5,0 +22872,25.6,4.6,0 +22873,25.6,4.7,0 +22874,25.6,4.8,0 +22876,25.6,4.9,0 +22877,25.6,5,0 +22878,25.6,5.1,0 +22880,25.6,5.2,0 +22881,25.6,5.3,0 +22882,25.6,5.4,0 +22884,25.6,5.5,0 +22885,25.6,5.6,0 +22886,25.6,5.7,0 +22887,25.6,5.8,0 +22889,25.6,5.9,0 +22891,25.6,6,0 +22893,25.6,6.1,0 +22894,25.6,6.2,0 +22895,25.6,6.3,0 +22898,25.6,6.4,0 +22899,25.6,6.5,0 +22901,25.6,6.6,0 +22902,25.6,6.7,0 +22905,25.6,6.8,0 +22907,25.6,6.9,0 +22910,25.6,7,0 +22912,25.6,7.1,0 +22914,25.6,7.2,0 +22918,25.6,7.3,0 +22922,25.6,7.4,0 +22927,25.6,7.5,0 +22938,25.6,7.6,0 +22944,25.6,7.5,0 +22956,25.6,7.4,0 +22963,25.6,7.3,0 +22967,25.6,7.2,0 +22971,25.6,7.1,0 +22974,25.6,7,0 +22978,25.6,6.9,0 +22981,25.6,6.8,0 +22984,25.6,6.7,0 +22987,25.6,6.6,0 +22988,25.6,6.5,0 +22991,25.6,6.4,0 +22992,25.6,6.3,0 +22995,25.6,6.2,0 +22997,25.6,6.1,0 +22998,25.6,6,0 +23001,25.6,5.9,0 +23002,25.6,5.8,0 +23004,25.6,5.7,0 +23007,25.6,5.6,0 +23008,25.6,5.5,0 +23010,25.6,5.4,0 +23011,25.6,5.3,0 +23012,25.6,5.2,0 +23014,25.6,5.1,0 +23015,25.6,5,0 +23018,25.6,4.9,0 +23020,25.6,4.8,0 +23021,25.6,4.7,0 +23022,25.6,4.6,0 +23024,25.6,4.5,0 +23025,25.6,4.4,0 +23027,25.6,4.3,0 +23028,25.6,4.2,0 +23030,25.6,4.1,0 +23032,25.6,4,0 +23034,25.6,3.9,0 +23035,25.6,3.8,0 +23036,25.6,3.7,0 +23038,25.6,3.6,0 +23040,25.6,3.5,0 +23042,25.6,3.4,0 +23043,25.6,3.3,0 +23044,25.6,3.2,0 +23047,25.6,3.1,0 +23048,25.6,3,0 +23049,25.6,2.9,0 +23052,25.6,2.8,0 +23053,25.6,2.7,0 +23054,25.6,2.6,0 +23056,25.6,2.5,0 +23058,25.6,2.4,0 +23059,25.6,2.3,0 +23061,25.6,2.2,0 +23062,25.6,2.1,0 +23063,25.6,2,0 +23065,25.6,1.9,0 +23066,25.6,1.8,0 +23067,25.6,1.7,0 +23069,25.6,1.6,0 +23070,25.6,1.5,0 +23071,25.6,1.3,0 +23073,25.6,1.2,0 +23074,25.6,1.1,0 +23075,25.6,0.9,0 +23077,25.6,0.8,0 +23078,25.6,0.7,0 +23079,25.6,0.5,0 +23081,25.6,0.4,0 +23082,25.6,0.1,0 +23084,25.6,0,0 +23085,25.6,-0.1,0 +23086,25.6,-0.3,0 +23088,25.6,-0.5,0 +23089,25.6,-0.6,0 +23090,25.6,-0.9,0 +23092,25.6,-1.1,0 +23093,25.6,-1.2,0 +23094,25.6,-1.5,0 +23096,25.6,-1.6,0 +23097,25.6,-1.8,0 +23098,25.6,-1.9,0 +23099,25.6,-2.3,0 +23101,25.6,-2.4,0 +23102,25.6,-2.6,0 +23103,25.6,-2.7,0 +23104,25.6,-2.9,0 +23105,25.6,-3.1,0 +23106,25.6,-3.2,0 +23107,25.6,-3.4,0 +23108,25.6,-3.5,0 +23109,25.6,-3.6,0 +23110,25.6,-3.8,0 +23111,25.6,-3.9,0 +23112,25.6,-4,0 +23113,25.6,-4.2,0 +23114,25.6,-4.3,0 +23115,25.6,-4.6,0 +23117,25.6,-4.7,0 +23118,25.6,-4.8,0 +23119,25.6,-4.9,0 +23120,0,-5.1,34.8 +23121,26,-5.1,0 +23122,26,-5.3,0 +23123,26,-5.4,0 +23124,26,-5.5,0 +23126,26,-5.6,0 +23127,26,-5.7,0 +23128,26,-5.8,0 +23130,26,-5.9,0 +23132,26,-6,0 +23135,26,-6.1,0 +23140,26,-6,0 +23144,26,-5.9,0 +23146,26,-5.8,0 +23147,26,-5.7,0 +23148,26,-5.6,0 +23149,26,-5.5,0 +23151,26,-5.4,0 +23152,26,-5.3,0 +23153,26,-5.1,0 +23154,26,-4.9,0 +23156,26,-4.8,0 +23157,26,-4.7,0 +23158,26,-4.4,0 +23160,26,-4.3,0 +23161,26,-4.1,0 +23162,26,-3.8,0 +23164,26,-3.7,0 +23165,26,-3.5,0 +23166,26,-3.1,0 +23168,26,-2.9,0 +23169,26,-2.6,0 +23171,26,-2.4,0 +23172,26,-2.3,0 +23173,26,-1.9,0 +23175,26,-1.7,0 +23176,26,-1.4,0 +23178,26,-1.1,0 +23179,26,-0.8,0 +23181,26,-0.6,0 +23182,26,-0.2,0 +23184,26,0,0 +23185,26,0.1,0 +23186,26,0.5,0 +23188,26,0.7,0 +23189,26,1,0 +23191,26,1.1,0 +23192,26,1.3,0 +23193,26,1.5,0 +23195,26,1.7,0 +23196,26,1.8,0 +23197,26,2,0 +23199,26,2.2,0 +23200,26,2.3,0 +23201,26,2.4,0 +23203,26,2.5,0 +23204,26,2.6,0 +23205,26,2.7,0 +23207,26,2.8,0 +23209,26,2.9,0 +23217,26,2.8,0 +23219,26,2.7,0 +23220,26,2.6,0 +23222,26,2.5,0 +23223,26,2.4,0 +23224,26,2.3,0 +23226,26,2.2,0 +23227,26,2.1,0 +23228,26,1.9,0 +23229,26,1.7,0 +23230,26,1.6,0 +23231,26,1.5,0 +23232,26,1.3,0 +23233,26,1.2,0 +23234,26,1,0 +23235,26,0.9,0 +23236,26,0.7,0 +23237,26,0.6,0 +23238,0,0.3,40.8 +23239,24.3,0.3,0 +23240,24.3,0,0 +23241,24.3,-0.2,0 +23242,24.3,-0.4,0 +23243,24.3,-0.6,0 +23244,24.3,-0.7,0 +23245,24.3,-0.9,0 +23246,24.3,-1.1,0 +23247,24.3,-1.3,0 +23248,24.3,-1.5,0 +23249,24.3,-1.7,0 +23250,24.3,-1.9,0 +23251,24.3,-2,0 +23252,24.3,-2.2,0 +23253,24.3,-2.3,0 +23254,24.3,-2.5,0 +23255,24.3,-2.9,0 +23257,24.3,-3.1,0 +23258,24.3,-3.2,0 +23259,24.3,-3.3,0 +23260,24.3,-3.5,0 +23261,24.3,-3.7,0 +23262,24.3,-3.8,0 +23263,24.3,-4,0 +23265,24.3,-4.1,0 +23266,24.3,-4.3,0 +23267,24.3,-4.4,0 +23268,24.3,-4.5,0 +23270,24.3,-4.6,0 +23271,24.3,-4.7,0 +23272,24.3,-4.8,0 +23274,24.3,-4.9,0 +23278,24.3,-5,0 +23282,24.3,-4.9,0 +23284,24.3,-4.8,0 +23287,24.3,-4.7,0 +23288,24.3,-4.6,0 +23290,24.3,-4.5,0 +23291,24.3,-4.3,0 +23292,24.3,-4.2,0 +23293,24.3,-4.1,0 +23295,24.3,-3.9,0 +23296,24.3,-3.7,0 +23297,24.3,-3.6,0 +23298,24.3,-3.3,0 +23300,24.3,-3.1,0 +23301,24.3,-3,0 +23302,24.3,-2.8,0 +23303,24.3,-2.6,0 +23304,24.3,-2.4,0 +23305,24.3,-2.2,0 +23306,24.3,-2.1,0 +23307,24.3,-1.9,0 +23308,24.3,-1.7,0 +23309,24.3,-1.5,0 +23310,24.3,-1.3,0 +23311,24.3,-1.1,0 +23312,24.3,-0.9,0 +23313,24.3,-0.7,0 +23314,24.3,-0.5,0 +23315,24.3,-0.3,0 +23316,24.3,-0.1,0 +23317,24.3,0.2,0 +23318,24.3,0.4,0 +23319,24.3,0.6,0 +23320,0,0.9,12.8 +23321,31.2,0.9,0 +23322,31.2,1.2,0 +23323,31.2,1.4,0 +23324,31.2,1.6,0 +23325,31.2,1.8,0 +23326,31.2,2,0 +23327,31.2,2.1,0 +23328,31.2,2.3,0 +23329,31.2,2.5,0 +23330,31.2,2.6,0 +23331,31.2,2.8,0 +23332,31.2,3,0 +23333,31.2,3.1,0 +23334,31.2,3.3,0 +23335,31.2,3.4,0 +23336,31.2,3.5,0 +23337,31.2,3.6,0 +23338,31.2,3.8,0 +23339,31.2,3.9,0 +23341,31.2,4,0 +23342,31.2,4.1,0 +23343,31.2,4.2,0 +23344,31.2,4.3,0 +23345,31.2,4.4,0 +23347,31.2,4.5,0 +23348,31.2,4.6,0 +23350,31.2,4.7,0 +23360,31.2,4.6,0 +23362,31.2,4.5,0 +23365,31.2,4.4,0 +23366,31.2,4.3,0 +23368,31.2,4.2,0 +23369,31.2,4,0 +23371,31.2,3.9,0 +23372,31.2,3.8,0 +23374,31.2,3.7,0 +23375,31.2,3.4,0 +23377,31.2,3.1,0 +23379,31.2,3,0 +23380,31.2,2.8,0 +23382,31.2,2.7,0 +23383,31.2,2.4,0 +23385,31.2,2.2,0 +23387,31.2,2,0 +23388,31.2,1.7,0 +23390,31.2,1.5,0 +23392,31.2,1.3,0 +23393,31.2,1,0 +23395,31.2,0.8,0 +23397,31.2,0.6,0 +23398,31.2,0.3,0 +23400,31.2,0,0 +23402,31.2,-0.1,0 +23403,31.2,-0.4,0 +23405,31.2,-0.6,0 +23407,31.2,-1,0 +23409,31.2,-1.1,0 +23410,31.2,-1.3,0 +23412,31.2,-1.6,0 +23414,31.2,-1.7,0 +23415,31.2,-1.9,0 +23417,31.2,-2.1,0 +23419,31.2,-2.3,0 +23420,31.2,-2.5,0 +23422,31.2,-2.7,0 +23424,31.2,-2.9,0 +23426,31.2,-3,0 +23427,31.2,-3.2,0 +23429,31.2,-3.3,0 +23431,31.2,-3.5,0 +23432,31.2,-3.6,0 +23434,31.2,-3.7,0 +23436,31.2,-3.8,0 +23438,31.2,-3.9,0 +23439,31.2,-4,0 +23441,31.2,-4.1,0 +23445,31.2,-4.2,0 +23450,31.2,-4.3,0 +23456,31.2,-4.2,0 +23460,31.2,-4.1,0 +23463,31.2,-4,0 +23465,31.2,-3.9,0 +23467,31.2,-3.8,0 +23469,31.2,-3.7,0 +23470,31.2,-3.6,0 +23471,31.2,-3.5,0 +23472,31.2,-3.4,0 +23475,18.2,-3.3,0 +23476,18.2,-3.2,0 +23477,18.2,-3.1,0 +23478,18.2,-3,0 +23479,30.3,-2.8,0 +23481,30.3,-2.7,0 +23482,30.3,-2.6,0 +23483,30.3,-2.5,0 +23484,30.3,-2.4,0 +23485,30.3,-2.3,0 +23486,30.3,-2.1,0 +23487,30.3,-2,0 +23488,30.3,-1.9,0 +23489,30.3,-1.7,0 +23491,30.3,-1.6,0 +23492,30.3,-1.4,0 +23493,30.3,-1.3,0 +23494,30.3,-1.2,0 +23495,30.3,-0.9,0 +23497,30.3,-0.8,0 +23498,30.3,-0.6,0 +23499,30.3,-0.4,0 +23501,30.3,-0.3,0 +23502,30.3,-0.2,0 +23503,30.3,0.1,0 +23505,30.3,0.3,0 +23506,30.3,0.5,0 +23508,30.3,0.7,0 +23509,30.3,0.9,0 +23511,30.3,1.1,0 +23512,30.3,1.3,0 +23514,30.3,1.5,0 +23515,30.3,1.7,0 +23517,30.3,1.9,0 +23519,30.3,2,0 +23520,30.3,2.2,0 +23522,30.3,2.4,0 +23523,30.3,2.6,0 +23525,30.3,2.8,0 +23527,30.3,2.9,0 +23528,30.3,3.1,0 +23530,30.3,3.3,0 +23532,30.3,3.4,0 +23533,30.3,3.5,0 +23535,30.3,3.6,0 +23537,30.3,3.7,0 +23538,30.3,3.8,0 +23540,30.3,3.9,0 +23542,30.3,4,0 +23545,30.3,4.1,0 +23553,30.3,4,0 +23557,30.3,3.9,0 +23560,30.3,3.8,0 +23562,30.3,3.7,0 +23563,30.3,3.5,0 +23565,30.3,3.4,0 +23566,30.3,3.2,0 +23568,30.3,3,0 +23570,30.3,2.9,0 +23571,30.3,2.6,0 +23573,30.3,2.5,0 +23574,30.3,2.2,0 +23576,30.3,2.1,0 +23577,30.3,1.8,0 +23579,30.3,1.7,0 +23580,30.3,1.4,0 +23581,30.3,1.1,0 +23583,30.3,1,0 +23584,30.3,0.8,0 +23585,30.3,0.4,0 +23587,30.3,0.2,0 +23588,30.3,0,0 +23589,30.3,-0.2,0 +23590,30.3,-0.6,0 +23592,30.3,-0.8,0 +23593,30.3,-1,0 +23594,30.3,-1.2,0 +23595,30.3,-1.4,0 +23596,30.3,-1.6,0 +23597,30.3,-1.9,0 +23598,30.3,-2.1,0 +23599,30.3,-2.3,0 +23600,30.3,-2.5,0 +23601,30.3,-2.6,0 +23602,30.3,-2.8,0 +23603,30.3,-3,0 +23604,30.3,-3.2,0 +23605,30.3,-3.4,0 +23606,30.3,-3.6,0 +23607,30.3,-3.9,0 +23608,30.3,-4,0 +23609,30.3,-4.2,0 +23610,0,-4.4,2 +23611,27.6,-4.4,0 +23612,27.6,-4.7,0 +23613,27.6,-4.9,0 +23614,27.6,-5.1,0 +23615,27.6,-5.2,0 +23616,27.6,-5.4,0 +23617,27.6,-5.5,0 +23618,27.6,-5.6,0 +23619,27.6,-5.7,0 +23620,27.6,-5.9,0 +23621,27.6,-6.1,0 +23622,27.6,-6.3,0 +23625,27.6,-6.5,0 +23626,27.6,-6.6,0 +23627,27.6,-6.7,0 +23628,27.6,-6.8,0 +23629,27.6,-6.9,0 +23630,27.6,-7,0 +23632,27.6,-7.1,0 +23633,27.6,-7.2,0 +23635,27.6,-7.3,0 +23638,27.6,-7.4,0 +23641,27.6,-7.5,0 +23648,27.6,-7.4,0 +23651,27.6,-7.3,0 +23654,27.6,-7.2,0 +23656,27.6,-7.1,0 +23657,27.6,-7,0 +23659,27.6,-6.9,0 +23660,27.6,-6.8,0 +23662,27.6,-6.7,0 +23663,27.6,-6.6,0 +23665,27.6,-6.5,0 +23666,27.6,-6.3,0 +23668,27.6,-6.2,0 +23669,27.6,-6,0 +23671,27.6,-5.9,0 +23672,27.6,-5.7,0 +23674,27.6,-5.6,0 +23675,27.6,-5.4,0 +23676,27.6,-5.2,0 +23678,27.6,-5.1,0 +23679,27.6,-4.9,0 +23680,27.6,-4.7,0 +23682,27.6,-4.6,0 +23683,27.6,-4.4,0 +23684,27.6,-4.2,0 +23685,27.6,-4.1,0 +23686,27.6,-3.9,0 +23688,27.6,-3.7,0 +23689,27.6,-3.6,0 +23690,27.6,-3.4,0 +23691,27.6,-3.3,0 +23692,27.6,-3.2,0 +23693,27.6,-3,0 +23694,27.6,-2.8,0 +23695,27.6,-2.7,0 +23696,27.6,-2.6,0 +23697,27.6,-2.4,0 +23698,27.6,-2.3,0 +23699,27.6,-2.1,0 +23700,27.6,-2,0 +23701,27.6,-1.9,0 +23702,27.6,-1.7,0 +23703,27.6,-1.6,0 +23704,27.6,-1.4,0 +23705,0,-1.3,5.4 +23706,30.4,-1.3,0 +23707,30.4,-1.1,0 +23708,30.4,-0.9,0 +23709,30.4,-0.8,0 +23710,30.4,-0.7,0 +23711,30.4,-0.6,0 +23712,30.4,-0.5,0 +23713,30.4,-0.2,0 +23715,30.4,-0.1,0 +23717,30.4,0.1,0 +23718,30.4,0.2,0 +23720,30.4,0.3,0 +23721,30.4,0.4,0 +23722,30.4,0.5,0 +23723,30.4,0.6,0 +23724,30.4,0.7,0 +23726,30.4,0.8,0 +23727,30.4,0.9,0 +23729,30.4,1,0 +23731,30.4,1.1,0 +23734,30.4,1.2,0 +23737,30.4,1.3,0 +23741,30.4,1.4,0 +23751,30.4,1.3,0 +23757,30.4,1.2,0 +23761,30.4,1.1,0 +23764,30.4,1,0 +23768,30.4,0.9,0 +23771,30.4,0.8,0 +23774,30.4,0.7,0 +23777,30.4,0.6,0 +23781,30.4,0.5,0 +23784,30.4,0.4,0 +23787,30.4,0.3,0 +23790,30.4,0.2,0 +23794,30.4,0.1,0 +23797,30.4,0,0 +23802,30.4,-0.1,0 +23807,30.4,-0.2,0 +23814,33.4,-0.3,0 +23821,33.4,-0.4,0 +23833,33.4,-0.5,0 +23866,33.4,-0.6,0 +23914,33.4,-0.7,0 +23930,33.4,-0.8,0 +23940,33.4,-0.9,0 +23949,33.4,-1,0 +23957,33.4,-1.1,0 +23968,33.4,-1.2,0 +23985,0,-1.2,14 +23986,35,-1.2,0 +24004,35,-1.1,0 +24015,35,-1,0 +24023,35,-0.9,0 +24030,35,-0.8,0 +24041,35,-0.7,0 +24050,35,-0.6,0 +24063,35,-0.5,0 +24087,35,-0.4,0 +24175,35,-0.3,0 +24181,35,-0.2,0 +24185,35,-0.1,0 +24188,35,0,0 +24190,35,0.1,0 +24194,35,0.2,0 +24196,35,0.3,0 +24198,35,0.4,0 +24200,35,0.5,0 +24201,35,0.7,0 +24203,35,0.8,0 +24205,35,0.9,0 +24206,35,1,0 +24208,35,1.2,0 +24210,35,1.3,0 +24211,35,1.5,0 +24213,35,1.6,0 +24214,35,1.7,0 +24216,35,1.9,0 +24217,35,2.1,0 +24219,35,2.2,0 +24220,35,2.3,0 +24221,35,2.5,0 +24223,35,2.6,0 +24224,35,2.7,0 +24225,35,2.9,0 +24227,35,3.1,0 +24228,35,3.2,0 +24229,35,3.3,0 +24230,35,3.5,0 +24232,35,3.7,0 +24233,35,3.8,0 +24234,35,3.9,0 +24235,35,4,0 +24236,35,4.1,0 +24237,35,4.2,0 +24238,35,4.4,0 +24239,35,4.5,0 +24240,35,4.6,0 +24241,35,4.7,0 +24242,35,4.8,0 +24243,0,4.9,31.8 +24244,27.2,4.9,0 +24245,27.2,5.1,0 +24247,27.2,5.2,0 +24248,27.2,5.3,0 +24249,27.2,5.4,0 +24250,27.2,5.5,0 +24252,27.2,5.6,0 +24253,27.2,5.7,0 +24255,27.2,5.8,0 +24257,27.2,5.9,0 +24260,27.2,6,0 +24269,27.2,5.9,0 +24273,27.2,5.8,0 +24275,27.2,5.7,0 +24277,27.2,5.6,0 +24279,27.2,5.5,0 +24280,27.2,5.4,0 +24282,27.2,5.3,0 +24283,27.2,5.1,0 +24284,27.2,5,0 +24286,27.2,4.9,0 +24287,27.2,4.7,0 +24289,27.2,4.6,0 +24290,27.2,4.4,0 +24292,27.2,4.2,0 +24293,27.2,4,0 +24295,27.2,3.9,0 +24296,27.2,3.7,0 +24298,27.2,3.5,0 +24299,27.2,3.3,0 +24301,27.2,3.1,0 +24302,27.2,2.9,0 +24304,27.2,2.8,0 +24305,27.2,2.6,0 +24306,27.2,2.5,0 +24307,27.2,2.2,0 +24309,27.2,2.1,0 +24310,27.2,2,0 +24311,27.2,1.8,0 +24312,18.8,1.7,0 +24313,18.8,1.6,0 +24314,18.8,1.5,0 +24315,32.5,1.3,0 +24316,32.5,1.2,0 +24317,32.5,1.1,0 +24318,32.5,1,0 +24319,32.5,0.8,0 +24320,32.5,0.7,0 +24321,32.5,0.6,0 +24323,32.5,0.5,0 +24324,32.5,0.4,0 +24325,32.5,0.2,0 +24326,32.5,0.1,0 +24327,32.5,0,0 +24329,32.5,-0.1,0 +24330,32.5,-0.2,0 +24331,32.5,-0.3,0 +24333,32.5,-0.4,0 +24334,32.5,-0.5,0 +24337,32.5,-0.6,0 +24338,32.5,-0.7,0 +24341,32.5,-0.8,0 +24344,32.5,-0.9,0 +24354,32.5,-0.8,0 +24358,32.5,-0.7,0 +24359,32.5,-0.6,0 +24361,32.5,-0.5,0 +24363,32.5,-0.4,0 +24365,32.5,-0.3,0 +24366,32.5,-0.2,0 +24368,32.5,-0.1,0 +24370,32.5,0.1,0 +24372,32.5,0.2,0 +24374,32.5,0.4,0 +24375,32.5,0.6,0 +24377,32.5,0.7,0 +24379,32.5,0.9,0 +24381,32.5,1.1,0 +24382,32.5,1.3,0 +24384,32.5,1.5,0 +24386,32.5,1.8,0 +24388,32.5,1.9,0 +24389,32.5,2.1,0 +24391,32.5,2.4,0 +24393,32.5,2.5,0 +24394,32.5,2.6,0 +24396,32.5,2.7,0 +24397,32.5,3,0 +24399,32.5,3.3,0 +24401,32.5,3.4,0 +24402,32.5,3.6,0 +24404,32.5,3.7,0 +24405,32.5,3.9,0 +24407,32.5,4,0 +24408,32.5,4.1,0 +24409,32.5,4.3,0 +24411,32.5,4.5,0 +24412,32.5,4.6,0 +24413,32.5,4.7,0 +24415,32.5,4.8,0 +24416,32.5,4.9,0 +24417,32.5,5,0 +24419,32.5,5.1,0 +24420,32.5,5.2,0 +24422,32.5,5.3,0 +24423,32.5,5.4,0 +24427,32.5,5.5,0 +24428,23,5.5,0 +24438,23,5.4,0 +24441,23,5.3,0 +24442,23,5.2,0 +24443,23,5.1,0 +24444,23,5,0 +24446,23,4.9,0 +24447,23,4.8,0 +24448,23,4.7,0 +24450,23,4.6,0 +24451,23,4.4,0 +24452,23,4.3,0 +24453,23,4.1,0 +24455,23,4,0 +24456,23,3.8,0 +24457,23,3.6,0 +24458,23,3.3,0 +24460,23,3.2,0 +24461,23,3.1,0 +24462,23,2.9,0 +24463,23,2.7,0 +24464,23,2.6,0 +24465,23,2.2,0 +24467,23,2,0 +24468,23,1.9,0 +24469,23,1.7,0 +24470,23,1.5,0 +24471,23,1.3,0 +24472,23,1.2,0 +24473,23,1,0 +24474,23,0.8,0 +24475,23,0.6,0 +24476,23,0.5,0 +24477,23,0.3,0 +24478,23,0.1,0 +24479,23,-0.1,0 +24480,23,-0.2,0 +24481,23,-0.4,0 +24482,23,-0.6,0 +24483,23,-0.7,0 +24484,23,-0.9,0 +24485,23,-1,0 +24486,23,-1.2,0 +24487,23,-1.3,0 +24488,23,-1.4,0 +24489,23,-1.6,0 +24490,23,-1.7,0 +24491,23,-1.8,0 +24492,23,-1.9,0 +24493,23,-2,0 +24494,23,-2.1,0 +24495,23,-2.3,0 +24497,23,-2.4,0 +24498,23,-2.5,0 +24499,23,-2.6,0 +24501,23,-2.7,0 +24502,23,-2.8,0 +24504,0,-3,83.8 +24505,20.6,-3,0 +24506,20.6,-3,0 +24511,20.6,-2.9,0 +24515,20.6,-2.8,0 +24517,20.6,-2.7,0 +24519,20.6,-2.6,0 +24521,20.6,-2.5,0 +24522,20.6,-2.4,0 +24524,20.6,-2.3,0 +24526,20.6,-2.2,0 +24527,20.6,-2.1,0 +24528,20.6,-2,0 +24530,20.6,-1.9,0 +24531,20.6,-1.8,0 +24533,20.6,-1.7,0 +24534,20.6,-1.6,0 +24535,20.6,-1.5,0 +24536,20.6,-1.4,0 +24538,20.6,-1.3,0 +24539,20.6,-1.2,0 +24541,20.6,-1.1,0 +24542,20.6,-1,0 +24543,20.6,-0.9,0 +24545,20.6,-0.8,0 +24546,20.6,-0.7,0 +24548,20.6,-0.6,0 +24550,20.6,-0.5,0 +24552,20.6,-0.4,0 +24554,20.6,-0.3,0 +24556,20.6,-0.2,0 +24558,20.6,-0.1,0 +24560,20.6,0,0 +24563,20.6,0.1,0 +24565,20.6,0.2,0 +24570,20.6,0.3,0 +24574,20.6,0.4,0 +24584,20.6,0.5,0 +24605,0,0.5,37.6 +24606,14.7,0.5,0 +24616,14.7,0.4,0 +24640,14.7,0.3,0 +24651,23.2,0.3,0 +24667,23.3,0.2,0 +24715,23.3,0.3,0 +24721,19,0.3,0 +24737,22.2,0.4,0 +24768,22.2,0.3,0 +24776,22.2,0.2,0 +24779,0,0.2,26.6 +24780,22.6,0.2,0 +24781,22.6,0.1,0 +24784,22.6,0,0 +24787,22.6,-0.1,0 +24790,22.6,-0.2,0 +24793,22.6,-0.3,0 +24796,22.6,-0.4,0 +24798,22.6,-0.5,0 +24801,22.6,-0.6,0 +24803,22.6,-0.7,0 +24804,22.6,-0.8,0 +24807,22.6,-0.9,0 +24809,22.6,-1,0 +24811,22.6,-1.1,0 +24814,22.6,-1.2,0 +24815,22.6,-1.3,0 +24818,22.6,-1.4,0 +24820,22.6,-1.5,0 +24822,22.6,-1.6,0 +24826,22.6,-1.7,0 +24830,22.6,-1.8,0 +24838,16.6,-1.8,0 +24840,16.6,-1.7,0 +24844,16.6,-1.6,0 +24846,23,-1.6,0 +24847,23,-1.5,0 +24848,23,-1.4,0 +24850,23,-1.3,0 +24851,23,-1.2,0 +24853,23,-1.1,0 +24854,23,-1,0 +24855,23,-0.9,0 +24857,23,-0.8,0 +24858,23,-0.7,0 +24859,23,-0.5,0 +24860,23,-0.4,0 +24861,23,-0.2,0 +24863,23,-0.1,0 +24864,23,0.1,0 +24865,23,0.2,0 +24866,23,0.5,0 +24868,23,0.6,0 +24869,23,0.8,0 +24870,23,1,0 +24871,23,1.1,0 +24872,23,1.4,0 +24874,23,1.6,0 +24875,23,1.8,0 +24876,23,1.9,0 +24877,23,2.1,0 +24878,23,2.2,0 +24879,23,2.4,0 +24880,23,2.6,0 +24881,23,2.7,0 +24882,23,2.9,0 +24883,23,3.1,0 +24884,23,3.3,0 +24885,23,3.5,0 +24886,23,3.6,0 +24887,23,3.7,0 +24888,23,3.9,0 +24889,23,4.1,0 +24890,23,4.2,0 +24891,23,4.4,0 +24892,23,4.5,0 +24893,0,4.7,36.6 +24894,15.9,4.7,0 +24895,15.9,4.9,0 +24896,15.9,5,0 +24897,15.9,5.2,0 +24898,15.9,5.3,0 +24899,15.9,5.4,0 +24900,15.9,5.5,0 +24901,15.9,5.6,0 +24903,15.9,5.7,0 +24904,15.9,5.8,0 +24905,15.9,5.9,0 +24907,15.9,6,0 +24911,15.9,6.1,0 +24913,15.9,6,0 +24917,15.9,5.9,0 +24919,15.9,5.8,0 +24921,15.9,5.7,0 +24922,15.9,5.6,0 +24923,15.9,5.5,0 +24924,15.9,5.4,0 +24925,15.9,5.1,0 +24927,15.9,5,0 +24928,10.4,4.9,0 +24929,22.5,4.7,0 +24930,22.5,4.6,0 +24931,22.5,4.4,0 +24932,22.5,4.2,0 +24933,22.5,4.1,0 +24934,22.5,3.9,0 +24935,22.5,3.7,0 +24936,22.5,3.5,0 +24937,22.5,3.3,0 +24938,22.5,3.1,0 +24939,22.5,2.9,0 +24940,22.5,2.7,0 +24941,22.5,2.5,0 +24942,22.5,2.3,0 +24943,22.5,2.1,0 +24944,22.5,1.9,0 +24945,22.5,1.7,0 +24946,22.5,1.4,0 +24947,22.5,1.2,0 +24948,22.5,1,0 +24949,22.5,0.5,0 +24951,22.5,0.3,0 +24952,22.5,0.1,0 +24953,22.5,-0.2,0 +24954,22.5,-0.4,0 +24955,22.5,-0.9,0 +24957,22.5,-1.1,0 +24958,22.5,-1.3,0 +24959,22.5,-1.5,0 +24960,22.5,-1.7,0 +24961,22.5,-1.9,0 +24962,22.5,-2.3,0 +24964,22.5,-2.5,0 +24965,17.6,-2.7,0 +24966,17.6,-2.9,0 +24967,17.6,-3.1,0 +24968,29.3,-3.3,0 +24969,29.3,-3.5,0 +24970,29.3,-3.6,0 +24971,29.3,-3.9,0 +24973,29.3,-4.1,0 +24974,29.3,-4.2,0 +24975,29.3,-4.4,0 +24976,29.3,-4.5,0 +24977,29.3,-4.7,0 +24979,29.3,-4.8,0 +24980,29.3,-5,0 +24981,29.3,-5.1,0 +24983,29.3,-5.2,0 +24984,29.3,-5.3,0 +24986,29.3,-5.4,0 +24987,29.3,-5.5,0 +24990,29.3,-5.6,0 +25000,29.3,-5.5,0 +25001,29.3,-5.4,0 +25003,29.3,-5.3,0 +25005,29.3,-5.2,0 +25006,29.3,-5.1,0 +25008,29.3,-5,0 +25009,29.3,-4.8,0 +25011,29.3,-4.7,0 +25012,29.3,-4.5,0 +25014,29.3,-4.3,0 +25015,29.3,-4.1,0 +25017,29.3,-4,0 +25018,29.3,-3.8,0 +25019,29.3,-3.5,0 +25021,29.3,-3.4,0 +25022,29.3,-3.2,0 +25023,29.3,-3.1,0 +25024,29.3,-2.7,0 +25026,29.3,-2.6,0 +25027,29.3,-2.4,0 +25028,29.3,-2.3,0 +25029,29.3,-2.1,0 +25030,29.3,-1.9,0 +25031,29.3,-1.7,0 +25032,29.3,-1.5,0 +25033,29.3,-1.3,0 +25034,29.3,-1.2,0 +25035,29.3,-1,0 +25036,29.3,-0.8,0 +25037,29.3,-0.6,0 +25038,29.3,-0.4,0 +25039,29.3,-0.3,0 +25040,29.3,-0.1,0 +25041,29.3,0.1,0 +25042,0,0.3,8.8 +25043,36.8,0.3,0 +25044,36.8,0.6,0 +25045,36.8,0.8,0 +25046,36.8,0.9,0 +25047,36.8,1.1,0 +25048,36.8,1.2,0 +25049,36.8,1.4,0 +25050,36.8,1.5,0 +25051,36.8,1.7,0 +25052,36.8,1.8,0 +25053,36.8,2,0 +25054,36.8,2.1,0 +25055,36.8,2.3,0 +25057,36.8,2.5,0 +25058,36.8,2.6,0 +25059,36.8,2.7,0 +25060,36.8,2.8,0 +25061,36.8,3,0 +25063,36.8,3.1,0 +25064,36.8,3.2,0 +25065,36.8,3.3,0 +25067,36.8,3.4,0 +25068,36.8,3.5,0 +25069,36.8,3.6,0 +25071,36.8,3.7,0 +25072,36.8,3.8,0 +25074,36.8,3.9,0 +25077,36.8,4,0 +25088,36.8,3.9,0 +25091,36.8,3.8,0 +25093,36.8,3.7,0 +25095,36.8,3.6,0 +25097,36.8,3.5,0 +25098,36.8,3.4,0 +25100,36.8,3.3,0 +25102,36.8,3.2,0 +25104,36.8,3.1,0 +25106,36.8,2.9,0 +25108,36.8,2.8,0 +25109,36.8,2.6,0 +25111,36.8,2.4,0 +25113,36.8,2.3,0 +25115,36.8,2.1,0 +25117,36.8,1.9,0 +25119,36.8,1.7,0 +25121,36.8,1.5,0 +25123,36.8,1.3,0 +25125,36.8,1.1,0 +25127,36.8,0.9,0 +25129,36.8,0.7,0 +25131,36.8,0.5,0 +25133,36.8,0.3,0 +25135,36.8,0.1,0 +25137,36.8,-0.1,0 +25139,36.8,-0.2,0 +25141,36.8,-0.4,0 +25143,36.8,-0.6,0 +25145,36.8,-0.8,0 +25147,36.8,-1,0 +25149,36.8,-1.1,0 +25151,36.8,-1.3,0 +25153,36.8,-1.5,0 +25155,36.8,-1.6,0 +25157,36.8,-1.8,0 +25159,36.8,-1.9,0 +25161,36.8,-2.1,0 +25163,36.8,-2.2,0 +25165,36.8,-2.3,0 +25167,36.8,-2.4,0 +25169,36.8,-2.5,0 +25171,36.8,-2.6,0 +25173,36.8,-2.7,0 +25175,36.8,-2.8,0 +25176,36.8,-2.9,0 +25180,36.8,-3,0 +25184,36.8,-3.1,0 +25191,36.8,-3.2,0 +25197,36.8,-3.1,0 +25203,36.8,-3,0 +25207,36.8,-2.9,0 +25210,36.8,-2.8,0 +25212,36.8,-2.7,0 +25214,36.8,-2.6,0 +25217,36.8,-2.5,0 +25219,36.8,-2.4,0 +25221,36.8,-2.3,0 +25222,36.8,-2.2,0 +25223,36.8,-2.1,0 +25225,36.8,-2,0 +25227,14.8,-1.9,0 +25228,14.8,-1.8,0 +25229,23.7,-1.8,0 +25230,23.7,-1.7,0 +25231,23.7,-1.6,0 +25233,23.7,-1.5,0 +25234,23.7,-1.4,0 +25235,23.7,-1.3,0 +25236,23.7,-1.2,0 +25238,23.7,-1.1,0 +25239,23.7,-1,0 +25240,23.7,-0.9,0 +25242,23.7,-0.8,0 +25244,23.7,-0.7,0 +25245,23.7,-0.6,0 +25246,23.7,-0.5,0 +25248,23.7,-0.4,0 +25249,23.7,-0.3,0 +25250,23.7,-0.2,0 +25251,23.7,-0.1,0 +25253,23.7,0,0 +25254,23.7,0.1,0 +25255,23.7,0.2,0 +25257,23.7,0.3,0 +25259,23.7,0.4,0 +25260,23.7,0.5,0 +25262,23.7,0.6,0 +25263,23.7,0.7,0 +25265,23.7,0.8,0 +25267,23.7,0.9,0 +25269,23.7,1,0 +25271,23.7,1.1,0 +25273,23.7,1.2,0 +25275,23.7,1.3,0 +25278,10,1.4,0 +25282,22.6,1.5,0 +25298,22.6,1.4,0 +25301,22.6,1.3,0 +25304,22.6,1.2,0 +25307,22.6,1.1,0 +25308,22.6,1,0 +25310,22.6,0.9,0 +25312,22.6,0.8,0 +25313,22.6,0.7,0 +25315,22.6,0.6,0 +25317,22.6,0.5,0 +25318,22.6,0.4,0 +25319,22.6,0.3,0 +25320,22.6,0.2,0 +25321,22.6,0.1,0 +25323,22.6,0,0 +25324,22.6,-0.1,0 +25326,22.6,-0.2,0 +25327,22.6,-0.3,0 +25328,22.6,-0.4,0 +25329,22.6,-0.5,0 +25330,16.7,-0.7,0 +25332,35.2,-0.8,0 +25333,35.2,-0.9,0 +25334,35.2,-1,0 +25336,35.2,-1.1,0 +25337,35.2,-1.2,0 +25338,35.2,-1.3,0 +25340,35.2,-1.4,0 +25341,35.2,-1.5,0 +25342,35.2,-1.6,0 +25343,35.2,-1.7,0 +25345,35.2,-1.8,0 +25346,35.2,-1.9,0 +25347,35.2,-2,0 +25349,35.2,-2.1,0 +25351,35.2,-2.2,0 +25352,35.2,-2.3,0 +25353,35.2,-2.4,0 +25356,35.2,-2.5,0 +25357,35.2,-2.6,0 +25360,35.2,-2.7,0 +25363,35.2,-2.8,0 +25365,35.2,-2.9,0 +25373,35.2,-3,0 +25375,35.2,-2.9,0 +25383,35.2,-2.8,0 +25386,35.2,-2.7,0 +25390,35.2,-2.6,0 +25393,35.2,-2.5,0 +25395,35.2,-2.4,0 +25397,35.2,-2.3,0 +25398,35.2,-2.2,0 +25400,35.2,-2.1,0 +25404,35.2,-2,0 +25405,35.2,-1.9,0 +25407,35.2,-1.8,0 +25409,35.2,-1.7,0 +25411,35.2,-1.6,0 +25412,35.2,-1.5,0 +25414,35.2,-1.4,0 +25416,35.2,-1.2,0 +25418,35.2,-1.1,0 +25420,35.2,-1,0 +25421,35.2,-0.9,0 +25423,35.2,-0.8,0 +25425,35.2,-0.7,0 +25427,35.2,-0.6,0 +25429,35.2,-0.5,0 +25430,35.2,-0.4,0 +25432,35.2,-0.3,0 +25434,35.2,-0.2,0 +25438,35.2,-0.1,0 +25440,35.2,0,0 +25442,35.2,0.1,0 +25444,35.2,0.2,0 +25445,35.2,0.3,0 +25449,35.2,0.4,0 +25451,35.2,0.5,0 +25455,35.2,0.6,0 +25459,35.2,0.7,0 +25465,35.2,0.8,0 +25471,35.2,0.9,0 +25498,35.2,0.8,0 +25511,35.2,0.7,0 +25521,35.2,0.6,0 +25538,35.2,0.5,0 +25572,35.2,0.6,0 +25599,35.2,0.7,0 +25612,35.2,0.8,0 +25620,35.2,0.9,0 +25626,35.2,1,0 +25632,35.2,1.1,0 +25635,35.2,1.2,0 +25639,35.2,1.3,0 +25643,35.2,1.4,0 +25646,35.2,1.5,0 +25648,35.2,1.6,0 +25650,35.2,1.7,0 +25654,35.2,1.8,0 +25655,35.2,1.9,0 +25657,35.2,2,0 +25660,35.2,2.1,0 +25662,35.2,2.2,0 +25664,35.2,2.3,0 +25665,35.2,2.4,0 +25668,35.2,2.5,0 +25670,35.2,2.6,0 +25671,35.2,2.7,0 +25673,35.2,2.8,0 +25676,35.2,2.9,0 +25677,35.2,3,0 +25680,35.2,3.1,0 +25681,35.2,3.2,0 +25683,35.2,3.3,0 +25686,35.2,3.4,0 +25688,35.2,3.5,0 +25691,35.2,3.6,0 +25694,35.2,3.7,0 +25699,0,3.8,3.8 +25700,26.5,3.8,0 +25701,26.5,3.8,0 +25704,26.5,3.7,0 +25709,26.5,3.6,0 +25713,26.5,3.5,0 +25715,26.5,3.4,0 +25717,26.5,3.3,0 +25718,26.5,3.2,0 +25720,26.5,3.1,0 +25722,26.5,3,0 +25723,26.5,2.9,0 +25724,26.5,2.8,0 +25725,26.5,2.7,0 +25726,26.5,2.6,0 +25728,26.5,2.5,0 +25729,26.5,2.4,0 +25730,26.5,2.2,0 +25732,26.5,2.1,0 +25733,26.5,2,0 +25734,26.5,1.8,0 +25736,26.5,1.7,0 +25737,26.5,1.5,0 +25738,26.5,1.3,0 +25740,26.5,1.2,0 +25741,26.5,1.1,0 +25742,26.5,0.9,0 +25744,26.5,0.8,0 +25745,26.5,0.5,0 +25747,26.5,0.4,0 +25748,26.5,0.2,0 +25750,26.5,0.1,0 +25751,26.5,0,0 +25752,26.5,-0.2,0 +25754,26.5,-0.3,0 +25755,26.5,-0.5,0 +25757,26.5,-0.7,0 +25758,26.5,-0.8,0 +25760,26.5,-0.9,0 +25761,26.5,-1.1,0 +25763,26.5,-1.2,0 +25764,26.5,-1.3,0 +25765,26.5,-1.4,0 +25768,26.5,-1.5,0 +25769,26.5,-1.6,0 +25772,26.5,-1.7,0 +25775,26.5,-1.8,0 +25787,26.5,-1.7,0 +25790,26.5,-1.6,0 +25793,26.5,-1.5,0 +25795,26.5,-1.4,0 +25796,26.5,-1.3,0 +25798,26.5,-1.2,0 +25800,26.5,-1.1,0 +25801,26.5,-1,0 +25802,26.5,-0.9,0 +25804,26.5,-0.8,0 +25805,0,-0.7,35.2 +25806,31.8,-0.7,0 +25807,31.8,-0.5,0 +25809,31.8,-0.4,0 +25811,31.8,-0.3,0 +25812,31.8,-0.2,0 +25814,31.8,-0.1,0 +25815,31.8,0,0 +25816,31.8,0.1,0 +25818,31.8,0.2,0 +25819,31.8,0.3,0 +25821,31.8,0.4,0 +25823,31.8,0.5,0 +25825,31.8,0.6,0 +25827,31.8,0.7,0 +25830,31.8,0.8,0 +25833,31.8,0.9,0 +25849,31.8,0.8,0 +25854,31.8,0.7,0 +25857,31.8,0.6,0 +25860,31.8,0.5,0 +25862,31.8,0.4,0 +25865,31.8,0.3,0 +25867,31.8,0.2,0 +25868,31.8,0.1,0 +25872,31.8,0,0 +25873,31.8,-0.1,0 +25875,31.8,-0.2,0 +25879,31.8,-0.3,0 +25880,31.8,-0.4,0 +25882,31.8,-0.5,0 +25886,31.8,-0.6,0 +25889,31.8,-0.7,0 +25892,31.8,-0.8,0 +25895,31.8,-0.9,0 +25901,31.8,-1,0 +25906,31.8,-1.1,0 +25912,17.9,-1.1,0 +25917,33.9,-1.1,0 +25928,33.9,-1,0 +25937,33.9,-0.9,0 +25944,33.9,-0.8,0 +25950,33.9,-0.7,0 +25957,33.9,-0.6,0 +25964,33.9,-0.5,0 +25974,33.9,-0.4,0 +25983,33.9,-0.3,0 +25998,33.9,-0.2,0 +26011,33.9,-0.1,0 +26018,33.9,0,0 +26024,33.9,0.1,0 +26029,33.9,0.2,0 +26033,33.9,0.3,0 +26038,33.9,0.4,0 +26039,33.9,0.5,0 +26043,33.9,0.6,0 +26046,33.9,0.7,0 +26049,33.9,0.8,0 +26051,33.9,0.9,0 +26054,33.9,1,0 +26057,33.9,1.1,0 +26059,33.9,1.2,0 +26062,33.9,1.3,0 +26064,33.9,1.4,0 +26067,33.9,1.5,0 +26070,33.9,1.6,0 +26074,33.9,1.7,0 +26077,0,1.7,32.6 +26078,37,1.7,0 +26096,37,1.7,0 +26100,37,1.6,0 +26104,37,1.5,0 +26107,37,1.4,0 +26108,37,1.3,0 +26111,37,1.2,0 +26113,37,1.1,0 +26115,37,1,0 +26118,37,0.9,0 +26120,37,0.8,0 +26121,37,0.7,0 +26123,37,0.6,0 +26125,37,0.5,0 +26127,37,0.4,0 +26129,37,0.3,0 +26131,37,0.2,0 +26132,37,0.1,0 +26134,37,0,0 +26136,37,-0.1,0 +26138,37,-0.2,0 +26140,37,-0.3,0 +26142,37,-0.4,0 +26144,37,-0.5,0 +26148,37,-0.6,0 +26150,37,-0.7,0 +26152,37,-0.8,0 +26156,37,-0.9,0 +26158,37,-1,0 +26162,37,-1.1,0 +26166,37,-1.2,0 +26176,37,-1.3,0 +26182,37,-1.2,0 +26193,37,-1.1,0 +26197,37,-1,0 +26201,37,-0.9,0 +26203,37,-0.8,0 +26207,37,-0.7,0 +26209,37,-0.6,0 +26211,37,-0.5,0 +26213,37,-0.4,0 +26214,37,-0.3,0 +26218,37,-0.2,0 +26220,37,-0.1,0 +26222,37,0,0 +26223,37,0.1,0 +26225,37,0.2,0 +26227,37,0.3,0 +26228,37,0.4,0 +26230,37,0.5,0 +26232,37,0.6,0 +26235,37,0.7,0 +26236,37,0.8,0 +26238,37,0.9,0 +26240,37,1,0 +26241,37,1.1,0 +26243,37,1.2,0 +26246,37,1.3,0 +26248,37,1.4,0 +26251,37,1.5,0 +26254,37,1.7,0 +26255,0,1.7,12.2 +26256,30.1,1.7,0 +26257,30.1,1.7,0 +26264,30.1,1.8,0 +26273,30.1,1.7,0 +26280,30.1,1.6,0 +26284,30.1,1.5,0 +26287,30.1,1.4,0 +26290,30.1,1.3,0 +26294,30.1,1.2,0 +26297,30.1,1.1,0 +26298,30.1,1,0 +26302,30.1,0.9,0 +26303,30.1,0.8,0 +26307,30.1,0.7,0 +26310,30.1,0.6,0 +26312,30.1,0.5,0 +26315,30.1,0.4,0 +26318,30.1,0.3,0 +26321,30.1,0.2,0 +26325,30.1,0.1,0 +26330,30.1,0,0 +26336,30.1,-0.1,0 +26347,30.1,-0.2,0 +26357,30.1,-0.1,0 +26386,0,-0.1,6.2 +26387,38.6,-0.1,0 +26396,38.6,-0.2,0 +26402,38.6,-0.3,0 +26406,38.6,-0.4,0 +26411,38.6,-0.5,0 +26414,38.6,-0.6,0 +26417,38.6,-0.7,0 +26421,38.6,-0.8,0 +26424,38.6,-0.9,0 +26428,38.6,-1,0 +26431,38.6,-1.1,0 +26435,38.6,-1.2,0 +26439,38.6,-1.3,0 +26444,38.6,-1.4,0 +26449,38.6,-1.5,0 +26456,38.6,-1.6,0 +26473,38.6,-1.7,0 +26501,38.6,-1.6,0 +26536,38.6,-1.5,0 +26551,38.6,-1.4,0 +26559,38.6,-1.3,0 +26568,38.6,-1.2,0 +26575,38.6,-1.1,0 +26581,38.6,-1,0 +26587,38.6,-0.9,0 +26592,38.6,-0.8,0 +26596,38.6,-0.7,0 +26600,38.6,-0.6,0 +26604,38.6,-0.5,0 +26609,38.6,-0.4,0 +26613,38.6,-0.3,0 +26617,38.6,-0.2,0 +26622,38.6,-0.1,0 +26624,38.6,0,0 +26628,38.6,0.1,0 +26632,38.6,0.2,0 +26634,38.6,0.3,0 +26639,38.6,0.4,0 +26643,38.6,0.5,0 +26647,38.6,0.6,0 +26651,38.6,0.7,0 +26655,38.6,0.8,0 +26659,38.6,0.9,0 +26664,38.6,1,0 +26666,38.6,1.1,0 +26670,38.6,1.2,0 +26674,38.6,1.3,0 +26678,38.6,1.4,0 +26682,38.6,1.5,0 +26686,38.6,1.6,0 +26690,38.6,1.7,0 +26694,38.6,1.8,0 +26696,38.6,1.9,0 +26700,38.6,2,0 +26702,38.6,2.1,0 +26706,38.6,2.2,0 +26708,38.6,2.3,0 +26712,38.6,2.4,0 +26714,38.6,2.5,0 +26715,38.6,2.6,0 +26719,38.6,2.7,0 +26721,38.6,2.8,0 +26724,38.6,2.9,0 +26726,38.6,3,0 +26729,38.6,3.1,0 +26732,38.6,3.2,0 +26735,38.6,3.3,0 +26738,38.6,3.4,0 +26742,38.6,3.5,0 +26749,38.6,3.6,0 +26754,22.5,3.6,0 +26762,22.5,3.5,0 +26766,22.5,3.4,0 +26770,22.5,3.3,0 +26772,22.5,3.2,0 +26775,22.5,3.1,0 +26776,22.5,3,0 +26779,22.5,2.9,0 +26780,22.5,2.8,0 +26782,22.5,2.7,0 +26783,22.5,2.6,0 +26784,22.5,2.5,0 +26786,22.5,2.4,0 +26787,22.5,2.3,0 +26789,22.5,2.2,0 +26790,22.5,2.1,0 +26791,22.5,2,0 +26792,22.5,1.9,0 +26793,22.5,1.8,0 +26794,22.5,1.7,0 +26795,22.5,1.6,0 +26796,22.5,1.5,0 +26797,22.5,1.4,0 +26798,22.5,1.3,0 +26799,22.5,1.2,0 +26800,22.5,1.1,0 +26801,22.5,1,0 +26802,22.5,0.8,0 +26803,22.5,0.7,0 +26804,22.5,0.6,0 +26805,0,0.4,84.4 +26806,22.4,0.4,0 +26807,22.4,0.2,0 +26808,22.4,0.1,0 +26809,22.4,-0.1,0 +26810,22.4,-0.3,0 +26812,22.4,-0.4,0 +26813,22.4,-0.5,0 +26814,22.4,-0.7,0 +26815,22.4,-0.8,0 +26816,22.4,-1,0 +26817,22.4,-1.1,0 +26818,22.4,-1.2,0 +26819,22.4,-1.3,0 +26820,22.4,-1.5,0 +26821,22.4,-1.6,0 +26822,22.4,-1.7,0 +26823,22.4,-1.9,0 +26824,22.4,-2,0 +26825,22.4,-2.2,0 +26826,22.4,-2.3,0 +26827,22.4,-2.4,0 +26828,22.4,-2.7,0 +26830,22.4,-2.8,0 +26831,22.4,-3,0 +26832,22.4,-3.1,0 +26833,22.4,-3.3,0 +26834,22.4,-3.5,0 +26836,22.4,-3.6,0 +26837,22.4,-3.8,0 +26838,22.4,-3.9,0 +26839,22.4,-4.1,0 +26841,22.4,-4.2,0 +26842,22.4,-4.4,0 +26843,22.4,-4.5,0 +26844,22.4,-4.6,0 +26845,22.4,-4.8,0 +26847,22.4,-4.9,0 +26848,22.4,-5,0 +26849,22.4,-5.1,0 +26850,22.4,-5.2,0 +26851,22.4,-5.3,0 +26853,22.4,-5.4,0 +26854,22.4,-5.5,0 +26855,22.4,-5.6,0 +26857,22.4,-5.7,0 +26858,22.4,-5.8,0 +26861,22.4,-5.9,0 +26863,22.4,-6,0 +26871,0,-6,36.2 +26872,31.6,-6,0 +26874,31.6,-5.9,0 +26877,31.6,-5.8,0 +26879,31.6,-5.7,0 +26881,31.6,-5.6,0 +26883,31.6,-5.5,0 +26884,31.6,-5.4,0 +26886,31.6,-5.3,0 +26888,31.6,-5.2,0 +26889,31.6,-5.1,0 +26890,31.6,-5,0 +26891,31.6,-4.9,0 +26893,31.6,-4.8,0 +26894,31.6,-4.6,0 +26895,31.6,-4.5,0 +26896,31.6,-4.4,0 +26898,31.6,-4.2,0 +26899,31.6,-4,0 +26901,31.6,-3.9,0 +26902,31.6,-3.7,0 +26904,31.6,-3.6,0 +26905,31.6,-3.4,0 +26907,31.6,-3.3,0 +26908,31.6,-3.2,0 +26910,31.6,-3,0 +26911,31.6,-2.8,0 +26913,31.6,-2.6,0 +26915,31.6,-2.5,0 +26916,31.6,-2.4,0 +26918,31.6,-2.2,0 +26920,31.6,-2.1,0 +26921,31.6,-1.9,0 +26923,31.6,-1.7,0 +26925,31.6,-1.6,0 +26926,31.6,-1.5,0 +26928,31.6,-1.3,0 +26930,31.6,-1.2,0 +26931,31.6,-1.1,0 +26933,31.6,-1,0 +26935,31.6,-0.9,0 +26937,31.6,-0.8,0 +26938,31.6,-0.7,0 +26940,31.6,-0.6,0 +26942,31.6,-0.5,0 +26944,31.6,-0.4,0 +26945,31.6,-0.3,0 +26947,31.6,-0.2,0 +26951,31.6,-0.1,0 +26953,31.6,0,0 +26956,31.6,0.1,0 +26960,31.6,0.2,0 +26965,31.6,0.3,0 +26970,31.6,0.4,0 +26998,31.6,0.3,0 +27005,31.6,0.2,0 +27012,31.6,0.1,0 +27017,31.6,0,0 +27022,31.6,-0.1,0 +27027,31.6,-0.2,0 +27033,31.6,-0.3,0 +27038,31.6,-0.4,0 +27043,31.6,-0.5,0 +27053,31.6,-0.6,0 +27070,31.6,-0.5,0 +27078,31.6,-0.4,0 +27083,31.6,-0.3,0 +27087,22.2,-0.3,0 +27088,22.2,-0.2,0 +27091,30.4,-0.1,0 +27095,30.4,0,0 +27098,30.4,0.1,0 +27101,30.4,0.2,0 +27104,30.4,0.3,0 +27107,30.4,0.4,0 +27110,30.4,0.5,0 +27112,30.4,0.6,0 +27115,30.4,0.7,0 +27118,30.4,0.8,0 +27121,30.4,0.9,0 +27124,30.4,1,0 +27127,30.4,1.1,0 +27131,30.4,1.2,0 +27134,30.4,1.3,0 +27136,30.4,1.4,0 +27139,30.4,1.5,0 +27142,30.4,1.6,0 +27147,30.4,1.7,0 +27151,30.4,1.8,0 +27154,30.4,1.9,0 +27159,30.4,2,0 +27164,30.4,2.1,0 +27172,30.4,2.2,0 +27194,30.4,2.1,0 +27199,30.4,2,0 +27203,30.4,1.9,0 +27207,0,1.9,8.6 +27208,32,1.9,0 +27210,32,1.7,0 +27213,32,1.6,0 +27215,32,1.5,0 +27217,32,1.4,0 +27220,32,1.3,0 +27222,32,1.2,0 +27224,32,1.1,0 +27227,32,1,0 +27228,32,0.9,0 +27231,32,0.8,0 +27234,32,0.7,0 +27235,32,0.6,0 +27238,32,0.5,0 +27239,32,0.4,0 +27242,32,0.3,0 +27245,32,0.2,0 +27248,32,0.1,0 +27252,32,0,0 +27255,32,-0.1,0 +27258,32,-0.2,0 +27265,32,-0.3,0 +27296,32,-0.2,0 +27309,32,-0.1,0 +27355,32,-0.2,0 +27363,36.6,-0.2,0 +27368,36.6,-0.3,0 +27381,36.6,-0.4,0 +27395,36.6,-0.5,0 +27415,36.6,-0.6,0 +27450,36.6,-0.5,0 +27477,36.6,-0.4,0 +27499,36.6,-0.3,0 +27521,36.6,-0.2,0 +27548,36.6,-0.1,0 +27608,36.6,-0.2,0 +27637,36.6,-0.3,0 +27699,36.6,-0.4,0 +27709,36.6,-0.5,0 +27718,36.6,-0.6,0 +27729,36.6,-0.7,0 +27735,0,-0.7,9.4 +27736,38.7,-0.7,0 +27749,38.7,-0.6,0 +27758,38.7,-0.5,0 +27764,38.7,-0.4,0 +27770,38.7,-0.3,0 +27776,38.7,-0.2,0 +27781,38.7,-0.1,0 +27787,38.7,0,0 +27796,38.7,0.1,0 +27831,38.7,0,0 +27845,38.7,-0.1,0 +27860,38.7,-0.2,0 +27918,38.7,-0.1,0 +27935,38.7,0,0 +27947,38.7,0.1,0 +27958,38.7,0.2,0 +27968,38.7,0.3,0 +27978,38.7,0.4,0 +28013,38.7,0.3,0 +28019,38.7,0.2,0 +28025,38.7,0.1,0 +28029,38.7,0,0 +28033,38.7,-0.1,0 +28039,38.7,-0.2,0 +28045,38.7,-0.3,0 +28058,38.7,-0.2,0 +28059,0,-0.2,13.4 +28060,22.3,-0.2,0 +28063,22.3,-0.1,0 +28067,22.3,0,0 +28069,22.3,0.1,0 +28072,22.3,0.2,0 +28074,22.3,0.3,0 +28076,22.3,0.4,0 +28078,22.3,0.5,0 +28079,22.3,0.6,0 +28081,22.3,0.7,0 +28082,22.3,0.8,0 +28083,22.3,0.9,0 +28085,22.3,1,0 +28086,22.3,1.1,0 +28088,22.3,1.2,0 +28090,22.3,1.3,0 +28091,22.3,1.4,0 +28092,22.3,1.5,0 +28094,22.3,1.6,0 +28096,22.3,1.7,0 +28097,22.3,1.8,0 +28098,22.3,1.9,0 +28101,22.3,2,0 +28102,22.3,2.1,0 +28105,22.3,2.2,0 +28106,22.3,2.3,0 +28110,22.3,2.4,0 +28112,22.3,2.5,0 +28117,18.2,2.5,0 +28118,18.2,2.6,0 +28121,36,2.6,0 +28123,36,2.5,0 +28129,36,2.4,0 +28132,36,2.3,0 +28135,36,2.2,0 +28137,36,2.1,0 +28140,36,2,0 +28142,36,1.9,0 +28144,36,1.8,0 +28146,36,1.7,0 +28147,36,1.6,0 +28150,36,1.5,0 +28152,36,1.4,0 +28153,36,1.3,0 +28155,36,1.2,0 +28156,36,1.1,0 +28158,36,1,0 +28161,36,0.9,0 +28163,36,0.8,0 +28165,36,0.7,0 +28166,36,0.6,0 +28169,36,0.5,0 +28171,36,0.4,0 +28175,36,0.3,0 +28178,36,0.2,0 +28182,36,0.1,0 +28185,36,0,0 +28191,36,-0.1,0 +28226,36,0,0 +28242,36,0.1,0 +28262,36,0.2,0 +28304,36,0.1,0 +28319,36,0,0 +28329,36,-0.1,0 +28339,36,-0.2,0 +28340,17.6,-0.2,0 +28343,33.9,-0.2,0 +28348,33.9,-0.3,0 +28357,33.9,-0.4,0 +28367,33.9,-0.5,0 +28377,33.9,-0.6,0 +28391,33.9,-0.7,0 +28407,33.9,-0.8,0 +28428,33.9,-0.9,0 +28468,33.9,-0.8,0 +28491,33.9,-0.7,0 +28515,33.9,-0.6,0 +28555,33.9,-0.5,0 +28597,33.9,-0.6,0 +28623,33.9,-0.7,0 +28638,33.9,-0.8,0 +28650,33.9,-0.9,0 +28666,33.9,-1,0 +28700,33.9,-0.9,0 +28711,33.9,-0.8,0 +28720,33.9,-0.7,0 +28727,33.9,-0.6,0 +28734,33.9,-0.5,0 +28740,33.9,-0.4,0 +28747,33.9,-0.3,0 +28754,33.9,-0.2,0 +28763,33.9,-0.1,0 +28772,33.9,0,0 +28788,33.9,0.1,0 +28829,29.6,0.1,0 +28831,29.6,0.2,0 +28834,38.1,0.2,0 +28856,38.1,0.3,0 +28871,38.1,0.4,0 +28882,38.1,0.5,0 +28892,38.1,0.6,0 +28900,38.1,0.7,0 +28909,38.1,0.8,0 +28917,38.1,0.9,0 +28925,38.1,1,0 +28934,38.1,1.1,0 +28942,38.1,1.2,0 +28951,38.1,1.3,0 +28961,38.1,1.4,0 +28974,38.1,1.5,0 +28984,41.3,1.5,0 +29011,41.3,1.4,0 +29025,41.3,1.3,0 +29034,41.3,1.2,0 +29040,41.3,1.1,0 +29048,41.3,1,0 +29054,41.3,0.9,0 +29060,41.3,0.8,0 +29066,41.3,0.7,0 +29071,41.3,0.6,0 +29076,41.3,0.5,0 +29079,41.3,0.4,0 +29084,41.3,0.3,0 +29089,41.3,0.2,0 +29094,41.3,0.1,0 +29098,41.3,0,0 +29103,41.3,-0.1,0 +29107,41.3,-0.2,0 +29108,24.2,-0.2,0 +29111,24.2,-0.3,0 +29115,24.2,-0.4,0 +29120,24.2,-0.5,0 +29126,24.2,-0.6,0 +29133,24.2,-0.7,0 +29140,0,-0.7,11.6 +29141,31.7,-0.7,0 +29164,31.7,-0.6,0 +29172,31.7,-0.5,0 +29180,31.7,-0.4,0 +29188,31.7,-0.3,0 +29197,31.7,-0.2,0 +29209,31.7,-0.1,0 +29244,31.7,-0.2,0 +29257,31.7,-0.3,0 +29267,0,-0.3,11 +29268,34.6,-0.3,0 +29274,34.6,-0.5,0 +29281,34.6,-0.6,0 +29288,34.6,-0.7,0 +29296,34.6,-0.8,0 +29305,34.6,-0.9,0 +29326,34.6,-0.8,0 +29334,34.6,-0.7,0 +29339,34.6,-0.6,0 +29343,34.6,-0.5,0 +29347,34.6,-0.4,0 +29349,34.6,-0.3,0 +29351,34.6,-0.2,0 +29355,34.6,-0.1,0 +29356,34.6,0,0 +29358,34.6,0.1,0 +29360,34.6,0.2,0 +29362,34.6,0.3,0 +29364,34.6,0.4,0 +29366,34.6,0.5,0 +29368,34.6,0.6,0 +29370,34.6,0.7,0 +29372,34.6,0.9,0 +29374,34.6,1,0 +29375,34.6,1.1,0 +29377,34.6,1.2,0 +29379,34.6,1.3,0 +29381,34.6,1.5,0 +29383,34.6,1.6,0 +29385,34.6,1.7,0 +29386,34.6,1.8,0 +29388,34.6,2,0 +29390,34.6,2.1,0 +29392,34.6,2.2,0 +29394,34.6,2.3,0 +29395,34.6,2.4,0 +29397,34.6,2.5,0 +29399,34.6,2.6,0 +29400,34.6,2.7,0 +29402,34.6,2.8,0 +29404,34.6,2.9,0 +29405,34.6,3,0 +29407,34.6,3.1,0 +29409,34.6,3.2,0 +29412,34.6,3.3,0 +29414,34.6,3.4,0 +29420,34.6,3.5,0 +29430,34.6,3.4,0 +29433,34.6,3.3,0 +29436,34.6,3.2,0 +29438,0,3.2,8.8 +29439,17.2,3.2,0 +29441,17.2,3,0 +29442,17.2,2.9,0 +29444,17.2,2.8,0 +29445,17.2,2.7,0 +29447,17.2,2.6,0 +29448,17.2,2.5,0 +29449,17.2,2.4,0 +29451,17.2,2.3,0 +29452,17.2,2.2,0 +29453,17.2,2.1,0 +29455,17.2,2,0 +29456,17.2,1.9,0 +29457,17.2,1.7,0 +29459,17.2,1.6,0 +29461,17.2,1.5,0 +29462,17.2,1.4,0 +29463,17.2,1.3,0 +29465,17.2,1.2,0 +29466,17.2,1.1,0 +29467,17.2,1,0 +29468,0,0.9,4.2 +29469,50.6,0.9,0 +29470,50.6,0.7,0 +29472,50.6,0.6,0 +29473,50.6,0.5,0 +29474,50.6,0.4,0 +29476,50.6,0.3,0 +29477,50.6,0.2,0 +29479,50.6,0.1,0 +29481,50.6,0,0 +29482,50.6,-0.1,0 +29485,50.6,-0.2,0 +29487,50.6,-0.3,0 +29490,50.6,-0.4,0 +29494,50.6,-0.5,0 +29513,50.6,-0.4,0 +29518,50.6,-0.3,0 +29522,50.6,-0.2,0 +29526,50.6,-0.1,0 +29530,50.6,0,0 +29532,50.6,0.1,0 +29536,50.6,0.2,0 +29538,50.6,0.3,0 +29542,50.6,0.4,0 +29545,50.6,0.5,0 +29549,50.6,0.6,0 +29551,50.6,0.7,0 +29556,50.6,0.8,0 +29558,50.6,0.9,0 +29560,50.6,1,0 +29565,50.6,1.1,0 +29567,50.6,1.2,0 +29572,50.6,1.3,0 +29574,50.6,1.4,0 +29579,50.6,1.5,0 +29581,50.6,1.6,0 +29586,50.6,1.7,0 +29588,50.6,1.8,0 +29593,50.6,1.9,0 +29598,50.6,2,0 +29603,50.6,2.1,0 +29610,50.6,2.2,0 +29638,50.6,2.1,0 +29643,50.6,2,0 +29648,50.6,1.9,0 +29651,50.6,1.8,0 +29656,50.6,1.7,0 +29659,50.6,1.6,0 +29661,50.6,1.5,0 +29664,50.6,1.4,0 +29667,50.6,1.3,0 +29669,50.6,1.2,0 +29672,50.6,1.1,0 +29675,50.6,0.9,0 +29677,50.6,0.8,0 +29680,50.6,0.7,0 +29683,50.6,0.6,0 +29685,50.6,0.5,0 +29688,50.6,0.3,0 +29691,50.6,0.2,0 +29693,50.6,0.1,0 +29696,50.6,-0.1,0 +29699,50.6,-0.2,0 +29701,50.6,-0.3,0 +29704,50.6,-0.5,0 +29707,50.6,-0.6,0 +29710,50.6,-0.7,0 +29712,50.6,-0.8,0 +29715,50.6,-0.9,0 +29718,50.6,-1.1,0 +29720,50.6,-1.2,0 +29723,50.6,-1.3,0 +29726,50.6,-1.4,0 +29729,50.6,-1.5,0 +29731,50.6,-1.6,0 +29734,50.6,-1.7,0 +29737,50.6,-1.8,0 +29739,50.6,-1.9,0 +29742,50.6,-2,0 +29748,50.6,-2.1,0 +29750,50.6,-2.2,0 +29753,50.6,-2.3,0 +29759,50.6,-2.4,0 +29764,50.6,-2.5,0 +29770,50.6,-2.6,0 +29781,50.6,-2.7,0 +29817,50.6,-2.6,0 +29828,50.6,-2.5,0 +29834,50.6,-2.4,0 +29840,50.6,-2.3,0 +29845,50.6,-2.2,0 +29851,50.6,-2.1,0 +29854,50.6,-2,0 +29859,50.6,-1.9,0 +29862,50.6,-1.8,0 +29868,50.6,-1.7,0 +29871,50.6,-1.6,0 +29874,50.6,-1.5,0 +29876,50.6,-1.4,0 +29879,50.6,-1.3,0 +29882,50.6,-1.2,0 +29885,50.6,-1.1,0 +29888,50.6,-1,0 +29890,50.6,-0.9,0 +29893,50.6,-0.8,0 +29896,50.6,-0.7,0 +29899,50.6,-0.6,0 +29902,50.6,-0.5,0 +29904,50.6,-0.4,0 +29907,50.6,-0.3,0 +29910,50.6,-0.2,0 +29913,50.6,-0.1,0 +29916,50.6,0,0 +29921,50.6,0.1,0 +29924,50.6,0.2,0 +29927,50.6,0.3,0 +29929,50.6,0.4,0 +29932,50.6,0.5,0 +29935,50.6,0.6,0 +29940,50.6,0.7,0 +29943,50.6,0.8,0 +29948,50.6,0.9,0 +29954,50.6,1,0 +29962,50.6,1.1,0 +29993,50.6,1,0 +30003,50.6,0.9,0 +30007,50.6,0.8,0 +30015,50.6,0.7,0 +30022,50.6,0.6,0 +30026,50.6,0.5,0 +30032,50.6,0.4,0 +30038,50.6,0.3,0 +30043,50.6,0.2,0 +30047,50.6,0.1,0 +30050,50.6,0,0 +30055,50.6,-0.1,0 +30059,50.6,-0.8,0 +30061,0,-0.8,55.2 +30062,36.4,-0.8,0 +30064,36.4,-1,0 +30069,36.4,-1.1,0 +30073,36.4,-1.2,0 +30081,36.4,-1.3,0 +30094,36.4,-1.2,0 +30102,36.4,-1.1,0 +30107,36.4,-1,0 +30112,36.4,-0.9,0 +30115,36.4,-0.8,0 +30119,36.4,-0.7,0 +30122,36.4,-0.6,0 +30126,36.4,-0.5,0 +30130,36.4,-0.4,0 +30132,36.4,-0.3,0 +30136,36.4,-0.2,0 +30140,36.4,-0.1,0 +30142,36.4,0,0 +30146,36.4,0.1,0 +30150,36.4,0.2,0 +30154,36.4,0.3,0 +30158,36.4,0.4,0 +30162,36.4,0.5,0 +30166,36.4,0.6,0 +30172,36.4,0.7,0 +30177,36.4,0.8,0 +30186,36.4,0.9,0 +30200,26.9,0.9,0 +30206,26.9,0.8,0 +30213,26.9,0.7,0 +30218,26.9,0.6,0 +30222,26.9,0.5,0 +30226,26.9,0.4,0 +30229,26.9,0.3,0 +30231,26.9,0.2,0 +30236,26.9,0.1,0 +30239,26.9,0,0 +30242,26.9,-0.1,0 +30244,26.9,-0.2,0 +30247,26.9,-0.3,0 +30250,26.9,-0.4,0 +30253,35.6,-0.5,0 +30256,35.6,-0.6,0 +30259,35.6,-0.7,0 +30262,35.6,-0.8,0 +30267,35.6,-0.9,0 +30272,35.6,-1,0 +30278,35.6,-1.1,0 +30289,35.6,-1.2,0 +30305,35.6,-1.1,0 +30320,35.6,-1,0 +30332,35.6,-0.9,0 +30341,35.6,-0.8,0 +30353,35.6,-0.7,0 +30364,35.6,-0.6,0 +30376,35.6,-0.5,0 +30389,35.6,-0.4,0 +30393,39.7,-0.4,0 +30399,39.7,-0.3,0 +30412,39.7,-0.2,0 +30422,39.7,-0.1,0 +30433,39.7,0,0 +30441,39.7,0.1,0 +30452,39.7,0.2,0 +30465,39.7,0.3,0 +30483,39.7,0.4,0 +30507,39.7,0.3,0 +30519,39.7,0.2,0 +30525,39.7,0.1,0 +30531,39.7,0,0 +30535,39.7,-0.1,0 +30539,39.7,-0.2,0 +30543,39.7,-0.3,0 +30545,39.7,-0.4,0 +30549,39.7,-0.5,0 +30550,39.7,-0.6,0 +30554,39.7,-0.7,0 +30556,39.7,-0.8,0 +30559,39.7,-0.9,0 +30560,39.7,-1,0 +30563,39.7,-1.1,0 +30565,39.7,-1.2,0 +30568,39.7,-1.3,0 +30570,39.7,-1.4,0 +30571,39.7,-1.5,0 +30574,39.7,-1.6,0 +30576,39.7,-1.7,0 +30577,39.7,-1.8,0 +30580,39.7,-1.9,0 +30582,39.7,-2,0 +30584,39.7,-2.1,0 +30586,0,-2.2,10 +30587,14.5,-2.2,0 +30588,14.5,-2.3,0 +30591,14.5,-2.4,0 +30593,14.5,-2.5,0 +30595,14.5,-2.6,0 +30598,14.5,-2.7,0 +30602,14.5,-2.8,0 +30608,0,-2.8,2 +30609,14.5,-2.8,0 +30611,14.5,-2.9,0 +30616,14.5,-2.8,0 +30622,14.5,-2.7,0 +30624,14.5,-2.6,0 +30627,14.5,-2.5,0 +30629,14.5,-2.4,0 +30632,14.5,-2.3,0 +30633,14.5,-2.2,0 +30635,14.5,-2.1,0 +30636,14.5,-2,0 +30638,14.5,-1.9,0 +30639,14.5,-1.8,0 +30640,14.5,-1.7,0 +30642,14.5,-1.6,0 +30643,14.5,-1.5,0 +30644,14.5,-1.4,0 +30645,14.5,-1.3,0 +30647,14.5,-1.2,0 +30648,0,-1.1,42.8 +30649,25.8,-1.1,0 +30650,25.8,-0.9,0 +30651,25.8,-0.8,0 +30652,25.8,-0.7,0 +30653,25.8,-0.6,0 +30655,25.8,-0.5,0 +30656,25.8,-0.4,0 +30657,25.8,-0.3,0 +30658,25.8,-0.2,0 +30659,25.8,-0.1,0 +30661,25.8,0,0 +30662,25.8,0.2,0 +30664,25.8,0.3,0 +30665,25.8,0.4,0 +30667,25.8,0.5,0 +30669,25.8,0.6,0 +30671,25.8,0.7,0 +30672,25.8,0.8,0 +30674,25.8,0.9,0 +30675,25.8,1,0 +30678,25.8,1.1,0 +30680,25.8,1.2,0 +30682,25.8,1.3,0 +30686,25.8,1.4,0 +30690,25.8,1.5,0 +30707,25.8,1.4,0 +30714,25.8,1.3,0 +30719,25.8,1.2,0 +30723,25.8,1.1,0 +30727,25.8,1,0 +30731,25.8,0.9,0 +30735,25.8,0.8,0 +30740,25.8,0.7,0 +30744,25.8,0.6,0 +30749,25.8,0.5,0 +30753,25.8,0.4,0 +30759,25.8,0.3,0 +30764,25.8,0.2,0 +30772,25.8,0.1,0 +30781,25.8,0,0 +30792,25.8,-0.1,0 +30807,25.8,-0.2,0 +30832,25.5,-0.1,0 +30833,17.6,-0.1,0 +30836,23.2,-0.1,0 +30842,23.2,0,0 +30847,23.2,0.1,0 +30852,23.2,0.2,0 +30857,23.2,0.3,0 +30861,23.2,0.4,0 +30863,23.2,0.5,0 +30867,23.2,0.6,0 +30870,23.2,0.7,0 +30873,23.2,0.8,0 +30876,23.2,0.9,0 +30879,23.2,1,0 +30882,23.2,1.1,0 +30885,23.2,1.2,0 +30889,23,1.3,0 +30893,17.4,1.4,0 +30897,17.4,1.5,0 +30901,33.4,1.5,0 +30903,33.4,1.6,0 +30929,33.4,1.5,0 +30937,33.4,1.4,0 +30943,33.4,1.3,0 +30950,33.4,1.2,0 +30960,33.4,1.1,0 +30978,33.4,1.2,0 +30988,33.4,1.3,0 +30993,33.4,1.4,0 +30999,33.4,1.5,0 +31002,33.4,1.6,0 +31008,33.4,1.7,0 +31011,33.4,1.8,0 +31015,33.4,1.9,0 +31018,33.4,2,0 +31022,33.4,2.1,0 +31026,33.4,2.2,0 +31029,33.4,2.3,0 +31033,33.4,2.4,0 +31038,33.4,2.5,0 +31043,33.4,2.6,0 +31048,33.4,2.7,0 +31056,33.4,2.8,0 +31060,0,2.8,13.4 +31061,22.8,2.8,0 +31068,22.8,2.7,0 +31075,22.8,2.6,0 +31079,22.8,2.5,0 +31082,22.8,2.4,0 +31085,22.8,2.3,0 +31088,22.8,2.2,0 +31090,22.8,2.1,0 +31092,22.8,2,0 +31093,22.8,1.9,0 +31096,22.8,1.8,0 +31097,22.8,1.7,0 +31100,22.8,1.6,0 +31101,22.8,1.5,0 +31102,22.8,1.4,0 +31103,22.8,1.3,0 +31105,22.8,1.2,0 +31107,22.8,1.1,0 +31108,22.8,1,0 +31110,22.8,0.9,0 +31111,22.8,0.8,0 +31112,22.8,0.7,0 +31113,22.8,0.6,0 +31114,22.8,0.5,0 +31115,22.8,0.4,0 +31117,22.8,0.3,0 +31118,22.8,0.2,0 +31119,22.8,0.1,0 +31120,22.8,0,0 +31121,22.8,-0.1,0 +31122,22.8,-0.2,0 +31125,22.8,-0.3,0 +31126,22.8,-0.4,0 +31127,22.8,-0.5,0 +31128,22.8,-0.6,0 +31130,22.8,-0.7,0 +31131,22.8,-0.8,0 +31132,22.8,-0.9,0 +31133,22.8,-1,0 +31134,22.8,-1.1,0 +31135,22.8,-1.2,0 +31137,22.8,-1.3,0 +31138,22.8,-1.4,0 +31139,22.8,-1.5,0 +31140,45.1,-1.6,0 +31142,45.1,-1.7,0 +31143,45.1,-1.8,0 +31144,45.1,-1.9,0 +31146,45.1,-2,0 +31147,45.1,-2.1,0 +31148,45.1,-2.2,0 +31151,45.1,-2.3,0 +31153,45.1,-2.4,0 +31154,45.1,-2.5,0 +31155,45.1,-2.6,0 +31157,45.1,-2.7,0 +31160,45.1,-2.8,0 +31161,45.1,-2.9,0 +31163,45.1,-3,0 +31166,45.1,-3.1,0 +31169,45.1,-3.2,0 +31171,45.1,-3.3,0 +31174,45.1,-3.4,0 +31180,45.1,-3.5,0 +31185,45.1,-3.6,0 +31216,45.1,-3.5,0 +31224,45.1,-3.4,0 +31230,45.1,-3.3,0 +31234,45.1,-3.2,0 +31241,45.1,-3.1,0 +31245,45.1,-3,0 +31249,45.1,-2.9,0 +31251,45.1,-2.8,0 +31256,45.1,-2.7,0 +31260,45.1,-2.6,0 +31262,45.1,-2.5,0 +31266,45.1,-2.4,0 +31268,45.1,-2.3,0 +31271,45.1,-2.2,0 +31275,45.1,-2.1,0 +31277,45.1,-2,0 +31279,45.1,-1.9,0 +31281,45.1,-1.8,0 +31284,45.1,-1.7,0 +31286,45.1,-1.6,0 +31288,45.1,-1.5,0 +31290,45.1,-1.4,0 +31292,45.1,-1.3,0 +31295,45.1,-1.2,0 +31297,45.1,-1.1,0 +31299,45.1,-1,0 +31301,45.1,-0.9,0 +31303,45.1,-0.8,0 +31306,45.1,-0.7,0 +31308,45.1,-0.6,0 +31310,45.1,-0.5,0 +31312,45.1,-0.4,0 +31314,45.1,-0.3,0 +31317,45.1,-0.2,0 +31319,45.1,-0.1,0 +31321,45.1,0,0 +31323,45.1,0.2,0 +31326,45.1,0.3,0 +31328,45.1,0.4,0 +31330,45.1,0.5,0 +31332,45.1,0.6,0 +31334,45.1,0.7,0 +31337,45.1,0.8,0 +31339,45.1,0.9,0 +31343,45.1,1,0 +31346,45.1,1.1,0 +31348,45.1,1.2,0 +31350,45.1,1.3,0 +31352,45.1,1.4,0 +31357,45.1,1.5,0 +31359,45.1,1.6,0 +31364,45.1,1.7,0 +31366,45.1,1.8,0 +31371,45.1,1.9,0 +31375,45.1,2,0 +31383,45.1,2.1,0 +31390,45.1,2.2,0 +31397,45.1,2.3,0 +31409,45.1,2.4,0 +31423,45.1,2.5,0 +31438,45.1,2.6,0 +31452,45.1,2.7,0 +31467,45.1,2.8,0 +31512,45.1,2.7,0 +31524,45.1,2.6,0 +31534,45.1,2.5,0 +31541,45.1,2.4,0 +31548,45.1,2.3,0 +31553,45.1,2.2,0 +31560,45.1,2.1,0 +31565,45.1,2,0 +31573,45.1,1.9,0 +31578,45.1,1.8,0 +31585,45.1,1.7,0 +31590,45.1,1.6,0 +31597,45.1,1.5,0 +31602,45.1,1.4,0 +31607,45.1,1.3,0 +31612,45.1,1.2,0 +31617,45.1,1.1,0 +31622,45.1,1,0 +31627,45.1,0.9,0 +31632,45.1,0.8,0 +31637,45.1,0.7,0 +31642,45.1,0.6,0 +31647,45.1,0.5,0 +31650,45.1,0.4,0 +31655,45.1,0.3,0 +31660,45.1,0.2,0 +31663,45.1,0.1,0 +31668,45.1,0,0 +31670,45.1,-0.1,0 +31676,45.1,-0.2,0 +31678,45.1,-0.3,0 +31683,45.1,-0.4,0 +31686,45.1,-0.5,0 +31691,45.1,-0.6,0 +31693,45.1,-0.7,0 +31699,45.1,-0.8,0 +31701,45.1,-0.9,0 +31706,45.1,-1,0 +31711,45.1,-1.1,0 +31714,45.1,-1.2,0 +31719,45.1,-1.3,0 +31724,45.1,-1.4,0 +31732,45.1,-1.5,0 +31739,45.1,-1.6,0 +31747,45.1,-1.7,0 +31764,45.1,-1.8,0 +31777,45.1,-1.7,0 +31796,45.1,-1.6,0 +31809,45.1,-1.5,0 +31816,45.1,-1.4,0 +31826,45.1,-1.3,0 +31833,45.1,-1.2,0 +31840,45.1,-1.1,0 +31845,45.1,-1,0 +31852,45.1,-0.9,0 +31859,45.1,-0.8,0 +31864,45.1,-0.7,0 +31871,45.1,-0.6,0 +31875,45.1,-0.5,0 +31880,45.1,-0.4,0 +31887,45.1,-0.3,0 +31891,45.1,-0.2,0 +31898,45.1,-0.1,0 +31902,45.1,0,0 +31909,45.1,0.1,0 +31915,45.1,0.2,0 +31922,45.1,0.3,0 +31932,45.1,0.4,0 +31964,45.1,0.3,0 +31982,45.1,0.2,0 +31986,12.3,0.2,0 +31987,25.2,0.2,0 +31999,25.2,0.3,0 +32012,25.2,0.4,0 +32021,25.2,0.5,0 +32032,25.2,0.6,0 +32048,25.2,0.5,0 +32054,25.2,0.4,0 +32057,17.1,0.4,0 +32059,17.1,0.3,0 +32063,17.1,0.2,0 +32066,22.9,0.1,0 +32069,22.9,0,0 +32072,22.9,-0.1,0 +32074,22.9,-0.2,0 +32076,22.9,-0.3,0 +32079,22.9,-0.4,0 +32081,22.9,-0.5,0 +32084,22.9,-0.6,0 +32085,22.9,-0.7,0 +32087,22.9,-0.8,0 +32090,22.9,-0.9,0 +32092,22.9,-1,0 +32095,22.9,-1.1,0 +32097,22.9,-1.2,0 +32100,22.9,-1.3,0 +32103,22.9,-1.4,0 +32107,22.9,-1.5,0 +32114,22.9,-1.6,0 +32117,12.7,-1.6,0 +32120,19.1,-1.6,0 +32122,19.1,-1.5,0 +32128,19.1,-1.4,0 +32132,19.1,-1.3,0 +32135,19.1,-1.2,0 +32137,19.1,-1.1,0 +32140,19.1,-1,0 +32142,19.1,-0.9,0 +32144,19.1,-0.8,0 +32146,19.1,-0.7,0 +32148,19.1,-0.6,0 +32150,19.1,-0.5,0 +32153,19.1,-0.4,0 +32155,19.1,-0.3,0 +32157,19.1,-0.2,0 +32159,19.1,-0.1,0 +32162,19.1,0,0 +32163,0,0,71 +32164,20,0,0 +32167,20,0.2,0 +32171,20,0.3,0 +32176,20,0.4,0 +32187,20,0.3,0 +32192,20,0.2,0 +32197,20,0.1,0 +32200,20,0,0 +32203,20,-0.1,0 +32206,20,-0.2,0 +32209,20,-0.3,0 +32211,20,-0.4,0 +32214,20,-0.5,0 +32217,20,-0.7,0 +32218,0,-0.7,2 +32219,33.9,-0.7,0 +32220,33.9,-0.7,0 +32222,33.9,-0.8,0 +32224,33.9,-0.9,0 +32228,33.9,-1,0 +32231,33.9,-1.1,0 +32234,33.9,-1.2,0 +32240,33.9,-1.3,0 +32249,33.9,-1.4,0 +32261,33.9,-1.3,0 +32271,33.9,-1.2,0 +32278,33.9,-1.1,0 +32285,33.9,-1,0 +32290,33.9,-0.9,0 +32294,33.9,-0.8,0 +32299,33.9,-0.7,0 +32303,33.9,-0.6,0 +32306,33.9,-0.5,0 +32310,33.9,-0.4,0 +32312,33.9,-0.3,0 +32316,33.9,-0.2,0 +32318,33.9,-0.1,0 +32321,33.9,0,0 +32323,33.9,0.1,0 +32325,33.9,0.2,0 +32327,33.9,0.3,0 +32329,33.9,0.4,0 +32332,33.9,0.5,0 +32334,33.9,0.7,0 +32336,33.9,0.8,0 +32338,33.9,0.9,0 +32340,33.9,1,0 +32342,33.9,1.1,0 +32343,33.9,1.2,0 +32345,33.9,1.3,0 +32347,33.9,1.4,0 +32349,33.9,1.6,0 +32350,33.9,1.7,0 +32352,33.9,1.8,0 +32354,33.9,1.9,0 +32355,33.9,2,0 +32357,33.9,2.1,0 +32359,33.9,2.2,0 +32360,33.9,2.3,0 +32362,33.9,2.4,0 +32363,33.9,2.5,0 +32364,33.9,2.6,0 +32366,33.9,2.7,0 +32367,33.9,2.8,0 +32370,33.9,2.9,0 +32371,33.9,3,0 +32373,33.9,3.1,0 +32375,33.9,3.2,0 +32377,33.9,3.3,0 +32380,33.9,3.4,0 +32383,33.9,3.5,0 +32387,0,3.5,29.8 +32388,29.6,3.5,0 +32397,29.6,3.4,0 +32401,29.6,3.3,0 +32404,29.6,3.2,0 +32407,29.6,3.1,0 +32408,29.6,3,0 +32410,29.6,2.9,0 +32412,29.6,2.8,0 +32413,29.6,2.7,0 +32416,29.6,2.6,0 +32417,29.6,2.5,0 +32418,29.6,2.4,0 +32420,29.6,2.3,0 +32421,29.6,2.2,0 +32423,29.6,2.1,0 +32424,29.6,2,0 +32425,29.6,1.9,0 +32427,29.6,1.8,0 +32428,29.6,1.7,0 +32430,29.6,1.6,0 +32431,29.6,1.4,0 +32433,29.6,1.3,0 +32434,29.6,1.2,0 +32436,29.6,1.1,0 +32438,29.6,1,0 +32439,29.6,0.9,0 +32441,29.6,0.8,0 +32442,29.6,0.7,0 +32444,29.6,0.6,0 +32446,29.6,0.5,0 +32447,29.6,0.4,0 +32449,29.6,0.3,0 +32450,29.6,0.2,0 +32452,29.6,0.1,0 +32455,29.6,0,0 +32457,29.6,-0.1,0 +32459,29.6,-0.2,0 +32460,29.6,-0.3,0 +32463,29.6,-0.4,0 +32465,29.6,-0.5,0 +32468,29.6,-0.6,0 +32470,29.6,-0.7,0 +32473,29.6,-0.8,0 +32477,29.6,-0.9,0 +32480,29.6,-1,0 +32481,29.6,-1.1,0 +32484,29.6,-1.2,0 +32487,29.6,-1.3,0 +32490,29.6,-1.4,0 +32494,29.6,-1.5,0 +32497,29.6,-1.6,0 +32500,29.6,-1.7,0 +32503,29.6,-1.8,0 +32507,29.6,-1.9,0 +32511,29.6,-2,0 +32512,14.8,-2,0 +32513,26.1,-2,0 +32517,26.1,-2.1,0 +32532,26.1,-2,0 +32536,26.1,-1.9,0 +32539,26.1,-1.8,0 +32542,26.1,-1.7,0 +32544,26.1,-1.6,0 +32546,26.1,-1.5,0 +32547,26.1,-1.4,0 +32550,26.1,-1.3,0 +32552,26.1,-1.2,0 +32553,26.1,-1.1,0 +32555,26.1,-1,0 +32556,26.1,-0.9,0 +32557,26.1,-0.8,0 +32559,26.1,-0.6,0 +32560,26.1,-0.5,0 +32562,26.1,-0.4,0 +32563,26.1,-0.3,0 +32564,26.1,-0.2,0 +32566,26.1,-0.1,0 +32567,26.1,0,0 +32568,26.1,0.2,0 +32570,26.1,0.3,0 +32571,26.1,0.4,0 +32572,26.1,0.5,0 +32573,26.1,0.6,0 +32574,26.1,0.7,0 +32576,26.1,0.8,0 +32578,26.1,0.9,0 +32579,26.1,1,0 +32580,26.1,1.2,0 +32582,26.1,1.3,0 +32584,26.1,1.4,0 +32585,26.1,1.5,0 +32587,26.1,1.7,0 +32590,0,1.8,18.4 +32591,27,1.8,0 +32595,27,1.9,0 +32606,27,1.8,0 +32609,27,1.7,0 +32612,27,1.6,0 +32614,27,1.5,0 +32615,27,1.4,0 +32616,27,1.3,0 +32619,27,1.2,0 +32620,27,1.1,0 +32621,27,1,0 +32623,27,0.9,0 +32624,27,0.8,0 +32625,27,0.6,0 +32627,27,0.5,0 +32628,27,0.4,0 +32629,27,0.3,0 +32631,27,0.1,0 +32632,27,0,0 +32634,27,-0.1,0 +32635,27,-0.3,0 +32637,27,-0.4,0 +32638,27,-0.5,0 +32639,27,-0.7,0 +32641,27,-0.8,0 +32642,27,-1,0 +32644,27,-1.1,0 +32645,27,-1.3,0 +32647,27,-1.4,0 +32648,27,-1.5,0 +32650,27,-1.6,0 +32651,27,-1.7,0 +32653,27,-1.8,0 +32654,27,-1.9,0 +32655,27,-2.1,0 +32657,27,-2.2,0 +32658,27,-2.3,0 +32660,27,-2.4,0 +32661,27,-2.5,0 +32664,27,-2.6,0 +32666,27,-2.7,0 +32667,27,-2.8,0 +32670,27,-2.9,0 +32672,27,-3,0 +32675,27,-3.1,0 +32679,27,-3.2,0 +32684,27,-3.3,0 +32692,27,-3.4,0 +32704,27,-3.3,0 +32716,27,-3.2,0 +32724,27,-3.1,0 +32730,27,-3,0 +32735,27,-2.9,0 +32740,27,-2.8,0 +32745,27,-2.7,0 +32749,27,-2.6,0 +32752,27,-2.5,0 +32755,27,-2.4,0 +32759,27,-2.3,0 +32762,27,-2.2,0 +32765,27,-2.1,0 +32768,27,-2,0 +32770,0,-2,9.4 +32771,32.4,-2,0 +32775,32.4,-1.8,0 +32778,32.4,-1.7,0 +32782,32.4,-1.6,0 +32785,32.4,-1.5,0 +32789,32.4,-1.4,0 +32793,32.4,-1.3,0 +32798,32.4,-1.2,0 +32803,32.4,-1.1,0 +32811,32.4,-1,0 +32820,32.4,-0.9,0 +32835,32.4,-0.8,0 +32849,32.4,-0.7,0 +32861,32.4,-0.6,0 +32870,32.4,-0.5,0 +32877,32.4,-0.4,0 +32885,32.4,-0.3,0 +32890,32.4,-0.2,0 +32896,32.4,-0.1,0 +32903,32.4,0,0 +32908,32.4,0.1,0 +32914,32.4,0.2,0 +32921,32.4,0.3,0 +32929,32.4,0.4,0 +32943,32.4,0.5,0 +32965,27,0.4,0 +33002,27,0.5,0 +33010,27,0.6,0 +33016,27,0.7,0 +33021,27,0.8,0 +33026,27,0.9,0 +33030,27,1,0 +33033,27,1.1,0 +33037,27,1.2,0 +33040,27,1.3,0 +33044,27,1.4,0 +33048,27,1.5,0 +33051,27,1.6,0 +33055,27,1.7,0 +33060,27,1.8,0 +33064,27,1.9,0 +33069,27,2,0 +33076,27,2.1,0 +33086,27,2.2,0 +33112,27,2.1,0 +33127,27,2,0 +33142,27,1.9,0 +33158,27,1.8,0 +33170,27,1.7,0 +33178,27,1.6,0 +33185,27,1.5,0 +33189,27,1.4,0 +33194,28,1.3,0 +33198,28,1.2,0 +33201,28,1.1,0 +33206,28,1,0 +33209,28,0.9,0 +33212,28,0.8,0 +33214,28,0.7,0 +33217,28,0.6,0 +33220,28,0.5,0 +33221,28,0.4,0 +33224,28,0.3,0 +33226,28,0.2,0 +33229,28,0.1,0 +33231,28,0,0 +33234,28,-0.1,0 +33235,28,-0.2,0 +33238,28,-0.3,0 +33240,28,-0.4,0 +33243,28,-0.5,0 +33245,28,-0.6,0 +33248,28,-0.7,0 +33251,28,-0.8,0 +33254,28,-0.9,0 +33257,28,-1,0 +33259,28,-1.1,0 +33262,28,-1.2,0 +33267,28,-1.3,0 +33272,25.5,-1.4,0 +33299,28,-1.3,0 +33306,28,-1.2,0 +33310,28,-1.1,0 +33316,28,-1,0 +33322,28,-0.9,0 +33328,28,-0.8,0 +33334,28,-0.7,0 +33343,28,-0.6,0 +33354,28,-0.5,0 +33368,28,-0.4,0 +33381,28,-0.3,0 +33389,28,-0.2,0 +33396,28,-0.1,0 +33405,28,0,0 +33419,28,0.1,0 +33425,28,0,0 +33437,28,-0.1,0 +33442,28,-0.2,0 +33447,28,-0.3,0 +33451,28,-0.4,0 +33455,28,-0.5,0 +33459,28,-0.6,0 +33463,28,-0.7,0 +33467,28,-0.8,0 +33475,28,-0.9,0 +33481,0,-0.9,21.2 +33482,17.2,-0.9,0 +33490,17.2,-0.7,0 +33494,17.2,-0.6,0 +33497,17.2,-0.5,0 +33500,17.2,-0.4,0 +33503,17.2,-0.3,0 +33504,17.2,-0.2,0 +33506,17.2,-0.1,0 +33509,17.2,0,0 +33510,17.2,0.1,0 +33513,17.2,0.2,0 +33514,17.2,0.3,0 +33516,17.2,0.4,0 +33518,11.3,0.6,0 +33520,26.2,0.6,0 +33521,26.2,0.7,0 +33523,26.2,0.8,0 +33525,26.2,0.9,0 +33526,26.2,1,0 +33529,26.2,1.1,0 +33530,26.2,1.2,0 +33531,26.2,1.3,0 +33533,26.2,1.4,0 +33535,26.2,1.5,0 +33537,26.2,1.6,0 +33538,26.2,1.7,0 +33540,26.2,1.8,0 +33542,26.2,1.9,0 +33544,26.2,2,0 +33545,26.2,2.1,0 +33546,26.2,2.2,0 +33549,26.2,2.3,0 +33550,26.2,2.4,0 +33553,26.2,2.5,0 +33554,26.2,2.6,0 +33555,26.2,2.7,0 +33558,26.2,2.8,0 +33559,26.2,2.9,0 +33561,26.2,3,0 +33564,26.2,3.1,0 +33565,26.2,3.2,0 +33568,26.2,3.3,0 +33569,26.2,3.4,0 +33572,26.2,3.5,0 +33575,26.2,3.6,0 +33578,26.2,3.7,0 +33582,26.2,3.8,0 +33594,26.2,3.7,0 +33597,26.2,3.6,0 +33600,26.2,3.5,0 +33601,26.2,3.4,0 +33604,26.2,3.3,0 +33605,26.2,3.2,0 +33607,26.2,3.1,0 +33608,26.2,2.9,0 +33610,26.2,2.8,0 +33611,26.2,2.7,0 +33612,26.2,2.5,0 +33614,26.2,2.4,0 +33615,26.2,2.3,0 +33616,26.2,2,0 +33618,26.2,1.9,0 +33619,26.2,1.8,0 +33620,26.2,1.7,0 +33621,26.2,1.4,0 +33623,26.2,1.3,0 +33624,26.2,1.1,0 +33625,26.2,1,0 +33626,26.2,0.7,0 +33628,26.2,0.5,0 +33629,26.2,0.4,0 +33630,26.2,0.3,0 +33631,26.2,0.1,0 +33632,26.2,0,0 +33633,26.2,-0.3,0 +33635,26.2,-0.5,0 +33636,26.2,-0.6,0 +33637,26.2,-0.8,0 +33638,26.2,-0.9,0 +33639,26.2,-1,0 +33640,26.2,-1.1,0 +33641,26.2,-1.3,0 +33642,26.2,-1.4,0 +33643,26.2,-1.5,0 +33644,26.2,-1.6,0 +33645,26.2,-1.8,0 +33646,26.2,-1.9,0 +33647,26.2,-2,0 +33649,26.2,-2.2,0 +33651,26.2,-2.3,0 +33652,26.2,-2.4,0 +33653,26.2,-2.5,0 +33655,0,-2.6,27.8 +33656,30.3,-2.6,0 +33657,30.3,-2.7,0 +33659,30.3,-2.8,0 +33666,30.3,-2.7,0 +33670,30.3,-2.6,0 +33671,30.3,-2.5,0 +33672,30.3,-2.4,0 +33674,30.3,-2.3,0 +33675,30.3,-2.2,0 +33676,30.3,-2.1,0 +33677,30.3,-2,0 +33678,30.3,-1.9,0 +33679,30.3,-1.8,0 +33680,30.3,-1.7,0 +33681,30.3,-1.6,0 +33682,30.3,-1.4,0 +33684,30.3,-1.2,0 +33685,30.3,-1.1,0 +33686,30.3,-1,0 +33687,30.3,-0.8,0 +33688,30.3,-0.6,0 +33689,30.3,-0.5,0 +33690,30.3,-0.2,0 +33692,30.3,-0.1,0 +33693,30.3,0.1,0 +33694,30.3,0.3,0 +33695,30.3,0.4,0 +33696,30.3,0.8,0 +33698,30.3,0.9,0 +33699,30.3,1.1,0 +33700,30.3,1.4,0 +33702,30.3,1.5,0 +33703,30.3,1.7,0 +33704,30.3,1.9,0 +33705,30.3,2.2,0 +33707,30.3,2.3,0 +33708,30.3,2.5,0 +33709,30.3,2.7,0 +33711,30.3,2.9,0 +33712,30.3,3,0 +33713,30.3,3.2,0 +33715,30.3,3.4,0 +33716,30.3,3.6,0 +33718,30.3,3.7,0 +33719,30.3,3.8,0 +33720,30.3,4,0 +33722,30.3,4.2,0 +33723,30.3,4.3,0 +33725,30.3,4.4,0 +33726,30.3,4.6,0 +33728,30.3,4.7,0 +33729,30.3,4.8,0 +33731,30.3,4.9,0 +33732,30.3,5,0 +33735,30.3,5.1,0 +33737,30.3,5.2,0 +33740,30.3,5.3,0 +33755,30.3,5.2,0 +33758,30.3,5.1,0 +33761,30.3,5,0 +33765,30.3,4.9,0 +33766,30.3,4.8,0 +33768,30.3,4.7,0 +33771,30.3,4.6,0 +33772,30.3,4.5,0 +33774,30.3,4.4,0 +33776,30.3,4.3,0 +33777,30.3,4.2,0 +33779,30.3,4.1,0 +33780,30.3,4,0 +33782,30.3,3.9,0 +33783,30.3,3.8,0 +33785,30.3,3.7,0 +33787,30.3,3.6,0 +33788,30.3,3.4,0 +33790,30.3,3.3,0 +33792,30.3,3.2,0 +33793,30.3,3.1,0 +33795,30.3,2.9,0 +33797,30.3,2.8,0 +33798,30.3,2.7,0 +33800,30.3,2.6,0 +33802,30.3,2.4,0 +33803,30.3,2.3,0 +33805,30.3,2.2,0 +33807,30.3,2,0 +33808,30.3,1.9,0 +33810,30.3,1.8,0 +33812,30.3,1.6,0 +33813,30.3,1.5,0 +33815,30.3,1.3,0 +33817,30.3,1.2,0 +33819,30.3,1.1,0 +33820,30.3,0.9,0 +33822,30.3,0.8,0 +33824,30.3,0.6,0 +33825,30.3,0.5,0 +33827,30.3,0.3,0 +33829,30.3,0.2,0 +33830,30.3,0.1,0 +33832,30.3,-0.1,0 +33834,30.3,-0.2,0 +33835,30.3,-0.4,0 +33837,30.3,-0.5,0 +33839,30.3,-0.7,0 +33840,30.3,-0.8,0 +33842,30.3,-1,0 +33844,30.3,-1.1,0 +33845,30.3,-1.2,0 +33847,30.3,-1.4,0 +33848,30.3,-1.5,0 +33850,30.3,-1.6,0 +33851,30.3,-1.7,0 +33853,30.3,-1.8,0 +33854,30.3,-1.9,0 +33855,30.3,-2,0 +33856,30.3,-2.1,0 +33857,30.3,-2.2,0 +33859,30.3,-2.3,0 +33860,30.3,-2.4,0 +33861,30.3,-2.5,0 +33862,30.3,-2.6,0 +33863,17.7,-2.6,0 +33864,36.8,-2.7,0 +33865,36.8,-2.8,0 +33866,36.8,-2.9,0 +33868,36.8,-3,0 +33869,36.8,-3.1,0 +33871,36.8,-3.2,0 +33872,36.8,-3.3,0 +33873,36.8,-3.4,0 +33875,36.8,-3.5,0 +33877,36.8,-3.6,0 +33879,36.8,-3.7,0 +33880,36.8,-3.8,0 +33883,36.8,-3.9,0 +33886,36.8,-4,0 +33889,36.8,-4.1,0 +33892,36.8,-4.2,0 +33897,36.8,-4.3,0 +33908,36.8,-4.2,0 +33913,36.8,-4.1,0 +33919,36.8,-4,0 +33921,36.8,-3.9,0 +33924,36.8,-3.8,0 +33926,36.8,-3.7,0 +33928,36.8,-3.6,0 +33930,36.8,-3.5,0 +33932,36.8,-3.4,0 +33934,36.8,-3.3,0 +33936,36.8,-3.2,0 +33938,36.8,-3,0 +33940,36.8,-2.9,0 +33942,36.8,-2.8,0 +33944,36.8,-2.7,0 +33946,36.8,-2.5,0 +33948,36.8,-2.4,0 +33950,36.8,-2.2,0 +33952,36.8,-2.1,0 +33954,36.8,-1.9,0 +33956,36.8,-1.8,0 +33958,36.8,-1.6,0 +33960,36.8,-1.5,0 +33962,36.8,-1.3,0 +33964,36.8,-1.2,0 +33966,36.8,-1,0 +33968,36.8,-0.9,0 +33970,36.8,-0.7,0 +33972,36.8,-0.6,0 +33974,36.8,-0.4,0 +33976,36.8,-0.3,0 +33978,36.8,-0.1,0 +33980,36.8,0,0 +33982,36.8,0.2,0 +33984,36.8,0.3,0 +33986,36.8,0.4,0 +33988,36.8,0.5,0 +33990,36.8,0.7,0 +33992,36.8,0.8,0 +33994,36.8,0.9,0 +33996,36.8,1,0 +33999,36.8,1.1,0 +34001,36.8,1.2,0 +34003,36.8,1.3,0 +34007,36.8,1.4,0 +34009,36.8,1.5,0 +34013,36.8,1.6,0 +34021,36.8,1.7,0 +34033,36.8,1.6,0 +34040,36.8,1.5,0 +34044,33.6,1.5,0 +34046,33.6,1.4,0 +34050,33.6,1.3,0 +34055,33.6,1.2,0 +34059,33.6,1.1,0 +34063,33.6,1,0 +34066,33.6,0.9,0 +34072,33.6,0.8,0 +34077,33.6,0.7,0 +34086,33.6,0.6,0 +34096,33.6,0.7,0 +34102,33.6,0.8,0 +34107,33.6,0.9,0 +34111,33.6,1,0 +34115,33.6,1.1,0 +34117,33.6,1.2,0 +34120,33.6,1.3,0 +34122,33.6,1.4,0 +34125,33.6,1.5,0 +34128,33.6,1.6,0 +34130,33.6,1.7,0 +34133,0,1.8,16.4 +34134,18.9,1.8,0 +34136,18.9,1.9,0 +34139,18.9,2,0 +34143,18.9,2.1,0 +34149,18.9,2.2,0 +34156,18.9,2.1,0 +34162,18.9,2,0 +34165,18.9,1.9,0 +34168,18.9,1.8,0 +34170,18.9,1.7,0 +34172,18.9,1.6,0 +34173,18.9,1.5,0 +34174,0,1.5,2 +34175,38,1.5,0 +34177,38,1.3,0 +34178,38,1.2,0 +34179,38,1.1,0 +34181,38,1,0 +34182,38,0.9,0 +34183,38,0.8,0 +34185,38,0.7,0 +34186,38,0.6,0 +34187,38,0.5,0 +34188,38,0.4,0 +34190,38,0.2,0 +34192,38,0.1,0 +34193,38,0,0 +34194,38,-0.1,0 +34195,38,-0.2,0 +34196,38,-0.3,0 +34197,38,-0.4,0 +34198,38,-0.5,0 +34199,38,-0.6,0 +34200,38,-0.7,0 +34202,38,-0.8,0 +34204,38,-0.9,0 +34205,38,-1,0 +34206,38,-1.1,0 +34207,38,-1.2,0 +34208,38,-1.3,0 +34210,38,-1.4,0 +34211,38,-1.5,0 +34212,38,-1.6,0 +34213,38,-1.7,0 +34216,38,-1.8,0 +34218,38,-1.9,0 +34219,38,-2,0 +34222,38,-2.1,0 +34224,38,-2.2,0 +34227,38,-2.3,0 +34232,38,-2.4,0 +34246,38,-2.3,0 +34252,38,-2.2,0 +34256,38,-2.1,0 +34260,38,-2,0 +34264,38,-1.9,0 +34268,38,-1.8,0 +34270,38,-1.7,0 +34274,38,-1.6,0 +34276,38,-1.5,0 +34280,38,-1.4,0 +34282,38,-1.3,0 +34284,59.2,-1.3,0 +34286,59.2,-1.2,0 +34291,59.2,-1.1,0 +34295,59.2,-1,0 +34299,59.2,-0.9,0 +34303,59.2,-0.8,0 +34310,59.2,-0.7,0 +34317,59.2,-0.6,0 +34326,59.2,-0.5,0 +34335,59.2,-0.4,0 +34347,59.2,-0.3,0 +34357,59.2,-0.2,0 +34373,59.2,-0.1,0 +34392,59.2,0,0 +34419,59.2,-0.1,0 +34442,59.2,-0.2,0 +34456,59.2,-0.3,0 +34471,59.2,-0.4,0 +34485,59.2,-0.5,0 +34559,59.2,-0.4,0 +34586,59.2,-0.3,0 +34617,59.2,-0.2,0 +34646,59.2,-0.1,0 +34671,59.2,0,0 +34740,59.2,-0.1,0 +34753,59.2,-0.2,0 +34763,59.2,-0.3,0 +34770,59.2,-0.4,0 +34779,59.2,-0.5,0 +34786,59.2,-0.6,0 +34789,59.2,-0.7,0 +34796,59.2,-0.8,0 +34803,59.2,-0.9,0 +34806,59.2,-1,0 +34813,59.2,-1.1,0 +34819,59.2,-1.2,0 +34823,59.2,-1.3,0 +34829,59.2,-1.4,0 +34833,59.2,-1.5,0 +34839,59.2,-1.6,0 +34843,59.2,-1.7,0 +34849,59.2,-1.8,0 +34856,59.2,-1.9,0 +34863,59.2,-2,0 +34870,59.2,-2.1,0 +34876,59.2,-2.2,0 +34886,59.2,-2.3,0 +34903,59.2,-2.4,0 +34923,59.2,-2.3,0 +34940,59.2,-2.2,0 +34946,59.2,-2.1,0 +34956,59.2,-2,0 +34963,59.2,-1.9,0 +34969,59.2,-1.8,0 +34973,59.2,-1.7,0 +34979,59.2,-1.6,0 +34986,59.2,-1.5,0 +34989,59.2,-1.4,0 +34996,59.2,-1.3,0 +35002,59.2,-1.2,0 +35006,59.2,-1.1,0 +35012,59.2,-1,0 +35019,59.2,-0.9,0 +35026,59.2,-0.8,0 +35032,59.2,-0.7,0 +35039,59.2,-0.6,0 +35045,59.2,-0.5,0 +35055,59.2,-0.4,0 +35062,59.2,-0.3,0 +35072,59.2,-0.2,0 +35078,59.2,-0.1,0 +35088,59.2,0,0 +35094,59.2,0.1,0 +35101,59.2,0.2,0 +35104,59.2,0.3,0 +35110,59.2,0.4,0 +35117,59.2,0.5,0 +35120,59.2,0.6,0 +35123,59.2,0.7,0 +35129,59.2,0.8,0 +35132,59.2,0.9,0 +35135,59.2,1,0 +35138,59.2,1.1,0 +35141,59.2,1.2,0 +35144,59.2,1.3,0 +35150,59.2,1.4,0 +35153,59.2,1.5,0 +35156,59.2,1.6,0 +35159,59.2,1.7,0 +35162,59.2,1.8,0 +35165,59.2,1.9,0 +35168,59.2,2,0 +35171,59.2,2.1,0 +35176,59.2,2.2,0 +35179,59.2,2.3,0 +35181,59.2,2.4,0 +35187,59.2,2.5,0 +35192,59.2,2.6,0 +35196,59.2,2.7,0 +35201,59.2,2.8,0 +35209,59.2,2.9,0 +35220,59.2,3,0 +35246,59.2,2.9,0 +35248,37.9,2.9,0 +35298,37.9,2.8,0 +35316,37.9,2.7,0 +35323,37.9,2.6,0 +35329,37.9,2.5,0 +35333,37.9,2.4,0 +35337,37.9,2.3,0 +35341,37.9,2.2,0 +35345,37.9,2.1,0 +35347,37.9,2,0 +35352,37.9,1.9,0 +35354,37.9,1.8,0 +35356,37.9,1.7,0 +35358,37.9,1.6,0 +35362,37.9,1.5,0 +35364,37.9,1.4,0 +35366,37.9,1.3,0 +35368,37.9,1.2,0 +35370,37.9,1.1,0 +35372,37.9,1,0 +35374,37.9,0.9,0 +35376,37.9,0.8,0 +35378,37.9,0.7,0 +35380,37.9,0.6,0 +35385,37.9,0.5,0 +35387,37.9,0.4,0 +35389,37.9,0.3,0 +35391,37.9,0.2,0 +35393,37.9,0.1,0 +35395,37.9,0,0 +35397,37.9,-0.1,0 +35399,37.9,-0.2,0 +35401,37.9,-0.3,0 +35405,37.9,-0.4,0 +35407,37.9,-0.5,0 +35409,37.9,-0.6,0 +35411,37.9,-0.7,0 +35415,37.9,-0.8,0 +35417,37.9,-0.9,0 +35421,37.9,-1,0 +35423,37.9,-1.1,0 +35427,37.9,-1.2,0 +35431,37.9,-1.3,0 +35435,37.9,-1.4,0 +35441,37.9,-1.5,0 +35453,37.9,-1.6,0 +35462,37.9,-1.5,0 +35475,37.9,-1.4,0 +35480,29.8,-1.4,0 +35484,29.8,-1.3,0 +35490,29.8,-1.2,0 +35497,29.8,-1.1,0 +35503,29.8,-1,0 +35510,29.8,-0.9,0 +35517,29.8,-0.8,0 +35522,29.8,-0.7,0 +35528,29.8,-0.6,0 +35533,29.8,-0.5,0 +35536,29.8,-0.4,0 +35539,29.8,-0.3,0 +35542,29.8,-0.2,0 +35545,29.8,-0.1,0 +35547,29.8,0,0 +35549,29.8,0.1,0 +35551,29.8,0.2,0 +35552,29.8,0.3,0 +35554,29.8,0.4,0 +35556,29.8,0.5,0 +35557,29.8,0.6,0 +35559,29.8,0.7,0 +35560,29.8,0.8,0 +35561,29.8,1,0 +35563,17.3,1.1,0 +35565,17.3,1.2,0 +35566,17.3,1.3,0 +35567,17.3,1.4,0 +35568,17.3,1.6,0 +35570,17.3,1.7,0 +35571,17.3,1.8,0 +35572,17.3,1.9,0 +35573,17.3,2,0 +35574,17.3,2.1,0 +35575,17.3,2.2,0 +35576,17.3,2.3,0 +35577,17.3,2.4,0 +35578,17.3,2.5,0 +35579,17.3,2.6,0 +35580,17.3,2.7,0 +35581,17.3,2.8,0 +35582,17.3,3,0 +35583,17.3,3.1,0 +35584,17.3,3.2,0 +35585,17.3,3.3,0 +35586,17.3,3.4,0 +35587,17.3,3.5,0 +35588,17.3,3.6,0 +35589,17.3,3.7,0 +35590,17.3,3.8,0 +35591,17.3,4,0 +35593,17.3,4.1,0 +35594,17.3,4.3,0 +35595,0,4.4,35.8 +35596,31.6,4.4,0 +35597,31.6,4.6,0 +35599,31.6,4.7,0 +35600,31.6,4.8,0 +35601,31.6,4.9,0 +35602,31.6,5.1,0 +35604,31.6,5.2,0 +35606,31.6,5.3,0 +35608,31.6,5.4,0 +35610,31.6,5.5,0 +35611,31.6,5.6,0 +35614,31.6,5.7,0 +35618,31.6,5.8,0 +35628,31.6,5.7,0 +35631,31.6,5.6,0 +35634,31.6,5.5,0 +35635,31.6,5.4,0 +35637,31.6,5.3,0 +35638,31.6,5.2,0 +35640,31.6,5.1,0 +35642,31.6,5,0 +35643,31.6,4.9,0 +35645,31.6,4.8,0 +35646,31.6,4.6,0 +35648,31.6,4.5,0 +35650,31.6,4.3,0 +35651,31.6,4.2,0 +35653,31.6,4,0 +35655,31.6,3.9,0 +35656,31.6,3.7,0 +35658,31.6,3.5,0 +35660,31.6,3.3,0 +35662,31.6,3.2,0 +35663,31.6,3,0 +35665,31.6,2.8,0 +35667,31.6,2.6,0 +35668,31.6,2.4,0 +35670,31.6,2.2,0 +35672,31.6,2,0 +35673,31.6,1.9,0 +35675,31.6,1.7,0 +35677,31.6,1.5,0 +35678,31.6,1.3,0 +35680,31.6,1.1,0 +35682,31.6,1,0 +35683,31.6,0.8,0 +35685,31.6,0.6,0 +35687,31.6,0.4,0 +35689,31.6,0.3,0 +35690,31.6,0.1,0 +35692,31.6,0,0 +35694,31.6,-0.2,0 +35695,31.6,-0.4,0 +35697,31.6,-0.5,0 +35699,31.6,-0.7,0 +35701,31.6,-0.8,0 +35702,31.6,-1,0 +35704,31.6,-1.1,0 +35706,31.6,-1.3,0 +35708,31.6,-1.4,0 +35709,31.6,-1.5,0 +35711,31.6,-1.7,0 +35713,31.6,-1.8,0 +35715,31.6,-1.9,0 +35716,31.6,-2,0 +35718,31.6,-2.1,0 +35720,31.6,-2.2,0 +35722,31.6,-2.3,0 +35723,31.6,-2.4,0 +35725,31.6,-2.5,0 +35727,31.6,-2.6,0 +35730,31.6,-2.7,0 +35732,31.6,-2.8,0 +35735,31.6,-2.9,0 +35738,31.6,-3,0 +35743,31.6,-3.1,0 +35749,31.6,-3.2,0 +35758,31.6,-3.1,0 +35767,31.6,-3,0 +35771,31.6,-2.9,0 +35772,10,-2.9,0 +35773,24.7,-2.9,0 +35776,24.7,-2.8,0 +35781,24.7,-2.7,0 +35785,24.7,-2.6,0 +35788,24.7,-2.5,0 +35792,24.7,-2.4,0 +35795,24.7,-2.3,0 +35799,24.7,-2.2,0 +35803,24.7,-2.1,0 +35806,24.7,-2,0 +35810,24.7,-1.9,0 +35813,24.7,-1.8,0 +35817,24.7,-1.7,0 +35819,24.7,-1.6,0 +35823,24.7,-1.5,0 +35825,24.7,-1.4,0 +35827,24.7,-1.3,0 +35830,24.7,-1.2,0 +35832,24.7,-1.1,0 +35834,24.7,-1,0 +35836,24.7,-0.9,0 +35838,24.7,-0.8,0 +35840,24.7,-0.7,0 +35842,0,-0.6,13.2 +35843,26.7,-0.6,0 +35845,26.7,-0.4,0 +35847,26.7,-0.3,0 +35848,26.7,-0.2,0 +35850,26.7,-0.1,0 +35852,26.7,0,0 +35854,26.7,0.1,0 +35855,26.7,0.2,0 +35857,26.7,0.3,0 +35859,26.7,0.4,0 +35860,26.7,0.5,0 +35861,26.7,0.6,0 +35863,26.7,0.7,0 +35865,26.7,0.8,0 +35866,26.7,0.9,0 +35867,26.7,1,0 +35868,26.7,1.1,0 +35871,26.7,1.2,0 +35872,26.7,1.3,0 +35874,26.7,1.4,0 +35875,26.7,1.5,0 +35876,26.7,1.6,0 +35879,26.7,1.7,0 +35881,26.7,1.8,0 +35882,26.7,1.9,0 +35884,26.7,2,0 +35886,26.7,2.1,0 +35888,26.7,2.2,0 +35891,26.7,2.3,0 +35892,26.7,2.4,0 +35895,26.7,2.5,0 +35898,26.7,2.6,0 +35901,26.7,2.7,0 +35903,26.7,2.8,0 +35908,26.7,2.9,0 +35912,26.7,3,0 +35919,31.8,3.1,0 +35928,31.8,3.2,0 +35966,31.8,3.1,0 +35975,31.8,3,0 +35980,31.8,2.9,0 +35984,31.8,2.8,0 +35987,31.8,2.7,0 +35991,31.8,2.6,0 +35992,31.8,2.5,0 +35996,31.8,2.4,0 +35998,31.8,2.3,0 +35999,31.8,2.2,0 +36001,31.8,2.1,0 +36003,31.8,2,0 +36004,31.8,1.9,0 +36006,31.8,1.8,0 +36008,31.8,1.7,0 +36010,31.8,1.6,0 +36011,31.8,1.5,0 +36013,31.8,1.4,0 +36015,31.8,1.2,0 +36017,31.8,1.1,0 +36018,31.8,1,0 +36020,31.8,0.8,0 +36022,31.8,0.7,0 +36024,31.8,0.5,0 +36026,31.8,0.4,0 +36027,31.8,0.3,0 +36029,31.8,0.1,0 +36031,31.8,0,0 +36033,31.8,-0.2,0 +36034,31.8,-0.3,0 +36036,31.8,-0.5,0 +36038,31.8,-0.6,0 +36040,31.8,-0.8,0 +36041,31.8,-0.9,0 +36043,31.8,-1.1,0 +36045,31.8,-1.2,0 +36047,31.8,-1.3,0 +36048,31.8,-1.5,0 +36050,31.8,-1.6,0 +36052,31.8,-1.7,0 +36054,31.8,-1.8,0 +36056,31.8,-1.9,0 +36057,31.8,-2,0 +36059,31.8,-2.1,0 +36061,31.8,-2.2,0 +36064,31.8,-2.3,0 +36067,31.8,-2.4,0 +36071,31.8,-2.5,0 +36078,0,-2.4,22.4 +36079,23.9,-2.4,0 +36084,23.9,-2.3,0 +36087,23.9,-2.2,0 +36089,23.9,-2.1,0 +36091,23.9,-2,0 +36093,23.9,-1.9,0 +36094,23.9,-1.8,0 +36096,23.9,-1.7,0 +36097,23.9,-1.6,0 +36098,23.9,-1.5,0 +36100,23.9,-1.4,0 +36101,23.9,-1.3,0 +36102,23.9,-1.2,0 +36103,23.9,-1.1,0 +36105,23.9,-1,0 +36106,23.9,-0.9,0 +36107,23.9,-0.8,0 +36109,23.9,-0.7,0 +36110,23.9,-0.6,0 +36111,23.9,-0.4,0 +36113,23.9,-0.3,0 +36114,23.9,-0.2,0 +36115,23.9,-0.1,0 +36116,23.9,0.1,0 +36118,23.9,0.2,0 +36119,23.9,0.3,0 +36120,23.9,0.4,0 +36121,23.9,0.5,0 +36123,23.9,0.6,0 +36124,23.9,0.7,0 +36125,23.9,0.8,0 +36126,23.9,0.9,0 +36127,23.9,1,0 +36128,23.9,1.1,0 +36130,23.9,1.2,0 +36131,23.9,1.3,0 +36133,23.9,1.4,0 +36134,23.9,1.5,0 +36136,23.9,1.6,0 +36137,23.9,1.7,0 +36139,23.9,1.8,0 +36140,23.9,1.9,0 +36142,23.9,2,0 +36143,0,2,15.8 +36144,21.3,2,0 +36145,21.3,2.1,0 +36148,21.3,2.2,0 +36156,21.3,2.3,0 +36159,21.3,2.2,0 +36166,21.3,2.1,0 +36170,21.3,2,0 +36173,21.3,1.9,0 +36175,21.3,1.8,0 +36179,21.3,1.7,0 +36181,21.3,1.6,0 +36184,21.3,1.5,0 +36186,21.3,1.4,0 +36188,12.3,1.4,0 +36189,35.3,1.3,0 +36192,35.3,1.2,0 +36195,35.3,1.1,0 +36197,35.3,1,0 +36201,35.3,0.9,0 +36204,35.3,0.8,0 +36209,35.3,0.7,0 +36218,35.3,0.6,0 +36236,35.3,0.7,0 +36247,35.3,0.8,0 +36256,35.3,0.9,0 +36267,35.3,1,0 +36307,35.3,0.9,0 +36316,35.3,0.8,0 +36322,35.3,0.7,0 +36327,35.3,0.6,0 +36331,35.3,0.5,0 +36335,35.3,0.4,0 +36341,35.3,0.3,0 +36344,35.3,0.2,0 +36348,35.3,0.1,0 +36352,35.3,0,0 +36356,35.3,-0.1,0 +36359,35.3,-0.2,0 +36365,35.3,-0.3,0 +36369,35.3,-0.4,0 +36374,35.3,-0.5,0 +36380,35.3,-0.6,0 +36385,35.3,-0.7,0 +36393,41.4,-0.8,0 +36411,41.4,-0.9,0 +36421,41.4,-0.8,0 +36441,41.4,-0.7,0 +36454,41.4,-0.6,0 +36465,41.4,-0.5,0 +36478,41.4,-0.4,0 +36491,41.4,-0.3,0 +36516,41.4,-0.2,0 +36550,41.4,-0.3,0 +36585,41.4,-0.4,0 +36601,41.4,-0.5,0 +36614,41.4,-0.6,0 +36621,41.4,-0.7,0 +36630,41.4,-0.8,0 +36639,41.4,-0.9,0 +36649,41.4,-1,0 +36662,0,-1,8.4 +36663,47.3,-1,0 +36675,47.3,-0.9,0 +36681,47.3,-0.8,0 +36687,47.3,-0.7,0 +36691,47.3,-0.6,0 +36694,47.3,-0.5,0 +36697,47.3,-0.4,0 +36701,47.3,-0.3,0 +36704,47.3,-0.2,0 +36708,47.3,-0.1,0 +36711,47.3,0,0 +36713,47.3,0.1,0 +36717,47.3,0.2,0 +36719,47.3,0.3,0 +36723,47.3,0.4,0 +36727,47.3,0.5,0 +36729,47.3,0.6,0 +36733,47.3,0.7,0 +36738,47.3,0.8,0 +36742,47.3,0.9,0 +36749,47.3,1,0 +36756,47.3,1.1,0 +36792,47.3,1,0 +36804,47.3,0.9,0 +36812,47.3,0.8,0 +36822,47.3,0.7,0 +36830,47.3,0.6,0 +36840,47.3,0.5,0 +36851,47.3,0.4,0 +36864,47.3,0.3,0 +36880,47.3,0.2,0 +36902,47.3,0.1,0 +36931,47.3,0,0 +36965,47.3,0.1,0 +36985,47.3,0.2,0 +36995,47.3,0.3,0 +37003,47.3,0.4,0 +37010,47.3,0.5,0 +37018,47.3,0.6,0 +37025,47.3,0.7,0 +37030,47.3,0.8,0 +37037,47.3,0.9,0 +37045,47.3,1,0 +37052,47.3,1.1,0 +37064,47.3,1.2,0 +37118,47.3,1.1,0 +37137,47.3,1.2,0 +37157,47.3,1.3,0 +37174,47.3,1.4,0 +37191,47.3,1.3,0 +37201,47.3,1.2,0 +37208,47.3,1.1,0 +37212,47.3,1,0 +37215,47.3,0.9,0 +37219,47.3,0.8,0 +37222,47.3,0.7,0 +37224,47.3,0.6,0 +37226,47.3,0.5,0 +37229,47.3,0.4,0 +37231,47.3,0.3,0 +37234,47.3,0.2,0 +37236,47.3,0.1,0 +37238,47.3,0,0 +37241,47.3,-0.2,0 +37243,47.3,-0.3,0 +37245,47.3,-0.4,0 +37248,47.3,-0.6,0 +37250,47.3,-0.7,0 +37253,47.3,-0.8,0 +37255,47.3,-1,0 +37257,47.3,-1.1,0 +37260,47.3,-1.2,0 +37262,47.3,-1.4,0 +37265,47.3,-1.5,0 +37267,47.3,-1.6,0 +37269,47.3,-1.8,0 +37272,47.3,-1.9,0 +37274,47.3,-2,0 +37277,47.3,-2.1,0 +37279,47.3,-2.2,0 +37281,47.3,-2.4,0 +37284,47.3,-2.5,0 +37286,47.3,-2.6,0 +37289,47.3,-2.7,0 +37291,47.3,-2.8,0 +37296,47.3,-2.9,0 +37299,47.3,-3,0 +37303,47.3,-3.1,0 +37308,47.3,-3.2,0 +37328,47.3,-3.1,0 +37333,47.3,-3,0 +37337,47.3,-2.9,0 +37340,47.3,-2.8,0 +37344,47.3,-2.7,0 +37347,47.3,-2.6,0 +37349,47.3,-2.5,0 +37351,47.3,-2.4,0 +37354,47.3,-2.3,0 +37356,47.3,-2.2,0 +37358,47.3,-2,0 +37361,47.3,-1.9,0 +37363,47.3,-1.8,0 +37365,47.3,-1.6,0 +37367,47.3,-1.5,0 +37370,47.3,-1.4,0 +37372,47.3,-1.2,0 +37374,47.3,-1.1,0 +37376,47.3,-0.9,0 +37379,47.3,-0.8,0 +37381,47.3,-0.6,0 +37383,47.3,-0.5,0 +37385,47.3,-0.3,0 +37387,47.3,-0.2,0 +37390,47.3,0,0 +37392,47.3,0.1,0 +37394,47.3,0.3,0 +37396,47.3,0.4,0 +37398,47.3,0.5,0 +37400,47.3,0.7,0 +37402,47.3,0.8,0 +37405,47.3,1,0 +37407,47.3,1.1,0 +37409,47.3,1.2,0 +37411,47.3,1.4,0 +37413,47.3,1.5,0 +37415,47.3,1.6,0 +37417,47.3,1.7,0 +37419,47.3,1.9,0 +37421,47.3,2,0 +37423,47.3,2.1,0 +37425,47.3,2.2,0 +37427,47.3,2.3,0 +37429,47.3,2.4,0 +37431,47.3,2.5,0 +37433,47.3,2.7,0 +37435,47.3,2.8,0 +37437,47.3,2.9,0 +37441,47.3,3,0 +37443,47.3,3.1,0 +37444,47.3,3.2,0 +37446,47.3,3.3,0 +37448,47.3,3.4,0 +37451,47.3,3.5,0 +37453,47.3,3.6,0 +37455,47.3,3.7,0 +37458,47.3,3.8,0 +37462,47.3,3.9,0 +37466,47.3,4,0 +37472,47.3,4.1,0 +37480,47.3,4,0 +37487,47.3,3.9,0 +37490,47.3,3.7,0 +37493,0,3.7,9.8 +37494,35.4,3.7,0 +37495,35.4,3.6,0 +37497,35.4,3.5,0 +37499,35.4,3.4,0 +37500,35.4,3.3,0 +37502,35.4,3.2,0 +37504,35.4,3.1,0 +37506,35.4,3,0 +37507,35.4,2.9,0 +37509,35.4,2.8,0 +37510,35.4,2.7,0 +37511,35.4,2.6,0 +37513,35.4,2.5,0 +37514,35.4,2.4,0 +37516,35.4,2.3,0 +37517,35.4,2.2,0 +37518,35.4,2.1,0 +37519,35.4,2,0 +37521,35.4,1.9,0 +37522,35.4,1.8,0 +37523,35.4,1.7,0 +37525,35.4,1.6,0 +37526,35.4,1.5,0 +37528,35.4,1.4,0 +37529,35.4,1.3,0 +37531,35.4,1.2,0 +37532,35.4,1.1,0 +37534,35.4,1,0 +37535,35.4,0.9,0 +37537,35.4,0.8,0 +37538,35.4,0.7,0 +37541,35.4,0.6,0 +37543,35.4,0.5,0 +37545,35.4,0.4,0 +37548,35.4,0.3,0 +37551,35.4,0.2,0 +37557,35.4,0.1,0 +37571,35.4,0.2,0 +37578,35.4,0.3,0 +37582,35.4,0.4,0 +37586,35.4,0.5,0 +37590,35.4,0.6,0 +37595,35.4,0.7,0 +37599,35.4,0.8,0 +37605,35.4,0.9,0 +37625,35.4,0.8,0 +37630,35.4,0.7,0 +37632,35.4,0.6,0 +37636,35.4,0.5,0 +37638,35.4,0.4,0 +37640,35.4,0.3,0 +37644,35.4,0.2,0 +37646,35.4,0.1,0 +37648,35.4,0,0 +37650,35.4,-0.2,0 +37652,35.4,-0.3,0 +37654,35.4,-0.4,0 +37656,35.4,-0.5,0 +37658,35.4,-0.6,0 +37660,35.4,-0.7,0 +37662,35.4,-0.9,0 +37664,35.4,-1,0 +37666,35.4,-1.1,0 +37668,35.4,-1.2,0 +37670,35.4,-1.3,0 +37672,35.4,-1.4,0 +37674,35.4,-1.6,0 +37676,35.4,-1.7,0 +37678,35.4,-1.8,0 +37680,35.4,-1.9,0 +37682,35.4,-2,0 +37686,35.4,-2.1,0 +37688,35.4,-2.2,0 +37689,35.4,-2.3,0 +37693,35.4,-2.4,0 +37697,35.4,-2.5,0 +37701,35.4,-2.6,0 +37718,35.4,-2.5,0 +37724,35.4,-2.4,0 +37730,35.4,-2.3,0 +37736,35.4,-2.2,0 +37739,35.4,-2.1,0 +37745,35.4,-2,0 +37762,35.4,-2.1,0 +37766,35.4,-2.2,0 +37770,35.4,-2.3,0 +37773,35.4,-2.4,0 +37775,35.4,-2.5,0 +37777,35.4,-2.6,0 +37779,35.4,-2.7,0 +37780,35.4,-2.8,0 +37782,35.4,-2.9,0 +37784,35.4,-3,0 +37785,35.4,-3.1,0 +37787,35.4,-3.2,0 +37789,35.4,-3.3,0 +37790,35.4,-3.4,0 +37792,35.4,-3.5,0 +37794,35.4,-3.7,0 +37795,35.4,-3.8,0 +37797,35.4,-3.9,0 +37798,35.4,-4,0 +37800,35.4,-4.1,0 +37801,35.4,-4.2,0 +37803,35.4,-4.3,0 +37804,35.4,-4.4,0 +37805,35.4,-4.5,0 +37808,35.4,-4.6,0 +37809,35.4,-4.7,0 +37811,35.4,-4.9,0 +37814,16.3,-5,0 +37816,25.7,-5.1,0 +37819,25.7,-5.2,0 +37822,25.7,-5.3,0 +37826,25.7,-5.4,0 +37834,25.7,-5.3,0 +37838,25.7,-5.2,0 +37840,25.7,-5.1,0 +37843,25.7,-5,0 +37845,25.7,-4.9,0 +37847,25.7,-4.8,0 +37848,25.7,-4.7,0 +37849,25.7,-4.6,0 +37850,25.7,-4.5,0 +37852,25.7,-4.4,0 +37853,25.7,-4.3,0 +37854,25.7,-4.2,0 +37855,25.7,-4.1,0 +37856,25.7,-4,0 +37857,25.7,-3.9,0 +37859,25.7,-3.8,0 +37860,25.7,-3.7,0 +37861,25.7,-3.5,0 +37862,25.7,-3.4,0 +37863,25.7,-3.3,0 +37864,25.7,-3.2,0 +37865,25.7,-2.9,0 +37867,25.7,-2.8,0 +37868,25.7,-2.7,0 +37869,25.7,-2.5,0 +37870,25.7,-2.3,0 +37872,25.7,-2.2,0 +37873,25.7,-2,0 +37874,25.7,-1.7,0 +37876,25.7,-1.6,0 +37877,25.7,-1.4,0 +37878,25.7,-1.2,0 +37880,25.7,-1.1,0 +37881,25.7,-0.9,0 +37882,25.7,-0.6,0 +37884,25.7,-0.4,0 +37885,25.7,-0.1,0 +37887,25.7,0,0 +37888,25.7,0.2,0 +37889,25.7,0.4,0 +37891,25.7,0.6,0 +37892,25.7,0.9,0 +37894,25.7,1,0 +37895,25.7,1.1,0 +37896,25.7,1.4,0 +37898,25.7,1.6,0 +37899,25.7,1.8,0 +37901,25.7,2,0 +37902,25.7,2.3,0 +37904,25.7,2.4,0 +37905,25.7,2.6,0 +37906,25.7,2.8,0 +37908,25.7,2.9,0 +37909,25.7,3,0 +37910,25.7,3.3,0 +37912,25.7,3.4,0 +37913,25.7,3.5,0 +37914,25.7,3.7,0 +37916,25.7,3.8,0 +37917,25.7,3.9,0 +37918,25.7,4,0 +37919,25.7,4.1,0 +37921,25.7,4.2,0 +37922,25.7,4.3,0 +37923,25.7,4.4,0 +37924,25.7,4.5,0 +37925,25.7,4.6,0 +37928,25.7,4.7,0 +37930,25.7,4.8,0 +37933,25.7,4.9,0 +37944,0,4.9,13 +37945,32.9,4.9,0 +37946,32.9,4.8,0 +37949,32.9,4.7,0 +37951,32.9,4.6,0 +37953,32.9,4.5,0 +37956,32.9,4.4,0 +37958,32.9,4.3,0 +37959,32.9,4.2,0 +37960,32.9,4.1,0 +37963,32.9,4,0 +37964,32.9,3.9,0 +37966,32.9,3.8,0 +37967,32.9,3.7,0 +37968,32.9,3.6,0 +37971,32.9,3.5,0 +37972,32.9,3.4,0 +37973,32.9,3.3,0 +37975,32.9,3.2,0 +37977,32.9,3.1,0 +37978,32.9,3,0 +37981,32.9,2.9,0 +37982,32.9,2.8,0 +37985,32.9,2.7,0 +37986,32.9,2.6,0 +37989,32.9,2.5,0 +37992,32.9,2.4,0 +37996,32.9,2.3,0 +38004,32.9,2.2,0 +38010,32.9,2.3,0 +38019,32.9,2.4,0 +38024,32.9,2.5,0 +38028,32.9,2.6,0 +38033,32.9,2.7,0 +38036,32.9,2.8,0 +38041,32.9,2.9,0 +38045,32.9,3,0 +38050,32.9,3.1,0 +38055,32.9,3.2,0 +38063,32.9,3.3,0 +38086,32.9,3.2,0 +38093,32.9,3.1,0 +38099,32.9,3,0 +38102,32.9,2.9,0 +38104,32.9,2.8,0 +38108,32.9,2.7,0 +38112,32.9,2.6,0 +38113,32.9,2.5,0 +38115,32.9,2.4,0 +38119,32.9,2.3,0 +38121,32.9,2.2,0 +38123,32.9,2.1,0 +38125,32.9,2,0 +38126,32.9,1.9,0 +38128,32.9,1.8,0 +38132,32.9,1.7,0 +38134,32.9,1.6,0 +38136,32.9,1.5,0 +38137,32.9,1.4,0 +38139,32.9,1.3,0 +38141,32.9,1.2,0 +38143,32.9,1.1,0 +38145,32.9,1,0 +38146,32.9,0.9,0 +38148,32.9,0.8,0 +38150,32.9,0.7,0 +38152,32.9,0.6,0 +38153,32.9,0.5,0 +38155,32.9,0.4,0 +38157,32.9,0.3,0 +38159,32.9,0.2,0 +38160,32.9,0.1,0 +38162,32.9,0,0 +38164,32.9,-0.1,0 +38166,32.9,-0.2,0 +38167,32.9,-0.3,0 +38169,32.9,-0.4,0 +38171,32.9,-0.5,0 +38172,32.9,-0.6,0 +38174,32.9,-0.7,0 +38176,32.9,-0.8,0 +38179,32.9,-0.9,0 +38181,32.9,-1,0 +38183,32.9,-1.1,0 +38185,32.9,-1.2,0 +38188,32.9,-1.3,0 +38190,32.9,-1.4,0 +38194,32.9,-1.5,0 +38197,32.9,-1.6,0 +38201,32.9,-1.7,0 +38204,32.9,-1.8,0 +38208,32.9,-1.9,0 +38215,32.9,-2,0 +38227,32.9,-2.1,0 +38236,32.9,-2,0 +38248,32.9,-1.9,0 +38255,32.9,-1.8,0 +38262,32.9,-1.7,0 +38267,32.9,-1.6,0 +38270,32.9,-1.5,0 +38275,32.9,-1.4,0 +38281,32.9,-1.3,0 +38284,32.9,-1.2,0 +38289,32.9,-1.1,0 +38293,32.9,-1,0 +38298,32.9,-0.9,0 +38301,32.9,-0.8,0 +38306,32.9,-0.7,0 +38311,32.9,-0.6,0 +38318,32.9,-0.5,0 +38343,32.9,-0.6,0 +38346,32.9,-0.7,0 +38350,32.9,-0.8,0 +38353,32.9,-0.9,0 +38355,32.9,-1,0 +38356,32.9,-1.1,0 +38360,32.9,-1.2,0 +38361,32.9,-1.3,0 +38363,32.9,-1.4,0 +38365,32.9,-1.5,0 +38366,32.9,-1.6,0 +38368,32.9,-1.7,0 +38369,32.9,-1.9,0 +38371,32.9,-2,0 +38372,32.9,-2.1,0 +38374,32.9,-2.2,0 +38375,32.9,-2.4,0 +38377,32.9,-2.5,0 +38378,32.9,-2.6,0 +38379,32.9,-2.7,0 +38381,32.9,-2.8,0 +38382,32.9,-2.9,0 +38383,32.9,-3,0 +38384,32.9,-3.2,0 +38386,32.9,-3.3,0 +38387,32.9,-3.4,0 +38388,32.9,-3.5,0 +38389,32.9,-3.6,0 +38390,32.9,-3.7,0 +38391,32.9,-3.8,0 +38392,32.9,-4,0 +38395,32.9,-4.1,0 +38396,32.9,-4.2,0 +38398,32.9,-4.3,0 +38399,32.9,-4.4,0 +38401,0,-4.5,18.2 +38402,35.4,-4.5,0 +38403,35.4,-4.7,0 +38405,35.4,-4.8,0 +38407,35.4,-4.9,0 +38409,35.4,-5,0 +38411,35.4,-5.1,0 +38416,35.4,-5.2,0 +38423,35.4,-5.1,0 +38427,35.4,-5,0 +38429,35.4,-4.9,0 +38431,35.4,-4.8,0 +38433,35.4,-4.7,0 +38435,35.4,-4.6,0 +38436,35.4,-4.4,0 +38438,35.4,-4.3,0 +38439,35.4,-4.2,0 +38441,35.4,-4.1,0 +38442,35.4,-3.9,0 +38444,35.4,-3.7,0 +38446,35.4,-3.6,0 +38447,35.4,-3.4,0 +38449,35.4,-3.1,0 +38451,35.4,-3,0 +38452,35.4,-2.8,0 +38454,35.4,-2.5,0 +38456,35.4,-2.4,0 +38457,35.4,-2.2,0 +38459,35.4,-2,0 +38461,35.4,-1.7,0 +38463,35.4,-1.5,0 +38464,35.4,-1.3,0 +38466,35.4,-1.1,0 +38468,35.4,-0.8,0 +38470,35.4,-0.7,0 +38471,35.4,-0.4,0 +38473,35.4,-0.2,0 +38475,35.4,0,0 +38477,35.4,0.3,0 +38479,35.4,0.4,0 +38480,35.4,0.6,0 +38482,35.4,0.8,0 +38484,35.4,1,0 +38486,35.4,1.2,0 +38488,35.4,1.5,0 +38490,35.4,1.6,0 +38491,35.4,1.7,0 +38493,35.4,1.9,0 +38495,35.4,2,0 +38497,35.4,2.2,0 +38499,35.4,2.3,0 +38501,35.4,2.4,0 +38503,35.4,2.5,0 +38504,35.4,2.6,0 +38506,35.4,2.7,0 +38508,35.4,2.8,0 +38510,35.4,2.9,0 +38512,35.4,3,0 +38514,35.4,3.1,0 +38518,35.4,3.2,0 +38522,35.4,3.3,0 +38529,35.4,3.4,0 +38568,35.4,3.5,0 +38576,35.4,3.6,0 +38581,35.4,3.7,0 +38587,35.4,3.8,0 +38592,35.4,3.9,0 +38596,35.4,4,0 +38599,26.5,4,0 +38601,26.5,4.1,0 +38607,26.5,4.2,0 +38611,36.7,4.2,0 +38614,36.7,4.3,0 +38630,36.7,4.2,0 +38636,36.7,4.1,0 +38642,36.7,4,0 +38646,36.7,3.9,0 +38648,36.7,3.8,0 +38651,36.7,3.7,0 +38653,36.7,3.6,0 +38655,36.7,3.5,0 +38659,36.7,3.4,0 +38662,36.7,3.3,0 +38664,36.7,3.2,0 +38666,36.7,3.1,0 +38668,36.7,3,0 +38670,36.7,2.9,0 +38672,36.7,2.8,0 +38674,36.7,2.7,0 +38676,36.7,2.6,0 +38678,36.7,2.5,0 +38680,36.7,2.4,0 +38682,36.7,2.3,0 +38685,36.7,2.2,0 +38687,36.7,2.1,0 +38689,36.7,2,0 +38693,36.7,1.9,0 +38695,36.7,1.8,0 +38697,36.7,1.7,0 +38699,36.7,1.6,0 +38703,36.7,1.5,0 +38705,36.7,1.4,0 +38709,36.7,1.3,0 +38711,36.7,1.2,0 +38715,36.7,1.1,0 +38719,36.7,1,0 +38725,36.7,0.9,0 +38731,36.7,0.8,0 +38760,36.7,0.9,0 +38767,36.7,1,0 +38773,36.7,1.1,0 +38779,36.7,1.2,0 +38782,36.7,1.3,0 +38788,36.7,1.4,0 +38792,36.7,1.5,0 +38796,36.7,1.6,0 +38800,36.7,1.7,0 +38803,36.7,1.8,0 +38809,36.7,1.9,0 +38813,36.7,2,0 +38819,36.7,2.1,0 +38824,36.7,2.2,0 +38833,36.7,2.3,0 +38852,36.7,2.2,0 +38859,36.7,2.1,0 +38863,36.7,2,0 +38868,36.7,1.9,0 +38870,36.7,1.8,0 +38873,36.7,1.7,0 +38877,36.7,1.6,0 +38879,36.7,1.5,0 +38881,36.7,1.4,0 +38884,36.7,1.3,0 +38886,36.7,1.2,0 +38887,36.7,1.1,0 +38889,36.7,1,0 +38891,36.7,0.9,0 +38893,36.7,0.8,0 +38894,36.7,0.7,0 +38898,36.7,0.6,0 +38899,36.7,0.5,0 +38901,36.7,0.4,0 +38902,36.7,0.3,0 +38904,36.7,0.2,0 +38905,36.7,0.1,0 +38908,36.7,0,0 +38909,36.7,-0.1,0 +38911,36.7,-0.2,0 +38912,36.7,-0.3,0 +38914,36.7,-0.4,0 +38916,36.7,-0.5,0 +38919,36.7,-0.6,0 +38921,36.7,-0.7,0 +38923,36.7,-0.8,0 +38926,0,-0.8,22.4 +38927,28.2,-0.8,0 +38928,28.2,-1,0 +38932,28.2,-1.1,0 +38936,28.2,-1.2,0 +38957,28.2,-1.1,0 +38962,28.2,-1,0 +38967,28.2,-0.9,0 +38971,28.2,-0.8,0 +38977,28.2,-0.7,0 +38983,28.2,-0.6,0 +38993,28.2,-0.5,0 +39007,28.2,-0.6,0 +39034,28.2,-0.5,0 +39039,28.2,-0.4,0 +39042,28.2,-0.3,0 +39043,28.2,-0.2,0 +39047,28.2,-0.1,0 +39048,28.2,0,0 +39050,28.2,0.1,0 +39051,28.2,0.2,0 +39053,28.2,0.3,0 +39054,28.2,0.4,0 +39056,28.2,0.5,0 +39057,28.2,0.7,0 +39059,28.2,0.9,0 +39061,28.2,1,0 +39062,28.2,1.1,0 +39063,28.2,1.3,0 +39065,28.2,1.4,0 +39066,28.2,1.7,0 +39068,28.2,1.9,0 +39069,28.2,2.1,0 +39071,28.2,2.2,0 +39072,28.2,2.3,0 +39073,28.2,2.6,0 +39075,28.2,2.8,0 +39076,28.2,3,0 +39077,28.2,3.3,0 +39079,28.2,3.5,0 +39080,28.2,3.7,0 +39081,28.2,4,0 +39083,28.2,4.2,0 +39084,28.2,4.3,0 +39085,28.2,4.4,0 +39086,28.2,4.6,0 +39087,28.2,4.8,0 +39088,28.2,4.9,0 +39089,28.2,5.1,0 +39090,28.2,5.3,0 +39091,28.2,5.5,0 +39092,28.2,5.7,0 +39093,28.2,5.8,0 +39094,28.2,6,0 +39095,28.2,6.2,0 +39096,28.2,6.3,0 +39097,28.2,6.5,0 +39098,0,6.6,37.8 +39099,27.1,6.6,0 +39100,27.1,7.3,0 +39101,27.1,7.4,0 +39102,27.1,7.5,0 +39103,27.1,7.7,0 +39104,27.1,7.9,0 +39106,27.1,8,0 +39107,27.1,8.1,0 +39108,27.1,8.2,0 +39109,27.1,8.3,0 +39111,27.1,8.4,0 +39112,27.1,8.5,0 +39114,27.1,8.6,0 +39115,27.1,8.7,0 +39117,27.1,8.8,0 +39120,27.1,8.9,0 +39127,27.1,8.8,0 +39130,27.1,8.7,0 +39133,27.1,8.6,0 +39134,27.1,8.5,0 +39135,27.1,8.4,0 +39137,27.1,8.2,0 +39139,27.1,8.1,0 +39140,27.1,8,0 +39141,27.1,7.9,0 +39142,27.1,7.7,0 +39144,27.1,7.6,0 +39145,27.1,7.3,0 +39147,27.1,7.2,0 +39148,27.1,6.9,0 +39150,27.1,6.8,0 +39151,27.1,6.5,0 +39153,27.1,6.3,0 +39154,27.1,6,0 +39156,27.1,5.9,0 +39157,27.1,5.5,0 +39159,27.1,5.4,0 +39160,27.1,5.2,0 +39161,27.1,4.9,0 +39163,27.1,4.7,0 +39164,27.1,4.3,0 +39166,27.1,4.1,0 +39167,27.1,3.7,0 +39169,27.1,3.6,0 +39170,27.1,3.4,0 +39171,27.1,3,0 +39173,27.1,2.8,0 +39174,27.1,2.6,0 +39175,27.1,2.2,0 +39177,27.1,2.1,0 +39178,27.1,1.9,0 +39179,27.1,1.7,0 +39180,27.1,1.5,0 +39181,27.1,1.1,0 +39183,27.1,1,0 +39184,27.1,0.8,0 +39185,27.1,0.6,0 +39186,27.1,0.4,0 +39187,27.1,0.3,0 +39188,27.1,0.1,0 +39189,27.1,-0.1,0 +39190,27.1,-0.3,0 +39191,27.1,-0.4,0 +39192,27.1,-0.5,0 +39193,27.1,-0.6,0 +39194,27.1,-0.8,0 +39195,27.1,-1,0 +39196,27.1,-1.1,0 +39197,27.1,-1.2,0 +39198,27.1,-1.4,0 +39199,27.1,-1.5,0 +39200,27.1,-1.6,0 +39201,0,-1.7,47.2 +39202,29.5,-1.7,0 +39203,29.5,-2,0 +39204,29.5,-2.1,0 +39205,29.5,-2.2,0 +39206,29.5,-2.3,0 +39207,29.5,-2.4,0 +39208,29.5,-2.5,0 +39210,29.5,-2.6,0 +39211,29.5,-2.7,0 +39212,29.5,-2.8,0 +39214,29.5,-2.9,0 +39217,29.5,-3,0 +39219,29.5,-3.1,0 +39231,29.5,-3,0 +39234,29.5,-2.9,0 +39237,29.5,-2.8,0 +39239,29.5,-2.7,0 +39240,29.5,-2.6,0 +39242,29.5,-2.5,0 +39243,29.5,-2.4,0 +39245,29.5,-2.3,0 +39246,29.5,-2.2,0 +39248,29.5,-2.1,0 +39249,29.5,-1.9,0 +39251,29.5,-1.8,0 +39252,29.5,-1.7,0 +39254,29.5,-1.5,0 +39255,29.5,-1.4,0 +39257,29.5,-1.2,0 +39259,29.5,-1.1,0 +39260,29.5,-0.9,0 +39262,29.5,-0.7,0 +39263,29.5,-0.6,0 +39265,29.5,-0.4,0 +39267,29.5,-0.2,0 +39268,29.5,-0.1,0 +39270,29.5,0.2,0 +39272,29.5,0.3,0 +39273,29.5,0.5,0 +39275,29.5,0.6,0 +39276,29.5,0.8,0 +39278,29.5,0.9,0 +39279,29.5,1.1,0 +39281,29.5,1.2,0 +39282,30.1,1.4,0 +39284,30.1,1.5,0 +39285,30.1,1.7,0 +39287,30.1,1.8,0 +39288,30.1,1.9,0 +39289,30.1,2,0 +39291,30.1,2.2,0 +39292,30.1,2.3,0 +39294,30.1,2.4,0 +39295,30.1,2.5,0 +39297,30.1,2.7,0 +39298,30.1,2.8,0 +39300,30.1,2.9,0 +39301,30.1,3,0 +39303,30.1,3.1,0 +39304,30.1,3.2,0 +39306,30.1,3.4,0 +39308,30.1,3.5,0 +39309,30.1,3.6,0 +39311,30.1,3.7,0 +39312,30.1,3.8,0 +39314,30.1,3.9,0 +39317,30.1,4,0 +39319,30.1,4.1,0 +39320,30.1,4.2,0 +39322,30.1,4.3,0 +39323,30.1,4.4,0 +39327,30.1,4.5,0 +39328,30.1,4.6,0 +39332,30.1,4.7,0 +39335,30.1,4.8,0 +39337,30.1,4.9,0 +39342,30.1,5,0 +39345,30.1,5.1,0 +39350,30.1,5.2,0 +39362,30.1,5.3,0 +39366,30.1,5.2,0 +39376,30.1,5.1,0 +39381,30.1,5,0 +39384,30.1,4.9,0 +39387,30.1,4.8,0 +39390,30.1,4.7,0 +39392,30.1,4.6,0 +39394,30.1,4.5,0 +39395,30.1,4.4,0 +39397,30.1,4.3,0 +39399,30.1,4.2,0 +39400,30.1,4.1,0 +39402,30.1,4,0 +39404,30.1,3.9,0 +39405,30.1,3.7,0 +39407,30.1,3.6,0 +39409,30.1,3.5,0 +39410,30.1,3.3,0 +39412,30.1,3.1,0 +39414,30.1,3,0 +39415,30.1,2.8,0 +39417,30.1,2.5,0 +39419,30.1,2.4,0 +39420,30.1,2.3,0 +39422,30.1,2.1,0 +39423,30.1,1.9,0 +39425,30.1,1.6,0 +39427,30.1,1.5,0 +39428,30.1,1.2,0 +39430,30.1,1.1,0 +39431,30.1,0.8,0 +39433,30.1,0.5,0 +39435,30.1,0.4,0 +39436,30.1,0.1,0 +39438,30.1,-0.1,0 +39439,30.1,-0.3,0 +39441,30.1,-0.5,0 +39442,30.1,-0.8,0 +39444,30.1,-1,0 +39445,30.1,-1.3,0 +39447,30.1,-1.4,0 +39448,30.1,-1.6,0 +39449,30.1,-1.9,0 +39451,30.1,-2,0 +39452,30.1,-2.2,0 +39453,30.1,-2.3,0 +39454,30.1,-2.4,0 +39455,30.1,-2.6,0 +39456,30.1,-2.9,0 +39458,30.1,-3.1,0 +39459,30.1,-3.2,0 +39460,30.1,-3.3,0 +39461,30.1,-3.5,0 +39462,30.1,-3.6,0 +39463,30.1,-3.7,0 +39464,30.1,-3.9,0 +39465,30.1,-4,0 +39466,30.1,-4.1,0 +39467,30.1,-4.2,0 +39468,30.1,-4.4,0 +39469,30.1,-4.5,0 +39470,30.1,-4.6,0 +39471,30.1,-4.7,0 +39472,30.1,-4.8,0 +39473,30.1,-4.9,0 +39474,30.1,-5,0 +39475,30.1,-5.1,0 +39476,16.4,-5.2,0 +39477,16.4,-5.3,0 +39478,16.4,-5.4,0 +39479,16.4,-5.5,0 +39480,16.4,-5.6,0 +39481,16.4,-5.7,0 +39482,16.4,-5.8,0 +39484,16.4,-5.9,0 +39485,16.4,-6,0 +39486,16.4,-6.1,0 +39488,16.4,-6.2,0 +39489,16.4,-6.3,0 +39491,16.4,-6.4,0 +39493,16.4,-6.5,0 +39495,16.4,-6.6,0 +39497,16.4,-6.7,0 +39500,16.4,-6.8,0 +39503,16.4,-6.9,0 +39509,16.3,-7,0 +39514,11.4,-7,0 +39523,11.4,-6.9,0 +39524,14.1,-6.9,0 +39535,14.1,-6.8,0 +39551,0,-6.8,2 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_7c7l.veng b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_7c7l.veng new file mode 100644 index 0000000000000000000000000000000000000000..55c93808f6660bfaa906083b1dc6182899876c89 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_7c7l.veng @@ -0,0 +1,35 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-17T07:29:46.1581600Z", + "AppVersion": "3", + "FileVersion": 5 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "209kW 7.7l Engine", + "Displacement": "7700", + "IdlingSpeed": 600.0, + "Inertia": 3.33, + "Fuels": [ + { + "WHTC-Urban": 0.0, + "WHTC-Rural": 0.0, + "WHTC-Motorway": 0.0, + "WHTC-Engineering": 1.0090832895, + "ColdHotBalancingFactor": 0.0, + "CFRegPer": 1.0, + "FuelMap": "209kW_ICE_Map.vmap", + "FuelType": "DieselCI" + } + ], + "RatedPower": 209000, + "RatedSpeed": 2550.0, + "MaxTorque": 1100, + "FullLoadCurve": "209kW_ICE_fld.vfld", + "WHRType": [ + "None" + ], + "WHRCorrectionFactors": {} + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_ICE_Map.vmap b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_ICE_Map.vmap new file mode 100644 index 0000000000000000000000000000000000000000..10f19d740cea49453b2c50171533dabc94912974 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_ICE_Map.vmap @@ -0,0 +1,163 @@ +engine speed [rpm], torque [Nm], fuel consumption [g/h] +600.00,0.00,648.214 +600.00,68.85,1626.915 +600.00,98.35,2053.103 +600.00,195.48,3383.983 +600.00,293.83,4726.347 +600.00,392.18,6058.504 +600.00,489.31,8107.779 +600.00,587.66,10186.402 +600.00,684.78,12239.042 +600.00,783.14,14317.665 +600.00,881.49,16396.288 +600.00,978.61,18448.929 +600.00,1076.96,20527.552 +600.00,1175.32,22606.175 +851.61,0.00,928.937 +851.61,64.67,1892.325 +851.61,92.39,2405.282 +851.61,183.63,4070.477 +851.61,276.02,5758.641 +851.61,368.41,7453.185 +851.61,459.65,9663.237 +851.61,552.04,11837.561 +851.61,643.28,13995.297 +851.61,735.67,16050.952 +851.61,828.06,18103.130 +851.61,919.30,20129.657 +851.61,1011.69,22181.836 +851.61,1104.09,24234.015 +1103.23,0.00,1209.659 +1103.23,62.41,2157.736 +1103.23,89.15,2758.737 +1103.23,177.19,4758.248 +1103.23,266.34,6792.210 +1103.23,355.49,8847.865 +1103.23,443.52,11219.971 +1103.23,532.67,13488.720 +1103.23,620.71,15726.845 +1103.23,709.86,17966.245 +1103.23,799.01,20229.890 +1103.23,887.05,22492.259 +1103.23,976.20,24743.508 +1103.23,1065.35,26994.757 +1354.84,0.00,1490.382 +1354.84,60.98,2421.870 +1354.84,87.11,3112.193 +1354.84,173.14,5444.742 +1354.84,260.25,7824.504 +1354.84,347.36,10242.546 +1354.84,433.39,12776.705 +1354.84,520.50,15141.155 +1354.84,606.52,17457.117 +1354.84,693.63,19881.539 +1354.84,780.75,22341.689 +1354.84,866.77,24801.840 +1354.84,953.88,27249.231 +1354.84,1041.00,30075.597 +1606.45,0.00,1964.218 +1606.45,60.00,2898.713 +1606.45,85.71,3701.160 +1606.45,170.35,6375.138 +1606.45,256.07,9132.915 +1606.45,341.78,11916.086 +1606.45,426.42,14629.424 +1606.45,512.14,17373.235 +1606.45,596.78,20240.205 +1606.45,682.49,23084.322 +1606.45,768.20,25784.963 +1606.45,852.85,28443.704 +1606.45,938.56,31162.121 +1606.45,1024.27,33987.192 +1858.06,0.00,2405.472 +1858.06,59.28,3395.960 +1858.06,84.69,4296.748 +1858.06,168.33,7298.534 +1858.06,253.02,10456.979 +1858.06,337.71,13614.161 +1858.06,421.35,16806.717 +1858.06,506.04,19948.738 +1858.06,589.67,23098.339 +1858.06,674.37,26265.628 +1858.06,759.06,29333.109 +1858.06,842.69,32242.669 +1858.06,927.39,35435.225 +1858.06,1012.08,38645.468 +2109.68,0.00,2908.296 +2109.68,58.74,4008.698 +2109.68,83.92,4995.396 +2109.68,166.78,8282.706 +2109.68,250.70,11854.275 +2109.68,334.61,15399.314 +2109.68,417.48,18962.040 +2109.68,501.40,22400.954 +2109.68,584.26,25903.038 +2109.68,668.18,29565.571 +2109.68,752.10,33148.511 +2109.68,834.96,36787.039 +2109.68,918.88,40596.124 +2109.68,1002.79,44447.432 +2361.29,0.00,3517.244 +2361.29,58.31,4836.211 +2361.29,83.30,5889.868 +2361.29,165.57,9403.322 +2361.29,248.87,13398.123 +2361.29,332.18,17295.644 +2361.29,414.44,21267.704 +2361.29,497.74,25214.497 +2361.29,580.01,29106.965 +2361.29,663.31,33230.630 +2361.29,746.62,37409.885 +2361.29,828.88,41464.064 +2361.29,912.18,45307.994 +2361.29,995.49,49151.923 +2612.90,0.00,4272.744 +2612.90,57.97,5567.707 +2612.90,82.81,6727.488 +2612.90,164.59,10597.214 +2612.90,247.40,14941.971 +2612.90,330.21,19262.724 +2612.90,411.98,23531.678 +2612.90,494.79,27996.455 +2612.90,576.57,32694.958 +2612.90,659.38,37346.716 +2612.90,742.19,41862.028 +2612.90,823.97,46367.264 +2612.90,906.78,50929.527 +2612.90,989.59,55491.791 +2864.52,0.00,4975.182 +2864.52,57.68,6271.408 +2864.52,82.40,7570.161 +2864.52,163.78,11901.020 +2864.52,246.18,16541.408 +2864.52,328.59,21435.734 +2864.52,409.96,26482.929 +2864.52,492.36,31523.807 +2864.52,573.74,36936.118 +2864.52,656.14,42358.536 +2864.52,738.54,47310.978 +2864.52,819.92,52201.514 +2864.52,902.32,57153.955 +2864.52,984.73,62106.397 +535.00,-48.25,0.000 +795.00,-53.16,0.000 +1055.00,-59.37,0.000 +1315.00,-66.29,0.000 +1575.00,-73.79,0.000 +1835.00,-81.42,0.000 +2095.00,-88.73,0.000 +2355.00,-95.54,0.000 +2615.00,-102.74,0.000 +2875.00,-110.97,0.000 +3005.00,-115.10,0.000 +535.00,-117.19,0.000 +795.00,-115.02,0.000 +1055.00,-117.63,0.000 +1315.00,-122.38,0.000 +1575.00,-128.43,0.000 +1835.00,-135.02,0.000 +2095.00,-141.54,0.000 +2355.00,-147.74,0.000 +2615.00,-154.45,0.000 +2875.00,-162.29,0.000 +3005.00,-166.24,0.000 diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_ICE_fld.vfld b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_ICE_fld.vfld new file mode 100644 index 0000000000000000000000000000000000000000..9fa844476ee0a96a2063e146c0d48bc6b19b5798 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/209kW_ICE_fld.vfld @@ -0,0 +1,7 @@ +engine speed [1/min], full load torque [Nm], motoring torque [Nm] +600.00,385.00,-55.851 +1321.50,1100.00,-61.072 +1867.50,1100.00,-75.131 +2550.00,782.67,-97.074 +3291.00,0.00,-144.231 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..07c6fe733dd26b900db605b2a9343622fe4804d9 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_Map.vemo @@ -0,0 +1,925 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-500.00,0.000 +0.00,-475.00,0.000 +0.00,-450.00,0.000 +0.00,-425.00,0.000 +0.00,-400.00,0.000 +0.00,-375.00,0.000 +0.00,-350.00,-0.220 +0.00,-325.00,-0.510 +0.00,-300.00,-0.671 +0.00,-275.00,-0.765 +0.00,-250.00,-0.813 +0.00,-225.00,-0.826 +0.00,-200.00,-0.811 +0.00,-175.00,-0.771 +0.00,-150.00,-0.710 +0.00,-125.00,-0.629 +0.00,-100.00,-0.531 +0.00,-75.00,-0.416 +0.00,-50.00,-0.287 +0.00,-25.00,-0.143 +0.00,-5.00,-0.015 +0.00,5.00,0.059 +0.00,25.00,0.264 +0.00,50.00,0.527 +0.00,75.00,0.800 +0.00,100.00,1.080 +0.00,125.00,1.370 +0.00,150.00,1.667 +0.00,175.00,1.972 +0.00,200.00,2.285 +0.00,225.00,2.606 +0.00,250.00,2.935 +0.00,275.00,3.270 +0.00,300.00,3.613 +0.00,325.00,3.964 +0.00,350.00,4.321 +0.00,375.00,4.685 +0.00,400.00,5.056 +0.00,425.00,5.433 +0.00,450.00,5.818 +0.00,475.00,6.209 +0.00,500.00,6.606 +70.00,-500.00,0.000 +70.00,-475.00,0.000 +70.00,-450.00,0.000 +70.00,-425.00,0.000 +70.00,-400.00,0.000 +70.00,-375.00,0.000 +70.00,-350.00,-0.410 +70.00,-325.00,-0.623 +70.00,-300.00,-0.733 +70.00,-275.00,-0.790 +70.00,-250.00,-0.811 +70.00,-225.00,-0.805 +70.00,-200.00,-0.776 +70.00,-175.00,-0.727 +70.00,-150.00,-0.662 +70.00,-125.00,-0.581 +70.00,-100.00,-0.487 +70.00,-75.00,-0.379 +70.00,-50.00,-0.260 +70.00,-25.00,-0.129 +70.00,-5.00,-0.014 +70.00,5.00,0.051 +70.00,25.00,0.228 +70.00,50.00,0.454 +70.00,75.00,0.688 +70.00,100.00,0.929 +70.00,125.00,1.176 +70.00,150.00,1.429 +70.00,175.00,1.689 +70.00,200.00,1.956 +70.00,225.00,2.228 +70.00,250.00,2.507 +70.00,275.00,2.791 +70.00,300.00,3.081 +70.00,325.00,3.377 +70.00,350.00,3.678 +70.00,375.00,3.985 +70.00,400.00,4.298 +70.00,425.00,4.616 +70.00,450.00,4.939 +70.00,475.00,5.267 +70.00,500.00,5.601 +700.00,-500.00,-33.378 +700.00,-475.00,-31.792 +700.00,-450.00,-30.197 +700.00,-425.00,-28.593 +700.00,-400.00,-26.979 +700.00,-375.00,-25.356 +700.00,-350.00,-23.723 +700.00,-325.00,-22.081 +700.00,-300.00,-20.429 +700.00,-275.00,-18.768 +700.00,-250.00,-17.098 +700.00,-225.00,-15.419 +700.00,-200.00,-13.730 +700.00,-175.00,-12.033 +700.00,-150.00,-10.326 +700.00,-125.00,-8.610 +700.00,-100.00,-6.885 +700.00,-75.00,-5.151 +700.00,-50.00,-3.408 +700.00,-25.00,-1.655 +700.00,-5.00,-0.228 +700.00,5.00,0.473 +700.00,25.00,2.006 +700.00,50.00,3.922 +700.00,75.00,5.846 +700.00,100.00,7.779 +700.00,125.00,9.720 +700.00,150.00,11.670 +700.00,175.00,13.628 +700.00,200.00,15.596 +700.00,225.00,17.572 +700.00,250.00,19.556 +700.00,275.00,21.550 +700.00,300.00,23.552 +700.00,325.00,25.562 +700.00,350.00,27.581 +700.00,375.00,29.608 +700.00,400.00,31.644 +700.00,425.00,33.689 +700.00,450.00,35.742 +700.00,475.00,37.803 +700.00,500.00,39.872 +1400.00,-500.00,-68.844 +1400.00,-475.00,-65.493 +1400.00,-450.00,-62.131 +1400.00,-425.00,-58.757 +1400.00,-400.00,-55.373 +1400.00,-375.00,-51.979 +1400.00,-350.00,-48.573 +1400.00,-325.00,-45.156 +1400.00,-300.00,-41.729 +1400.00,-275.00,-38.290 +1400.00,-250.00,-34.841 +1400.00,-225.00,-31.381 +1400.00,-200.00,-27.911 +1400.00,-175.00,-24.430 +1400.00,-150.00,-20.938 +1400.00,-125.00,-17.435 +1400.00,-100.00,-13.921 +1400.00,-75.00,-10.397 +1400.00,-50.00,-6.861 +1400.00,-25.00,-3.312 +1400.00,-5.00,-0.415 +1400.00,5.00,0.965 +1400.00,25.00,4.010 +1400.00,50.00,7.801 +1400.00,75.00,11.601 +1400.00,100.00,15.411 +1400.00,125.00,19.231 +1400.00,150.00,23.062 +1400.00,175.00,26.903 +1400.00,200.00,30.755 +1400.00,225.00,34.617 +1400.00,250.00,38.490 +1400.00,275.00,42.374 +1400.00,300.00,46.268 +1400.00,325.00,50.172 +1400.00,350.00,54.087 +1400.00,375.00,58.012 +1400.00,400.00,61.948 +1400.00,425.00,65.894 +1400.00,450.00,69.851 +1400.00,475.00,73.817 +1400.00,500.00,77.795 +2100.00,-500.00,-104.021 +2100.00,-475.00,-98.928 +2100.00,-450.00,-93.822 +2100.00,-425.00,-88.702 +2100.00,-400.00,-83.569 +2100.00,-375.00,-78.421 +2100.00,-350.00,-73.260 +2100.00,-325.00,-68.086 +2100.00,-300.00,-62.898 +2100.00,-275.00,-57.696 +2100.00,-250.00,-52.480 +2100.00,-225.00,-47.251 +2100.00,-200.00,-42.009 +2100.00,-175.00,-36.753 +2100.00,-150.00,-31.483 +2100.00,-125.00,-26.200 +2100.00,-100.00,-20.903 +2100.00,-75.00,-15.592 +2100.00,-50.00,-10.267 +2100.00,-25.00,-4.922 +2100.00,-5.00,-0.517 +2100.00,5.00,1.493 +2100.00,25.00,6.057 +2100.00,50.00,11.726 +2100.00,75.00,17.405 +2100.00,100.00,23.096 +2100.00,125.00,28.800 +2100.00,150.00,34.517 +2100.00,175.00,40.248 +2100.00,200.00,45.992 +2100.00,225.00,51.749 +2100.00,250.00,57.520 +2100.00,275.00,63.304 +2100.00,300.00,69.102 +2100.00,325.00,74.913 +2100.00,350.00,80.737 +2100.00,375.00,86.575 +2100.00,400.00,92.426 +2100.00,425.00,98.290 +2100.00,450.00,104.167 +2100.00,475.00,110.058 +2100.00,500.00,115.962 +2800.00,-500.00,-138.914 +2800.00,-475.00,-132.103 +2800.00,-450.00,-125.274 +2800.00,-425.00,-118.427 +2800.00,-400.00,-111.562 +2800.00,-375.00,-104.680 +2800.00,-350.00,-97.780 +2800.00,-325.00,-90.863 +2800.00,-300.00,-83.928 +2800.00,-275.00,-76.976 +2800.00,-250.00,-70.005 +2800.00,-225.00,-63.018 +2800.00,-200.00,-56.013 +2800.00,-175.00,-48.990 +2800.00,-150.00,-41.950 +2800.00,-125.00,-34.893 +2800.00,-100.00,-27.817 +2800.00,-75.00,-20.723 +2800.00,-50.00,-13.610 +2800.00,-25.00,-6.467 +2800.00,-5.00,-0.452 +2800.00,5.00,2.063 +2800.00,25.00,8.158 +2800.00,50.00,15.710 +2800.00,75.00,23.271 +2800.00,100.00,30.847 +2800.00,125.00,38.440 +2800.00,150.00,46.049 +2800.00,175.00,53.676 +2800.00,200.00,61.321 +2800.00,225.00,68.983 +2800.00,250.00,76.662 +2800.00,275.00,84.358 +2800.00,300.00,92.072 +2800.00,325.00,99.803 +2800.00,350.00,107.551 +2800.00,375.00,115.317 +2800.00,400.00,123.100 +2800.00,425.00,130.900 +2800.00,450.00,138.717 +2800.00,475.00,146.551 +2800.00,500.00,154.402 +3500.00,-500.00,-173.512 +3500.00,-475.00,-165.004 +3500.00,-450.00,-156.473 +3500.00,-425.00,-147.919 +3500.00,-400.00,-139.342 +3500.00,-375.00,-130.742 +3500.00,-350.00,-122.120 +3500.00,-325.00,-113.475 +3500.00,-300.00,-104.807 +3500.00,-275.00,-96.117 +3500.00,-250.00,-87.404 +3500.00,-225.00,-78.668 +3500.00,-200.00,-69.910 +3500.00,-175.00,-61.129 +3500.00,-150.00,-52.326 +3500.00,-125.00,-43.500 +3500.00,-100.00,-34.650 +3500.00,-75.00,-25.777 +3500.00,-50.00,-16.876 +3500.00,-25.00,-7.933 +3500.00,-5.00,0.000 +3500.00,5.00,2.683 +3500.00,25.00,10.326 +3500.00,50.00,19.764 +3500.00,75.00,29.211 +3500.00,100.00,38.677 +3500.00,125.00,48.164 +3500.00,150.00,57.672 +3500.00,175.00,67.203 +3500.00,200.00,76.756 +3500.00,225.00,86.331 +3500.00,250.00,95.929 +3500.00,275.00,105.549 +3500.00,300.00,115.191 +3500.00,325.00,124.856 +3500.00,350.00,134.543 +3500.00,375.00,144.252 +3500.00,400.00,153.983 +3500.00,425.00,163.737 +3500.00,450.00,173.513 +3500.00,475.00,183.310 +3500.00,500.00,193.130 +4200.00,-500.00,-207.801 +4200.00,-475.00,-197.618 +4200.00,-450.00,-187.406 +4200.00,-425.00,-177.164 +4200.00,-400.00,-166.894 +4200.00,-375.00,-156.594 +4200.00,-350.00,-146.265 +4200.00,-325.00,-135.908 +4200.00,-300.00,-125.521 +4200.00,-275.00,-115.106 +4200.00,-250.00,-104.662 +4200.00,-225.00,-94.189 +4200.00,-200.00,-83.687 +4200.00,-175.00,-73.156 +4200.00,-150.00,-62.596 +4200.00,-125.00,-52.007 +4200.00,-100.00,-41.388 +4200.00,-75.00,-30.738 +4200.00,-50.00,-20.051 +4200.00,-25.00,-9.302 +4200.00,-5.00,0.000 +4200.00,5.00,3.358 +4200.00,25.00,12.570 +4200.00,50.00,23.901 +4200.00,75.00,35.238 +4200.00,100.00,46.598 +4200.00,125.00,57.984 +4200.00,150.00,69.398 +4200.00,175.00,80.840 +4200.00,200.00,92.310 +4200.00,225.00,103.808 +4200.00,250.00,115.335 +4200.00,275.00,126.890 +4200.00,300.00,138.473 +4200.00,325.00,150.085 +4200.00,350.00,161.725 +4200.00,375.00,173.394 +4200.00,400.00,185.090 +4200.00,425.00,196.815 +4200.00,450.00,208.568 +4200.00,475.00,220.349 +4200.00,500.00,232.158 +4900.00,-500.00,-241.766 +4900.00,-475.00,-229.931 +4900.00,-450.00,-218.058 +4900.00,-425.00,-206.149 +4900.00,-400.00,-194.204 +4900.00,-375.00,-182.221 +4900.00,-350.00,-170.203 +4900.00,-325.00,-158.148 +4900.00,-300.00,-146.057 +4900.00,-275.00,-133.929 +4900.00,-250.00,-121.765 +4900.00,-225.00,-109.565 +4900.00,-200.00,-97.329 +4900.00,-175.00,-85.056 +4900.00,-150.00,-72.747 +4900.00,-125.00,-60.401 +4900.00,-100.00,-48.017 +4900.00,-75.00,-35.592 +4900.00,-50.00,-23.119 +4900.00,-25.00,-10.552 +4900.00,-5.00,0.000 +4900.00,5.00,4.093 +4900.00,25.00,14.900 +4900.00,50.00,28.132 +4900.00,75.00,41.364 +4900.00,100.00,54.623 +4900.00,125.00,67.914 +4900.00,150.00,81.239 +4900.00,175.00,94.599 +4900.00,200.00,107.995 +4900.00,225.00,121.425 +4900.00,250.00,134.891 +4900.00,275.00,148.393 +4900.00,300.00,161.930 +4900.00,325.00,175.502 +4900.00,350.00,189.110 +4900.00,375.00,202.754 +4900.00,400.00,216.432 +4900.00,425.00,230.146 +4900.00,450.00,243.895 +4900.00,475.00,257.680 +4900.00,500.00,271.499 +5600.00,-500.00,-275.393 +5600.00,-475.00,-261.927 +5600.00,-450.00,-248.415 +5600.00,-425.00,-234.859 +5600.00,-400.00,-221.257 +5600.00,-375.00,-207.610 +5600.00,-350.00,-193.918 +5600.00,-325.00,-180.180 +5600.00,-300.00,-166.399 +5600.00,-275.00,-152.572 +5600.00,-250.00,-138.700 +5600.00,-225.00,-124.784 +5600.00,-200.00,-110.822 +5600.00,-175.00,-96.816 +5600.00,-150.00,-82.764 +5600.00,-125.00,-68.666 +5600.00,-100.00,-54.521 +5600.00,-75.00,-40.324 +5600.00,-50.00,-26.063 +5600.00,-25.00,-11.663 +5600.00,-5.00,0.000 +5600.00,5.00,4.893 +5600.00,25.00,17.326 +5600.00,50.00,32.467 +5600.00,75.00,47.600 +5600.00,100.00,62.763 +5600.00,125.00,77.965 +5600.00,150.00,93.208 +5600.00,175.00,108.494 +5600.00,200.00,123.823 +5600.00,225.00,139.195 +5600.00,250.00,154.611 +5600.00,275.00,170.070 +5600.00,300.00,185.573 +5600.00,325.00,201.120 +5600.00,350.00,216.710 +5600.00,375.00,232.344 +5600.00,400.00,248.021 +5600.00,425.00,263.742 +5600.00,450.00,279.506 +5600.00,475.00,295.313 +5600.00,500.00,311.163 +6300.00,-500.00,-308.664 +6300.00,-475.00,-293.590 +6300.00,-450.00,-278.461 +6300.00,-425.00,-263.277 +6300.00,-400.00,-248.038 +6300.00,-375.00,-232.744 +6300.00,-350.00,-217.395 +6300.00,-325.00,-201.991 +6300.00,-300.00,-186.532 +6300.00,-275.00,-171.019 +6300.00,-250.00,-155.452 +6300.00,-225.00,-139.829 +6300.00,-200.00,-124.152 +6300.00,-175.00,-108.420 +6300.00,-150.00,-92.632 +6300.00,-125.00,-76.788 +6300.00,-100.00,-60.885 +6300.00,-75.00,-44.917 +6300.00,-50.00,-28.864 +6300.00,-25.00,-12.607 +6300.00,-5.00,0.000 +6300.00,5.00,5.759 +6300.00,25.00,19.856 +6300.00,50.00,36.917 +6300.00,75.00,53.958 +6300.00,100.00,71.031 +6300.00,125.00,88.149 +6300.00,150.00,105.317 +6300.00,175.00,122.536 +6300.00,200.00,139.806 +6300.00,225.00,157.130 +6300.00,250.00,174.506 +6300.00,275.00,191.934 +6300.00,300.00,209.416 +6300.00,325.00,226.950 +6300.00,350.00,244.537 +6300.00,375.00,262.177 +6300.00,400.00,279.869 +6300.00,425.00,297.613 +6300.00,450.00,315.410 +6300.00,475.00,333.260 +6300.00,500.00,351.161 +7000.00,-500.00,-341.564 +7000.00,-475.00,-324.906 +7000.00,-450.00,-308.181 +7000.00,-425.00,-291.390 +7000.00,-400.00,-274.532 +7000.00,-375.00,-257.609 +7000.00,-350.00,-240.619 +7000.00,-325.00,-223.564 +7000.00,-300.00,-206.443 +7000.00,-275.00,-189.257 +7000.00,-250.00,-172.005 +7000.00,-225.00,-154.687 +7000.00,-200.00,-137.304 +7000.00,-175.00,-119.854 +7000.00,-150.00,-102.337 +7000.00,-125.00,-84.752 +7000.00,-100.00,-67.094 +7000.00,-75.00,-49.355 +7000.00,-50.00,-31.505 +7000.00,-25.00,-13.354 +7000.00,-5.00,0.000 +7000.00,5.00,6.696 +7000.00,25.00,22.498 +7000.00,50.00,41.493 +7000.00,75.00,60.447 +7000.00,100.00,79.437 +7000.00,125.00,98.478 +7000.00,150.00,117.577 +7000.00,175.00,136.736 +7000.00,200.00,155.957 +7000.00,225.00,175.241 +7000.00,250.00,194.587 +7000.00,275.00,213.997 +7000.00,300.00,233.469 +7000.00,325.00,253.004 +7000.00,350.00,272.602 +7000.00,375.00,292.263 +7000.00,400.00,311.987 +7000.00,425.00,331.773 +7000.00,450.00,351.621 +7000.00,475.00,371.532 +7000.00,500.00,391.505 +7700.00,-500.00,-374.077 +7700.00,-475.00,-355.857 +7700.00,-450.00,-337.558 +7700.00,-425.00,-319.180 +7700.00,-400.00,-300.723 +7700.00,-375.00,-282.189 +7700.00,-350.00,-263.576 +7700.00,-325.00,-244.885 +7700.00,-300.00,-226.116 +7700.00,-275.00,-207.270 +7700.00,-250.00,-188.345 +7700.00,-225.00,-169.343 +7700.00,-200.00,-150.262 +7700.00,-175.00,-131.102 +7700.00,-150.00,-111.863 +7700.00,-125.00,-92.540 +7700.00,-100.00,-73.131 +7700.00,-75.00,-53.620 +7700.00,-50.00,-33.964 +7700.00,-25.00,-13.865 +7700.00,-5.00,0.000 +7700.00,5.00,7.705 +7700.00,25.00,25.259 +7700.00,50.00,46.203 +7700.00,75.00,67.080 +7700.00,100.00,87.992 +7700.00,125.00,108.962 +7700.00,150.00,129.999 +7700.00,175.00,151.107 +7700.00,200.00,172.287 +7700.00,225.00,193.541 +7700.00,250.00,214.868 +7700.00,275.00,236.269 +7700.00,300.00,257.744 +7700.00,325.00,279.294 +7700.00,350.00,300.917 +7700.00,375.00,322.614 +7700.00,400.00,344.385 +7700.00,425.00,366.230 +7700.00,450.00,388.149 +7700.00,475.00,410.140 +7700.00,500.00,432.205 +8400.00,-500.00,-406.186 +8400.00,-475.00,-386.427 +8400.00,-450.00,-366.576 +8400.00,-425.00,-346.632 +8400.00,-400.00,-326.596 +8400.00,-375.00,-306.468 +8400.00,-350.00,-286.249 +8400.00,-325.00,-265.938 +8400.00,-300.00,-245.535 +8400.00,-275.00,-225.042 +8400.00,-250.00,-204.456 +8400.00,-225.00,-183.780 +8400.00,-200.00,-163.011 +8400.00,-175.00,-142.149 +8400.00,-150.00,-121.193 +8400.00,-125.00,-100.139 +8400.00,-100.00,-78.978 +8400.00,-75.00,-57.693 +8400.00,-50.00,-36.218 +8400.00,-25.00,-14.089 +8400.00,-5.00,0.000 +8400.00,5.00,8.787 +8400.00,25.00,28.145 +8400.00,50.00,51.056 +8400.00,75.00,73.865 +8400.00,100.00,96.707 +8400.00,125.00,119.613 +8400.00,150.00,142.596 +8400.00,175.00,165.660 +8400.00,200.00,188.808 +8400.00,225.00,212.040 +8400.00,250.00,235.359 +8400.00,275.00,258.763 +8400.00,300.00,282.253 +8400.00,325.00,305.830 +8400.00,350.00,329.493 +8400.00,375.00,353.242 +8400.00,400.00,377.077 +8400.00,425.00,400.997 +8400.00,450.00,425.004 +8400.00,475.00,449.095 +8400.00,500.00,473.272 +9100.00,-500.00,-437.873 +9100.00,-475.00,-416.599 +9100.00,-450.00,-395.217 +9100.00,-425.00,-373.729 +9100.00,-400.00,-352.133 +9100.00,-375.00,-330.430 +9100.00,-350.00,-308.621 +9100.00,-325.00,-286.706 +9100.00,-300.00,-264.685 +9100.00,-275.00,-242.557 +9100.00,-250.00,-220.323 +9100.00,-225.00,-197.983 +9100.00,-200.00,-175.535 +9100.00,-175.00,-152.979 +9100.00,-150.00,-130.312 +9100.00,-125.00,-107.529 +9100.00,-100.00,-84.619 +9100.00,-75.00,-61.555 +9100.00,-50.00,-38.243 +9100.00,-25.00,-13.957 +9100.00,-5.00,0.000 +9100.00,5.00,9.944 +9100.00,25.00,31.162 +9100.00,50.00,56.061 +9100.00,75.00,80.812 +9100.00,100.00,105.591 +9100.00,125.00,130.441 +9100.00,150.00,155.377 +9100.00,175.00,180.405 +9100.00,200.00,205.529 +9100.00,225.00,230.751 +9100.00,250.00,256.070 +9100.00,275.00,281.489 +9100.00,300.00,307.007 +9100.00,325.00,332.624 +9100.00,350.00,358.341 +9100.00,375.00,384.157 +9100.00,400.00,410.071 +9100.00,425.00,436.085 +9100.00,450.00,462.197 +9100.00,475.00,488.407 +9100.00,500.00,514.716 +9800.00,-500.00,-469.120 +9800.00,-475.00,-446.355 +9800.00,-450.00,-423.466 +9800.00,-425.00,-400.454 +9800.00,-400.00,-377.318 +9800.00,-375.00,-354.059 +9800.00,-350.00,-330.678 +9800.00,-325.00,-307.174 +9800.00,-300.00,-283.548 +9800.00,-275.00,-259.800 +9800.00,-250.00,-235.929 +9800.00,-225.00,-211.936 +9800.00,-200.00,-187.818 +9800.00,-175.00,-163.575 +9800.00,-150.00,-139.202 +9800.00,-125.00,-114.693 +9800.00,-100.00,-90.033 +9800.00,-75.00,-65.184 +9800.00,-50.00,-40.009 +9800.00,-25.00,-13.364 +9800.00,-5.00,0.000 +9800.00,5.00,11.178 +9800.00,25.00,34.315 +9800.00,50.00,61.225 +9800.00,75.00,87.931 +9800.00,100.00,114.656 +9800.00,125.00,141.457 +9800.00,150.00,168.354 +9800.00,175.00,195.354 +9800.00,200.00,222.463 +9800.00,225.00,249.683 +9800.00,250.00,277.015 +9800.00,275.00,304.459 +9800.00,300.00,332.017 +9800.00,325.00,359.688 +9800.00,350.00,387.472 +9800.00,375.00,415.369 +9800.00,400.00,443.380 +9800.00,425.00,471.503 +9800.00,450.00,499.738 +9800.00,475.00,528.087 +9800.00,500.00,556.547 +10500.00,-500.00,-499.911 +10500.00,-475.00,-475.678 +10500.00,-450.00,-451.305 +10500.00,-425.00,-426.790 +10500.00,-400.00,-402.134 +10500.00,-375.00,-377.338 +10500.00,-350.00,-352.401 +10500.00,-325.00,-327.325 +10500.00,-300.00,-302.109 +10500.00,-275.00,-276.754 +10500.00,-250.00,-251.258 +10500.00,-225.00,-225.621 +10500.00,-200.00,-199.842 +10500.00,-175.00,-173.919 +10500.00,-150.00,-147.845 +10500.00,-125.00,-121.613 +10500.00,-100.00,-95.201 +10500.00,-75.00,-68.556 +10500.00,-50.00,-41.483 +10500.00,-25.00,-12.133 +10500.00,-5.00,0.000 +10500.00,5.00,12.488 +10500.00,25.00,37.610 +10500.00,50.00,66.556 +10500.00,75.00,95.229 +10500.00,100.00,123.910 +10500.00,125.00,152.671 +10500.00,150.00,181.536 +10500.00,175.00,210.517 +10500.00,200.00,239.620 +10500.00,225.00,268.848 +10500.00,250.00,298.202 +10500.00,275.00,327.683 +10500.00,300.00,357.293 +10500.00,325.00,387.030 +10500.00,350.00,416.896 +10500.00,375.00,446.890 +10500.00,400.00,477.012 +10500.00,425.00,507.262 +10500.00,450.00,537.639 +10500.00,475.00,568.143 +10500.00,500.00,598.775 +11200.00,-500.00,-530.225 +11200.00,-475.00,-504.550 +11200.00,-450.00,-478.714 +11200.00,-425.00,-452.719 +11200.00,-400.00,-426.563 +11200.00,-375.00,-400.248 +11200.00,-350.00,-373.774 +11200.00,-325.00,-347.142 +11200.00,-300.00,-320.351 +11200.00,-275.00,-293.401 +11200.00,-250.00,-266.292 +11200.00,-225.00,-239.022 +11200.00,-200.00,-211.591 +11200.00,-175.00,-183.993 +11200.00,-150.00,-156.224 +11200.00,-125.00,-128.269 +11200.00,-100.00,-100.101 +11200.00,-75.00,-71.647 +11200.00,-50.00,-42.629 +11200.00,-25.00,-9.884 +11200.00,-5.00,0.000 +11200.00,5.00,13.876 +11200.00,25.00,41.050 +11200.00,50.00,72.061 +11200.00,75.00,102.715 +11200.00,100.00,133.363 +11200.00,125.00,164.092 +11200.00,150.00,194.934 +11200.00,175.00,225.905 +11200.00,200.00,257.011 +11200.00,225.00,288.256 +11200.00,250.00,319.643 +11200.00,275.00,351.172 +11200.00,300.00,382.846 +11200.00,325.00,414.663 +11200.00,350.00,446.624 +11200.00,375.00,478.730 +11200.00,400.00,510.979 +11200.00,425.00,543.372 +11200.00,450.00,575.908 +11200.00,475.00,608.587 +11200.00,500.00,641.409 +11900.00,-500.00,-560.044 +11900.00,-475.00,-532.952 +11900.00,-450.00,-505.677 +11900.00,-425.00,-478.222 +11900.00,-400.00,-450.587 +11900.00,-375.00,-422.773 +11900.00,-350.00,-394.779 +11900.00,-325.00,-366.607 +11900.00,-300.00,-338.255 +11900.00,-275.00,-309.724 +11900.00,-250.00,-281.013 +11900.00,-225.00,-252.121 +11900.00,-200.00,-223.045 +11900.00,-175.00,-193.780 +11900.00,-150.00,-164.318 +11900.00,-125.00,-134.641 +11900.00,-100.00,-104.711 +11900.00,-75.00,-74.428 +11900.00,-50.00,-43.401 +11900.00,-25.00,-5.199 +11900.00,-5.00,0.000 +11900.00,5.00,15.343 +11900.00,25.00,44.640 +11900.00,50.00,77.745 +11900.00,75.00,110.397 +11900.00,100.00,143.023 +11900.00,125.00,175.729 +11900.00,150.00,208.558 +11900.00,175.00,241.526 +11900.00,200.00,274.644 +11900.00,225.00,307.917 +11900.00,250.00,341.347 +11900.00,275.00,374.936 +11900.00,300.00,408.686 +11900.00,325.00,442.596 +11900.00,350.00,476.667 +11900.00,375.00,510.898 +11900.00,400.00,545.291 +11900.00,425.00,579.843 +11900.00,450.00,614.556 +11900.00,475.00,649.428 +11900.00,500.00,684.459 +12600.00,-500.00,-589.350 +12600.00,-475.00,-560.863 +12600.00,-450.00,-532.174 +12600.00,-425.00,-503.282 +12600.00,-400.00,-474.189 +12600.00,-375.00,-444.894 +12600.00,-350.00,-415.398 +12600.00,-325.00,-385.701 +12600.00,-300.00,-355.804 +12600.00,-275.00,-325.705 +12600.00,-250.00,-295.404 +12600.00,-225.00,-264.899 +12600.00,-200.00,-234.186 +12600.00,-175.00,-203.259 +12600.00,-150.00,-172.107 +12600.00,-125.00,-140.706 +12600.00,-100.00,-109.006 +12600.00,-75.00,-76.869 +12600.00,-50.00,-43.743 +12600.00,-25.00,0.000 +12600.00,-5.00,0.000 +12600.00,5.00,16.889 +12600.00,25.00,48.382 +12600.00,50.00,83.615 +12600.00,75.00,118.283 +12600.00,100.00,152.897 +12600.00,125.00,187.592 +12600.00,150.00,222.415 +12600.00,175.00,257.391 +12600.00,200.00,292.531 +12600.00,225.00,327.841 +12600.00,250.00,363.326 +12600.00,275.00,398.986 +12600.00,300.00,434.824 +12600.00,325.00,470.839 +12600.00,350.00,507.033 +12600.00,375.00,543.406 +12600.00,400.00,579.957 +12600.00,425.00,616.685 +12600.00,450.00,653.591 +12600.00,475.00,690.675 +12600.00,500.00,727.935 +13300.00,-500.00,-618.120 +13300.00,-475.00,-588.266 +13300.00,-450.00,-558.186 +13300.00,-425.00,-527.879 +13300.00,-400.00,-497.348 +13300.00,-375.00,-466.591 +13300.00,-350.00,-435.611 +13300.00,-325.00,-404.407 +13300.00,-300.00,-372.978 +13300.00,-275.00,-341.325 +13300.00,-250.00,-309.445 +13300.00,-225.00,-277.337 +13300.00,-200.00,-244.995 +13300.00,-175.00,-212.411 +13300.00,-150.00,-179.570 +13300.00,-125.00,-146.442 +13300.00,-100.00,-112.959 +13300.00,-75.00,-78.934 +13300.00,-50.00,-43.586 +13300.00,-25.00,0.000 +13300.00,-5.00,0.000 +13300.00,5.00,18.513 +13300.00,25.00,52.279 +13300.00,50.00,89.676 +13300.00,75.00,126.379 +13300.00,100.00,162.996 +13300.00,125.00,199.688 +13300.00,150.00,236.517 +13300.00,175.00,273.510 +13300.00,200.00,310.681 +13300.00,225.00,348.039 +13300.00,250.00,385.588 +13300.00,275.00,423.330 +13300.00,300.00,461.268 +13300.00,325.00,499.403 +13300.00,350.00,537.734 +13300.00,375.00,576.262 +13300.00,400.00,614.986 +13300.00,425.00,653.908 +13300.00,450.00,693.025 +13300.00,475.00,732.338 +13300.00,500.00,771.846 +14000.00,-500.00,-646.335 +14000.00,-475.00,-615.139 +14000.00,-450.00,-583.692 +14000.00,-425.00,-551.993 +14000.00,-400.00,-520.045 +14000.00,-375.00,-487.847 +14000.00,-350.00,-455.400 +14000.00,-325.00,-422.704 +14000.00,-300.00,-389.760 +14000.00,-275.00,-356.565 +14000.00,-250.00,-323.118 +14000.00,-225.00,-289.415 +14000.00,-200.00,-255.451 +14000.00,-175.00,-221.214 +14000.00,-150.00,-186.685 +14000.00,-125.00,-151.824 +14000.00,-100.00,-116.541 +14000.00,-75.00,-80.585 +14000.00,-50.00,-42.840 +14000.00,-25.00,0.000 +14000.00,-5.00,0.000 +14000.00,5.00,20.218 +14000.00,25.00,56.335 +14000.00,50.00,95.934 +14000.00,75.00,134.691 +14000.00,100.00,173.325 +14000.00,125.00,212.027 +14000.00,150.00,250.871 +14000.00,175.00,289.890 +14000.00,200.00,329.103 +14000.00,225.00,368.518 +14000.00,250.00,408.143 +14000.00,275.00,447.979 +14000.00,300.00,488.030 +14000.00,325.00,528.296 +14000.00,350.00,568.778 +14000.00,375.00,609.476 +14000.00,400.00,650.390 +14000.00,425.00,691.520 +14000.00,450.00,732.865 +14000.00,475.00,774.425 +14000.00,500.00,816.200 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..f8e7de407501fd806280ccfa393a9ecdfeb27d7d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_drag.vemd @@ -0,0 +1,24 @@ +n [rpm] , T_drag [Nm] +0, -0.92 +70, -0.97 +700, -1.46 +1400, -2.01 +2100, -2.55 +2800, -3.09 +3500, -3.64 +4200, -4.18 +4900, -4.73 +5600, -5.27 +6300, -5.81 +7000, -6.36 +7700, -6.9 +8400, -7.44 +9100, -7.99 +9800, -8.53 +10500, -9.08 +11200, -9.62 +11900, -10.16 +12600, -10.71 +13300, -11.25 +14000, -11.79 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..887e24ce6c35d307e3659fa38de03ea76b619669 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/EM_fld.vemp @@ -0,0 +1,25 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 500.00, -500.00 +70, 500.00, -500.00 +700, 500.00, -500.00 +1400, 500.00, -500.00 +2100, 500.00, -500.00 +2800, 500.00, -500.00 +3500, 500.00, -500.00 +4200, 416.67, -416.67 +4900, 357.14, -357.14 +5600, 312.50, -312.50 +6300, 277.78, -277.78 +7000, 250.00, -250.00 +7700, 227.27, -227.27 +8400, 208.33, -208.33 +9100, 192.31, -192.31 +9800, 178.57, -178.57 +10500, 166.67, -166.67 +11200, 156.25, -156.25 +11900, 147.06, -147.06 +12600, 138.89, -138.89 +13300, 131.58, -131.58 +14000, 125.00, -125.00 + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_Map.vemo b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_Map.vemo new file mode 100644 index 0000000000000000000000000000000000000000..2cc4c716211c5f1847b8dd7e5a7ec77f5ee757d3 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_Map.vemo @@ -0,0 +1,379 @@ +n [rpm] , T [Nm] , P_el [kW] +0.00,-1030.00,0.000 +0.00,-978.50,0.000 +0.00,-927.00,0.000 +0.00,-875.50,0.000 +0.00,-824.00,0.000 +0.00,-772.50,0.000 +0.00,-721.00,-0.220 +0.00,-669.50,-0.510 +0.00,-618.00,-0.671 +0.00,-566.50,-0.765 +0.00,-515.00,-0.813 +0.00,-463.50,-0.826 +0.00,-412.00,-0.811 +0.00,-360.50,-0.771 +0.00,-309.00,-0.710 +0.00,-257.50,-0.629 +0.00,-206.00,-0.531 +0.00,-154.50,-0.416 +0.00,-103.00,-0.287 +0.00,-51.50,-0.143 +0.00,-10.30,-0.015 +0.00,10.30,0.059 +0.00,51.50,0.264 +0.00,103.00,0.527 +0.00,154.50,0.800 +0.00,206.00,1.080 +0.00,257.50,1.370 +0.00,309.00,1.667 +0.00,360.50,1.972 +0.00,412.00,2.285 +0.00,463.50,2.606 +0.00,515.00,2.935 +0.00,566.50,3.270 +0.00,618.00,3.613 +0.00,669.50,3.964 +0.00,721.00,4.321 +0.00,772.50,4.685 +0.00,824.00,5.056 +0.00,875.50,5.433 +0.00,927.00,5.818 +0.00,978.50,6.209 +0.00,1030.00,6.606 +37.00,-1030.00,0.000 +37.00,-978.50,0.000 +37.00,-927.00,0.000 +37.00,-875.50,0.000 +37.00,-824.00,0.000 +37.00,-772.50,0.000 +37.00,-721.00,-0.447 +37.00,-669.50,-0.678 +37.00,-618.00,-0.798 +37.00,-566.50,-0.860 +37.00,-515.00,-0.883 +37.00,-463.50,-0.876 +37.00,-412.00,-0.845 +37.00,-360.50,-0.792 +37.00,-309.00,-0.721 +37.00,-257.50,-0.633 +37.00,-206.00,-0.530 +37.00,-154.50,-0.413 +37.00,-103.00,-0.283 +37.00,-51.50,-0.141 +37.00,-10.30,-0.015 +37.00,10.30,0.055 +37.00,51.50,0.248 +37.00,103.00,0.495 +37.00,154.50,0.749 +37.00,206.00,1.011 +37.00,257.50,1.280 +37.00,309.00,1.556 +37.00,360.50,1.840 +37.00,412.00,2.129 +37.00,463.50,2.426 +37.00,515.00,2.729 +37.00,566.50,3.039 +37.00,618.00,3.355 +37.00,669.50,3.677 +37.00,721.00,4.005 +37.00,772.50,4.340 +37.00,824.00,4.680 +37.00,875.50,5.026 +37.00,927.00,5.378 +37.00,978.50,5.735 +37.00,1030.00,6.098 +370.00,-1030.00,-36.344 +370.00,-978.50,-34.617 +370.00,-927.00,-32.881 +370.00,-875.50,-31.134 +370.00,-824.00,-29.376 +370.00,-772.50,-27.609 +370.00,-721.00,-25.831 +370.00,-669.50,-24.043 +370.00,-618.00,-22.244 +370.00,-566.50,-20.436 +370.00,-515.00,-18.617 +370.00,-463.50,-16.789 +370.00,-412.00,-14.950 +370.00,-360.50,-13.102 +370.00,-309.00,-11.244 +370.00,-257.50,-9.375 +370.00,-206.00,-7.497 +370.00,-154.50,-5.609 +370.00,-103.00,-3.711 +370.00,-51.50,-1.802 +370.00,-10.30,-0.248 +370.00,10.30,0.515 +370.00,51.50,2.185 +370.00,103.00,4.271 +370.00,154.50,6.366 +370.00,206.00,8.470 +370.00,257.50,10.584 +370.00,309.00,12.707 +370.00,360.50,14.839 +370.00,412.00,16.982 +370.00,463.50,19.133 +370.00,515.00,21.294 +370.00,566.50,23.465 +370.00,618.00,25.644 +370.00,669.50,27.833 +370.00,721.00,30.032 +370.00,772.50,32.239 +370.00,824.00,34.456 +370.00,875.50,36.682 +370.00,927.00,38.918 +370.00,978.50,41.162 +370.00,1030.00,43.415 +740.00,-1030.00,-74.961 +740.00,-978.50,-71.312 +740.00,-927.00,-67.651 +740.00,-875.50,-63.979 +740.00,-824.00,-60.294 +740.00,-772.50,-56.597 +740.00,-721.00,-52.889 +740.00,-669.50,-49.169 +740.00,-618.00,-45.436 +740.00,-566.50,-41.693 +740.00,-515.00,-37.937 +740.00,-463.50,-34.170 +740.00,-412.00,-30.391 +740.00,-360.50,-26.600 +740.00,-309.00,-22.798 +740.00,-257.50,-18.984 +740.00,-206.00,-15.158 +740.00,-154.50,-11.321 +740.00,-103.00,-7.471 +740.00,-51.50,-3.607 +740.00,-10.30,-0.452 +740.00,10.30,1.051 +740.00,51.50,4.367 +740.00,103.00,8.495 +740.00,154.50,12.632 +740.00,206.00,16.780 +740.00,257.50,20.940 +740.00,309.00,25.111 +740.00,360.50,29.294 +740.00,412.00,33.488 +740.00,463.50,37.693 +740.00,515.00,41.910 +740.00,566.50,46.139 +740.00,618.00,50.379 +740.00,669.50,54.630 +740.00,721.00,58.893 +740.00,772.50,63.167 +740.00,824.00,67.452 +740.00,875.50,71.749 +740.00,927.00,76.057 +740.00,978.50,80.377 +740.00,1030.00,84.707 +1110.00,-1030.00,-113.264 +1110.00,-978.50,-107.719 +1110.00,-927.00,-102.159 +1110.00,-875.50,-96.584 +1110.00,-824.00,-90.994 +1110.00,-772.50,-85.390 +1110.00,-721.00,-79.770 +1110.00,-669.50,-74.136 +1110.00,-618.00,-68.486 +1110.00,-566.50,-62.822 +1110.00,-515.00,-57.144 +1110.00,-463.50,-51.450 +1110.00,-412.00,-45.742 +1110.00,-360.50,-40.018 +1110.00,-309.00,-34.281 +1110.00,-257.50,-28.528 +1110.00,-206.00,-22.760 +1110.00,-154.50,-16.978 +1110.00,-103.00,-11.179 +1110.00,-51.50,-5.359 +1110.00,-10.30,-0.563 +1110.00,10.30,1.626 +1110.00,51.50,6.595 +1110.00,103.00,12.768 +1110.00,154.50,18.951 +1110.00,206.00,25.148 +1110.00,257.50,31.359 +1110.00,309.00,37.584 +1110.00,360.50,43.824 +1110.00,412.00,50.078 +1110.00,463.50,56.347 +1110.00,515.00,62.631 +1110.00,566.50,68.929 +1110.00,618.00,75.242 +1110.00,669.50,81.569 +1110.00,721.00,87.911 +1110.00,772.50,94.268 +1110.00,824.00,100.638 +1110.00,875.50,107.024 +1110.00,927.00,113.423 +1110.00,978.50,119.838 +1110.00,1030.00,126.266 +1480.00,-1030.00,-151.257 +1480.00,-978.50,-143.841 +1480.00,-927.00,-136.405 +1480.00,-875.50,-128.950 +1480.00,-824.00,-121.475 +1480.00,-772.50,-113.982 +1480.00,-721.00,-106.469 +1480.00,-669.50,-98.937 +1480.00,-618.00,-91.386 +1480.00,-566.50,-83.815 +1480.00,-515.00,-76.226 +1480.00,-463.50,-68.618 +1480.00,-412.00,-60.990 +1480.00,-360.50,-53.344 +1480.00,-309.00,-45.678 +1480.00,-257.50,-37.993 +1480.00,-206.00,-30.289 +1480.00,-154.50,-22.565 +1480.00,-103.00,-14.819 +1480.00,-51.50,-7.042 +1480.00,-10.30,-0.493 +1480.00,10.30,2.246 +1480.00,51.50,8.883 +1480.00,103.00,17.106 +1480.00,154.50,25.338 +1480.00,206.00,33.588 +1480.00,257.50,41.855 +1480.00,309.00,50.141 +1480.00,360.50,58.446 +1480.00,412.00,66.770 +1480.00,463.50,75.112 +1480.00,515.00,83.474 +1480.00,566.50,91.854 +1480.00,618.00,100.253 +1480.00,669.50,108.671 +1480.00,721.00,117.108 +1480.00,772.50,125.563 +1480.00,824.00,134.038 +1480.00,875.50,142.531 +1480.00,927.00,151.043 +1480.00,978.50,159.573 +1480.00,1030.00,168.122 +1850.00,-1030.00,-188.930 +1850.00,-978.50,-179.665 +1850.00,-927.00,-170.376 +1850.00,-875.50,-161.062 +1850.00,-824.00,-151.723 +1850.00,-772.50,-142.360 +1850.00,-721.00,-132.971 +1850.00,-669.50,-123.558 +1850.00,-618.00,-114.120 +1850.00,-566.50,-104.657 +1850.00,-515.00,-95.170 +1850.00,-463.50,-85.659 +1850.00,-412.00,-76.122 +1850.00,-360.50,-66.561 +1850.00,-309.00,-56.976 +1850.00,-257.50,-47.365 +1850.00,-206.00,-37.729 +1850.00,-154.50,-28.067 +1850.00,-103.00,-18.376 +1850.00,-51.50,-8.638 +1850.00,-10.30,0.000 +1850.00,10.30,2.921 +1850.00,51.50,11.243 +1850.00,103.00,21.520 +1850.00,154.50,31.807 +1850.00,206.00,42.113 +1850.00,257.50,52.443 +1850.00,309.00,62.797 +1850.00,360.50,73.174 +1850.00,412.00,83.576 +1850.00,463.50,94.003 +1850.00,515.00,104.453 +1850.00,566.50,114.928 +1850.00,618.00,125.427 +1850.00,669.50,135.950 +1850.00,721.00,146.498 +1850.00,772.50,157.070 +1850.00,824.00,167.666 +1850.00,875.50,178.286 +1850.00,927.00,188.931 +1850.00,978.50,199.599 +1850.00,1030.00,210.291 +2220.00,-1030.00,-226.266 +2220.00,-978.50,-215.178 +2220.00,-927.00,-204.058 +2220.00,-875.50,-192.907 +2220.00,-824.00,-181.723 +2220.00,-772.50,-170.509 +2220.00,-721.00,-159.262 +2220.00,-669.50,-147.984 +2220.00,-618.00,-136.675 +2220.00,-566.50,-125.334 +2220.00,-515.00,-113.962 +2220.00,-463.50,-102.558 +2220.00,-412.00,-91.123 +2220.00,-360.50,-79.656 +2220.00,-309.00,-68.158 +2220.00,-257.50,-56.628 +2220.00,-206.00,-45.066 +2220.00,-154.50,-33.469 +2220.00,-103.00,-21.833 +2220.00,-51.50,-10.128 +2220.00,-10.30,0.000 +2220.00,10.30,3.656 +2220.00,51.50,13.687 +2220.00,103.00,26.025 +2220.00,154.50,38.369 +2220.00,206.00,50.739 +2220.00,257.50,63.137 +2220.00,309.00,75.565 +2220.00,360.50,88.023 +2220.00,412.00,100.512 +2220.00,463.50,113.032 +2220.00,515.00,125.583 +2220.00,566.50,138.165 +2220.00,618.00,150.778 +2220.00,669.50,163.421 +2220.00,721.00,176.096 +2220.00,772.50,188.801 +2220.00,824.00,201.537 +2220.00,875.50,214.304 +2220.00,927.00,227.101 +2220.00,978.50,239.929 +2220.00,1030.00,252.787 +2590.00,-1030.00,-263.249 +2590.00,-978.50,-250.362 +2590.00,-927.00,-237.434 +2590.00,-875.50,-224.467 +2590.00,-824.00,-211.460 +2590.00,-772.50,-198.413 +2590.00,-721.00,-185.327 +2590.00,-669.50,-172.200 +2590.00,-618.00,-159.035 +2590.00,-566.50,-145.830 +2590.00,-515.00,-132.585 +2590.00,-463.50,-119.301 +2590.00,-412.00,-105.977 +2590.00,-360.50,-92.614 +2590.00,-309.00,-79.211 +2590.00,-257.50,-65.768 +2590.00,-206.00,-52.283 +2590.00,-154.50,-38.755 +2590.00,-103.00,-25.173 +2590.00,-51.50,-11.490 +2590.00,-10.30,0.000 +2590.00,10.30,4.457 +2590.00,51.50,16.224 +2590.00,103.00,30.631 +2590.00,154.50,45.039 +2590.00,206.00,59.477 +2590.00,257.50,73.949 +2590.00,309.00,88.458 +2590.00,360.50,103.005 +2590.00,412.00,117.591 +2590.00,463.50,132.215 +2590.00,515.00,146.877 +2590.00,566.50,161.579 +2590.00,618.00,176.319 +2590.00,669.50,191.097 +2590.00,721.00,205.914 +2590.00,772.50,220.770 +2590.00,824.00,235.664 +2590.00,875.50,250.596 +2590.00,927.00,265.567 +2590.00,978.50,280.576 +2590.00,1030.00,295.623 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_drag.vemd b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_drag.vemd new file mode 100644 index 0000000000000000000000000000000000000000..314a3b4215bb1aa40d2cff6c8ce1d423f740eeff --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_drag.vemd @@ -0,0 +1,11 @@ +n [rpm] , T_drag [Nm] +0, -1.89 +37, -2.01 +370, -3.02 +740, -4.14 +1110, -5.26 +1480, -6.38 +1850, -7.5 +2220, -8.62 +2590, -9.74 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_fld.vemp b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_fld.vemp new file mode 100644 index 0000000000000000000000000000000000000000..d7a681028a9a2a69ef89f14bd1b89e4ae5792efc --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Gen_fld.vemp @@ -0,0 +1,13 @@ +n [rpm] , T_drive [Nm] , T_drag [Nm] +0, 1030.00, -1030.00 +37, 1030.00, -1030.00 +370, 1030.00, -1030.00 +740, 1030.00, -1030.00 +1110, 1030.00, -1030.00 +1480, 1030.00, -1030.00 +1850, 1030.00, -1030.00 +2220, 858.33, -858.33 +2590, 735.71, -735.71 + + + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericBattery.vbatr b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericBattery.vbatr new file mode 100644 index 0000000000000000000000000000000000000000..a6939be42acc832210d10b61c2ab817f3cf37334 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericBattery.vbatr @@ -0,0 +1,3 @@ +SoC, Ri +0, 0.024 +100, 0.024 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericBattery.vreess b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericBattery.vreess new file mode 100644 index 0000000000000000000000000000000000000000..79f41df3219b15b53754e2f42ce5e2af2b6bbbc0 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericBattery.vreess @@ -0,0 +1,19 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-06-16T09:37:48.3166199Z", + "AppVersion": "3", + "FileVersion": 1 + }, + "Body": { + "SavedInDeclMode": false, + "REESSType": "Battery", + "Model": "Generic Battery", + "Capacity": 68.75, + "SOC_min": 20, + "SOC_max": 80, + "MaxCurrentMap": "MaxCurrent.vimax", + "InternalResistanceCurve": "GenericBattery.vbatr", + "SoCCurve": "REESS_SOC_curve.vbatv" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericEM.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericEM.vem new file mode 100644 index 0000000000000000000000000000000000000000..8c2a244b02af60ffadac16ec6acdc4437d53a99b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericEM.vem @@ -0,0 +1,33 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-05T14:49:40.5920495Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "Inertia": 0.134, + "ContinuousTorque": 437, + "ContinuousTorqueSpeed": 3500, + "OverloadTorque": 500, + "OverloadTorqueSpeed": 3500, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9, + "VoltageLevels": [ + { + "Voltage": 0.0, + "FullLoadCurve": "EM_fld.vemp", + "DragCurve": "EM_drag.vemd", + "EfficiencyMap": "EM_Map.vemo" + }, + { + "Voltage": 1000.0, + "FullLoadCurve": "EM_fld.vemp", + "DragCurve": "EM_drag.vemd", + "EfficiencyMap": "EM_Map.vemo" + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericGen.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericGen.vem new file mode 100644 index 0000000000000000000000000000000000000000..8bce454f0ffcf15816a1bb5d813bce93b58a315d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/GenericGen.vem @@ -0,0 +1,33 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2021-08-05T14:49:40.5920495Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": false, + "Model": "Generic Electric Motor", + "Inertia": 0.134, + "ContinuousTorque": 798, + "ContinuousTorqueSpeed": 1850, + "OverloadTorque": 1030, + "OverloadTorqueSpeed": 1850, + "OverloadTime": 120, + "ThermalOverloadRecoveryFactor": 0.9, + "VoltageLevels": [ + { + "Voltage": 0.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + }, + { + "Voltage": 1000.0, + "FullLoadCurve": "Gen_fld.vemp", + "DragCurve": "Gen_drag.vemd", + "EfficiencyMap": "Gen_Map.vemo" + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Hybrid_Parameters.vhctl b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Hybrid_Parameters.vhctl new file mode 100644 index 0000000000000000000000000000000000000000..2f2ed814fcff9e24e146e56f0d0ff41378f5a386 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Hybrid_Parameters.vhctl @@ -0,0 +1,18 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2020-09-07T15:28:08.3781385Z", + "AppVersion": "3", + "FileVersion": 2 + }, + "Body": { + "----EquivalenceFactor": 2.0, + "MinSoC": 24.0, + "----MaxSoC": 80.0, + "TargetSoC": 70.0, + "----AuxBufferTime": 5.0, + "----AuxBufferChgTime": 5.0, + "----MinICEOnTime": 10.0, + "GensetMinOptPowerFactor": 0.2 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/MaxCurrent.vimax b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/MaxCurrent.vimax new file mode 100644 index 0000000000000000000000000000000000000000..adf28fb9b5ced83296d2634fc6727e2d1b82357e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/MaxCurrent.vimax @@ -0,0 +1,3 @@ +SOC, I_charge, I_discharge +0, 1620, 1620 +100, 1620, 1620 \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/REESS_SOC_curve.vbatv b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/REESS_SOC_curve.vbatv new file mode 100644 index 0000000000000000000000000000000000000000..745afc9500ba00a1a4a49acb4752c88dd2105a4c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/REESS_SOC_curve.vbatv @@ -0,0 +1,13 @@ +SOC, V +0,718.4170472 +10,746.8408459 +20,763.1375469 +30,771.851826 +40,776.2574768 +50,778.6145358 +60,780.4264075 +70,782.6969898 +80,786.1877986 +90,791.6750932 +100,800.2070015 + diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/SerialHybrid_S4.vecto b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/SerialHybrid_S4.vecto new file mode 100644 index 0000000000000000000000000000000000000000..38bb87e716ea38312e882ef2416cbba9c24c5f0b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/SerialHybrid_S4.vecto @@ -0,0 +1,55 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2022-02-08T08:23:21.5081224Z", + "AppVersion": "3", + "FileVersion": 11 + }, + "Body": { + "SavedInDeclMode": false, + "EngineOnlyMode": false, + "VehicleFile": "SerialHybrid_S4.vveh", + "EngineFile": "209kW_7c7l.veng", + "HybridStrategyParams": "Hybrid_Parameters.vhctl", + "Padd_electric": 0.0, + "VACC": "Truck.vacc", + "EngineStopStartAtVehicleStopThreshold": 2.0, + "EngineStopStartMaxOffTimespan": 120.0, + "EngineStopStartUtilityFactor": 0.8, + "EngineStopStartUtilityFactorDriving": 0.8, + "EcoRollMinSpeed": 60.000000000000007, + "EcoRollActivationDelay": 2.0, + "EcoRollUnderspeedThreshold": 0.0, + "EcoRollMaxAcceleration": 0.1, + "PCCEnableSpeed": 80.0, + "PCCMinSpeed": 50.0, + "PCCUnderspeed": 8.0, + "PCCOverSpeed": 5.0, + "PCCPreviewDistanceUC1": 1500.0, + "PCCPreviewDistanceUC2": 1000.0, + "LAC": { + "Enabled": true, + "PreviewDistanceFactor": 10.0, + "DF_offset": 2.5, + "DF_scaling": 1.5, + "DF_targetSpeedLookup": "", + "Df_velocityDropLookup": "", + "MinSpeed": 50.0 + }, + "OverSpeedEcoRoll": { + "Mode": "Overspeed", + "MinSpeed": 50.0, + "OverSpeed": 2.5 + }, + "Cycles": [ + "LongHaul", + "RegionalDelivery", + "UrbanDelivery", + "Construction", + "Urban", + "Suburban", + "Interurban", + "Coach" + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/SerialHybrid_S4.vveh b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/SerialHybrid_S4.vveh new file mode 100644 index 0000000000000000000000000000000000000000..348394003e6c7f7fe5a7592d9ba631c4b0186f2d --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/SerialHybrid_S4.vveh @@ -0,0 +1,79 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2022-02-08T08:23:19.3752854Z", + "AppVersion": "3", + "FileVersion": 10 + }, + "Body": { + "SavedInDeclMode": false, + "VehCat": "CityBus", + "LegislativeClass": "Unknown", + "CurbWeight": 12841.5, + "CurbWeightExtra": 0.0, + "MassMax": 19.5, + "Loading": 5618.16, + "rdyn": 465.0, + "CdCorrMode": "CdofVdecl", + "CdCorrFile": "", + "AxleConfig": { + "Type": "4x2", + "Axles": [ + { + "Inertia": 11.9, + "Wheels": "275/70 R22.5", + "AxleWeightShare": 0.375, + "TwinTyres": false, + "RRCISO": 0.0034, + "FzISO": 31300.0, + "Type": "VehicleNonDriven" + }, + { + "Inertia": 11.9, + "Wheels": "275/70 R22.5", + "AxleWeightShare": 0.625, + "TwinTyres": true, + "RRCISO": 0.004, + "FzISO": 31300.0, + "Type": "VehicleDriven" + } + ] + }, + "EngineStopStart": false, + "EcoRoll": "None", + "PredictiveCruiseControl": "Option_1_2_3", + "ATEcoRollReleaseLockupClutch": false, + "CdA": 4.9, + "VehicleHeight": 3.1, + "Retarder": { + "Type": "None", + "Ratio": 1.0, + "File": "" + }, + "InitialSoC": 80, + "PowertrainConfiguration": "SerialHybrid", + "ElectricMotors": [ + { + "Count": 2, + "Ratio": 12.47, + "Position": "E4", + "MotorFile": "GenericEM.vem", + "MechanicalEfficiency": 0.98 + }, + { + "Count": 1, + "Ratio": 1, + "Position": "GEN", + "MotorFile": "GenericGen.vem", + "MechanicalEfficiency": 1 + } + ], + "Batteries": [ + { + "NumPacks": 1, + "BatteryFile": "GenericBattery.vreess", + "StreamId": 0 + } + ] + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Truck.vacc b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Truck.vacc new file mode 100644 index 0000000000000000000000000000000000000000..b03ec7e47e9765ae57e43462c7f4c3ad15a38e7e --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Sx_Job/Truck.vacc @@ -0,0 +1,6 @@ +v [km/h],acc [m/s�],dec [m/s�] +0,1,-1 +25,1,-1 +50,0.642857143,-1 +60,0.5,-0.5 +120,0.5,-0.5 diff --git a/VectoCore/VectoCoreTest/TestData/Integration/ADAS-HEV/Group5PCCEng/Class5_P25_PCC123EcoRollEngineStop.vveh b/VectoCore/VectoCoreTest/TestData/Integration/ADAS-HEV/Group5PCCEng/Class5_P25_PCC123EcoRollEngineStop.vveh index bef381c8d63a451a678c317ca760f78d5b466f76..5b38a20ff6d694904d980e790d638aa146bb60cf 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/ADAS-HEV/Group5PCCEng/Class5_P25_PCC123EcoRollEngineStop.vveh +++ b/VectoCore/VectoCoreTest/TestData/Integration/ADAS-HEV/Group5PCCEng/Class5_P25_PCC123EcoRollEngineStop.vveh @@ -100,7 +100,7 @@ "Position": "P2.5", "MotorFile": "GenericEMotor_140kW_936Nm.vem", "MechanicalEfficiency": 1.0, - "RatioPerGear": [ 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125 ], + "RatioPerGear": [ 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125, 1.0259, 0.8125 ] } ], "Batteries": [ diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml index 144e02970abb0da4b4ef33e37cb05767b1f319e7..a239e6825cf089e215eb4d54385cdc763e15a3e7 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml @@ -34,7 +34,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>2</Position> @@ -53,8 +53,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml index 12524b9c8abeaae7833c9dff87366a12864f6846..cb9cfbff3f17e2ec4f2b507a59c9f3efe1fd6f56 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml @@ -34,7 +34,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>3</Position> @@ -53,8 +53,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml index 0e0407f3d12aa5f8b574fe8bf42f89bfb03007a9..ca7327394b7a067787baa8031c4865aa98aa0f34 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml @@ -34,7 +34,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="v2.4:ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>4</Position> @@ -53,8 +53,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="v2.4:ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml index 40178220ff9ca1278eec1b24e52e1d2941c52834..2a93fae8d440344c0566375819491f34b9799885 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml @@ -30,7 +30,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>2</Position> @@ -49,8 +49,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml index 97f8be8d0f98dc71457d0295f5fdf212cd72dd26..44bf8d19d8342e73549531333b410bb024ea78f3 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml @@ -30,7 +30,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>3</Position> @@ -49,8 +49,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml index 49eac0f15727f5a7a6a129cb1c97c39241629b72..195d02d9c70119a8551e06a734a36792aeacee1e 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml @@ -30,7 +30,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>4</Position> @@ -49,8 +49,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml index 0c6661425ab6afc8c72fdad88e16e142b6e8ca5c..5ec6b24a7d655e7959b1b7757e8da6521858772c 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml @@ -30,7 +30,7 @@ <v2.0:Entry gear="1" maxTorque="2500"/> <v2.0:Entry gear="12" maxTorque="1900"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>2</Position> @@ -49,8 +49,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml index f1aeb455c611824eb7a241cb3105af1cf4e7d398..7c2883114d056e926858875e4a1a1b74eb81bf83 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml @@ -26,7 +26,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>3</Position> @@ -45,8 +45,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml index 19774aabcf6eec9a3132478a8fe68f5391f9564e..8b7795992b84a16dd2a62e7703a632418ca4c444 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml @@ -26,7 +26,7 @@ <!-- optional --> <v2.0:Entry gear="9" maxTorque="2000"/> </TorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> + <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType"> <!-- optional --> <ElectricMachine> <Position>4</Position> @@ -45,8 +45,6 @@ </MaxTorqueCurve> </VoltageLevel> </ElectricMachine> - </ElectricMotorTorqueLimits> - <ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType"> <!-- optional --> <ElectricMachine> <Position>GEN</Position> diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs index f9a5e6fb20186c2096ada2751fd24fdfafbdfccb..a10bf9609f18450aa48cb305a47eca489573ae22 100644 --- a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs +++ b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs @@ -109,6 +109,8 @@ namespace TUGraz.VectoCore.Tests.Utils set; } + public IElectricSystemInfo ElectricSystemInfo { get; } + public ITorqueConverterInfo TorqueConverterInfo => null; public ITorqueConverterControl TorqueConverterCtl => null; @@ -330,6 +332,7 @@ namespace TUGraz.VectoCore.Tests.Utils public bool HasElectricMotor { get; set; } public PowertrainPosition[] ElectricMotorPositions { get; set; } + public VectoSimulationJobType VehicleArchitecutre { get; } #endregion }