# Equations

The purpose of the `equations`

section in a component file is
to establish the mathematical relationships between the variables, parameters,
inputs, and outputs of the component, the simulation time, and the time
derivatives of each of these entities.

Similarly, the `equations`

section in a domain file serves to
establish the mathematical relationships between the domain Across variables,
parameters, and intermediates. Domain equations propagate to the nodes of the
corresponding domain type.

The syntax of component and domain equations is the same. Defining Component Equations provides generic information on writing equations in Simscape™ language. Domain Equations provides information specific to domain equations.

## Language Syntax

`assert` | Program customized run-time errors and warnings |

`delay` | Return past value of operand |

`der` | Return time derivative of operand |

`equations` | Define component or domain equations |

`function` | Reuse expressions in component equations and in member declarations of domains and components |

`if` | Specify conditional equations, assignments, annotations, and conditional sections in component files |

`.if` | Perform element-wise conditional operations with array-type
predicates (Since R2023b) |

`integ` | Perform time integration of expression |

`intermediates` | Define intermediate terms for use in equations |

`scatteredlookup` | Return value based on interpolating unstructured set of data points (Since R2023a) |

`tablelookup` | Return value based on interpolating set of data points |

`time` | Access global simulation time |

`value` | Convert variable or parameter to unitless value with specified unit conversion |

## Topics

**Defining Component Equations**The purpose of the

`equations`

section in a component file is to establish the mathematical relationships between the variables, parameters, inputs, and outputs of the component, the simulation time, and the time derivatives of each of these entities.**Simple Algebraic System**This example shows implementation for a simple algebraic system.

**Use Simulation Time in Equations**This example shows how you can access global simulation time from the equation section.

**Using Conditional Expressions in Equations**You can specify conditional expressions in equations or conditional assignments to intermediates by using

`if`

and`.if`

statements.**Using Intermediate Terms in Equations**Textbooks often define certain equation terms in separate equations, and then substitute these intermediate equations into the main one.

**Using Lookup Tables in Equations**You can use the

`tablelookup`

function in the`equations`

section of the Simscape file to interpolate input values based on a set of data points in a one-dimensional, two-dimensional, three-dimensional, or four-dimensional table.**Programming Run-Time Errors and Warnings**Use the

`assert`

construct to implement run-time error and warning messages for a custom block.**Initial Equations**Specify additional equations to be executed during model initialization only.

**Simscape Functions**Use Simscape functions to reuse expressions in equations and member declarations of multiple components.

**Import Symbolic Math Toolbox Equations**Example of using Symbolic Math Toolbox™ software to solve the physical equations, generate code in the format appropriate for the Simscape language equation section, and incorporate the generated code into the equation section of a component file.

**Domain Equations**Specify additional equations to propagate to all the components that have nodes of the corresponding domain type.