本文整理汇总了Python中siconos.kernel.TimeStepping.timeStep方法的典型用法代码示例。如果您正苦于以下问题:Python TimeStepping.timeStep方法的具体用法?Python TimeStepping.timeStep怎么用?Python TimeStepping.timeStep使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类siconos.kernel.TimeStepping
的用法示例。
在下文中一共展示了TimeStepping.timeStep方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_diode_bridge
# 需要导入模块: from siconos.kernel import TimeStepping [as 别名]
# 或者: from siconos.kernel.TimeStepping import timeStep [as 别名]
def test_diode_bridge():
"""Build diode bridge model"""
# dynamical system
bridge_ds = FirstOrderLinearDS(init_state, A)
# interaction
diode_bridge_relation = FirstOrderLinearTIR(C, B)
diode_bridge_relation.setDPtr(D)
nslaw = ComplementarityConditionNSL(4)
bridge_interaction = Interaction(4, nslaw, diode_bridge_relation, 1)
# Model
diode_bridge = Model(t0, total_time, model_title)
# add the dynamical system in the non smooth dynamical system
diode_bridge.nonSmoothDynamicalSystem().insertDynamicalSystem(bridge_ds)
# link the interaction and the dynamical system
diode_bridge.nonSmoothDynamicalSystem().link(bridge_interaction, bridge_ds)
# Simulation
# (1) OneStepIntegrators
theta = 0.5
integrator = EulerMoreauOSI(theta)
# (2) Time discretisation
time_discretisation = TimeDiscretisation(t0, time_step)
# (3) Non smooth problem
non_smooth_problem = LCP()
# (4) Simulation setup with (1) (2) (3)
bridge_simulation = TimeStepping(time_discretisation,
integrator, non_smooth_problem)
# simulation initialization
diode_bridge.setSimulation(bridge_simulation)
diode_bridge.initialize()
k = 0
h = bridge_simulation.timeStep()
# Number of time steps
N = (total_time - t0) / h
# Get the values to be plotted
# ->saved in a matrix dataPlot
data_plot = empty([N, 8])
x = bridge_ds.x()
print("Initial state : ", x)
y = bridge_interaction.y(0)
print("First y : ", y)
lambda_ = bridge_interaction.lambda_(0)
# For the initial time step:
# time
data_plot[k, 0] = t0
# inductor voltage
data_plot[k, 1] = x[0]
# inductor current
data_plot[k, 2] = x[1]
# diode R1 current
data_plot[k, 3] = y[0]
# diode R1 voltage
data_plot[k, 4] = - lambda_[0]
# diode F2 voltage
data_plot[k, 5] = - lambda_[1]
# diode F1 current
data_plot[k, 6] = lambda_[2]
# resistor current
data_plot[k, 7] = y[0] + lambda_[2]
k += 1
while k < N:
bridge_simulation.computeOneStep()
#non_smooth_problem.display()
data_plot[k, 0] = bridge_simulation.nextTime()
# inductor voltage
data_plot[k, 1] = x[0]
# inductor current
data_plot[k, 2] = x[1]
# diode R1 current
data_plot[k, 3] = y[0]
# diode R1 voltage
data_plot[k, 4] = - lambda_[0]
# diode F2 voltage
data_plot[k, 5] = - lambda_[1]
# diode F1 current
data_plot[k, 6] = lambda_[2]
# resistor current
data_plot[k, 7] = y[0] + lambda_[2]
k += 1
bridge_simulation.nextStep()
#.........这里部分代码省略.........
示例2: Relay
# 需要导入模块: from siconos.kernel import TimeStepping [as 别名]
# 或者: from siconos.kernel.TimeStepping import timeStep [as 别名]
aRelay = Relay()
# (4) Simulation setup with (1) (2) (3)
aTS = TimeStepping(aTiDisc,aOSI,aRelay)
# end of model definition
#
# computation
#
# simulation initialization
RelayOscillator.initialize(aTS)
k = 0
h = aTS.timeStep();
print("Timestep : ",h)
# Number of time steps
N = (T-t0)/h
print("Number of steps : ",N)
# Get the values to be plotted
# ->saved in a matrix dataPlot
from numpy import empty
dataPlot = empty([N+1,8])
x = LSRelayOscillator.x()
print("Initial state : ",x)
y = InterRelayOscillator.y(0)
print("First y : ",y)
示例3: test_diodebridge1
# 需要导入模块: from siconos.kernel import TimeStepping [as 别名]
# 或者: from siconos.kernel.TimeStepping import timeStep [as 别名]
def test_diodebridge1():
from siconos.kernel import FirstOrderLinearDS, FirstOrderLinearTIR, \
ComplementarityConditionNSL, Interaction,\
Model, EulerMoreauOSI, TimeDiscretisation, LCP, \
TimeStepping
from numpy import empty
from siconos.kernel import SimpleMatrix, getMatrix
from numpy.linalg import norm
t0 = 0.0
T = 5.0e-3 # Total simulation time
h_step = 1.0e-6 # Time step
Lvalue = 1e-2 # inductance
Cvalue = 1e-6 # capacitance
Rvalue = 1e3 # resistance
Vinit = 10.0 # initial voltage
Modeltitle = "DiodeBridge"
#
# dynamical system
#
init_state = [Vinit, 0]
A = [[0, -1.0/Cvalue],
[1.0/Lvalue, 0 ]]
LSDiodeBridge=FirstOrderLinearDS(init_state, A)
#
# Interactions
#
C = [[0., 0.],
[0, 0.],
[-1., 0.],
[1., 0.]]
D = [[1./Rvalue, 1./Rvalue, -1., 0.],
[1./Rvalue, 1./Rvalue, 0., -1.],
[1., 0., 0., 0.],
[0., 1., 0., 0.]]
B = [[0., 0., -1./Cvalue, 1./Cvalue],
[0., 0., 0., 0. ]]
LTIRDiodeBridge=FirstOrderLinearTIR(C, B)
LTIRDiodeBridge.setDPtr(D)
LTIRDiodeBridge.display()
nslaw=ComplementarityConditionNSL(4)
InterDiodeBridge=Interaction(4, nslaw, LTIRDiodeBridge, 1)
#
# Model
#
DiodeBridge=Model(t0, T, Modeltitle)
# add the dynamical system in the non smooth dynamical system
DiodeBridge.nonSmoothDynamicalSystem().insertDynamicalSystem(LSDiodeBridge)
# link the interaction and the dynamical system
DiodeBridge.nonSmoothDynamicalSystem().link(InterDiodeBridge, LSDiodeBridge)
#
# Simulation
#
# (1) OneStepIntegrators
theta = 0.5
aOSI = EulerMoreauOSI(LSDiodeBridge, theta)
# (2) Time discretisation
aTiDisc = TimeDiscretisation(t0, h_step)
# (3) Non smooth problem
aLCP = LCP()
# (4) Simulation setup with (1) (2) (3)
aTS = TimeStepping(aTiDisc, aOSI, aLCP)
# end of model definition
#
# computation
#
# simulation initialization
DiodeBridge.initialize(aTS)
k = 0
h = aTS.timeStep()
print("Timestep : ", h)
# Number of time steps
N = (T-t0)/h
print("Number of steps : ", N)
# Get the values to be plotted
# ->saved in a matrix dataPlot
#.........这里部分代码省略.........