diff --git a/VECTO/GUI/ElectricMotorForm.Designer.vb b/VECTO/GUI/ElectricMotorForm.Designer.vb index e54bab751acbbb7477e5798c6477d7232530ab62..a48b3e03d5a2a2d8514941ed02e190ffc8a33b48 100644 --- a/VECTO/GUI/ElectricMotorForm.Designer.vb +++ b/VECTO/GUI/ElectricMotorForm.Designer.vb @@ -79,13 +79,17 @@ Partial Class ElectricMotorForm Me.lblContPwrUnit = New System.Windows.Forms.Label() Me.tbContPwr = New System.Windows.Forms.TextBox() Me.Panel2 = New System.Windows.Forms.Panel() - Me.lblOvlBuffer = New System.Windows.Forms.Label() - Me.lblOvlBufferUnit = New System.Windows.Forms.Label() - Me.tbOvlBuffer = New System.Windows.Forms.TextBox() + Me.lblOvlTime = New System.Windows.Forms.Label() + Me.lblOvltimeUnit = New System.Windows.Forms.Label() + Me.tbOvlTime = New System.Windows.Forms.TextBox() Me.Panel3 = New System.Windows.Forms.Panel() Me.lblOvlRecovery = New System.Windows.Forms.Label() Me.lblOvlRecoveryFactorUnit = New System.Windows.Forms.Label() Me.tbOverloadRecoveryFactor = New System.Windows.Forms.TextBox() + Me.Panel4 = New System.Windows.Forms.Panel() + Me.lblRatedSpeed = New System.Windows.Forms.Label() + Me.lblRatedSpeedUnit = New System.Windows.Forms.Label() + Me.tbRatedSpeed = New System.Windows.Forms.TextBox() Me.ToolStrip1.SuspendLayout Me.StatusStrip1.SuspendLayout CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit @@ -95,20 +99,21 @@ Partial Class ElectricMotorForm Me.Panel1.SuspendLayout Me.Panel2.SuspendLayout Me.Panel3.SuspendLayout + Me.Panel4.SuspendLayout Me.SuspendLayout ' 'tbInertia ' - Me.tbInertia.Location = New System.Drawing.Point(163, 8) + Me.tbInertia.Location = New System.Drawing.Point(191, 8) Me.tbInertia.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbInertia.Name = "tbInertia" - Me.tbInertia.Size = New System.Drawing.Size(84, 26) + Me.tbInertia.Size = New System.Drawing.Size(71, 26) Me.tbInertia.TabIndex = 3 ' 'lblinertiaUnit ' Me.lblinertiaUnit.AutoSize = true - Me.lblinertiaUnit.Location = New System.Drawing.Point(258, 13) + Me.lblinertiaUnit.Location = New System.Drawing.Point(273, 13) Me.lblinertiaUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblinertiaUnit.Name = "lblinertiaUnit" Me.lblinertiaUnit.Size = New System.Drawing.Size(52, 20) @@ -129,7 +134,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(1216, 482) + Me.ButCancel.Location = New System.Drawing.Point(1216, 506) 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) @@ -140,7 +145,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(1095, 482) + Me.ButOK.Location = New System.Drawing.Point(1095, 506) 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) @@ -233,7 +238,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, 523) + Me.StatusStrip1.Location = New System.Drawing.Point(0, 547) Me.StatusStrip1.Name = "StatusStrip1" Me.StatusStrip1.Padding = New System.Windows.Forms.Padding(2, 0, 21, 0) Me.StatusStrip1.Size = New System.Drawing.Size(1347, 32) @@ -303,12 +308,12 @@ Partial Class ElectricMotorForm Me.pnInertia.Location = New System.Drawing.Point(18, 166) Me.pnInertia.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.pnInertia.Name = "pnInertia" - Me.pnInertia.Size = New System.Drawing.Size(318, 46) + Me.pnInertia.Size = New System.Drawing.Size(332, 46) Me.pnInertia.TabIndex = 3 ' 'tbDragTorque ' - Me.tbDragTorque.Location = New System.Drawing.Point(18, 393) + Me.tbDragTorque.Location = New System.Drawing.Point(18, 432) Me.tbDragTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbDragTorque.Name = "tbDragTorque" Me.tbDragTorque.Size = New System.Drawing.Size(649, 26) @@ -317,7 +322,7 @@ Partial Class ElectricMotorForm 'lblDragTorque ' Me.lblDragTorque.AutoSize = true - Me.lblDragTorque.Location = New System.Drawing.Point(18, 368) + Me.lblDragTorque.Location = New System.Drawing.Point(18, 407) 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) @@ -327,7 +332,7 @@ Partial Class ElectricMotorForm 'btnBrowseDragCurve ' Me.btnBrowseDragCurve.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseDragCurve.Location = New System.Drawing.Point(669, 390) + Me.btnBrowseDragCurve.Location = New System.Drawing.Point(669, 429) 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) @@ -338,7 +343,7 @@ Partial Class ElectricMotorForm 'btnDragCurveOpen ' Me.btnDragCurveOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnDragCurveOpen.Location = New System.Drawing.Point(704, 390) + Me.btnDragCurveOpen.Location = New System.Drawing.Point(704, 429) 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) @@ -349,7 +354,7 @@ Partial Class ElectricMotorForm 'btnEmMapOpen ' Me.btnEmMapOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnEmMapOpen.Location = New System.Drawing.Point(704, 454) + Me.btnEmMapOpen.Location = New System.Drawing.Point(704, 493) Me.btnEmMapOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnEmMapOpen.Name = "btnEmMapOpen" Me.btnEmMapOpen.Size = New System.Drawing.Size(36, 37) @@ -360,7 +365,7 @@ Partial Class ElectricMotorForm 'btnBrowseEmMap ' Me.btnBrowseEmMap.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseEmMap.Location = New System.Drawing.Point(669, 454) + Me.btnBrowseEmMap.Location = New System.Drawing.Point(669, 493) Me.btnBrowseEmMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnBrowseEmMap.Name = "btnBrowseEmMap" Me.btnBrowseEmMap.Size = New System.Drawing.Size(36, 37) @@ -371,7 +376,7 @@ Partial Class ElectricMotorForm 'lblEmMap ' Me.lblEmMap.AutoSize = true - Me.lblEmMap.Location = New System.Drawing.Point(18, 432) + Me.lblEmMap.Location = New System.Drawing.Point(18, 471) Me.lblEmMap.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblEmMap.Name = "lblEmMap" Me.lblEmMap.Size = New System.Drawing.Size(242, 20) @@ -380,7 +385,7 @@ Partial Class ElectricMotorForm ' 'tbMap ' - Me.tbMap.Location = New System.Drawing.Point(18, 457) + Me.tbMap.Location = New System.Drawing.Point(18, 496) Me.tbMap.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMap.Name = "tbMap" Me.tbMap.Size = New System.Drawing.Size(649, 26) @@ -389,7 +394,7 @@ Partial Class ElectricMotorForm 'btnMaxTorqueCurveOpen ' Me.btnMaxTorqueCurveOpen.Image = Global.TUGraz.VECTO.My.Resources.Resources.application_export_icon_small - Me.btnMaxTorqueCurveOpen.Location = New System.Drawing.Point(704, 328) + Me.btnMaxTorqueCurveOpen.Location = New System.Drawing.Point(704, 367) Me.btnMaxTorqueCurveOpen.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnMaxTorqueCurveOpen.Name = "btnMaxTorqueCurveOpen" Me.btnMaxTorqueCurveOpen.Size = New System.Drawing.Size(36, 37) @@ -400,7 +405,7 @@ Partial Class ElectricMotorForm 'btnBrowseMaxTorque ' Me.btnBrowseMaxTorque.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon - Me.btnBrowseMaxTorque.Location = New System.Drawing.Point(669, 328) + Me.btnBrowseMaxTorque.Location = New System.Drawing.Point(669, 367) Me.btnBrowseMaxTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.btnBrowseMaxTorque.Name = "btnBrowseMaxTorque" Me.btnBrowseMaxTorque.Size = New System.Drawing.Size(36, 37) @@ -411,7 +416,7 @@ Partial Class ElectricMotorForm 'lblMaxTorque ' Me.lblMaxTorque.AutoSize = true - Me.lblMaxTorque.Location = New System.Drawing.Point(18, 306) + Me.lblMaxTorque.Location = New System.Drawing.Point(18, 345) Me.lblMaxTorque.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblMaxTorque.Name = "lblMaxTorque" Me.lblMaxTorque.Size = New System.Drawing.Size(325, 20) @@ -420,7 +425,7 @@ Partial Class ElectricMotorForm ' 'tbMaxTorque ' - Me.tbMaxTorque.Location = New System.Drawing.Point(18, 331) + Me.tbMaxTorque.Location = New System.Drawing.Point(18, 370) Me.tbMaxTorque.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbMaxTorque.Name = "tbMaxTorque" Me.tbMaxTorque.Size = New System.Drawing.Size(649, 26) @@ -457,7 +462,7 @@ Partial Class ElectricMotorForm Me.Panel1.Location = New System.Drawing.Point(18, 222) Me.Panel1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(318, 46) + Me.Panel1.Size = New System.Drawing.Size(332, 46) Me.Panel1.TabIndex = 25 ' 'lblContPwr @@ -473,7 +478,7 @@ Partial Class ElectricMotorForm 'lblContPwrUnit ' Me.lblContPwrUnit.AutoSize = true - Me.lblContPwrUnit.Location = New System.Drawing.Point(258, 11) + Me.lblContPwrUnit.Location = New System.Drawing.Point(273, 13) Me.lblContPwrUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) Me.lblContPwrUnit.Name = "lblContPwrUnit" Me.lblContPwrUnit.Size = New System.Drawing.Size(32, 20) @@ -482,57 +487,57 @@ Partial Class ElectricMotorForm ' 'tbContPwr ' - Me.tbContPwr.Location = New System.Drawing.Point(163, 6) + Me.tbContPwr.Location = New System.Drawing.Point(191, 8) Me.tbContPwr.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.tbContPwr.Name = "tbContPwr" - Me.tbContPwr.Size = New System.Drawing.Size(84, 26) + Me.tbContPwr.Size = New System.Drawing.Size(71, 26) Me.tbContPwr.TabIndex = 3 ' 'Panel2 ' - Me.Panel2.Controls.Add(Me.lblOvlBuffer) - Me.Panel2.Controls.Add(Me.lblOvlBufferUnit) - Me.Panel2.Controls.Add(Me.tbOvlBuffer) - Me.Panel2.Location = New System.Drawing.Point(349, 166) + Me.Panel2.Controls.Add(Me.lblOvlTime) + Me.Panel2.Controls.Add(Me.lblOvltimeUnit) + Me.Panel2.Controls.Add(Me.tbOvlTime) + Me.Panel2.Location = New System.Drawing.Point(18, 278) Me.Panel2.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(391, 46) + Me.Panel2.Size = New System.Drawing.Size(332, 46) Me.Panel2.TabIndex = 25 ' - 'lblOvlBuffer + 'lblOvlTime ' - Me.lblOvlBuffer.AutoSize = true - Me.lblOvlBuffer.Location = New System.Drawing.Point(4, 11) - Me.lblOvlBuffer.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) - Me.lblOvlBuffer.Name = "lblOvlBuffer" - Me.lblOvlBuffer.Size = New System.Drawing.Size(181, 20) - Me.lblOvlBuffer.TabIndex = 0 - Me.lblOvlBuffer.Text = "Thermal Overload Buffer" + Me.lblOvlTime.AutoSize = true + Me.lblOvlTime.Location = New System.Drawing.Point(4, 11) + Me.lblOvlTime.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblOvlTime.Name = "lblOvlTime" + Me.lblOvlTime.Size = New System.Drawing.Size(178, 20) + Me.lblOvlTime.TabIndex = 0 + Me.lblOvlTime.Text = "Peak Performance Time" ' - 'lblOvlBufferUnit + 'lblOvltimeUnit ' - Me.lblOvlBufferUnit.AutoSize = true - Me.lblOvlBufferUnit.Location = New System.Drawing.Point(344, 11) - Me.lblOvlBufferUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) - Me.lblOvlBufferUnit.Name = "lblOvlBufferUnit" - Me.lblOvlBufferUnit.Size = New System.Drawing.Size(38, 20) - Me.lblOvlBufferUnit.TabIndex = 24 - Me.lblOvlBufferUnit.Text = "[MJ]" + Me.lblOvltimeUnit.AutoSize = true + Me.lblOvltimeUnit.Location = New System.Drawing.Point(270, 11) + Me.lblOvltimeUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblOvltimeUnit.Name = "lblOvltimeUnit" + Me.lblOvltimeUnit.Size = New System.Drawing.Size(25, 20) + Me.lblOvltimeUnit.TabIndex = 24 + Me.lblOvltimeUnit.Text = "[s]" ' - 'tbOvlBuffer + 'tbOvlTime ' - Me.tbOvlBuffer.Location = New System.Drawing.Point(265, 8) - Me.tbOvlBuffer.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) - Me.tbOvlBuffer.Name = "tbOvlBuffer" - Me.tbOvlBuffer.Size = New System.Drawing.Size(71, 26) - Me.tbOvlBuffer.TabIndex = 3 + Me.tbOvlTime.Location = New System.Drawing.Point(191, 8) + Me.tbOvlTime.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbOvlTime.Name = "tbOvlTime" + Me.tbOvlTime.Size = New System.Drawing.Size(71, 26) + Me.tbOvlTime.TabIndex = 3 ' 'Panel3 ' Me.Panel3.Controls.Add(Me.lblOvlRecovery) Me.Panel3.Controls.Add(Me.lblOvlRecoveryFactorUnit) Me.Panel3.Controls.Add(Me.tbOverloadRecoveryFactor) - Me.Panel3.Location = New System.Drawing.Point(349, 222) + Me.Panel3.Location = New System.Drawing.Point(346, 278) Me.Panel3.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.Panel3.Name = "Panel3" Me.Panel3.Size = New System.Drawing.Size(391, 46) @@ -566,13 +571,53 @@ Partial Class ElectricMotorForm Me.tbOverloadRecoveryFactor.Size = New System.Drawing.Size(72, 26) Me.tbOverloadRecoveryFactor.TabIndex = 3 ' + 'Panel4 + ' + Me.Panel4.Controls.Add(Me.lblRatedSpeed) + Me.Panel4.Controls.Add(Me.lblRatedSpeedUnit) + Me.Panel4.Controls.Add(Me.tbRatedSpeed) + Me.Panel4.Location = New System.Drawing.Point(349, 222) + Me.Panel4.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(391, 46) + Me.Panel4.TabIndex = 26 + ' + 'lblRatedSpeed + ' + Me.lblRatedSpeed.AutoSize = true + Me.lblRatedSpeed.Location = New System.Drawing.Point(4, 11) + Me.lblRatedSpeed.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRatedSpeed.Name = "lblRatedSpeed" + Me.lblRatedSpeed.Size = New System.Drawing.Size(183, 20) + Me.lblRatedSpeed.TabIndex = 0 + Me.lblRatedSpeed.Text = "Rated Speed (cont. Pwr)" + ' + 'lblRatedSpeedUnit + ' + Me.lblRatedSpeedUnit.AutoSize = true + Me.lblRatedSpeedUnit.Location = New System.Drawing.Point(344, 11) + Me.lblRatedSpeedUnit.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.lblRatedSpeedUnit.Name = "lblRatedSpeedUnit" + Me.lblRatedSpeedUnit.Size = New System.Drawing.Size(44, 20) + Me.lblRatedSpeedUnit.TabIndex = 24 + Me.lblRatedSpeedUnit.Text = "[rpm]" + ' + 'tbRatedSpeed + ' + Me.tbRatedSpeed.Location = New System.Drawing.Point(265, 8) + Me.tbRatedSpeed.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) + Me.tbRatedSpeed.Name = "tbRatedSpeed" + Me.tbRatedSpeed.Size = New System.Drawing.Size(71, 26) + Me.tbRatedSpeed.TabIndex = 3 + ' 'ElectricMotorForm ' Me.AcceptButton = Me.ButOK 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(1347, 555) + Me.ClientSize = New System.Drawing.Size(1347, 579) + Me.Controls.Add(Me.Panel4) Me.Controls.Add(Me.Panel3) Me.Controls.Add(Me.Panel2) Me.Controls.Add(Me.Panel1) @@ -621,6 +666,8 @@ Partial Class ElectricMotorForm Me.Panel2.PerformLayout Me.Panel3.ResumeLayout(false) Me.Panel3.PerformLayout + Me.Panel4.ResumeLayout(false) + Me.Panel4.PerformLayout Me.ResumeLayout(false) Me.PerformLayout @@ -667,11 +714,15 @@ End Sub Friend WithEvents lblContPwrUnit As Label Friend WithEvents tbContPwr As TextBox Friend WithEvents Panel2 As Panel - Friend WithEvents lblOvlBuffer As Label - Friend WithEvents lblOvlBufferUnit As Label - Friend WithEvents tbOvlBuffer As TextBox + Friend WithEvents lblOvlTime As Label + Friend WithEvents lblOvltimeUnit As Label + Friend WithEvents tbOvlTime As TextBox Friend WithEvents Panel3 As Panel Friend WithEvents lblOvlRecovery As Label Friend WithEvents lblOvlRecoveryFactorUnit As Label Friend WithEvents tbOverloadRecoveryFactor As TextBox + Friend WithEvents Panel4 As Panel + Friend WithEvents lblRatedSpeed As Label + Friend WithEvents lblRatedSpeedUnit As Label + Friend WithEvents tbRatedSpeed As TextBox End Class diff --git a/VECTO/GUI/ElectricMotorForm.vb b/VECTO/GUI/ElectricMotorForm.vb index d9b73564cc8f49c0b246071301b35aecded58120..84e2887700549ffafc312d5fc1c2734465afbc1c 100644 --- a/VECTO/GUI/ElectricMotorForm.vb +++ b/VECTO/GUI/ElectricMotorForm.vb @@ -176,8 +176,9 @@ Public Class ElectricMotorForm tbMakeModel.Text = engine.Model tbInertia.Text = engine.Inertia.ToGUIFormat() - tbOvlBuffer.Text = (engine.OverloadBuffer.Value() / 1e6).ToGUIFormat() + tbOvlTime.Text = engine.OverloadTime.Value().ToGUIFormat() tbContPwr.Text = engine.ContinuousPower.ToGUIFormat() + tbRatedSpeed.Text = engine.ContinuousPowerSpeed.AsRPM.ToGUIFormat() tbOverloadRecoveryFactor.Text = engine.OverloadRecoveryFactor.ToGUIFormat() tbDragTorque.Text = GetRelativePath(engine.DragCurve.Source, basePath) @@ -216,7 +217,8 @@ Public Class ElectricMotorForm em.ModelName = tbMakeModel.Text If Trim(em.ModelName) = "" Then em.ModelName = "Undefined" em.MotorInertia = tbInertia.Text.ToDouble(0) - em.ThermalOverloadCapacity = tbOvlBuffer.Text.ToDouble(0) + em.PeakPowerTime = tbOvlTime.Text.ToDouble(0) + em.RatedSpeed = tbRatedSpeed.Text.ToDouble(0) em.ContPwr = tbContPwr.Text.ToDouble(0) em.OverloadRecoveryFactor = tbOverloadRecoveryFactor.Text.ToDouble(0) diff --git a/VECTO/Input Files/ElectricMachine.vb b/VECTO/Input Files/ElectricMachine.vb index ce1ed68248884a7d51869e390703bb67f107ab97..39352455fe5b1ad4b05ffc501205313466df9738 100644 --- a/VECTO/Input Files/ElectricMachine.vb +++ b/VECTO/Input Files/ElectricMachine.vb @@ -35,8 +35,9 @@ Public Class ElectricMachine Public ModelName As String Public MotorInertia As Double - Public ThermalOverloadCapacity As Double + Public PeakPowerTime As Double Public ContPwr As Double + Public RatedSpeed As Double ''' <summary> ''' New instance. Initialise @@ -222,9 +223,15 @@ Public Class ElectricMachine End Get End Property - Public ReadOnly Property OverloadBuffer As Joule Implements IElectricMotorDeclarationInputData.OverloadBuffer + Public ReadOnly Property OverloadTime As Second Implements IElectricMotorDeclarationInputData.OverloadTime get - Return ThermalOverloadCapacity.SI(Unit.SI.Mega.Joule).Cast(of Joule) + Return PeakPowerTime.SI(of Second) + End Get + End Property + + Public ReadOnly Property ConinuousPowerSpeed As PerSecond Implements IElectricMotorDeclarationInputData.ContinuousPowerSpeed + get + Return RatedSpeed.RPMtoRad() End Get End Property diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 29dfe1600eeaa6e6355bffff1b50a86b7fbc1112..fb80a27b1256a8c743c9fb93a55b0f14b0707a97 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -948,7 +948,8 @@ Public Class ElectricMachineWrapper Public ReadOnly Property DragCurve As TableData Implements IElectricMotorDeclarationInputData.DragCurve Public ReadOnly Property EfficiencyMap As TableData Implements IElectricMotorDeclarationInputData.EfficiencyMap Public ReadOnly Property Inertia As KilogramSquareMeter Implements IElectricMotorDeclarationInputData.Inertia - Public ReadOnly Property OverloadBuffer As Joule Implements IElectricMotorDeclarationInputData.OverloadBuffer + Public ReadOnly Property OverloadTime As Second Implements IElectricMotorDeclarationInputData.OverloadTime + Public ReadOnly Property ContinuousPowerSpeed As PerSecond Implements IElectricMotorDeclarationInputData.ContinuousPowerSpeed Public ReadOnly Property OverloadRecoveryFactor As Double Implements IElectricMotorDeclarationInputData.OverloadRecoveryFactor Public ReadOnly Property ContinuousPower As Watt Implements IElectricMotorDeclarationInputData.ContinuousPower End Class \ No newline at end of file diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index 20236534aac213456e433d27bf957ab6f8d3a86a..e788159dce1271e3e795acf517578cecb1e8f42e 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -696,11 +696,13 @@ namespace TUGraz.VectoCommon.InputData KilogramSquareMeter Inertia { get; } - Joule OverloadBuffer { get; } + Second OverloadTime { get; } double OverloadRecoveryFactor { get; } Watt ContinuousPower { get; } + + PerSecond ContinuousPowerSpeed { get; } } public interface IElectricMachinesDeclarationInputData diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs index 031e9e0cc5393745a5fe6936c77ac1b19fb16895..8dd9828e39456399b30e12be17dd7a900fc07f4b 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONElectricMotor.cs @@ -69,6 +69,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON { get { return Body.GetValueOrDefault<double>("ContinuousPower")?.SI<Watt>() ?? 1e12.SI<Watt>(); } } - + public PerSecond ContinuousPowerSpeed + { + get { return Body.GetValueOrDefault<double>("ContinuousPowerSpeed")?.RPMtoRad(); } + } + + public Second OverloadTime + { + get + { + return Body.GetValueOrDefault<double>("OverloadTime")?.SI<Second>() ?? 0.SI<Second>(); + } + } + } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index ed209466b5a7d4b6637882ba08597e31e02751b2..1ea7fd5d7878cc9be6ccf6055450285ed3b00d91 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -683,7 +683,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter EfficiencyMap = ElectricMotorMapReader.Create(motorData.EfficiencyMap, ratio, count, efficiency), Inertia = motorData.Inertia, ContinuousPower = motorData.ContinuousPower * count, - OverloadBuffer = motorData.OverloadBuffer * count, + ContinuousPowerSpeed = motorData.ContinuousPowerSpeed, + OverloadTime = motorData.OverloadTime, OverloadRegenerationFactor = motorData.OverloadRecoveryFactor, }; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs index 8feb001df2916488df6a1fd9a98b5f3b48c04dc1..0ec72943bb3d777fd32bbbb4a1362a771b3fb0fd 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricMotor/ElectricMotorData.cs @@ -20,8 +20,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data public Watt ContinuousPower { get; internal set; } [SIRange(0, double.MaxValue)] - public Joule OverloadBuffer { get; internal set; } + public Second OverloadTime { get; internal set; } + [SIRange(0, double.MaxValue)] + public PerSecond ContinuousPowerSpeed { get; internal set; } + [SIRange(0, 1)] public double OverloadRegenerationFactor { get; internal set; } } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs index c8a187e6792faae524c05a2fae578194eb916080..cfb0a98852a5da4180c3c21a5e197003f67b1fe8 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ElectricMotor.cs @@ -25,12 +25,28 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl protected internal Joule ThermalBuffer = 0.SI<Joule>(); protected internal bool DeRatingActive = false; + public Joule OverloadBuffer { get; } + public NewtonMeter ContinuousTorque { get; } + + public Watt ContinuousPowerLoss { get; } + public ElectricMotor(IVehicleContainer container, ElectricMotorData data, IElectricMotorControl control, PowertrainPosition position) : base(container) { Control = control; ModelData = data; Position = position; container.AddComponent(this); // We have to do this again because in the base class the position is unknown! + + ContinuousTorque = ModelData.ContinuousPower / ModelData.ContinuousPowerSpeed; + var contElPwr = + ModelData.EfficiencyMap.LookupElectricPower(ModelData.ContinuousPowerSpeed, -ContinuousTorque).ElectricalPower ?? + ModelData.EfficiencyMap.LookupElectricPower(ModelData.ContinuousPowerSpeed, ModelData.FullLoadCurve.FullLoadDriveTorque(ModelData.ContinuousPowerSpeed), true).ElectricalPower; + ContinuousPowerLoss = -contElPwr - ModelData.ContinuousPower; // loss needs to be positive + var maxTqDrive = ModelData.FullLoadCurve.FullLoadDriveTorque(ModelData.ContinuousPowerSpeed); + var peakElPwr = ModelData.EfficiencyMap.LookupElectricPower(ModelData.ContinuousPowerSpeed, maxTqDrive, true) + .ElectricalPower; + var peakPwrLoss = -peakElPwr + ModelData.ContinuousPowerSpeed * maxTqDrive; // losses need to be positive + OverloadBuffer = (peakPwrLoss - ContinuousPowerLoss) * ModelData.OverloadTime; } public PowertrainPosition Position { get; } @@ -99,7 +115,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private NewtonMeter GetMaxRecuperationTorque(Second absTime, Second dt, PerSecond avgSpeed) { - var tqContinuousPwr = DeRatingActive ? ModelData.ContinuousPower / avgSpeed : null; + var tqContinuousPwr = DeRatingActive ? ContinuousTorque : null; + if (!avgSpeed.IsEqual(0)) { + tqContinuousPwr = DeRatingActive ? ModelData.ContinuousPower / avgSpeed : null; + } var maxEmTorque = VectoMath.Min(tqContinuousPwr, ModelData.FullLoadCurve.FullGenerationTorque(avgSpeed)); var electricSystemResponse = ElectricPower.Request(absTime, dt, 0.SI<Watt>(), true); var maxBatPower = electricSystemResponse.MaxPowerDrag; @@ -111,7 +130,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private NewtonMeter GetMaxDriveTorque(Second absTime, Second dt, PerSecond avgSpeed) { - var tqContinuousPwr = DeRatingActive ? -ModelData.ContinuousPower / avgSpeed : null; + var tqContinuousPwr = DeRatingActive ? -ContinuousTorque : null; + if (!avgSpeed.IsEqual(0)) { + tqContinuousPwr = DeRatingActive ? -ModelData.ContinuousPower / avgSpeed : null; + } var maxEmTorque = VectoMath.Max(tqContinuousPwr ,ModelData.FullLoadCurve.FullLoadDriveTorque(avgSpeed)); var electricSystemResponse = ElectricPower.Request(absTime, dt, 0.SI<Watt>(), true); var maxBatPower = electricSystemResponse.MaxPowerDrive; @@ -347,29 +369,31 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl var contribution = (VectoMath.Abs((CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed) - ModelData.ContinuousPower) * simulationInterval; - container[ModalResultField.ElectricMotor_OvlBuffer_, Position] = VectoMath.Max(0, (ThermalBuffer + contribution) / ModelData.OverloadBuffer); + container[ModalResultField.ElectricMotor_OvlBuffer_, Position] = VectoMath.Max(0, (ThermalBuffer + contribution) / OverloadBuffer); } protected override void DoCommitSimulationStep(Second time, Second simulationInterval) { var avgSpeed = (PreviousState.OutAngularVelocity + CurrentState.OutAngularVelocity) / 2; - ThermalBuffer += (VectoMath.Abs((CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed) - ModelData.ContinuousPower) * simulationInterval; + var losses = (CurrentState.InTorque - CurrentState.OutTorque) * avgSpeed - (CurrentState.ElectricPowerToBattery); + ThermalBuffer += (losses - ContinuousPowerLoss) * simulationInterval; if (ThermalBuffer < 0) { ThermalBuffer = 0.SI<Joule>(); } if (DeRatingActive) { - if (ThermalBuffer.IsSmallerOrEqual(ModelData.OverloadBuffer * ModelData.OverloadRegenerationFactor)) { + if (ThermalBuffer.IsSmallerOrEqual(OverloadBuffer * ModelData.OverloadRegenerationFactor)) { DeRatingActive = false; } } else { - if (ThermalBuffer.IsGreater(ModelData.OverloadBuffer)) { + if (ThermalBuffer.IsGreater(OverloadBuffer)) { DeRatingActive = true; } } base.DoCommitSimulationStep(time, simulationInterval); } + //public NewtonMeter ElectricDragTorque(PerSecond electricMotorSpeed, Second dt, DrivingBehavior drivingBehavior) //{ // return Control.MaxDragTorque(electricMotorSpeed, dt); diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs index 9a8daf9561414c59521fcc248633567766dc655f..c110878834870e9c60dd5ccadcc08e3508d26d1c 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs @@ -84,7 +84,8 @@ public class JSONFileWriter : IOutputFileWriter body.Add("EfficiencyMap", GetRelativePath(electricMachine.EfficiencyMap.Source, Path.GetDirectoryName(filename))); body.Add("Inertia", electricMachine.Inertia.Value()); body.Add("ContinuousPower", electricMachine.ContinuousPower.Value()); - body.Add("ThermalOverloadBuffer", electricMachine.OverloadBuffer.Value() / 1e6); + body.Add("ContinuousPowerSpeed", electricMachine.ContinuousPowerSpeed.AsRPM); + body.Add("OverloadTime", electricMachine.OverloadTime.Value()); body.Add("ThermalOverloadRecoveryFactor", electricMachine.OverloadRecoveryFactor); WriteFile(header, body, filename); } diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs index df8d547091214f0534784d2fac402790daceaddb..2030de6c148ae69b488a8c0dcf3764e70e5eda35 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ElectricMotorTest.cs @@ -307,7 +307,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent // energy buffer reached - only P_cont is available strategy.ElectricShare = -torque * 0.5; - for (; i <= 70; i++) { + for (; i <= 73; i++) { var dt = 0.5.SI<Second>(); var absTime = i * dt; diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem index 5349c859137d90673f911a095bdcd19e813d7f21..807ce0f57e4820d6ca128cff4d7cfcca941b9ebc 100644 --- a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem +++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap_125kW_485Nm.vemo", "Inertia": 0.225, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, "ThermalOverloadRecoveryFactor": 0.9 -} + } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem index 8f35e87656ff24fec0b8982931473e7aa1e3ce15..ad3eeb3dfa28e54f8dbb60b465600f88cf5ad939 100644 --- a/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem +++ b/VectoCore/VectoCoreTest/TestData/BatteryElectric/GenericVehicleB4/GenericEMotor_125kW_485Nm_Cont30kW.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap_125kW_485Nm.vemo", "Inertia": 0.225, "ContinuousPower": 30000, - "ThermalOverloadBuffer": 0.7, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, "ThermalOverloadRecoveryFactor": 0.9 -} + } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat b/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat index d6b42e32acc57051c055ceea928555f0356df651..f12250cd3c46108ea5f71eeb60e6c35628165d63 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Battery/GenericBattery.vbat @@ -15,4 +15,4 @@ "MaxCurrentFactor": 50, "SoCCurve": "GenericBattery.vbatv" } -} \ No newline at end of file +} diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem index 63b5fcce6facc27c59cd450ccf2af27e75b7acbf..ae85d35f0cd30e4411557a991f33895a8a467cc1 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap.vemo", "Inertia": 0.15, "ContinuousPower": 50000, - "ThermalOverloadBuffer": 0.6, - "ThermalOverloadRecoveryFactor": 0.9 + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem index 74a934daae91119a5da613b6787fc05b2ea33d24..04d34afaa3fee9a4a9e0af214e79ff8c7de0d854 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/ElectricMotor/GenericEMotor240kW.vem @@ -7,10 +7,14 @@ }, "Body": { "SavedInDeclMode": false, - "Model": "Generic Electric Motor", - "FullLoadCurve": "GenericEMotor240kW.vemp", - "DragCurve": "GenericDrag.vemd", + "Model": "Generic Electric Motor", + "FullLoadCurve": "GenericEMotor240kW.vemp", + "DragCurve": "GenericDrag.vemd", "EfficiencyMap": "GenericMap240kW.vemo", - "Inertia" : 0.2 + "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/GenericVehicle_Group2_P2/GenericEMotor.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem index 2d2596a49d91f8bd70e99ea2289219f3acf61ff2..f5b8f8efc19d846b75cb88d0c188536ee58a8731 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor.vem @@ -13,7 +13,8 @@ "DragCurve": "GenericDrag.vemd", "Inertia": 0.15, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, - "ThermalOverloadRecoveryFactor": 0.9 + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem index 0057af67263c0a330401a007ef06190870d2c211..f9eff08ab1fc60e7809bc241d91e484293be49c9 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group2_P2/GenericEMotor240kW.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap240kW.vemo", "Inertia": 0.2, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, - "ThermalOverloadRecoveryFactor": 0.9 + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem index 1a27269d815af6619f636c9744d569e6096e87fe..bc27bb49d54f5db4033a72525b75c7b6de06f6b7 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/GenericVehicle_Group5_P2/ElectricMotor/Inputdaten P2 Group 5/Electric components/GenericEMotor_140kW_936Nm.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap_140kW_936Nm.vemo", "Inertia": 0.5, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, "ThermalOverloadRecoveryFactor": 0.9 -} + } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem index 55bf540a4cf9b53443ea9b611c6a3e35600a8151..b3201bca1ae1b0f0917cca773df6e4ce498ddd84 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2/GenericEM_47kW.vem @@ -13,7 +13,8 @@ "DragCurve": "GenericEM_47kW.vemd", "Inertia": 0.1, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, - "ThermalOverloadRecoveryFactor": 0.9 + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem index 8f60e9a767ef2c7ce938c2695b26ab913b527caf..78ccbdcd2e39838f46a25479d3c329a324193e34 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group2SuperCapOvl/GenericEM_47kW.vem @@ -13,7 +13,8 @@ "DragCurve": "GenericEM_47kW.vemd", "Inertia": 0.1, "ContinuousPower": 31000, - "ThermalOverloadBuffer": 0.5, - "ThermalOverloadRecoveryFactor": 0.9 + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, + "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem index 4361bec83fa16d99058599a0fca32037f5a7d36e..0e165bc87bf92aff2806862da017eb4245889bac 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Hyb_P2_Group5/GenericEMotor_140kW_936Nm.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap_140kW_936Nm.vemo", "Inertia": 0.5, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem b/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem index 10a7b40be0cfaaa5c9e532435581d07d4c635203..68fa7173a4752fdafc2c69abc5a8d811062b9293 100644 --- a/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem +++ b/VectoCore/VectoCoreTest/TestData/Hybrids/Input CityBus 6x2_HEV_P2/Electric components/GenericEMotor_150kW_998Nm.vem @@ -13,7 +13,8 @@ "EfficiencyMap": "GenericMap_150kW_998Nm.vemo", "Inertia": 0.545, "ContinuousPower": 5000000, - "ThermalOverloadBuffer": 0.6, + "ContinuousPowerSpeed": 2000, + "OverloadTime": 30, "ThermalOverloadRecoveryFactor": 0.9 } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs index e0517dcfbbc8680584a5354aa36e04e85cf759e1..cb1799dbfb6ed0adc4e9b96f03b138e75ea1d6f4 100644 --- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs +++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs @@ -186,7 +186,9 @@ namespace TUGraz.VectoCore.Tests.Utils return new EngineeringDataAdapter().CreateElectricMachines(new MockElectricMachinesInputData() { Entries = new[] { new ElectricMachineEntry<IElectricMotorEngineeringInputData>() - { Count = count, ElectricMachine = inputData, Position = pos, Ratio = ratio, MechanicalEfficiency = efficiency} + { + Count = count, ElectricMachine = inputData, Position = pos, Ratio = ratio, MechanicalEfficiency = efficiency, + } } }); }