Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 88fcde35 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge pull request #764 in VECTO/vecto-sim from...

Merge pull request #764 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:bugfix/VECTO-1000-error-loss-map-extrapolation-in-declaration-mode to develop

* commit '35cc67e7':
  added file
  additional condition to avoid short simulation intervals.
  fixing error in testcase
  adding missing file
parents c2551c99 35cc67e7
No related branches found
No related tags found
No related merge requests found
......@@ -89,9 +89,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
UpdateDrivingAction(currentDistance, ds);
if (NextDrivingAction != null) {
var remainingDistance = NextDrivingAction.ActionDistance - currentDistance;
var estimatedNextTimestep = remainingDistance / Driver.DataBus.VehicleSpeed;
if (remainingDistance.IsEqual(0.SI<Meter>(), Constants.SimulationSettings.DriverActionDistanceTolerance) ||
estimatedNextTimestep.IsSmaller(Constants.SimulationSettings.LowerBoundTimeInterval)) {
var estimatedTimestep = remainingDistance / Driver.DataBus.VehicleSpeed;
var atTriggerTistance = remainingDistance.IsEqual(
0.SI<Meter>(), Constants.SimulationSettings.DriverActionDistanceTolerance);
var closeBeforeBraking = estimatedTimestep.IsSmaller(Constants.SimulationSettings.LowerBoundTimeInterval);
var brakingIntervalTooShort = NextDrivingAction.Action == DrivingBehavior.Braking &&
((NextDrivingAction.TriggerDistance - NextDrivingAction.ActionDistance) / Driver.DataBus.VehicleSpeed)
.IsSmaller(
Constants.SimulationSettings.LowerBoundTimeInterval / 20) && !Driver.DataBus.ClutchClosed(absTime);
if ( atTriggerTistance || closeBeforeBraking || brakingIntervalTooShort) {
CurrentDrivingMode = DrivingMode.DrivingModeBrake;
DrivingModes[CurrentDrivingMode].ResetMode();
Log.Debug("Switching to DrivingMode BRAKE");
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
<xs:schema xmlns="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vmrf="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" targetNamespace="urn:tugraz:ivt:VectoAPI:MonitoringOutput:v0.7" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:v0.7" schemaLocation="VectoOutputManufacturer.0.7.xsd"/>
<xs:element name="VectoMonitoring">
<xs:complexType>
<xs:sequence>
<xs:element name="ManufacturerRecord" type="vmrf:VectoOutputManufacturerType"/>
<xs:element name="AdditionalData">
<xs:complexType>
<xs:sequence>
<xs:element name="Vehicle">
<xs:complexType>
<xs:sequence>
<xs:element name="Make" type="xs:string">
<xs:annotation>
<xs:documentation>#15</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:sequence minOccurs="0">
<xs:element name="Engine">
<xs:complexType>
<xs:sequence>
<xs:element name="WHTC">
<xs:complexType>
<xs:sequence>
<xs:element name="CO2">
<xs:annotation>
<xs:documentation>#75</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="unit" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="g/kWh"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="FuelConsumption">
<xs:annotation>
<xs:documentation>#76</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="unit" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="g/kWh"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="WHSC">
<xs:complexType>
<xs:sequence>
<xs:element name="CO2">
<xs:annotation>
<xs:documentation>#77</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="unit" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="g/kWh"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="FuelConsumption">
<xs:annotation>
<xs:documentation>#78</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attribute name="unit" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="g/kWh"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Gearbox">
<xs:complexType>
<xs:sequence>
<xs:element name="Manufacturer" type="xs:string">
<xs:annotation>
<xs:documentation>#24</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ManufacturerAddress" type="xs:string">
<xs:annotation>
<xs:documentation>#24</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Make" type="xs:string">
<xs:annotation>
<xs:documentation>#25</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Axlegear">
<xs:complexType>
<xs:sequence>
<xs:element name="Manufacturer" type="xs:string">
<xs:annotation>
<xs:documentation>#32</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ManufacturerAddress" type="xs:string">
<xs:annotation>
<xs:documentation>#32</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Make" type="xs:string">
<xs:annotation>
<xs:documentation>#33</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AxleWheels">
<xs:complexType>
<xs:sequence>
<xs:element name="Axle" minOccurs="2" maxOccurs="4">
<xs:complexType>
<xs:sequence>
<xs:element name="Tyre">
<xs:complexType>
<xs:sequence>
<xs:element name="Manufacturer" type="xs:string">
<xs:annotation>
<xs:documentation>#39</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ManufacturerAddress" type="xs:string">
<xs:annotation>
<xs:documentation>#39</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Make" type="xs:string">
<xs:annotation>
<xs:documentation>#40</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="axleNumber" use="required">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:element name="AdvancedReducingTechnologies">
<xs:annotation>
<xs:documentation>#74</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Entry" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="category" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="advanced aerodynamic measures"/>
<xs:enumeration value="advanced rolling resistance measures"/>
<xs:enumeration value="advanced drivetrain technologies"/>
<xs:enumeration value="advanced engine technologies"/>
<xs:enumeration value="advanced auxiliary technologies"/>
<xs:enumeration value="additional ADAS technologies"/>
<xs:enumeration value="advanced powertrain integration and hybridisation"/>
<xs:enumeration value="other"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VectoLicenseNbr" type="xs:string">
<xs:annotation>
<xs:documentation>#72</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="schemaVersion" type="xs:decimal" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
......@@ -680,6 +680,9 @@
<EmbeddedResource Include="Resources\XSD\VectoEngineeringJob.xsd">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Resources\XSD\VectoMonitoring.xsd">
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="Utils\VectoVersionCore.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>VectoVersionCore.cs</LastGenOutput>
......
......@@ -117,7 +117,7 @@ namespace TUGraz.VectoCore.Tests.Integration
var val2 = new XMLValidator(XmlReader.Create(customerFile));
Assert.IsTrue(val2.ValidateXML(XmlDocumentType.CustomerReport));
var val3 = new XMLValidator(XmlReader.Create(customerFile));
var val3 = new XMLValidator(XmlReader.Create(monitoringFile));
Assert.IsTrue(val3.ValidateXML(XmlDocumentType.MonitoringReport));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment