Top 10 Reasons to Use sTCAE suite of tools for Model Based Design of Embedded Control Systems:
1. Rapid Development of Control Systems
Keywords: # Auto-Code Generation, Digital Control Systems, Digital Motor Controls, Digital Power, HIL, Electric Drives, Robotics, Electric Vehicles, Hybrid Vehicles, Digital Battery Management Systems, State Charts, Texas Instruments C2000, Delfino, Piccolo, Texas Instruments MSP430, Instaspin, Motorware.
solidThinking Embed is an award winning graphical block diagram language for modeling and simulating complex dynamic systems. The core product of the suite, sT Embed, is a highly efficient and comprehensive model-based embedded systems development tool which allows development of quick prototypes of any dynamic system by going from Control Diagrams to auto-generated C-code ready to be ported onto target hardware. Embed also provides a much sought after State Charts to Auto-code generation feature. The well proven diagram to code technology of Embed Tool helps shorten your design & development time drastically while increasing product consistency and quality. Embed automatically converts the Control Diagrams and Model into highly-efficient and compact ANSI Ccode(pure fixed point code option available) for discrete, continuous and hybrid systems. Embed Tool provides designers with the option of natively scheduling multi-rate or multi-threaded code and download it onto target Embedded hardware along with necessary peripheral drivers all developed using model based design approach. This shortens development cycle drastically.
MBD development consists of 3 main phases – simulation phase, also known as Software in the Loop or SIL; the microprocessor in the loop phase, also known as Processor in the Loop or PIL; and the hardware in the loop phase, also known as Hardware in the Loop or HIL
solidThinking Embed provides a complete toolchain for the development of embedded control systems covering Software-in-the-Loop, Processor-in-the-Loop as well as Hardware-in-the-Loop simulations.
You can make changes to a control diagram, and compile and download it to the target MCU in seconds. Then, while the system is operating, you can interactively update the control parameters. Using powerful data logging, buffering, and digital scoping blocks, you can gain insight into the control algorithms deployed on the target MCU in real time.
2. Software-In-the-loop
Software-in-the-loop testing can be viewed as Simulation-based Software Evaluation. A software system can be executed under simulated input and environmental conditions to evaluate how well the software system functions under such conditions. Software-in-the-loop testing is a cost-effective method for evaluating a complex, mission-critical software system before it is deployed. The solidThinking Embed application provides a number of features that make the SIL task easier, a few of them are explained below.
During the SIL phase the plant, controller, actuator, and sensor models are executed entirely on the Host. It is also common to include the sensor and actuator models as part of the plant model, at least initially. Sometimes they are neglected entirely implying they are ideal unity gain models with no dynamics. The controller is separately modelled and interfaced with the plant model through the actuator and sensor interface signals. Initial design iterations often use a continuous time model for the controller which allows standard frequency domain methods to be employed for design. Once the design requirements are satisfied and adequate stability margins are achieved, the controller model is converted to discrete time for further investigation of update time, multi-rate sampling, fixed point implementations, time jitter, quantization, time delays, and other issues. The level of confidence in meeting the design requirements during the SIL phase depends significantly on the accuracy of the plant model. Unlike code based controller development (C, JavaScript, C#, Python …) where the lowest common denominator building block is a line of code, MBD uses block diagram models as the common denominator. All design changes are made by modifying or augmenting models. The automatically generated code from a model is never directly altered.
3. Processor in the Loop
During the PIL phase, the controller model is converted to C code and resides on the actual Target microcontroller while the Host is used to model the plant, sensor, and actuators. In addition, the Host is used to issue setpoint and other commands to the Target and collect data from the Target.
In most situations the controller model is designed to reside in a compound block with input and output signals flowing through its pins. For the microcontrollers that solidThinking Embed supports, a small footprint low jitter Real Time Operating System is also automatically generated and included in the executable code. After the executable code with RTOS file has been created, it is automatically loaded onto the Target. Once loaded, the code can run in either a standalone mode or under Host control.
4. Hardware in the Loop
The HIL phase is an extension of the PIL phase with additional plant model hardware included and communicating with the Target using real sensors, communication buses, and actuators. As mentioned previously, it is often not possible to include the entire plant, all sensors, and all actuators in the HIL phase. Hardware that is not included is modeled in the Host model. As in the PIL phase, the Host model is also used to issue setpoint and other commands to the Target and collect data from the Target.
During the HIL phase, one must be more concerned with safety aspects as the HIL system will contain high power. State charts are especially suited to implementing control flow logic including modes of operation, entry and exit conditions for the various modes, fault detection, and fail safe modes to address faults with respect to both human and machine safety. The solidThinking Embed application provides a complete OMG UML 2.1 compliant State Machine blockkset. The State Machine blockkset allows you to create, edit, simulate, and generate C code for hierarchical and parallel state machine constructs. State actions, transitions, triggers, and guards are defined using standard C syntax. The State Machine blockkset also has an integrated debugger to help with any debugging tasks.
5. Gain Functional Insight Early:
Identify system level issues at the concept design stage. Simply drag and drop blocks that specify the functional definition of the system and provide directional insight. Simulate the model within seconds!
Test designs earlier in the design process when changes are less expensive. For instance, early in the design process, no component geometry may be available, so functional behavior is captured at this point. Using a block diagram approach and leveraging a large set of predefined libraries, you can quickly build and validate designs.
A motor vehicle’s driveline or drivetrain consists of the parts of the powertrain excluding the engine and transmission
Activate empowers users to identify system level problems early in the design process while ensuring that all the design requirements are met. Activate provides its users with a standard set of predefined blocks that can easily be combined to model systems. Activate users can easily leverage the large library of Modelica physical components to further describe the plant and the controller.
6. Sharing Models:
Team based complex system development requires a means to share component models with other members of the team. These models are often read only as the developer would be responsible for all changes. The solidThinking Embed application provides a feature called Embedding that allows team members to include models from one or more source models in their destination model. When the developer updates the source model, all instances of the model in destination models are updated. In addition to Embedding, any model can be added to the solidThinking Embed menu bar making it available permanently whenever solidThinking Embed is launched.
7. Improve System Level Performance
I Simulate and imporve the dynamic performance of smart, multi-deciplinary systems. Integrate multi-domain, multi-department systems in an open environment
Simulate and improve the dynamic behavior of any multi-disciplinary system. A system simulation environment makes it easy to model, simulate and validate smart systems where users can incorporate functions of sensing, actuation and control coming from diverse components such as Electrical, Mechanical, Hydraulics and Controls.
In this example, the motors that help actuate the robot was modeled in Activate. The multibody dynamics mechanism was modeled in MotionSolve. Activate helps you perform integration and synthesis by allowing you incorporate multi-disciplinary components and simulate a combined system behavior
8. Efficiently Design For Robustness
I Perform what-if-analyses at the system-level to quickly test several designs of your smart system. Perform design studies and optimization with parametric models to best meet requirements and determine the most influential design parameters
Adopting Model Based Development establishes a common framework for communication throughout the design process. Model based development using Activate provides an efficient approach for establishing a common framework for communication throughout the design process. Perform what-if analyses at the system level to quickly test several designs and investigate the interactions of all components in a system.
The example that you see on your slide is that of a vehicle dynamics simulation. By modifying the damping factor on the suspension, you monitor how the lateral stability of the car changes. The Activate hybrid simulator runs models very quickly. This allows you to perform several what-if studies on your concept and thereby influence the robustness of your design.
9. Full Prototype Design:
Signal and physical modeling in one environment | Seamless transition to / from 3D Modeling
Model, simulate and validate smart systems by incorporating functions of sensing, actuation and control coming from diverse domains such as electrical, mechanical, hydraulic and control. In this example, the motors that help actuate the robot was modeled in Activate. The multibody dynamics mechanism was modeled in Inspire Motion. Activate helps you perform integration and synthesis by allowing you incorporate multi-disciplinary components and simulate a combined system behavior
10. Interactive & Robust Host-Target Communication & Debugging :
During the PIL phase, the controller algorithm is converted to code using the sTE automatic code generation feature and executed on the Target microprocessor. The plant model, including the sensor and actuator models, remain on the Host. Sensor and actuator signals are passed between the Host and Target using the JTAG based interactive data exchange. The solidThinking Embed application provides a built-in USB based JTAG communication link (HotLink) that allows (1) the Target to be interactively controlled from the Host and (2) real time data collection from the Target with presentation or storage on the Host. Since the JTAG interface has bandwidth limitations, sTE provides the ability to adjust the Target update time such that the sensor/actuator data transfer between the plant and controller remains synchronized. The solidThinking Embed communication layer, HotLink, communicates using JTAG to support both normal and high speed data collection. The normal mode is used to send commands from the Host to the Target and collect data from the Target to the Host. The signal transfer rate is limited to approximately 200 words/second. During the PIL and HIL phases, data must be acquired at a much faster rate, typically one prefers to record data at the frequency the control algorithm is running at which could be 10kHz or greater. A special block set is provided that executes over the JTAG interface specifically for this purpose. The Monitor Buffer provides a mechanism for a debug model to buffer a large volume of data acquired on the Target at the Target’s native sample rate, transmit the data periodically over the slower JTAG interface from the Target to the Host, and then make the buffer contents available as a vector of data on the Host application. The monitor buffer shown below uses the buffer mechanism to capture, transmit a buffer of 1001 elements collected at 10,000 Hz from the Target. The Host, running at 100Hz, then plots the sample values much like a triggered oscilloscope trace
In addition to the plant model, the Host model is enhanced with sliders and other signal producers allowing parameters to be interactively adjusted while the controller is running. Furthermore, the Host model may be modified to capture high speed data collection from the Target using the monitor buffer feature described later in this paper. Since the modeling uncertainty of the Target model used in the SIL phase is removed in the PIL phase, the level of confidence in meeting the design requirements is improved compared with the SIL phase. The solidThinking Embed application utilizes a JTAG interface to communicate data between the Host and the Target