Felt material (Felt)
Nonlinear felt material used in piano-hammer. The model is that found in [1] eq. (11). It includes a nonlinear restoring force and a nonlinear damper as follows:
\begin{equation*}
f_{total}\left(c, \dot c\right) = f_{elastic}(c) + f_{damper}\left(c, \dot c\right),
\end{equation*}
with
\begin{equation*}
f_{elastic}(c) = F \,c ^B,
\end{equation*}
and
\begin{equation*}
f_{damper}\left(c, \dot c\right) = \frac{A \, L}{B} c^{B-1} \,\dot c,
\end{equation*}
where \(c = \frac{\max (q, 0)}{L}\) is the crush of the hammer with contraction \(q\in\mathbb R\).
Felt material (Felt)
Nonlinear felt material used in piano-hammer. The model is that found in [1] eq. (11). It includes a nonlinear restoring force and a nonlinear damper as follows:
\begin{equation*}
f_{total}\left(c, \dot c\right) = f_{elastic}(c) + f_{damper}\left(c, \dot c\right),
\end{equation*}
with
\begin{equation*}
f_{elastic}(c) = F \,c ^B,
\end{equation*}
and
\begin{equation*}
f_{damper}\left(c, \dot c\right) = \frac{A \, L}{B} c^{B-1} \,\dot c,
\end{equation*}
where \(c = \frac{\max (q, 0)}{L}\) is the crush of the hammer with contraction \(q\in\mathbb R\).
Power variables
flux: Force \(f\) (N)
effort: Velocity \(v\) (m/s)
Arguments
- label : str
- Felt label.
- nodes : ('P1', 'P2')
- Mechanical points associated with the felt endpoints with positive flux N1->N2.
- parameters : keyword arguments
- Component parameters.
Key | Description | Unit | Default |
---|---|---|---|
L | Height at rest | m | 0.01 |
F | Elastic characteristic force | N | 10.0 |
A | Damping coefficient | N.s/m | 100.0 |
B | Hysteresis coefficient | d.u. | 2.5 |
Usage
felt = Felt('felt', ('P1', 'P2'), L=0.01, F=10.0, A=100.0, B=2.5)
Netlist line
mechanics.felt felt ('P1', 'P2'): L=0.01; F=10.0; A=100.0; B=2.5;
Example
>>> # Import dictionary >>> from pyphs.dictionary import mechanics >>> # Define component label >>> label = 'felt' >>> # Define component nodes >>> nodes = ('P1', 'P2') >>> # Define component parameters >>> parameters = {'L': 0.01, # Height at rest (m) ... 'F': 10.0, # Elastic characteristic force (N) ... 'A': 100.0, # Damping coefficient (N.s/m) ... 'B': 2.5, # Hysteresis coefficient (d.u.) ... } >>> # Instanciate component >>> component = mechanics.Felt(label, nodes, **parameters) >>> # Graph dimensions >>> len(component.nodes) 2 >>> len(component.edges) 2