In this article, we will briefly discuss model-based development, different techniques involved in Model-based development, and a brief overview of the potential of the job market of model-based development.
There are three major stakeholders in the automotive industry. They include;
The OEMs (Original Equipment Manufacturers): These are the original producers of the car. They provide the design of the car to the system integrators, and sometimes to the ECU integrators. Some examples of top OEMs in the automotive industry include; Ford, Mazda, Volkswagen, Hyundai, Kia, and others.
The Tier 1 Suppliers: This group has strong credibility with the OEM. In the supply chain, they offer the most advanced processes. They carry out designs and implementations. They are the system integrators and ECU integrators. Companies like Bosch, Continental, Lear Corp, and Allison fall in this category.
The Tier 2 Suppliers: This group has a limited production rate. They usually arrange a contract with the Tier 1 Suppliers and the OEMs. They get the job from them as a subcontract, and provide their support. They include companies like; Lear Corp and Johnson Control.
In order to make effective sales and achieve a satisfactory end product, there must be a good relationship between the OEM and the two Tiers. The relationship will be from top to bottom or from bottom to top and will continue until the final product leaves the assembly line.
For most people, cars are about the physical structure, the transmission, engines, wheels, sheet metal, and design. However, there is more to cars than the physical structure. there is software support in the form of sensors as well.
Modern automotive systems have very complex designs. You need to consider things like the safety of the passenger, the comfort of the passenger, driving comfort, durability, along with driving efficiency. This is unlike the outdated 90s vehicles which needed only a few considerations. In modern designs, there are a lot of sensors and actuators. Sensors receive signals and send them to the system, the system then processes the signals and sends them to the actuators which then controls them appropriately. This is basically the communication in embedded software in cars for the modern automotive system
Prior to this, minimal sensors were required to control a car, maybe one or two. But today, with the need for improved system performance, safety, and cost-efficiency, multiple sensors along with its relative software have been developed.
In the 90s, most of the software in use was not more than a few thousands of lines of codes which were all manually written; this means an engineer would manually write the codes, give them to a supplier who will, in turn, flash the code on an ECU and try to pick it. But with the increase in demand in the automotive industry, there was a need for faster and more accurate software. As compared to the single or dual sensor systems that were in cars in the 90s, we now have cars with at least 10 sensors connected to a single ECU, and with modern cars having a large number of amenities like - body comfort, driver information and connectivity, power train & control, and advanced driver assist and road safety features, the number of sensors on a modern car has gone up. And with this, code that could be written in a single sheet of paper has morphed in code that has millions of lines.
The challenge with having a large number of sensors, actuators, and embedded software systems in a car, and trying to match the prowess of your competitors in the automotive market, is that you cannot develop your own software. The time it takes for an electrical or mechanical engineer or an IT specialist to study the car and develop a suitable code will not fit into the time-frame that most automobile manufacturers work on. Leading to the invention of Software Model-Based Development.
In model-based development, instead of writing a ton of codes, engineering models are developed. These models are validated at the system level and finally, a software code is written for it. We have produced a certification course which has an in-depth explanation of SMBD. If you are interested in this domain, you do not want to miss this course.
In 2018, a large number of vehicle recall cases were recorded. This was not because of mechanical failure but because of codes having bugs in them that printed out incorrect data. A software can fail either by reading improper sensor data, or transmitting wrong information to the driver. One needs to be very careful to ensure that they have the exact software required to run the vehicle. Not only were the recalls a hit to the organization and a PR disaster, that made customers look at their future offerings with skepticism, but, it was expensive as well, putting the organizations in the red. 6
The major parts of Model-based development are;
Modeling: This is the first major stage of MBD, in which real-world problems will be virtually represented. Here, codes will be generated based on models and logic.
Simulation: The behavior of the model is tested in conditions that are difficult to reproduce in physical models. We would do this simulation in the computer environment, to check that everything is functioning perfectly.
Validation: Once it is available as a software, it must be validated to ensure that the quality of the final product meets the expected standards.
Any software that is written, irrespective of the vertical, follows a life cycle - the software development life cycle. This is a framework that describes all the activities involved in software development. Each vehicle develops software involving certain processes and has to meet certain predefined standards. In the development of embedded software for automotive industries, the software development life cycle follows a V curve.
Listed below are the different levels of the software development process, or the software development life-cycle, as well as the various key stakeholders involved in the development and their roles, if a student gets into automotive embedded software, they will have to in either one of the given testing phases:
Software requirement analysis:
This involves the tasks governing the implementation of certain conditions. It tells us the necessities for the model to be developed, and at what level it can be developed. Discussions and assignments occur in this stage. In cases where the individual involved has a high experience level, he can handle this stage alone. However, most times it is a teamwork. Team members gather, discuss, and tasks are shared with various specializations based on their ability.
Software high-level design:
A base model is already available, so the team works on their new model and incorporates it into the base model. Here, the system design is broken into different modules, each having its functionality. In this stage, the communication between the internal modules and the external world is cemented.
Software low-level design:
This stage involves the development of our requirements in the MATLAB environment. Almost all OEMs (about 95%) work with MATLAB. Here, the details of the internal design are properly specified. There must be compatibility between internal components.
Model in Loop Testing Stage:
After the development stage is completed, the next stage is the Model in Loop testing. During this stage, the engineering logic is checked. It shows if an input will produce the desired output. This can be done in the MATLAB environment, but there are some third-party tools that can also be used in this testing like Reactis, which is used by major OEMs like; Renault, Nissan, Valeo, and Porsche. Reactis has a high compatibility with different versions of MATLAB, so it makes the testing stage easier. Once the testing is done and produces the expected result, it goes back to the developer and is then moved to the next stage.
A model can be converted to a code. C-files, header files, Object files, and a few other supporting files are generated during the code generation stage.
Software in Loop Testing:
The generated code is entered into a tool that is compatible with MATLAB and the code will be tested in order to validate the behavior in the controller. Note that this stage is important even after the Model in Loop stage, as they are both different and unique.
Hardware in Loop Testing:
In this stage, both the plant model and controller models are running in real-time, so the confidence of the developer in the software increases. This is the closest we come to the vehicle testing process. Fully testing the vehicle can be very expensive as there might be some underlying faults. However, by using this hardware testing, we can create a vehicle-like environment and carry out all tests in specialized rigs. These rigs are supplied by companies - dSPACE and ETAS, these rigs will behave like the vehicle we are trying to simulate. The next step will be to develop a plant model, the inputs that we have developed in the steps mentioned above are the control logics, this plant model will interact with the test rig. The final software that has been developed will be flashed on to an ECU, which will then be connected to the test rig using physical wires.
This will be followed by real-time testing and if the result reads out that all operations are working as intended, the software can be rolled out.
Software acceptance testing: This is the final stage, where the finished, correct software is accepted.
Easier to work, it’s continuative and iterative.
Models; we have template models that can be re-used, unlike software codes. This is very cost-effective.
Faster code generation time.
The model versions are easy to maintain and can always be updated.
Design variants can be executed quickly.
There is about 75 – 80 % improvement in the time taken to generate final software for production.
In more ways than one, Model-Based Development is way better than the traditional method of testing. For instance, the traditional method follows a linear modeling approach, is rigorous and also has no scope for validation. The Model-Based Development solves all these problems as it is a continuous and iterative approach.
You can read part two of this blog here.
A comprehensive program on Hybrid Electric Vehicle Design, Analysis and Simulation using a variety of computational tools for HEV Applications. This program is highly suited for beginners
Introduction to HEV using MATLAB & Simulink
A comprehensive course on Electric-Vehicle Controls using Matlab and Simulink. This course is highly suited for beginners
A comprehensive course on Advanced Driver Assistance System using Matlab and Simulink. This course is highly suited for beginners
In this course, you will get a complete overview of electrochemistry, Battery terminologies, Mathematical modelling, Battery management system, Charging and discharging for EV application and thermal management.
A comprehensive course on Power converter design for EV using Matlab and Simulink. This course is highly suited for beginners
A comprehensive course on Fuel cell and Ultra capacitor Modelling for EV using Matlab and Simulink. This course is highly suited for beginners
Learn about the fundamentals of Simulink and Simscape needed to model, simulate, and study complex physical systems.
A comprehensive course on Machine Learning using Python. This course is highly suited for beginners
© 2022 Skill-Lync Inc. All Rights Reserved.