A system is a composition of different elements that serves a goal that cannot be achieved by any of the elements alone. The constituent elements of a system can be mechanical parts, electrical circuits, computer hardware, and software. A system specification consists of a description of the associated set of elements, their characteristics and properties, their interactions with each other, and the desired interaction (or interface) of the overall system with its environment.
System Composer™ enables you to describe systems in terms of architecture models as a combination of structural elements that are further elaborated by underlying behavioral descriptions These descriptive models may sometimes be presented as distinct diagrams that are all kept consistent with each other.
With System Composer, you can:
Create hierarchical models of system structure that represent functional, logical, or physical decompositions of the system through a component, port, and connector paradigm.
Create and manage interfaces between structural architecture elements.
Refine and elaborate requirements through workflows enabled by Simulink® Requirements™.
Extend base architectural elements to create custom domain specific conceptual representations with associated properties.
Specify component behavior in various formalisms including Simulink block diagrams, State charts in Stateflow®, MATLAB® and C/C++ Code.
Perform static analysis and trade studies to optimize system architectures.
Define custom filtered views of the system’s structure for various design concerns.
Consider a mobile robotic system where the intent is to design a computer that manages a robot wirelessly by assigning it a desired location periodically that the robot needs to reach. An architecture model of such a system could consist of two primary components: the computer and the robot. You represent them in System Composer using two component blocks.
While thinking through the initial design of the system, you start to elaborate each component further. For instance, you can define the robot as having a sensor to sense position, a controller to manipulate the robot's position, and a motor that is actuated by the controller to reach a desired position.
You can also begin to create connectivity between the components making up the system by describing the flow of power, energy, data, or any representative information. This is done by creating ports on the components that provide or consume some desired information and connectors that bind two component ports to represent the flow of that information. You can define an interface to fully specify a connection and its associated ports. An interface can consist of multiple data elements with various dimensions, units, and data types. To enable consistency checking when connecting a port, you can also associate interfaces with unconnected ports during component design.
Requirements are integral to the system engineering process. Some are related to the functionality of the overall system and some to aspects of performance such as power, size, and weight. Decomposing high-level requirements into lower-level requirements and deriving additional requirements is an important aspect of defining the architecture of the overall system. For instance, the overall power consumption of the robot determines the requirement for the robot controller's power consumption.
To allocate and trace requirements with system elements, System Composer fully integrates with Simulink
Requirements. To facilitate the derivation of appropriate requirements, it is sometimes
necessary to analyze and specify properties (such as power) for elements of the system
including components, ports, or connectors. For example, if the total power consumption of the
system is a concern, a
Power Consumption property is necessary. You can add
this property to an electrical component using a stereotype. A
stereotype adds properties to components, ports, and connectors. With these properties
specified, you can use MATLAB to perform analysis and allocate power appropriately to all elements within the
design. You can then create additional derived requirements for the designers of individual
components in the system such as the controller or the sensors.
Finally, you can also begin to design the actual system’s components using Simulink. You can fully specify, test, and analyze the behavior of a component in code using the Model-Based Design process based on the Simulink platform.