scale_SS

Given a state-space system, scales the equations such that the original input and output, \(u\) and \(y\), are substituted by \(u_{AD}=\frac{u}{u_{ref}}\) and \(y_{AD}=\frac{y}{y_{ref}}\).

If the original system has form:

\[\begin{split}\mathbf{x}^{n+1} &= \mathbf{A\,x}^n + \mathbf{B\,u}^n \\ \mathbf{y}^{n} &= \mathbf{C\,x}^{n} + \mathbf{D\,u}^n\end{split}\]

the transformation is such that:

\[\begin{split}\mathbf{x}^{n+1} &= \mathbf{A\,x}^n + \mathbf{B}\,\frac{u_{ref}}{x_{ref}}\mathbf{u_{AD}}^n \\ \mathbf{y_{AD}}^{n+1} &= \frac{1}{y_{ref}}(\mathbf{C}\,x_{ref}\,\mathbf{x}^{n+1} + \mathbf{D}\,u_{ref}\,\mathbf{u_{AD}}^n)\end{split}\]

By default, the state-space model is manipulated by reference (byref=True)

param SSin:

original state-space formulation

type SSin:

scsig.dlti

param input_scal:

input scaling factor \(u_{ref}\). It can be a float or an array, in which case the each element of the input vector will be scaled by a different factor.

type input_scal:

float or np.ndarray

param output_scal:

output scaling factor \(y_{ref}\). It can be a float or an array, in which case the each element of the output vector will be scaled by a different factor.

type output_scal:

float or np.ndarray

param state_scal:

state scaling factor \(x_{ref}\). It can be a float or an array, in which case the each element of the state vector will be scaled by a different factor.

type state_scal:

float or np.ndarray

param byref:

state space manipulation order

type byref:

bool

returns:

scaled state space formulation

rtype:

scsig.dlti