🎛
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