Enabling Modular Design Platforms using Variants in Model-Based Design

In recent times, the aircraft industry has witnessed an upward trend in development programs such as the Joint Strike Fighter (JSF) program requiring the customization of a single design to meet diverse customer requirements dictated by considerations such as application, cost, and operational considerations. Many of these dynamic changes in nature have required design component variations on top of a fixed master design. The concept of modularity applied intelligently to meet such needs has proved to be a cost-effective and efficient paradigm to meet these challenges. A well-designed modular architecture with shared interfaces and a common core enables synthesis of multiple product variants or product derivatives by switching in and out different components with varying attributes or implementations. However, such a paradigm when applied to a development process centered on Model-Based Design would necessitate tool support from design within the software environment to deployment on final hardware. In this paper, we introduce variant semantics and their usage within the graphical modeling environment such as Simulink. We discuss their nature that can be parametric and structural during the modeling phases but also are reflected in the automatically generated code for hardware deployment. Also, we introduce a scripting methodology for efficiently mapping a custom design to a permutation of variants and their subsequent abstraction for ease of understanding. Since several modular designs exist for any given design, we also outline a set of best practices for partitioning the design for scalability and maintainability. Variants present a variety of uses in the context of Model-Based Design workflows. They enable the creation of modular design platforms facilitating reuse and customization. Design exploration where several alternatives exist for a component can now be managed efficiently to simulate every design possibility in a combinatorial fashion for a given test suite. For large-scale problems, these could be distributed on a cluster of multicore computers for overall speedup with our scripting methodology. Alternatively, different test suites could also be mapped for efficiently managing relevant tests for a design. Maintenance activities of existing aircraft may require the upgrade of several components with no deterioration in existing performance requiring the testing of these upgrades in the model. Design elaboration and integration is a challenging activity where low fidelity components are replaced by more specialized ones. Since the order in which these components are integrated influence design quality and subsequent iterations, it is possible to carry out several separate integrations that increase confidence. Based on the evaluation criteria, a subset of these designs could be shortlisted for rapid prototyping or hardware-in-the-loop testing. With automatic code generation, variant components in the software model are mapped to C function code variants that can be switched by simply modifying the preprocessor definitions. Conversely, if there be hardware variants such as floating or fixed-point microprocessors, they will require the use of variants upstream with different modeling implementations. Using Simulink-based examples, we illustrate the above scenarios and outline strategies on how organizations can leverage these possibilities to reuse while enhancing their existing knowledge to meet the design challenges of the future.