My introduction to simulation driven design
My junior year at Virginia Tech I worked in their stability wind tunnel. I spent one hot summer month building physical models, placing strain gages and pulling together wiring harnesses. Two years later while in graduate school I would write a CFD model in a week that allowed me to simulate the same wings with high accuracy in a wide variety situations. That simulation enabled me to perform the first 95% of my design through virtual prototyping. (Note: there are always cases where physical models are required. The goal with physical modeling is to reduce the number of actual physical prototypes created and test under conditions that are difficult or dangerous to do with an actual device.)

Design through simulation versus validation of requirements
In the architecture section of this blog I wrote about the concept of “shell models” and “elaboration”. The concept is simple, the initial model is a “shell.” It consists of the basic inputs and outputs required for the functioning of the system.
The developer then “elaborates” the model by adding functionality. With Model-Based Design, an environment with the concept of simulation “built-in” design through simulation is a logical step in the elaboration of the model.
Design simulations versus tests
The confusion in the picture comes in when we try to distinguish between testing to validate requirements versus simulation used in design,
- Simulations may have no or an informal infrastructure: In the formal verification setting a set testing infrastructure is required to ensure consistent validation behavior. By way of contrast, the design scenario seeks to quickly iterate through the design possibilities and is not “locking down” results.
- Simulations may have a soft-pass criteria: In the formal verification setting a “hard-pass” criteria is defined, e.g. under these conditions, the test passes, if not it fails. With the design simulations, the objective of the simulation is to use the trends of the model to guide the design. Over time some of the simulation tests may be formalized and moved into the verification test suites.
But what counts as a “Simulation”
For the purpose of this article, I am using “simulation” in a wide definition. At the simplest level, the simulation can be a step input/output response. Beyond that the use of plant models for scenario driven development. Use of Monte-Carlo and more advanced DOE methodologies are common for the development of advanced systems
Articles on design through simulation
I would like to end this posting by giving links to a few thoughtful articles that go into greater depth on simulation driven design
- Video on suspension optimization
- Design exploration vs. design optimization
- An approach to simulation-based parameter and structure optimization of MATLAB/Simulink models using evolutionary algorithms








the scope of an algorithm? Basically, there are three components.
scope of the algorithms, what then defines the nature of your algorithm and Model-Based Design process?


and ‘



“with deep learning you have to train the data set and you have to clean the dataset. The cleaning is much like the traditional cleaning is donee for regression analysis. Once the data is cleaned the data is broken into subsets to train the algorithm. The multiple training sets are used to validate the behavior of the “trained” algorithm. Once the required model fidelity is reached it can be parameterized and placed in the field.
into large dogs. Because of this not all of these algorithms will be suitable for deployment onto a hardware device. In many cases, these algorithms are either


with a desire to write and trace requirements. Yet that task must be done for projects to be successful. Likewise the process of debugging C or, shudder, assembly level instructions. Yet again, at times, debugging of the system needs to take place. So how do you take those required tasks and transform them? The answer lays with moving them “up” a conceptual level.
different from debugging textual code; when debugging a simulation the user is validating the functional behavior of the model. In contrast, while debugging C code may involve validating the functional behavior much of the work is spent in the correction of syntactical mistakes. If your engineers are domain experts (e.g. controls, physical modeling, discrete events) versus C code experts then having them debug in a modeled simulation utilizes their strengths.