🎛️

# Control Systems

using Collimator for control systems

Using the python notebook API, it is possible to compute the linearized version of a submodel as a set of A, B, C, D matrices in the state space representation.

import collimator

import control

# Load model and find target submodel

model = collimator.load_model('my model')

submodel = model.find_block('submodel')

# Run the simulation & linearization

result = collimator.linearize(model, submodel)

# Convert results to a python control StateSpace object

control.bode(result.to_state_space())

To run linearization, you must first create a submodel with the blocks that need to be grouped together.

- 1.We can’t currently linearize submodels that contain (nested) submodels
- 2.
- Integrator Discrete
- Unit Delay
- Transfer Function Discrete
- Zero Order Hold
- Derivative Discrete
- Pulse

- 3.Linearization of submodel containing any of the following blocks will treat the block as a unity operation in state space. This is because discontinuities cannot be represented in state space form:
- Dead Zone
- Saturate
- Rate Limiter
- Quantizer