TwoInertiasWithDrivingTorque
IconTwoInertiasWithDrivingTorque
A mechanical system of two rotational inertias coupled by a spring and damper, driven by a sinusoidal torque.
This model represents a dynamic system where a primary rotational inertia (inertia1) is subjected to an external torque generated by a sinusoidal source. This first inertia is mechanically coupled to a second rotational inertia (inertia2) through a torsional spring and a torsional damper, which are arranged in parallel. The torque source is referenced to a fixed ground. Initial conditions for angular positions, and implicitly angular velocities through the initial acceleration constraint, define the starting state of the system.
Usage
TwoInertiasWithDrivingTorque()
Behavior
\[ \begin{equation} \left[ \begin{array}{c} \mathtt{sine.y}\left( t \right) = \mathtt{torque.tau}\left( t \right) \\ \mathrm{connect}\left( torque_{+}support, fixed_{+}spline \right) \\ \mathrm{connect}\left( torque_{+}spline, inertia1_{+}spline_{a} \right) \\ \mathrm{connect}\left( inertia1_{+}spline_{b}, spring_{+}spline_{a}, damper_{+}spline_{a} \right) \\ \mathrm{connect}\left( spring_{+}spline_{b}, damper_{+}spline_{b}, inertia2_{+}spline_{a} \right) \\ \mathtt{fixed.spline.phi}\left( t \right) = \mathtt{fixed.phi0} \\ \mathtt{torque.support.phi}\left( t \right) = \mathtt{torque.phi\_support}\left( t \right) \\ \mathtt{torque.support.tau}\left( t \right) = - \mathtt{torque.spline.tau}\left( t \right) \\ \mathtt{torque.phi}\left( t \right) = \mathtt{torque.spline.phi}\left( t \right) - \mathtt{torque.phi\_support}\left( t \right) \\ \mathtt{torque.spline.tau}\left( t \right) = - \mathtt{torque.tau}\left( t \right) \\ \mathtt{inertia1.phi}\left( t \right) = \mathtt{inertia1.spline\_a.phi}\left( t \right) \\ \mathtt{inertia1.phi}\left( t \right) = \mathtt{inertia1.spline\_b.phi}\left( t \right) \\ \frac{\mathrm{d} \mathtt{inertia1.phi}\left( t \right)}{\mathrm{d}t} = \mathtt{inertia1.w}\left( t \right) \\ \frac{\mathrm{d} \mathtt{inertia1.w}\left( t \right)}{\mathrm{d}t} = \mathtt{inertia1.a}\left( t \right) \\ \mathtt{inertia1.J} \mathtt{inertia1.a}\left( t \right) = \mathtt{inertia1.spline\_b.tau}\left( t \right) + \mathtt{inertia1.spline\_a.tau}\left( t \right) \\ \mathtt{inertia2.phi}\left( t \right) = \mathtt{inertia2.spline\_a.phi}\left( t \right) \\ \mathtt{inertia2.phi}\left( t \right) = \mathtt{inertia2.spline\_b.phi}\left( t \right) \\ \frac{\mathrm{d} \mathtt{inertia2.phi}\left( t \right)}{\mathrm{d}t} = \mathtt{inertia2.w}\left( t \right) \\ \frac{\mathrm{d} \mathtt{inertia2.w}\left( t \right)}{\mathrm{d}t} = \mathtt{inertia2.a}\left( t \right) \\ \mathtt{inertia2.J} \mathtt{inertia2.a}\left( t \right) = \mathtt{inertia2.spline\_b.tau}\left( t \right) + \mathtt{inertia2.spline\_a.tau}\left( t \right) \\ \mathtt{spring.phi\_rel}\left( t \right) = \mathtt{spring.spline\_b.phi}\left( t \right) - \mathtt{spring.spline\_a.phi}\left( t \right) \\ \mathtt{spring.spline\_b.tau}\left( t \right) = \mathtt{spring.tau}\left( t \right) \\ \mathtt{spring.spline\_a.tau}\left( t \right) = - \mathtt{spring.tau}\left( t \right) \\ \mathtt{spring.tau}\left( t \right) = \mathtt{spring.c} \left( - \mathtt{spring.phi\_rel0} + \mathtt{spring.phi\_rel}\left( t \right) \right) \\ \mathtt{damper.phi\_rel}\left( t \right) = - \mathtt{damper.spline\_a.phi}\left( t \right) + \mathtt{damper.spline\_b.phi}\left( t \right) \\ \mathtt{damper.spline\_b.tau}\left( t \right) = \mathtt{damper.tau}\left( t \right) \\ \mathtt{damper.spline\_a.tau}\left( t \right) = - \mathtt{damper.tau}\left( t \right) \\ \frac{\mathrm{d} \mathtt{damper.phi\_rel}\left( t \right)}{\mathrm{d}t} = \mathtt{damper.w\_rel}\left( t \right) \\ \frac{\mathrm{d} \mathtt{damper.w\_rel}\left( t \right)}{\mathrm{d}t} = \mathtt{damper.a\_rel}\left( t \right) \\ \mathtt{damper.tau}\left( t \right) = \mathtt{damper.d} \mathtt{damper.w\_rel}\left( t \right) \\ \mathtt{sine.y}\left( t \right) = ifelse\left( \mathtt{sine.start\_time} < t, \mathtt{sine.offset} + \mathtt{sine.amplitude} \sin\left( \mathtt{sine.phase} + 6.2832 \mathtt{sine.frequency} \left( - \mathtt{sine.start\_time} + t \right) \right), \mathtt{sine.offset} \right) \\ \end{array} \right] \end{equation} \]
Source
# A mechanical system of two rotational inertias coupled by a spring and damper, driven by a sinusoidal torque.
#
# This model represents a dynamic system where a primary rotational inertia
# (inertia1) is subjected to an external torque generated by a sinusoidal source.
# This first inertia is mechanically coupled to a second rotational inertia
# (inertia2) through a torsional spring and a torsional damper, which are arranged
# in parallel. The torque source is referenced to a fixed ground.
# Initial conditions for angular positions, and implicitly angular velocities
# through the initial acceleration constraint, define the starting state of the system.
test component TwoInertiasWithDrivingTorque
# Represents a fixed mechanical ground or reference frame.
fixed = Fixed()
# Source that applies a torque to the system, driven by an external signal.
torque = TorqueSource()
# First rotational inertia with moment of inertia J=2 kg.m^2.
inertia1 = Inertia(J=2)
# Second rotational inertia with moment of inertia J=4 kg.m^2.
inertia2 = Inertia(J=4)
# Torsional spring connecting the two inertias, with spring constant c=1e4 N.m/rad.
spring = Spring(c=1e4)
# Torsional damper in parallel with the spring, with damping coefficient d=10 N.m.s/rad.
damper = Damper(d=10)
# Generates a sinusoidal signal for the driving torque, with amplitude=10 and frequency=5 Hz.
sine = BlockComponents.Sine(amplitude=10, frequency=5)
relations
initial inertia1.phi = 1
initial inertia2.phi = 0.5
initial inertia2.a = 0
connect(sine.y, torque.tau)
connect(torque.support, fixed.spline)
connect(torque.spline, inertia1.spline_a)
connect(inertia1.spline_b, spring.spline_a, damper.spline_a)
connect(spring.spline_b, damper.spline_b, inertia2.spline_a)
metadata {
"Dyad": {
"tests": {
"case1": {
"stop": 1,
"expect": {
"initial": {"inertia1.phi": 1, "inertia2.phi": 0.5, "inertia1.w": -500, "inertia2.w ": 0}
}
}
}
}
}
end
Flattened Source
# A mechanical system of two rotational inertias coupled by a spring and damper, driven by a sinusoidal torque.
#
# This model represents a dynamic system where a primary rotational inertia
# (inertia1) is subjected to an external torque generated by a sinusoidal source.
# This first inertia is mechanically coupled to a second rotational inertia
# (inertia2) through a torsional spring and a torsional damper, which are arranged
# in parallel. The torque source is referenced to a fixed ground.
# Initial conditions for angular positions, and implicitly angular velocities
# through the initial acceleration constraint, define the starting state of the system.
test component TwoInertiasWithDrivingTorque
# Represents a fixed mechanical ground or reference frame.
fixed = Fixed()
# Source that applies a torque to the system, driven by an external signal.
torque = TorqueSource()
# First rotational inertia with moment of inertia J=2 kg.m^2.
inertia1 = Inertia(J=2)
# Second rotational inertia with moment of inertia J=4 kg.m^2.
inertia2 = Inertia(J=4)
# Torsional spring connecting the two inertias, with spring constant c=1e4 N.m/rad.
spring = Spring(c=1e4)
# Torsional damper in parallel with the spring, with damping coefficient d=10 N.m.s/rad.
damper = Damper(d=10)
# Generates a sinusoidal signal for the driving torque, with amplitude=10 and frequency=5 Hz.
sine = BlockComponents.Sine(amplitude=10, frequency=5)
relations
initial inertia1.phi = 1
initial inertia2.phi = 0.5
initial inertia2.a = 0
connect(sine.y, torque.tau)
connect(torque.support, fixed.spline)
connect(torque.spline, inertia1.spline_a)
connect(inertia1.spline_b, spring.spline_a, damper.spline_a)
connect(spring.spline_b, damper.spline_b, inertia2.spline_a)
metadata {
"Dyad": {
"tests": {
"case1": {
"stop": 1,
"expect": {
"initial": {"inertia1.phi": 1, "inertia2.phi": 0.5, "inertia1.w": -500, "inertia2.w ": 0}
}
}
}
}
}
end
Test Cases
Test Case case1
Related
- Examples
- Experiments
- Analyses
- Tests