Reference¶
Core¶
Core of BMS. All content of this file is imported by bms, and is therefore in bms
This file defines the base of BMS.
-
class
bms.core.
Block
(inputs, outputs, max_input_order, max_output_order)[source]¶ Bases:
object
Abstract class of block: this class should not be instanciate directly
-
class
bms.core.
DynamicSystem
(te, ns, blocks=[])[source]¶ Bases:
object
Defines a dynamic system that can simulate itself
Parameters: - te – time of simulation’s end
- ns – number of steps
- blocks – (optional) list of blocks defining the model
-
Save
(name_file)[source]¶ name_file: name of the file without extension. The extension .bms is added by function
-
VariablesValues
(variables, t)[source]¶ Returns the value of given variables at time t. Linear interpolation is performed between two time steps.
Parameters: - variables – one variable or a list of variables
- t – time of evaluation
-
graph
¶
-
exception
bms.core.
ModelError
(message)[source]¶ Bases:
Exception
-
args
¶
-
with_traceback
()¶ Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
-
-
class
bms.core.
PhysicalBlock
(physical_nodes, nodes_with_fluxes, occurence_matrix, commands, name)[source]¶ Bases:
object
Abstract class to inherit when coding a physical block
-
class
bms.core.
PhysicalNode
(cl_solves_potential, cl_solves_fluxes, node_name, potential_variable_name, flux_variable_name)[source]¶ Bases:
object
Abstract class
-
class
bms.core.
PhysicalSystem
(te, ns, physical_blocks, command_blocks)[source]¶ Bases:
object
Defines a physical system
-
dynamic_system
¶
-
-
class
bms.core.
Signal
(names)[source]¶ Bases:
bms.core.Variable
Abstract class of signal
-
values
¶
-
-
class
bms.core.
Variable
(names='variable', initial_values=[0], hidden=False)[source]¶ Bases:
object
Defines a variable
Parameters: names – Defines full name and short name. If names is a string the two names will be identical otherwise names should be a tuple of strings (full_name,short_name) :param hidden: inner variable to hide in plots if true
-
values
¶
-
Signals¶
Functions¶
Collection of mathematical function signals
-
class
bms.signals.functions.
Ramp
(name='Ramp', amplitude=1, delay=0, offset=0)[source]¶ Bases:
bms.core.Signal
Create a ramp such as : f(t)=(t-delay)*amplitude+initial_value
-
values
¶
-
-
class
bms.signals.functions.
SignalFunction
(name, function)[source]¶ Bases:
bms.core.Signal
User defined function for signal.
Parameters: function – a function that will give the time values to the signal -
values
¶
-
-
class
bms.signals.functions.
Sinus
(name='Sinus', amplitude=1, w=1, phase=0, offset=0)[source]¶ Bases:
bms.core.Signal
-
values
¶
-
-
class
bms.signals.functions.
Step
(name='Step', amplitude=1, delay=0, offset=0)[source]¶ Bases:
bms.core.Signal
Create a Step of amplitude beginning at time delay
-
values
¶
-
WLTP signals¶
WLTP signals
-
class
bms.signals.wltp.
WLTP1
(name)[source]¶ Bases:
bms.core.Signal
WLTP classe 1 cycle Caution! speed in m/s, not in km/h!
-
values
¶
-
-
class
bms.signals.wltp.
WLTP2
(name)[source]¶ Bases:
bms.core.Signal
WLTP classe 2 cycle Caution! speed in m/s, not in km/h!
-
values
¶
-
-
class
bms.signals.wltp.
WLTP3
(name)[source]¶ Bases:
bms.core.Signal
WLTP classe 3 cycle Caution! speed in m/s, not in km/h!
-
values
¶
-
Blocks¶
Continuous Blocks¶
Collection of continuous blocks
-
class
bms.blocks.continuous.
Division
(input_variable1, input_variable2, output_variable)[source]¶ Bases:
bms.core.Block
output=input1/input2
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
FunctionBlock
(input_variable, output_variable, function)[source]¶ Bases:
bms.core.Block
output=f(input)
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
Gain
(input_variable, output_variable, value, offset=0)[source]¶ Bases:
bms.core.Block
output=value* input + offset
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
ODE
(input_variable, output_variable, a, b)[source]¶ Bases:
bms.core.Block
a,b are vectors of coefficients such as H, the transfert function of the block, may be written as: H(p)=(a[i]p**i)/(b[j]p**j) (Einstein sum on i,j) p is Laplace’s variable
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
Product
(input_variable1, input_variable2, output_variable)[source]¶ Bases:
bms.core.Block
output=input1*input2
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
Subtraction
(input_variable1, input_variable2, output_variable)[source]¶ Bases:
bms.core.Block
output=input1-input2
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
Sum
(inputs, output_variable)[source]¶ Bases:
bms.core.Block
output=sum inputs
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.continuous.
WeightedSum
(inputs, output_variable, weights, offset=0)[source]¶ Bases:
bms.core.Block
Defines a weighted sum over inputs output=sum w_i * input_i
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
Non-linear Blocks¶
Collection of non-linear blocks
-
class
bms.blocks.nonlinear.
Coulomb
(input_variable, speed_variable, output_variable, max_value, tolerance=0)[source]¶ Bases:
bms.core.Block
Return coulomb force under condition of speed and sum of forces (input)
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.nonlinear.
CoulombVariableValue
(external_force, speed_variable, value_variable, output_variable, tolerance=0)[source]¶ Bases:
bms.core.Block
Return coulomb force under condition of speed and sum of forces (input) The max value is driven by an input
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.nonlinear.
RegCoulombVariableValue
(external_force, speed_variable, value_variable, output_variable, tolerance=0)[source]¶ Bases:
bms.core.Block
Return coulomb force under condition of speed and sum of forces (input) The max value is driven by an input
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.nonlinear.
Saturation
(input_variable, output_variable, min_value, max_value)[source]¶ Bases:
bms.core.Block
output=min_value if input < min_value output=max_value if input > max_value output=input if min_value < input < max_value
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶
-
-
class
bms.blocks.nonlinear.
Sign
(input_variable, output_variable)[source]¶ Bases:
bms.core.Block
Return the sign of a variable :returns: * -1 if input < 0
- 1 if input > 0
-
InputValues
(it, nsteps=None)¶ Returns the input values at a given iteration for solving the block outputs
-
OutputValues
(it, nsteps=None)¶
-
Solve
(it, ts)¶