diff --git a/Generic Vehicles/Declaration Mode/12t Delivery Truck/Indirect Gear.vtlm b/Generic Vehicles/Declaration Mode/12t Delivery Truck/Indirect Gear.vtlm index af2f2572aae423496d22db7f9ddab9016a9786da..4171bb62973f8d3453853eebd65bc16050d07d07 100644 --- a/Generic Vehicles/Declaration Mode/12t Delivery Truck/Indirect Gear.vtlm +++ b/Generic Vehicles/Declaration Mode/12t Delivery Truck/Indirect Gear.vtlm @@ -7,6 +7,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 0,650,14.98, 0,850,18.98, 0,1050,22.98, +0,1250,27 200,-350,9.376, 200,-150,5.376, 200,50,3.376, @@ -15,6 +16,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 200,650,15.376, 200,850,19.376, 200,1050,23.376, +200,1250,28 400,-350,9.772, 400,-150,5.772, 400,50,3.772, @@ -23,6 +25,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 400,650,15.772, 400,850,19.772, 400,1050,23.772, +400,1250,28 600,-350,10.168, 600,-150,6.168, 600,50,4.168, @@ -31,6 +34,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 600,650,16.168, 600,850,20.168, 600,1050,24.168, +600,1250,28.8 800,-350,10.564, 800,-150,6.564, 800,50,4.564, @@ -39,6 +43,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 800,650,16.564, 800,850,20.564, 800,1050,24.564, +800,1250,29 1000,-350,10.96, 1000,-150,6.96, 1000,50,4.96, @@ -47,6 +52,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 1000,650,16.96, 1000,850,20.96, 1000,1050,24.96, +1000,1250,30 1200,-350,11.356, 1200,-150,7.356, 1200,50,5.356, @@ -55,6 +61,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 1200,650,17.356, 1200,850,21.356, 1200,1050,25.356, +1200,1250,30 1400,-350,11.752, 1400,-150,7.752, 1400,50,5.752, @@ -63,6 +70,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 1400,650,17.752, 1400,850,21.752, 1400,1050,25.752, +1400,1250,31 1600,-350,12.148, 1600,-150,8.148, 1600,50,6.148, @@ -71,6 +79,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 1600,650,18.148, 1600,850,22.148, 1600,1050,26.148, +1600,1250,31 1800,-350,12.544, 1800,-150,8.544, 1800,50,6.544, @@ -79,6 +88,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 1800,650,18.544, 1800,850,22.544, 1800,1050,26.544, +1800,1250,32 2000,-350,12.94, 2000,-150,8.94, 2000,50,6.94, @@ -87,6 +97,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 2000,650,18.94, 2000,850,22.94, 2000,1050,26.94, +2000,1250,32 2200,-350,13.336, 2200,-150,9.336, 2200,50,7.336, @@ -95,6 +106,7 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 2200,650,19.336, 2200,850,23.336, 2200,1050,27.336, +2200,1250,33 2400,-350,13.732, 2400,-150,9.732, 2400,50,7.732, @@ -103,13 +115,14 @@ Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm],Eff [-] 2400,650,19.732, 2400,850,23.732, 2400,1050,27.732, +2400,1250,33 0,-1000,21.98, 200,-1000,22.376, 400,-1000,22.772, 600,-1000,23.168, 800,-1000,23.564, 1000,-1000,23.96, -1200,-1000,24.356, +1250,-1000,24.356, 1400,-1000,24.752, 1600,-1000,25.148, 1800,-1000,25.544, diff --git a/Generic Vehicles/Engineering Mode/AT-TC Demo Vehicle/AT-Shift.vgbs b/Generic Vehicles/Engineering Mode/AT-TC Demo Vehicle/AT-Shift.vgbs index be0e2265796493fd0275d2564a7b73a09fca0340..91acd23a7a0e04d26fe81b57a3b972cf0975d976 100644 --- a/Generic Vehicles/Engineering Mode/AT-TC Demo Vehicle/AT-Shift.vgbs +++ b/Generic Vehicles/Engineering Mode/AT-TC Demo Vehicle/AT-Shift.vgbs @@ -1,5 +1,4 @@ M_shift in Nm,n_down in rpm,n_up in rpm --200,600,660 -0,600,660 -350,600,660 -1200,1250,1500 +-200,600,800 +0,600,800 +3000,600,800 diff --git a/User Manual Source/Release Notes V2.1.pptx b/User Manual Source/Release Notes V2.1.pptx index 7e8f9a4a669e6e35f52693b2551823a6bf0bcb26..a10d5c88091a9ffbf070a42286c09ab8c6ca9572 100644 Binary files a/User Manual Source/Release Notes V2.1.pptx and b/User Manual Source/Release Notes V2.1.pptx differ diff --git a/User Manual Source/Release Notes.pdf b/User Manual Source/Release Notes.pdf index b19ec7fa5fddbcf2ea8ff68530aaaa307d3986de..3121903364585af5fcd63dbf329c6632a6b162b7 100644 Binary files a/User Manual Source/Release Notes.pdf and b/User Manual Source/Release Notes.pdf differ diff --git a/User Manual/main/changelog.html b/User Manual/main/changelog.html index 6b5d7312d7fb7b207d161f1711bc6fab21d72530..262b7a96c90bcf0f673c3ae90c27774a675ae2ba 100644 --- a/User Manual/main/changelog.html +++ b/User Manual/main/changelog.html @@ -2,6 +2,7 @@ <html><head> + <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>VECTO Changelog</title></head><body> <div style="text-align: center;"><div style="text-align: left;"><span style="font-family: Verdana;"><big><big><big><span style="font-weight: bold;">Changelog</span></big></big></big></span><br><hr style="width: 100%; height: 0px;"><br><span style="font-family: Verdana;"></span></div><span style="font-family: Verdana;"></span> @@ -9,14 +10,25 @@ <div style="text-align: left;"><span style="font-family: Tahoma;">VECTO 2.1<br> </span> <ul> - <li><span style="font-family: Tahoma;">Limit engine rpm in torque converter operation acc. > acc_min</span></li> - <li><span style="font-family: Tahoma;">Shift up (C-to-L, L-to-L) if acc. > acc_min and next-gear-rpm > threshold</span></li> - <li><span style="font-family: Tahoma;">C-to-C up-shift condition based on N80h engine speed (instead of N95h)</span></li> + + <li><span style="font-family: Tahoma;">Automatic Transmission / Torque Converter Model<br> + </span></li> + <ul> + <li><span style="font-family: Tahoma;">Limit engine rpm in torque converter operation acc. > acc_min</span></li> + </ul> + + + <ul> + <li><span style="font-family: Tahoma;">Shift up (C-to-L, L-to-L) if acc. > acc_min and next-gear-rpm > threshold</span></li> + </ul> + + + <ul> + <li><span style="font-family: Tahoma;">C-to-C up-shift condition based on N80h engine speed (instead of N95h)</span></li> + </ul> + <li><span style="font-family: Tahoma;">Pwheel-Input (SiCo Mode)</span></li> - <li><span style="font-family: Tahoma;">FC [g/h] is always saved in output (in addition to [g/km]), not only in Engine Only mode</span></li> - <li><span style="font-family: Tahoma;">Updated DEV options for AT update</span></li> - <li><span style="font-family: Tahoma;">"DEV" tab is now "Test"</span></li> - <li><span style="font-family: Tahoma;">GUI: Corrected air density unit in GUI</span></li> + <li><span style="font-family: Tahoma;">FC [g/h] is always saved in output (in addition to [g/km]), not only in Engine Only mode</span></li><li><span style="font-family: Tahoma;">GUI: Corrected air density unit in GUI</span></li> <li><span style="font-family: Tahoma;">Bugfix: Format error in .vmod header</span></li> </ul> <span style="font-family: Tahoma;"><br> @@ -125,8 +137,6 @@ VECTO 2.0.1-beta0<br> <li><span style="font-family: Tahoma;">Segment Table header</span></li> </ul> <span style="font-family: Tahoma;"><br> -<br> -<br> VECTO 2.0<br> </span> <ul> diff --git a/User Manual/main/head.html b/User Manual/main/head.html index e6c2825d64a41b82817f6263ab26614e68f7853b..452c9c304b20282b3bc60eea8dbf1a44556792d2 100644 --- a/User Manual/main/head.html +++ b/User Manual/main/head.html @@ -10,7 +10,7 @@ <td style="width: 110px;"><a href="../usermanual.html" target="_parent"><img style="border: 0px solid ; width: 106px; height: 36px;" alt="VECTO-Logo" src="../pics/VECTO-small.PNG"></a></td> <td><a href="../usermanual.html" target="_parent"><span style="color: rgb(0, 0, 0); font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-family: Verdana;">User Manual</span></a><span style="color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; display: inline ! important; float: none;"></span></td> -<td style="text-align: right; width: 405px;"><a href="http://ec.europa.eu/dgs/jrc/index.cfm" target="_blank"><img style="border: 0px solid ; width: 173px; height: 36px;" alt="JRC-Logo" src="../pics/JRC.png" hspace="5"></a><a href="http://www.ivt.tugraz.at/" target="_blank"><img src="../pics/IVT.png" alt="IVT-Logo" style="border: 0px solid ; width: 74px; height: 36px;" hspace="5"></a><a href="http://portal.tugraz.at/pls/portal/url/page/TU_Graz" target="_blank"><img src="../pics/TUG.png" alt="TUG-Logo" style="border: 0px solid ; width: 96px; height: 36px;" hspace="5"></a></td> +<td style="text-align: right; width: 405px;"><a href="https://ec.europa.eu/jrc/" target="_blank"><img style="border: 0px solid ; width: 173px; height: 36px;" alt="JRC-Logo" src="../pics/JRC.png" hspace="5"></a><a href="http://www.ivt.tugraz.at/" target="_blank"><img src="../pics/IVT.png" alt="IVT-Logo" style="border: 0px solid ; width: 74px; height: 36px;" hspace="5"></a><a href="http://portal.tugraz.at/pls/portal/url/page/TU_Graz" target="_blank"><img src="../pics/TUG.png" alt="TUG-Logo" style="border: 0px solid ; width: 96px; height: 36px;" hspace="5"></a></td> </tr> </tbody> </table> diff --git a/User Manual/main/start.html b/User Manual/main/start.html index f92a0d67afda7b0435474b9b8a7a8334da8f2c33..0e286748f2c6b2be6582be875d16b4df51ffe891 100644 --- a/User Manual/main/start.html +++ b/User Manual/main/start.html @@ -9,5 +9,5 @@ <br> <span style="font-family: Verdana;"><big><big><big><span style="font-weight: bold;">User Manual</span></big></big></big> <br> -VECTO 2.0<br></span><ul style="text-align: left; font-family: Tahoma; line-height: 1.7em;"></ul></div> +VECTO 2.1<br></span><ul style="text-align: left; font-family: Tahoma; line-height: 1.7em;"></ul></div> </body></html> \ No newline at end of file diff --git a/VECTO/GUI/F_AboutBox.Designer.vb b/VECTO/GUI/F_AboutBox.Designer.vb index a16f95216af2830cec2a6e95b204e9d658d565eb..d34697aa3f755e1f6b6e9fa36cc67d3537c69f95 100644 --- a/VECTO/GUI/F_AboutBox.Designer.vb +++ b/VECTO/GUI/F_AboutBox.Designer.vb @@ -32,172 +32,172 @@ Partial Class F_AboutBox 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. <System.Diagnostics.DebuggerStepThrough()> _ Private Sub InitializeComponent() - Me.Label10 = New System.Windows.Forms.Label() - Me.LabelLic = New System.Windows.Forms.Label() - Me.LabelLicDate = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label8 = New System.Windows.Forms.Label() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() - Me.LinkLabel2 = New System.Windows.Forms.LinkLabel() - Me.Label3 = New System.Windows.Forms.Label() - Me.PictureBoxJRC = New System.Windows.Forms.PictureBox() - Me.Panel1.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.PictureBoxJRC, System.ComponentModel.ISupportInitialize).BeginInit() - Me.SuspendLayout() - ' - 'Label10 - ' - Me.Label10.AutoSize = True - Me.Label10.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label10.Location = New System.Drawing.Point(9, 250) - Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(75, 13) - Me.Label10.TabIndex = 11 - Me.Label10.Text = "License file:" - ' - 'LabelLic - ' - Me.LabelLic.AutoSize = True - Me.LabelLic.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.LabelLic.Location = New System.Drawing.Point(3, 0) - Me.LabelLic.Name = "LabelLic" - Me.LabelLic.Size = New System.Drawing.Size(22, 13) - Me.LabelLic.TabIndex = 12 - Me.LabelLic.Text = "Lic" - ' - 'LabelLicDate - ' - Me.LabelLicDate.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.LabelLicDate.AutoSize = True - Me.LabelLicDate.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.LabelLicDate.Location = New System.Drawing.Point(3, 26) - Me.LabelLicDate.Name = "LabelLicDate" - Me.LabelLicDate.Size = New System.Drawing.Size(12, 13) - Me.LabelLicDate.TabIndex = 13 - Me.LabelLicDate.Text = "-" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label2.Location = New System.Drawing.Point(9, 346) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(162, 13) - Me.Label2.TabIndex = 7 - Me.Label2.Text = "Developed on behalf of the" - ' - 'Label8 - ' - Me.Label8.AutoSize = True - Me.Label8.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label8.Location = New System.Drawing.Point(24, 368) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(158, 39) - Me.Label8.TabIndex = 3 - Me.Label8.Text = "Joint Research Centre" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Sustainable Transport Unit" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "European Commission" - ' - 'Panel1 - ' - Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D - Me.Panel1.Controls.Add(Me.LabelLic) - Me.Panel1.Controls.Add(Me.LabelLicDate) - Me.Panel1.Location = New System.Drawing.Point(12, 266) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(464, 52) - Me.Panel1.TabIndex = 16 - ' - 'PictureBox1 - ' - Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_About - Me.PictureBox1.Location = New System.Drawing.Point(23, 12) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(447, 182) - Me.PictureBox1.TabIndex = 14 - Me.PictureBox1.TabStop = False - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.Location = New System.Drawing.Point(9, 436) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(105, 13) - Me.Label1.TabIndex = 7 - Me.Label1.Text = "Support Contact:" - ' - 'LinkLabel1 - ' - Me.LinkLabel1.AutoSize = True - Me.LinkLabel1.Location = New System.Drawing.Point(120, 436) - Me.LinkLabel1.Name = "LinkLabel1" - Me.LinkLabel1.Size = New System.Drawing.Size(122, 13) - Me.LinkLabel1.TabIndex = 17 - Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "vecto@jrc.ec.europa.eu" - ' - 'LinkLabel2 - ' - Me.LinkLabel2.AutoSize = True - Me.LinkLabel2.Font = New System.Drawing.Font("Verdana", 8.25!) - Me.LinkLabel2.Location = New System.Drawing.Point(20, 197) - Me.LinkLabel2.Name = "LinkLabel2" - Me.LinkLabel2.Size = New System.Drawing.Size(179, 13) - Me.LinkLabel2.TabIndex = 18 - Me.LinkLabel2.TabStop = True - Me.LinkLabel2.Text = "VECTO is licensed under EUPL" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Font = New System.Drawing.Font("Verdana", 8.25!) - Me.Label3.Location = New System.Drawing.Point(20, 213) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(194, 13) - Me.Label3.TabIndex = 19 - Me.Label3.Text = "Copyright: 2014 European Union" - ' - 'PictureBoxJRC - ' - Me.PictureBoxJRC.Cursor = System.Windows.Forms.Cursors.Hand - Me.PictureBoxJRC.Image = Global.VECTO.My.Resources.Resources.JRC_About - Me.PictureBoxJRC.Location = New System.Drawing.Point(216, 353) - Me.PictureBoxJRC.Name = "PictureBoxJRC" - Me.PictureBoxJRC.Size = New System.Drawing.Size(260, 54) - Me.PictureBoxJRC.TabIndex = 15 - Me.PictureBoxJRC.TabStop = False - ' - 'F_AboutBox - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.BackColor = System.Drawing.Color.White - Me.ClientSize = New System.Drawing.Size(491, 474) - Me.Controls.Add(Me.Label3) - Me.Controls.Add(Me.LinkLabel2) - Me.Controls.Add(Me.LinkLabel1) - Me.Controls.Add(Me.Panel1) - Me.Controls.Add(Me.PictureBoxJRC) - Me.Controls.Add(Me.PictureBox1) - Me.Controls.Add(Me.Label10) - Me.Controls.Add(Me.Label1) - Me.Controls.Add(Me.Label2) - Me.Controls.Add(Me.Label8) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow - Me.Name = "F_AboutBox" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "About VECTO" - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.PictureBoxJRC, System.ComponentModel.ISupportInitialize).EndInit() - Me.ResumeLayout(False) - Me.PerformLayout() + Me.Label10 = New System.Windows.Forms.Label() + Me.LabelLic = New System.Windows.Forms.Label() + Me.LabelLicDate = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label8 = New System.Windows.Forms.Label() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() + Me.LinkLabel2 = New System.Windows.Forms.LinkLabel() + Me.Label3 = New System.Windows.Forms.Label() + Me.PictureBoxJRC = New System.Windows.Forms.PictureBox() + Me.Panel1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBoxJRC, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label10.Location = New System.Drawing.Point(9, 250) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(75, 13) + Me.Label10.TabIndex = 11 + Me.Label10.Text = "License file:" + ' + 'LabelLic + ' + Me.LabelLic.AutoSize = True + Me.LabelLic.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelLic.Location = New System.Drawing.Point(3, 0) + Me.LabelLic.Name = "LabelLic" + Me.LabelLic.Size = New System.Drawing.Size(22, 13) + Me.LabelLic.TabIndex = 12 + Me.LabelLic.Text = "Lic" + ' + 'LabelLicDate + ' + Me.LabelLicDate.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.LabelLicDate.AutoSize = True + Me.LabelLicDate.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelLicDate.Location = New System.Drawing.Point(3, 26) + Me.LabelLicDate.Name = "LabelLicDate" + Me.LabelLicDate.Size = New System.Drawing.Size(12, 13) + Me.LabelLicDate.TabIndex = 13 + Me.LabelLicDate.Text = "-" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(9, 346) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(162, 13) + Me.Label2.TabIndex = 7 + Me.Label2.Text = "Developed on behalf of the" + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label8.Location = New System.Drawing.Point(24, 368) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(158, 39) + Me.Label8.TabIndex = 3 + Me.Label8.Text = "Joint Research Centre" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Sustainable Transport Unit" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "European Commission" + ' + 'Panel1 + ' + Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D + Me.Panel1.Controls.Add(Me.LabelLic) + Me.Panel1.Controls.Add(Me.LabelLicDate) + Me.Panel1.Location = New System.Drawing.Point(12, 266) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(464, 52) + Me.Panel1.TabIndex = 16 + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = Global.VECTO.My.Resources.Resources.VECTO_About + Me.PictureBox1.Location = New System.Drawing.Point(23, 12) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(447, 182) + Me.PictureBox1.TabIndex = 14 + Me.PictureBox1.TabStop = False + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Verdana", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(9, 436) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(105, 13) + Me.Label1.TabIndex = 7 + Me.Label1.Text = "Support Contact:" + ' + 'LinkLabel1 + ' + Me.LinkLabel1.AutoSize = True + Me.LinkLabel1.Location = New System.Drawing.Point(120, 436) + Me.LinkLabel1.Name = "LinkLabel1" + Me.LinkLabel1.Size = New System.Drawing.Size(122, 13) + Me.LinkLabel1.TabIndex = 17 + Me.LinkLabel1.TabStop = True + Me.LinkLabel1.Text = "vecto@jrc.ec.europa.eu" + ' + 'LinkLabel2 + ' + Me.LinkLabel2.AutoSize = True + Me.LinkLabel2.Font = New System.Drawing.Font("Verdana", 8.25!) + Me.LinkLabel2.Location = New System.Drawing.Point(20, 197) + Me.LinkLabel2.Name = "LinkLabel2" + Me.LinkLabel2.Size = New System.Drawing.Size(179, 13) + Me.LinkLabel2.TabIndex = 18 + Me.LinkLabel2.TabStop = True + Me.LinkLabel2.Text = "VECTO is licensed under EUPL" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Verdana", 8.25!) + Me.Label3.Location = New System.Drawing.Point(20, 213) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(194, 13) + Me.Label3.TabIndex = 19 + Me.Label3.Text = "Copyright: 2015 European Union" + ' + 'PictureBoxJRC + ' + Me.PictureBoxJRC.Cursor = System.Windows.Forms.Cursors.Hand + Me.PictureBoxJRC.Image = Global.VECTO.My.Resources.Resources.JRC_About + Me.PictureBoxJRC.Location = New System.Drawing.Point(216, 353) + Me.PictureBoxJRC.Name = "PictureBoxJRC" + Me.PictureBoxJRC.Size = New System.Drawing.Size(260, 54) + Me.PictureBoxJRC.TabIndex = 15 + Me.PictureBoxJRC.TabStop = False + ' + 'F_AboutBox + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(491, 474) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.LinkLabel2) + Me.Controls.Add(Me.LinkLabel1) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.PictureBoxJRC) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.Label10) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.Label8) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow + Me.Name = "F_AboutBox" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "About VECTO" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBoxJRC, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents Label10 As System.Windows.Forms.Label Friend WithEvents LabelLic As System.Windows.Forms.Label Friend WithEvents LabelLicDate As System.Windows.Forms.Label diff --git a/VECTO/MODcalc/cVh.vb b/VECTO/MODcalc/cVh.vb index e83d0cc55cc0085cbb90de38a05a4bb2f25243d6..cdd0d2cca059748d8a1156837bee7faf2093c8ae 100644 --- a/VECTO/MODcalc/cVh.vb +++ b/VECTO/MODcalc/cVh.vb @@ -11,697 +11,684 @@ Imports System.Collections.Generic Public Class cVh + 'From DRI file + Private lV As List(Of Single) 'Ist-Geschw. in Zwischensekunden. + Private lV0ogl As List(Of Single) 'Original DRI-Geschwindigkeit. Wird nicht geändert. + Private lV0 As List(Of Single) _ + 'DRI-Geschwindigkeit. Bei Geschw.-Reduktion in Zeitschritt t wird LV0(t+1) reduziert. + Private lGears As List(Of Short) + Private lPadd As List(Of Single) + Private lVairVres As List(Of Single) + Private lVairBeta As List(Of Single) + Public Pwheel As List(Of Single) + Public EcoRoll As List(Of Boolean) + + 'Calculated + Private la As List(Of Single) + + 'WegKor |@@| Route(Weg)Correct + Private dWegIst As Double + Public Weg As List(Of Double) + Private WegX As Integer + Private WegV As List(Of Single) + + Public NoDistCorr As List(Of Boolean) + + Private lAlt0 As List(Of Double) + Private ls0 As List(Of Single) + Private iAlt As Integer + Private iAltDim As Integer + + Public Sub Init() + lV = New List(Of Single) + lV0ogl = New List(Of Single) + lV0 = New List(Of Single) + lAlt0 = New List(Of Double) + ls0 = New List(Of Single) + lGears = New List(Of Short) + lPadd = New List(Of Single) + la = New List(Of Single) + Weg = New List(Of Double) + lVairVres = New List(Of Single) + lVairBeta = New List(Of Single) + Pwheel = New List(Of Single) + EcoRoll = New List(Of Boolean) + NoDistCorr = New List(Of Boolean) + iAlt = 1 + iAltDim = 0 + End Sub + + Public Sub CleanUp() + lV = Nothing + lV0ogl = Nothing + lV0 = Nothing + lAlt0 = Nothing + ls0 = Nothing + lGears = Nothing + lPadd = Nothing + la = Nothing + Weg = Nothing + lVairVres = Nothing + lVairBeta = Nothing + EcoRoll = Nothing + Pwheel = Nothing + NoDistCorr = Nothing + End Sub + + Public Sub VehCylceInit() + + Dim s As Integer + Dim sl As Integer + Dim L As List(Of Double) + Dim Val As Single + + 'Speed + If DRI.Vvorg Then + + L = DRI.Values(tDriComp.V) + For s = 0 To MODdata.tDim + lV0.Add(L(s)) + If Not DRI.Scycle Then lV0ogl.Add(L(s)) + lV.Add((L(s + 1) + L(s)) / 2) + If lV(s) < 0.001 Then lV(s) = 0 '<= aus Leistg + Next + + 'Original-speed is longer by 1 + lV0.Add(DRI.Values(tDriComp.V)(MODdata.tDim + 1)) + If DRI.Scycle Then + For s = 0 To MODdata.tDim + 1 + lV0ogl.Add(CSng(DRI.VoglS(s))) + Next + Else + lV0ogl.Add(DRI.Values(tDriComp.V)(MODdata.tDim + 1)) + End If + + 'Strecke (aus Zwischensekunden sonst passiert Fehler) |@@| Segment (from Intermediate-seconds, otherwise Error) + If Not DRI.Scycle Then + Weg.Add(lV(0)) + For s = 1 To MODdata.tDim + Weg.Add(Weg(s - 1) + lV(s)) + Next + End If + + End If + + 'Altitude / distance + If Not DRI.Scycle And DRI.Vvorg Then + L = DRI.Values(tDriComp.Alt) + lAlt0.Add(0) + ls0.Add(lV0(0)) + sl = 0 + For s = 1 To MODdata.tDim + 1 + If lV0(s) > 0 Then + sl += 1 + ls0.Add(ls0(sl - 1) + lV0(s)) + lAlt0.Add(L(s)) + End If + Next + iAltDim = ls0.Count - 1 + End If + + + 'Gear - but not Averaged, rather Gang(t) = DRI.Gear(t) + If DRI.Gvorg Then + L = DRI.Values(tDriComp.Gears) + For s = 0 To MODdata.tDim + 'lGears.Add(Math.Round((DRI.Values(tDriComp.Gears)(s + 1) + DRI.Values(tDriComp.Gears)(s)) / 2, 0, MidpointRounding.AwayFromZero)) + lGears.Add(L(s)) + Next + Else + For s = 0 To MODdata.tDim + lGears.Add(-1) + Next + End If + + 'Padd + If DRI.PaddVorg Then + L = DRI.Values(tDriComp.Padd) + For s = 0 To MODdata.tDim + lPadd.Add((L(s + 1) + L(s)) / 2) + Next + Else + For s = 0 To MODdata.tDim + lPadd.Add(0) + Next + End If + + 'Calculate Acceleration + If DRI.Vvorg Then + L = DRI.Values(tDriComp.V) + For s = 0 To MODdata.tDim + la.Add(L(s + 1) - L(s)) + Next + End If + + 'Vair specifications: Not in Intermediate-seconds! + If DRI.VairVorg Then + + L = DRI.Values(tDriComp.VairVres) + For s = 0 To MODdata.tDim + lVairVres.Add(L(s) / 3.6) + Next + + L = DRI.Values(tDriComp.VairBeta) + For s = 0 To MODdata.tDim + Val = Math.Abs(L(s)) + If Val > 180 Then Val -= 360 + lVairBeta.Add(Val) + Next + + End If + + If DRI.PwheelVorg Then + L = DRI.Values(tDriComp.Pwheel) + For s = 0 To MODdata.tDim + Pwheel.Add(L(s)) + Next + End If + + For s = 0 To MODdata.tDim + EcoRoll.Add(False) + NoDistCorr.Add(False) + Next + End Sub + + Public Sub EngCylceInit() + + Dim s As Integer + Dim L As List(Of Double) + + 'Speed + If DRI.Vvorg Then + + L = DRI.Values(tDriComp.V) + + For s = 0 To MODdata.tDim + lV0.Add(L(s)) + lV0ogl.Add(L(s)) + lV.Add(L(s)) + If lV(s) < 0.001 Then lV(s) = 0 '<= aus Leistg + Next + + 'Distance + Weg.Add(lV(0)) + For s = 1 To MODdata.tDim + Weg.Add(Weg(s - 1) + lV(s)) + Next + + End If + + 'Gear - not Averaged, rather Gear(t) = DRI.Gear(t) + If DRI.Gvorg Then + L = DRI.Values(tDriComp.Gears) + For s = 0 To MODdata.tDim + 'lGears.Add(Math.Round((DRI.Values(tDriComp.Gears)(s + 1) + DRI.Values(tDriComp.Gears)(s)) / 2, 0, MidpointRounding.AwayFromZero)) + lGears.Add(L(s)) + Next + Else + For s = 0 To MODdata.tDim + lGears.Add(-1) + Next + End If + + 'Padd + If DRI.PaddVorg Then + L = DRI.Values(tDriComp.Padd) + For s = 0 To MODdata.tDim + lPadd.Add(L(s)) + Next + Else + For s = 0 To MODdata.tDim + lPadd.Add(0) + Next + End If + + 'Calculate Acceleration + If DRI.Vvorg Then + la.Add(DRI.Values(tDriComp.V)(1) - DRI.Values(tDriComp.V)(0)) + For s = 1 To MODdata.tDim - 1 + la.Add((DRI.Values(tDriComp.V)(s + 1) - DRI.Values(tDriComp.V)(s - 1)) / 2) + Next + la.Add(DRI.Values(tDriComp.V)(MODdata.tDim) - DRI.Values(tDriComp.V)(MODdata.tDim - 1)) + End If + End Sub + + Public Sub SetSpeed0(ByVal t As Integer, ByVal v0 As Single) + lV0(t + 1) = v0 + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + la(t) = lV0(t + 1) - lV0(t) + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub + + Public Sub SetSpeed(ByVal t As Integer, ByVal v As Single) + + If 2 * v - lV0(t) < 0 Then v = lV0(t) / 2 + + lV0(t + 1) = 2 * v - lV0(t) + lV(t) = v + la(t) = lV0(t + 1) - lV0(t) + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub + + Public Function ReduceSpeed(ByVal t As Integer, ByVal p As Single) As Boolean + + If lV0(t + 1) = 0 Then Return False + + lV0(t + 1) *= p + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + la(t) = lV0(t + 1) - lV0(t) + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + + Return True + End Function + - 'From DRI file - Private lV As List(Of Single) 'Ist-Geschw. in Zwischensekunden. - Private lV0ogl As List(Of Single) 'Original DRI-Geschwindigkeit. Wird nicht geändert. - Private lV0 As List(Of Single) 'DRI-Geschwindigkeit. Bei Geschw.-Reduktion in Zeitschritt t wird LV0(t+1) reduziert. - Private lGears As List(Of Short) - Private lPadd As List(Of Single) - Private lVairVres As List(Of Single) - Private lVairBeta As List(Of Single) - Public Pwheel As List(Of Single) - Public EcoRoll As List(Of Boolean) - - 'Calculated - Private la As List(Of Single) - - 'WegKor |@@| Route(Weg)Correct - Private dWegIst As Double - Public Weg As List(Of Double) - Private WegX As Integer - Private WegV As List(Of Single) - - Public NoDistCorr As List(Of Boolean) - - Private lAlt0 As List(Of Double) - Private ls0 As List(Of Single) - Private iAlt As Integer - Private iAltDim As Integer - - Public Sub Init() - lV = New List(Of Single) - lV0ogl = New List(Of Single) - lV0 = New List(Of Single) - lAlt0 = New List(Of Double) - ls0 = New List(Of Single) - lGears = New List(Of Short) - lPadd = New List(Of Single) - la = New List(Of Single) - Weg = New List(Of Double) - lVairVres = New List(Of Single) - lVairBeta = New List(Of Single) - Pwheel = New List(Of Single) - EcoRoll = New List(Of Boolean) - NoDistCorr = New List(Of Boolean) - iAlt = 1 - iAltDim = 0 - End Sub - - Public Sub CleanUp() - lV = Nothing - lV0ogl = Nothing - lV0 = Nothing - lAlt0 = Nothing - ls0 = Nothing - lGears = Nothing - lPadd = Nothing - la = Nothing - Weg = Nothing - lVairVres = Nothing - lVairBeta = Nothing - EcoRoll = Nothing - Pwheel = Nothing - NoDistCorr = Nothing - End Sub - - Public Sub VehCylceInit() - - Dim s As Integer - Dim sl As Integer - Dim L As List(Of Double) - Dim Val As Single - - 'Speed - If DRI.Vvorg Then - - L = DRI.Values(tDriComp.V) - For s = 0 To MODdata.tDim - lV0.Add(L(s)) - If Not DRI.Scycle Then lV0ogl.Add(L(s)) - lV.Add((L(s + 1) + L(s)) / 2) - If lV(s) < 0.001 Then lV(s) = 0 '<= aus Leistg - Next - - 'Original-speed is longer by 1 - lV0.Add(DRI.Values(tDriComp.V)(MODdata.tDim + 1)) - If DRI.Scycle Then - For s = 0 To MODdata.tDim + 1 - lV0ogl.Add(CSng(DRI.VoglS(s))) - Next - Else - lV0ogl.Add(DRI.Values(tDriComp.V)(MODdata.tDim + 1)) - End If - - 'Strecke (aus Zwischensekunden sonst passiert Fehler) |@@| Segment (from Intermediate-seconds, otherwise Error) - If Not DRI.Scycle Then - Weg.Add(lV(0)) - For s = 1 To MODdata.tDim - Weg.Add(Weg(s - 1) + lV(s)) - Next - End If - - End If - - 'Altitude / distance - If Not DRI.Scycle And DRI.Vvorg Then - L = DRI.Values(tDriComp.Alt) - lAlt0.Add(0) - ls0.Add(lV0(0)) - sl = 0 - For s = 1 To MODdata.tDim + 1 - If lV0(s) > 0 Then - sl += 1 - ls0.Add(ls0(sl - 1) + lV0(s)) - lAlt0.Add(L(s)) - End If - Next - iAltDim = ls0.Count - 1 - End If - - - - 'Gear - but not Averaged, rather Gang(t) = DRI.Gear(t) - If DRI.Gvorg Then - L = DRI.Values(tDriComp.Gears) - For s = 0 To MODdata.tDim - 'lGears.Add(Math.Round((DRI.Values(tDriComp.Gears)(s + 1) + DRI.Values(tDriComp.Gears)(s)) / 2, 0, MidpointRounding.AwayFromZero)) - lGears.Add(L(s)) - Next - Else - For s = 0 To MODdata.tDim - lGears.Add(-1) - Next - End If - - 'Padd - If DRI.PaddVorg Then - L = DRI.Values(tDriComp.Padd) - For s = 0 To MODdata.tDim - lPadd.Add((L(s + 1) + L(s)) / 2) - Next - Else - For s = 0 To MODdata.tDim - lPadd.Add(0) - Next - End If - - 'Calculate Acceleration - If DRI.Vvorg Then - L = DRI.Values(tDriComp.V) - For s = 0 To MODdata.tDim - la.Add(L(s + 1) - L(s)) - Next - End If - - 'Vair specifications: Not in Intermediate-seconds! - If DRI.VairVorg Then - - L = DRI.Values(tDriComp.VairVres) - For s = 0 To MODdata.tDim - lVairVres.Add(L(s) / 3.6) - Next - - L = DRI.Values(tDriComp.VairBeta) - For s = 0 To MODdata.tDim - Val = Math.Abs(L(s)) - If Val > 180 Then Val -= 360 - lVairBeta.Add(Val) - Next - - End If - - If DRI.PwheelVorg Then - L = DRI.Values(tDriComp.Pwheel) - For s = 0 To MODdata.tDim - Pwheel.Add(L(s)) - Next - End If - - For s = 0 To MODdata.tDim - EcoRoll.Add(False) - NoDistCorr.Add(False) - Next - - - End Sub - - Public Sub EngCylceInit() - - Dim s As Integer - Dim L As List(Of Double) - - 'Speed - If DRI.Vvorg Then - - L = DRI.Values(tDriComp.V) - - For s = 0 To MODdata.tDim - lV0.Add(L(s)) - lV0ogl.Add(L(s)) - lV.Add(L(s)) - If lV(s) < 0.001 Then lV(s) = 0 '<= aus Leistg - Next - - 'Distance - Weg.Add(lV(0)) - For s = 1 To MODdata.tDim - Weg.Add(Weg(s - 1) + lV(s)) - Next - - End If - - 'Gear - not Averaged, rather Gear(t) = DRI.Gear(t) - If DRI.Gvorg Then - L = DRI.Values(tDriComp.Gears) - For s = 0 To MODdata.tDim - 'lGears.Add(Math.Round((DRI.Values(tDriComp.Gears)(s + 1) + DRI.Values(tDriComp.Gears)(s)) / 2, 0, MidpointRounding.AwayFromZero)) - lGears.Add(L(s)) - Next - Else - For s = 0 To MODdata.tDim - lGears.Add(-1) - Next - End If - - 'Padd - If DRI.PaddVorg Then - L = DRI.Values(tDriComp.Padd) - For s = 0 To MODdata.tDim - lPadd.Add(L(s)) - Next - Else - For s = 0 To MODdata.tDim - lPadd.Add(0) - Next - End If - - 'Calculate Acceleration - If DRI.Vvorg Then - la.Add(DRI.Values(tDriComp.V)(1) - DRI.Values(tDriComp.V)(0)) - For s = 1 To MODdata.tDim - 1 - la.Add((DRI.Values(tDriComp.V)(s + 1) - DRI.Values(tDriComp.V)(s - 1)) / 2) - Next - la.Add(DRI.Values(tDriComp.V)(MODdata.tDim) - DRI.Values(tDriComp.V)(MODdata.tDim - 1)) - End If - - End Sub - - Public Sub SetSpeed0(ByVal t As Integer, ByVal v0 As Single) - lV0(t + 1) = v0 - lV(t) = (lV0(t + 1) + lV0(t)) / 2 - la(t) = lV0(t + 1) - lV0(t) - If t < MODdata.tDim Then - lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 - la(t + 1) = lV0(t + 2) - lV0(t + 1) - End If - End Sub - - Public Sub SetSpeed(ByVal t As Integer, ByVal v As Single) - - If 2 * v - lV0(t) < 0 Then v = lV0(t) / 2 - - lV0(t + 1) = 2 * v - lV0(t) - lV(t) = v - la(t) = lV0(t + 1) - lV0(t) - If t < MODdata.tDim Then - lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 - la(t + 1) = lV0(t + 2) - lV0(t + 1) - End If - End Sub + Public Sub SetMaxAcc(ByVal t As Integer) + Dim a As Single + Dim v As Single + Dim v0plus As Single + Dim a0 As Single - Public Function ReduceSpeed(ByVal t As Integer, ByVal p As Single) As Boolean + v0plus = lV0(t + 1) - If lV0(t + 1) = 0 Then Return False + v = (v0plus + lV0(t)) / 2 + a0 = VEC.aDesMax(v) - lV0(t + 1) *= p - lV(t) = (lV0(t + 1) + lV0(t)) / 2 - la(t) = lV0(t + 1) - lV0(t) - If t < MODdata.tDim Then - lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 - la(t + 1) = lV0(t + 2) - lV0(t + 1) - End If + v0plus = lV0(t) + a + v = (v0plus + lV0(t)) / 2 + a = VEC.aDesMax(v) - Return True + Do While Math.Abs(a - a0) > 0.0001 - End Function + a0 = a + v0plus = lV0(t) + a + v = (v0plus + lV0(t)) / 2 + a = VEC.aDesMax(v) - Public Sub SetMaxAcc(ByVal t As Integer) - Dim a As Single - Dim v As Single - Dim v0plus As Single - Dim a0 As Single + Loop - v0plus = lV0(t + 1) + la(t) = a + lV0(t + 1) = lV0(t) + a + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If + End Sub - v = (v0plus + lV0(t)) / 2 - a0 = VEC.aDesMax(v) - v0plus = lV0(t) + a - v = (v0plus + lV0(t)) / 2 - a = VEC.aDesMax(v) + Public Sub SetMinAccBackw(ByVal t As Integer) + Dim a As Single + Dim v As Single + Dim v0 As Single + Dim a0 As Single - Do While Math.Abs(a - a0) > 0.0001 + v0 = lV0(t) - a0 = a + v = (lV0(t + 1) + v0) / 2 + a0 = VEC.aDesMin(v) - v0plus = lV0(t) + a - v = (v0plus + lV0(t)) / 2 - a = VEC.aDesMax(v) + v0 = lV0(t + 1) - a + v = (lV0(t + 1) + v0) / 2 + a = VEC.aDesMin(v) - Loop + Do While Math.Abs(a - a0) > 0.0001 - la(t) = a - lV0(t + 1) = lV0(t) + a - lV(t) = (lV0(t + 1) + lV0(t)) / 2 - If t < MODdata.tDim Then - lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 - la(t + 1) = lV0(t + 2) - lV0(t + 1) - End If - End Sub + a0 = a + v0 = lV0(t + 1) - a + v = (lV0(t + 1) + v0) / 2 + a = VEC.aDesMin(v) - Public Sub SetMinAccBackw(ByVal t As Integer) - Dim a As Single - Dim v As Single - Dim v0 As Single - Dim a0 As Single + Loop - v0 = lV0(t) + la(t) = a + lV0(t) = lV0(t + 1) - a + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + If t > 0 Then + lV(t - 1) = (lV0(t) + lV0(t - 1)) / 2 + la(t - 1) = lV0(t) - lV0(t - 1) + End If + End Sub - v = (lV0(t + 1) + v0) / 2 - a0 = VEC.aDesMin(v) + Public Function DistCorrInit() As Boolean + Dim i As Int16 - v0 = lV0(t + 1) - a - v = (lV0(t + 1) + v0) / 2 - a = VEC.aDesMin(v) + If Not Cfg.DistCorr Then Return True - Do While Math.Abs(a - a0) > 0.0001 + If Not DRI.Vvorg Then + WorkerMsg(tMsgID.Err, "Distance Correction not possible without speed input!", "DistCorrInit") + Return False + End If - a0 = a - v0 = lV0(t + 1) - a - v = (lV0(t + 1) + v0) / 2 - a = VEC.aDesMin(v) + WegX = 0 + dWegIst = 0 - Loop + WegV = New List(Of Single) - la(t) = a - lV0(t) = lV0(t + 1) - a - lV(t) = (lV0(t + 1) + lV0(t)) / 2 - If t > 0 Then - lV(t - 1) = (lV0(t) + lV0(t - 1)) / 2 - la(t - 1) = lV0(t) - lV0(t - 1) - End If - End Sub + For i = 0 To MODdata.tDim + 1 + WegV.Add(lV0(i)) + Next - Public Function DistCorrInit() As Boolean - Dim i As Int16 + Return True + End Function - If Not Cfg.DistCorr Then Return True + Public Function DistCorrection(ByVal t As Integer, ByVal VehState As tVehState) As Boolean + Dim v As Single - If Not DRI.Vvorg Then - WorkerMsg(tMsgID.Err, "Distance Correction not possible without speed input!", "DistCorrInit") - Return False - End If + If Not DRI.Vvorg Then Return False + v = lV(t) + dWegIst += v - WegX = 0 - dWegIst = 0 + If Not Cfg.DistCorr Then Return False - WegV = New List(Of Single) + If t + 1 > MODdata.tDim Then Return False - For i = 0 To MODdata.tDim + 1 - WegV.Add(lV0(i)) - Next - Return True + If WegX + 2 < MODdata.tDimOgl Then - End Function + 'If repeating of current time-step is closer to the target distance => Repeat time-step + If Not NoDistCorr(t) AndAlso (Math.Abs(dWegIst + Vsoll(t) - Weg(WegX)) < Math.Abs(dWegIst - Weg(WegX))) And v > 1 _ + Then - Public Function DistCorrection(ByVal t As Integer, ByVal VehState As tVehState) As Boolean - Dim v As Single + Duplicate(t + 1) + MODdata.tDim += 1 + 'Debug.Print("Duplicate," & t & "," & WegIst & "," & Weg(WegX)) + NoDistCorr(t + 1) = True + Return True - If Not DRI.Vvorg Then Return False + 'If deleting the next time-step is closer to target distance => Delete Next Time-step + ElseIf _ + Not NoDistCorr(t) AndAlso WegX < MODdata.tDimOgl - 1 AndAlso t < MODdata.tDim - 1 AndAlso + Math.Abs(dWegIst - Weg(WegX + 1)) <= Math.Abs(dWegIst - Weg(WegX)) AndAlso v > 1 Then - v = lV(t) - dWegIst += v + Cut(t + 1) + MODdata.tDim -= 1 + 'Debug.Print("Cut," & t & "," & WegIst & "," & Weg(WegX)) + NoDistCorr(t + 1) = True + WegX += 2 + Return True - If Not Cfg.DistCorr Then Return False + Else - If t + 1 > MODdata.tDim Then Return False + 'No correction + WegX += 1 + Return False + End If - If WegX + 2 < MODdata.tDimOgl Then + End If - 'If repeating of current time-step is closer to the target distance => Repeat time-step - If Not NoDistCorr(t) AndAlso (Math.Abs(dWegIst + Vsoll(t) - Weg(WegX)) < Math.Abs(dWegIst - Weg(WegX))) And v > 1 Then + Return False + End Function - Duplicate(t + 1) - MODdata.tDim += 1 - 'Debug.Print("Duplicate," & t & "," & WegIst & "," & Weg(WegX)) - NoDistCorr(t + 1) = True - Return True + Private Sub Duplicate(ByVal t As Integer) - 'If deleting the next time-step is closer to target distance => Delete Next Time-step - ElseIf Not NoDistCorr(t) AndAlso WegX < MODdata.tDimOgl - 1 AndAlso t < MODdata.tDim - 1 AndAlso Math.Abs(dWegIst - Weg(WegX + 1)) <= Math.Abs(dWegIst - Weg(WegX)) AndAlso v > 1 Then + lV0.Insert(t + 1, (WegV(t + 1) + WegV(t)) / 2) + WegV.Insert(t + 1, (WegV(t + 1) + WegV(t)) / 2) - Cut(t + 1) - MODdata.tDim -= 1 - 'Debug.Print("Cut," & t & "," & WegIst & "," & Weg(WegX)) - NoDistCorr(t + 1) = True - WegX += 2 - Return True + 'If t + 1 < MODdata.tDim Then + ' lV0.Insert(t + 1, (WegV(t + 1) + WegV(t + 2)) / 2) + ' WegV.Insert(t + 1, (WegV(t + 1) + WegV(t + 2)) / 2) + 'Else + ' lV0.Insert(t + 1, WegV(t + 1)) + ' WegV.Insert(t + 1, WegV(t + 1)) + 'End If - Else + lV0ogl.Insert(t + 1, lV0ogl(t + 1)) + lV.Insert(t, (lV0(t + 1) + lV0(t)) / 2) + la.Insert(t, lV0(t + 1) - lV0(t)) - 'No correction - WegX += 1 - Return False + If t < MODdata.tDim Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If - End If + lGears.Insert(t, lGears(t)) + lPadd.Insert(t, lPadd(t)) + EcoRoll.Insert(t, EcoRoll(t)) + If DRI.PwheelVorg Then Pwheel.Insert(t, Pwheel(t)) + NoDistCorr.Insert(t, NoDistCorr(t)) - End If + If DRI.VairVorg Then + lVairVres.Insert(t, lVairVres(t)) + lVairBeta.Insert(t, lVairBeta(t)) + End If - Return False + MODdata.Px.Positions.Insert(t, MODdata.Px.Positions(t)) - End Function + MODdata.Duplicate(t) + End Sub - Private Sub Duplicate(ByVal t As Integer) + Public Sub DuplicatePreRun(ByVal t As Integer) - lV0.Insert(t + 1, (WegV(t + 1) + WegV(t)) / 2) - WegV.Insert(t + 1, (WegV(t + 1) + WegV(t)) / 2) + lV0.Insert(t, lV0(t)) - 'If t + 1 < MODdata.tDim Then - ' lV0.Insert(t + 1, (WegV(t + 1) + WegV(t + 2)) / 2) - ' WegV.Insert(t + 1, (WegV(t + 1) + WegV(t + 2)) / 2) - 'Else - ' lV0.Insert(t + 1, WegV(t + 1)) - ' WegV.Insert(t + 1, WegV(t + 1)) - 'End If + lV0ogl.Insert(t, lV0ogl(t)) + lV.Insert(t, (lV0(t + 1) + lV0(t)) / 2) + la.Insert(t, lV0(t + 1) - lV0(t)) - lV0ogl.Insert(t + 1, lV0ogl(t + 1)) - lV.Insert(t, (lV0(t + 1) + lV0(t)) / 2) - la.Insert(t, lV0(t + 1) - lV0(t)) + If t > 0 Then + lV(t - 1) = (lV0(t) + lV0(t - 1)) / 2 + la(t - 1) = lV0(t) - lV0(t - 1) + End If - If t < MODdata.tDim Then - lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 - la(t + 1) = lV0(t + 2) - lV0(t + 1) - End If + lGears.Insert(t, lGears(t)) + lPadd.Insert(t, lPadd(t)) + EcoRoll.Insert(t, EcoRoll(t)) + If DRI.PwheelVorg Then Pwheel.Insert(t, Pwheel(t)) + NoDistCorr.Insert(t, NoDistCorr(t)) - lGears.Insert(t, lGears(t)) - lPadd.Insert(t, lPadd(t)) - EcoRoll.Insert(t, EcoRoll(t)) - Pwheel.Insert(t, Pwheel(t)) - NoDistCorr.Insert(t, NoDistCorr(t)) + If DRI.VairVorg Then + lVairVres.Insert(t, lVairVres(t)) + lVairBeta.Insert(t, lVairBeta(t)) + End If + + MODdata.Duplicate(t) + End Sub + + Private Sub Cut(ByVal t As Integer) + + lV0.RemoveAt(t + 1) + lV0ogl.RemoveAt(t + 1) + WegV.RemoveAt(t + 1) + lV.RemoveAt(t) + la.RemoveAt(t) + + If t < MODdata.tDim Then + lV(t) = (lV0(t + 1) + lV0(t)) / 2 + la(t) = lV0(t + 1) - lV0(t) + End If - If DRI.VairVorg Then - lVairVres.Insert(t, lVairVres(t)) - lVairBeta.Insert(t, lVairBeta(t)) - End If + If t < MODdata.tDim - 1 Then + lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 + la(t + 1) = lV0(t + 2) - lV0(t + 1) + End If - MODdata.Px.Positions.Insert(t, MODdata.Px.Positions(t)) + lGears.RemoveAt(t) + lPadd.RemoveAt(t) + EcoRoll.RemoveAt(t) + If DRI.PwheelVorg Then Pwheel.RemoveAt(t) + NoDistCorr.RemoveAt(t) - MODdata.Duplicate(t) + If DRI.VairVorg Then + lVairVres.RemoveAt(t) + lVairBeta.RemoveAt(t) + End If + MODdata.Px.Positions.RemoveAt(t) - End Sub - Public Sub DuplicatePreRun(ByVal t As Integer) + MODdata.Cut(t) + End Sub - lV0.Insert(t, lV0(t)) + Public ReadOnly Property Vsoll(ByVal t As Integer) As Single + Get + Return (lV0ogl(t + 1) + lV0ogl(t)) / 2 + End Get + End Property + + Public ReadOnly Property V(ByVal t As Integer) As Single + Get + Return lV(t) + End Get + End Property - lV0ogl.Insert(t, lV0ogl(t)) - lV.Insert(t, (lV0(t + 1) + lV0(t)) / 2) - la.Insert(t, lV0(t + 1) - lV0(t)) + Public ReadOnly Property V0(ByVal t As Integer) As Single + Get + Return lV0(t) + End Get + End Property - If t > 0 Then - lV(t - 1) = (lV0(t) + lV0(t - 1)) / 2 - la(t - 1) = lV0(t) - lV0(t - 1) - End If + Public ReadOnly Property GearVorg(ByVal t As Integer) As Short + Get + Return lGears(t) + End Get + End Property - lGears.Insert(t, lGears(t)) - lPadd.Insert(t, lPadd(t)) - EcoRoll.Insert(t, EcoRoll(t)) - Pwheel.Insert(t, Pwheel(t)) - NoDistCorr.Insert(t, NoDistCorr(t)) - If DRI.VairVorg Then - lVairVres.Insert(t, lVairVres(t)) - lVairBeta.Insert(t, lVairBeta(t)) - End If + Public Sub SetAlt() + Dim Ls As List(Of Double) + Dim Lalt As List(Of Double) + Dim sl As Integer + Dim s As Integer - MODdata.Duplicate(t) + 'Altitude / distance + Ls = DRI.Values(tDriComp.s) + Lalt = DRI.Values(tDriComp.Alt) - End Sub + lAlt0.Add(Lalt(0)) + ls0.Add(Ls(0)) - Private Sub Cut(ByVal t As Integer) + sl = 0 + For s = 1 To DRI.tDim + If Ls(s) > ls0(sl) Then + sl += 1 + ls0.Add(Ls(s)) + lAlt0.Add(Lalt(s)) + End If + Next + iAltDim = ls0.Count - 1 + End Sub - lV0.RemoveAt(t + 1) - lV0ogl.RemoveAt(t + 1) - WegV.RemoveAt(t + 1) - lV.RemoveAt(t) - la.RemoveAt(t) + Public Function fGrad(ByVal s As Double) As Single + Dim i As Int32 + Dim dh As Single + Dim ds As Single - If t < MODdata.tDim Then - lV(t) = (lV0(t + 1) + lV0(t)) / 2 - la(t) = lV0(t + 1) - lV0(t) - End If + If Not DRI.Vvorg Then Return 0 - If t < MODdata.tDim - 1 Then - lV(t + 1) = (lV0(t + 2) + lV0(t + 1)) / 2 - la(t + 1) = lV0(t + 2) - lV0(t + 1) - End If + If ls0(0) >= s Then + i = 1 + GoTo lbInt + End If - lGears.RemoveAt(t) - lPadd.RemoveAt(t) - EcoRoll.RemoveAt(t) - Pwheel.RemoveAt(t) - NoDistCorr.RemoveAt(t) + i = iAlt - If DRI.VairVorg Then - lVairVres.RemoveAt(t) - lVairBeta.RemoveAt(t) - End If + If ls0(i - 1) > s Then - MODdata.Px.Positions.RemoveAt(t) + Do While ls0(i - 1) > s And i > 1 + i -= 1 + Loop + Else - MODdata.Cut(t) + Do While ls0(i) < s And i < iAltDim + i += 1 + Loop - End Sub - - Public ReadOnly Property Vsoll(ByVal t As Integer) As Single - Get - Return (lV0ogl(t + 1) + lV0ogl(t)) / 2 - End Get - End Property - - Public ReadOnly Property V(ByVal t As Integer) As Single - Get - Return lV(t) - End Get - End Property - - Public ReadOnly Property V0(ByVal t As Integer) As Single - Get - Return lV0(t) - End Get - End Property - - Public ReadOnly Property GearVorg(ByVal t As Integer) As Short - Get - Return lGears(t) - End Get - End Property - - - Public Sub SetAlt() - Dim Ls As List(Of Double) - Dim Lalt As List(Of Double) - Dim sl As Integer - Dim s As Integer - - 'Altitude / distance - Ls = DRI.Values(tDriComp.s) - Lalt = DRI.Values(tDriComp.Alt) - - lAlt0.Add(Lalt(0)) - ls0.Add(Ls(0)) - - sl = 0 - For s = 1 To DRI.tDim - If Ls(s) > ls0(sl) Then - sl += 1 - ls0.Add(Ls(s)) - lAlt0.Add(Lalt(s)) - End If - Next - iAltDim = ls0.Count - 1 - - End Sub - - Public Function fGrad(ByVal s As Double) As Single - Dim i As Int32 - Dim dh As Single - Dim ds As Single - - If Not DRI.Vvorg Then Return 0 - - If ls0(0) >= s Then - i = 1 - GoTo lbInt - End If - - i = iAlt - - If ls0(i - 1) > s Then - - Do While ls0(i - 1) > s And i > 1 - i -= 1 - Loop - - Else - - Do While ls0(i) < s And i < iAltDim - i += 1 - Loop - - End If + End If lbInt: - iAlt = i - - ds = ls0(i) - ls0(i - 1) - dh = lAlt0(i) - lAlt0(i - 1) - Return (dh / ds) * 100 + iAlt = i - End Function + ds = ls0(i) - ls0(i - 1) + dh = lAlt0(i) - lAlt0(i - 1) + Return (dh / ds) * 100 + End Function - 'IndexInit = 0 ...Set iAlt to 1 - 'IndexInit = 0 ...Set iAlt - 'IndexInit > 0 ...Use IndexStart - Public Function AltIntp(ByVal s As Single, ByVal iAltReset As Boolean) As Single - Dim i As Int32 + 'IndexInit = 0 ...Set iAlt to 1 + 'IndexInit = 0 ...Set iAlt + 'IndexInit > 0 ...Use IndexStart + Public Function AltIntp(ByVal s As Single, ByVal iAltReset As Boolean) As Single + Dim i As Int32 - If ls0(0) >= s Then - i = 1 - GoTo lbInt - End If + If ls0(0) >= s Then + i = 1 + GoTo lbInt + End If - If iAltReset Then iAlt = 1 + If iAltReset Then iAlt = 1 - i = iAlt + i = iAlt - If ls0(i - 1) > s Then + If ls0(i - 1) > s Then - Do While ls0(i - 1) > s And i > 1 - i -= 1 - Loop + Do While ls0(i - 1) > s And i > 1 + i -= 1 + Loop - Else + Else - Do While ls0(i) < s And i < iAltDim - i += 1 - Loop + Do While ls0(i) < s And i < iAltDim + i += 1 + Loop - End If + End If lbInt: - iAlt = i - - Return (s - ls0(i - 1)) * (lAlt0(i) - lAlt0(i - 1)) / (ls0(i) - ls0(i - 1)) + lAlt0(i - 1) - - End Function - - - Public ReadOnly Property Padd(ByVal t As Integer) As Single - Get - Return lPadd(t) - End Get - End Property - - Public ReadOnly Property a(ByVal t As Integer) As Single - Get - Return la(t) - End Get - End Property - - Public ReadOnly Property VairVres(ByVal t As Integer) As Single - Get - Return lVairVres(t) - End Get - End Property - - Public ReadOnly Property VairBeta(ByVal t As Integer) As Single - Get - Return lVairBeta(t) - End Get - End Property - - Public ReadOnly Property WegIst As Double - Get - Return dWegIst - End Get - End Property - - Public ReadOnly Property WegSoll As Double - Get - Return Weg(WegX) - End Get - End Property - - + iAlt = i + + Return (s - ls0(i - 1)) * (lAlt0(i) - lAlt0(i - 1)) / (ls0(i) - ls0(i - 1)) + lAlt0(i - 1) + End Function + + + Public ReadOnly Property Padd(ByVal t As Integer) As Single + Get + Return lPadd(t) + End Get + End Property + + Public ReadOnly Property a(ByVal t As Integer) As Single + Get + Return la(t) + End Get + End Property + + Public ReadOnly Property VairVres(ByVal t As Integer) As Single + Get + Return lVairVres(t) + End Get + End Property + + Public ReadOnly Property VairBeta(ByVal t As Integer) As Single + Get + Return lVairBeta(t) + End Get + End Property + + Public ReadOnly Property WegIst As Double + Get + Return dWegIst + End Get + End Property + + Public ReadOnly Property WegSoll As Double + Get + Return Weg(WegX) + End Get + End Property End Class diff --git a/VECTO/My Project/AssemblyInfo.vb b/VECTO/My Project/AssemblyInfo.vb index fbbde67905cddfb1037f93aadc3dec64ab883718..8a05a5e57154b72ae413002a5f85f85587512f56 100644 --- a/VECTO/My Project/AssemblyInfo.vb +++ b/VECTO/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by entering "*" in them: ' <Assembly: AssemblyVersion("1.0.*")> -<Assembly: AssemblyVersion("2.0.4.0")> -<Assembly: AssemblyFileVersion("2.0.4.0")> +<Assembly: AssemblyVersion("2.1.0.0")> +<Assembly: AssemblyFileVersion("2.1.0.0")>