Methods and systems for numerically simulating muscle movements along bones and around joints

Systems and methods for numerically simulating muscle's movements along bones and around joints are disclosed. A computerized model containing a plurality of truss elements along with one or more rollers is used. The truss elements are configured for modeling a muscle strand while each roller is configured for a joint. Each truss element includes two end nodes and is configured or associated with a muscle bio-mechanical property model. Each roller is fixed at the location of a corresponding joint. To simulate the muscle strand movements around the joint, each pair of truss elements straddling a roller is adjusted dynamically in a time-marching simulation (e.g., computer simulation of an impact event of an automobile and one or more occupants). Adjustments are performed at each solution cycle of the time-marching simulation. Adjustments include two types—“slipping” and “swapping”.

FIELD

The present invention generally relates to methods, systems and software product used in the area of computer-aided engineering analysis, more particularly to numerical simulation of movements of muscle strand around a joint.

BACKGROUND

Continuum mechanics has been used for simulating continuous matter such as solids and fluids (i.e., liquids and gases). Differential equations are employed in solving problems in continuum mechanics. Many numerical procedures have been used. One of the most popular methods is finite element analysis (FEA), which is a computerized method widely used in industry to model and solve engineering problems relating to complex systems such as three-dimensional non-linear structural design and analysis. FEA derives its name from the manner in which the geometry of the object under consideration is specified. With the advent of the modern digital computer, FEA has been implemented as FEA software. Basically, the FEA software is provided with a model of the geometric description and the associated material properties at each point within the model. In this model, the geometry of the system under analysis is represented by solids, shells and beams of various sizes, which are referred to as finite elements. The vertices of the finite elements are referred to as nodes. The model is comprised of a finite number of finite elements, which are assigned a material name to associate with material properties. The model thus represents the physical space occupied by the object under analysis along with its immediate surroundings. The FEA software then refers to a table in which the properties (e.g., stress-strain constitutive equation, Young's modulus, Poisson's ratio, thermo-conductivity) of each material type are tabulated. Additionally, the conditions at the boundary of the object (i.e., loadings, physical constraints, etc.) are specified. In this fashion a model of the object and its environment is created.

One of the most challenging FEA tasks is to simulate an impact event such as car crash. As the modern computer improves, not only are the vehicle behaviors in a car crash simulated, but also the occupant's movements and reactions. In order to adequately simulating an occupant (i.e., a human), movements according to bio-mechanical properties of a human body (e.g., muscles) need to be model properly in the CAE (e.g., finite element analysis). As of today, there is no satisfactory practical solution. Some of the prior art approaches cause unsmooth or jerky movements due to traditional finite element method, for example, truss element that maintains its original length throughout the simulation. It would therefore be desirable to have method and system for numerically simulating muscle movements along bones and around joints.

SUMMARY

This section is for the purpose of summarizing some aspects of the present application and to briefly introduce embodiments. Simplifications or omissions in this section as well as in the abstract and the title herein may be made to avoid obscuring the purpose of the section. Such simplifications or omissions are not intended to limit the scope of the present application.

Systems and methods for numerically simulating muscle's movements along bones and around joints are disclosed. According to one exemplary embodiment of the present invention, a computerized model containing a plurality of truss elements along with one or more rollers is used. The truss elements are configured for modeling a muscle strand while each roller is configured for a joint. Each truss element includes two end nodes and is configured or associated with a muscle bio-mechanical property model (e.g., nonlinear Hill-type). Each roller is fixed at the location of a corresponding joint.

To simulate the muscle strand movements around the joint, each pair of truss elements straddling a roller is adjusted dynamically in a time-marching simulation (e.g., computer simulation of an impact event of an automobile and one or more occupants). Adjustments are performed at each solution cycle of the time-marching simulation. There are two types of adjustments “slipping” and “swapping”.

Term “slipping” is referred to as local redefining of the truss element pair. Slipping is achieved by facilitating bio-mechanical property (e.g., in form of unstretched length of truss element) being passed from one element of the pair to the other. In other words, unstretched lengths of respective truss elements of the pair are redefined such that the total unstretched length of the pair is kept unchanged.

Term “swapping” is referred to as local remeshing of the plurality of truss elements. Swapping is achieved by facilitating one of the pair be moved to the other side of the roller. In other words, the truss elements for modeling a muscle strand are remeshed due to deletion of one element at one side of the roller and addition of another element at the other side. As a result, a different pair of truss elements straddles the roller after a swapping adjustment.

DETAILED DESCRIPTION OF EMBODIMENTS

Referring first toFIG. 1, it is shown a flowchart illustrating an exemplary process100of numerically simulating muscle movements along bones and around joints in accordance with an embodiment of the present invention. Process100is preferably implemented in software and understood with other figures.

Process100starts by defining a computerized model (e.g., finite element analysis (FEA) model) of numerically simulating muscle movements at step102. An exemplary computerized model210of a muscle strand and joints of an arm of a human is shown inFIG. 2. The computerized model210includes, among other things, a plurality of truss elements212representing a muscle strand and at least one roller214representing joints. The computerized model210is received in a computer system (e.g., computer system700shown inFIG. 7). Each truss element212has two end nodes that define the length of the element. In a three-dimensional space, each node has three translational degrees-of-freedom.

And each truss element is associated with a muscle bio-mechanical property model, for example, nonlinear Hill-type muscle bio-mechanical property model300shown inFIG. 3. The nonlinear Hill-type muscle model300emulates the muscle bio-mechanical property with a contractile element (CE)301, a damper element (DE)302and a passive element (PE)303arranged in parallel.

The truss element configured with such bio-mechanical property model carries an axial force (i.e., tension or tensile force) depending on its cross-section area in response to the conditions during a numerical simulation. Tensile stress σ304of the truss element is shown on two ends. Tensile stress304is calculated with well-known methods, for example, dividing the tensile force by the cross-section area of the truss element.

Contractile element301represents force generation by the muscle and it comprises maximum stress σmax, a time-dependent activation level function α(t), a strain dependent scaling function ƒ(ε), and a strain rate dependent scaling function g({dot over (ε)}):σCE=σmax·α(t)·ƒ(ε)·g({dot over (ε)}).

Passive element303represents energy storage from muscle elasticity and it is composed of maximum stress σmaxand a strain dependent non-linear elastic function h(ε):σPE=σmax·h(ε).

The damper element302represents muscular viscosity and it depends on strain, strain rate, and a damping constant: σDE=D·ε·{dot over (ε)}.

The resultant axial stress (i.e., tensile stress)304is the sum of all components: σ=σCE+σPE+σDE.

A diagram400illustrating an exemplary nonlinear Hill-type bio-mechanical property model is shown inFIG. 4. Diagram400is an X-Y plot having a vertical axis of axial stress and a horizontal axis of normalized length of the truss element. Four curves402and402a-care shown. Curve402represents the total axial stress σ while curve402arepresents σCE, curve402brepresents σPEand curve403crepresents σDE. Normalized length of a truss element is a non-dimensional quantity calculated as a ratio of the current length (l) over the unstretched length (lo). The unstretched length is the length of a truss element in the beginning of the time-marching simulation (i.e., Time=0), while the current length is the length at a particular solution cycle (i.e., Time=t). In other words, the normalized length is equal to one (1) at the beginning of the simulation. It is noted that strain ε is calculated as follows: (l−lo)/loor (l/lo)−1.

Each roller214is fixed at the location of the joint with one node. The node (shown as hollow circle inFIG. 2) is shared with a pair of truss elements that straddles the roller. A roller500(e.g., roller214) is configured with a wrap angle502shown inFIG. 5. Wrap angle502is determined by respective orientations of the pair of truss elements504a-bthat straddles the roller500. In other words, wrap angle502is the inclusive angle formed by the pair of truss elements' axial direction.

Tensions T1514aand T2514bare corresponding axial forces of the truss elements504a-b. The roller500used for numerically simulating muscle movements is subject to an equation referred to as Capstan equation
T2=T1eμθ
where T2514bis the high tension and T1514ais the low tension, θ is wrap angle and μ is the coefficient of friction.

Next at step104, process100performs a time-marching simulation using the computerized model with an application module configured for simulating muscle movements (e.g., finite element analysis (FEA) having elements configured for muscle movement simulations). The time-marching simulation contains a series of consecutive solution cycles or time steps representing passage of time. Various well-known techniques can be used for FEA, for example, explicit solution, implicit solution, etc. Generally, at each solution cycle, a set of nodal accelerations, velocities and displacements are obtained. Time history of these quantities is the numerical simulation result.

Once muscles and joints defined in the computerized model, the results of muscle movements are obtained in each solution cycle initially at step106. For example, axial stresses and strains (i.e., stretches) of the truss elements are calculated at each solution cycle.

The simulated muscle movements along bones and around joints further include adjustments of truss elements to be realistic. The adjustments are made in forms of “slipping” and “swapping” at each joint (i.e., at each roller in the computerized model) at step108.

For each pair of truss elements that straddles a roller, Capstan equation needs to be held. When the calculated axial forces of the pair of truss elements do not satisfy Capstan equation, an adjustment in form of “slipping” is made. The “slipping” adjustment redefines respective unstretched lengths of the pair of truss elements. In particular, the unstretched length of one element is reduced while the same amount is added at the other of the pair until Capstan equation is satisfied. Since the decreased length is equal to the increased length, the total unstretched length of the pair is kept constant. Further, the “slipping” adjustment is performed with a nonlinear iterative technique (e.g., Brent's method) that requires recalculating axial stresses and strains of the truss elements using adjusted computerized model.

When one of the pair of truss elements has become too short after one or more “slipping” adjustments, a “swapping” adjustment is made by removing the “too-short” element from its current location and adding it to the other side of the roller. In addition, the node associated with the roller is changed (seeFIG. 6Cand corresponding descriptions below). The “swapping” adjustment is also referred to as a local remeshing of the computerized model (i.e., remeshing of the connectivity of the truss elements). To determine whether an element is too short, well known methods can be used, for example, a predefined threshold value (e.g., a minimum length). Finally, to prevent the just moved element being thrashed back and forth, each remeshed element in a “swapping” adjustment is given a cushion in addition to the minimal length. For example, a 10% cushion means that the newly remeshed element (i.e., the element just moved from one side of the roller to the other side) is given a length equal to 1.1 times of the minimum length used as threshold.

An exemplary sequence of “slipping” and “swapping” adjustment is shown inFIGS. 6A-6C, according to an embodiment of the present invention. For illustration simplicity, only three truss elements (“e1”611, “e2”612and “e3”613) and one roller (shown as hollow circle being fixed at a shaded area initially at node602) is used in the exemplary sequence. Truss element “e1”611has two end nodes “n1”601and “n2”602. Element “e2”612is defined by nodes “n2”602and “n3”603while element “e3”613is defined by nodes “n3”603and “n4”604.

A first configuration of the exemplary sequence is shown inFIG. 6A. Elements “e1”611and “e2”612straddles the roller at common shared node “n2”602. A second configuration shown inFIG. 6Bis at a later time after the element axial stress and strain have been calculated. Capstan equation is checked at the roller at node602. A “slipping” adjustment is made to redefine the respective unstretched lengths of elements “e1”611and “e2”612. In this exemplary sequence, the unstretched length of element “e1”611is increased by the same amount decreased in element “e2”612.

When element “e2”612is too short comparing to a threshold value (i.e., minimum length lmin), a “swapping” adjustment is made by moving element “e2”612from one side of the roller to the other side shown as a third configuration inFIG. 6C. As a result, the roller is associated with a different node603after the “swapping” adjustment.

A time history of muscle movements along bones and around joints is obtained by linking together the results at each solution cycle which represents the progress of time in the time-marching simulation.

According to one embodiment, the present invention is implemented in software with the following algorithm:1) Standard force computation for each truss elementGet unstretched length loCalculate the current length l and strain rate {dot over (ε)}Calculate axial stress as a function of lo, l and {dot over (ε)} . . .
σ=σCE+σPE+σDECalculate axial force T=Aσ2) Force and length correction for each pair of truss elements that straddles the roller (i.e., “slipping” adjustment)Use calculated axial forces as trial values:Check Capstan equationIf Capstan equation is met, use trial values as tension forcesOtherwise, find root (Δl) of non-linear function using iterative technique

An embodiment of the present invention is directed towards one or more computer systems capable of carrying out the functionality described herein. An example of a computer system700is shown inFIG. 7. The computer system700includes one or more processors, such as processor704. The processor704is connected to a computer system internal communication bus702. Various software embodiments are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the invention using other computer systems and/or computer architectures.

Computer system700also includes a main memory708, preferably random access memory (RAM), and may also include a secondary memory710. The secondary memory710may include, for example, one or more hard disk drives712and/or one or more removable storage drives714, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive714reads from and/or writes to a removable storage unit718in a well-known manner. Removable storage unit718, represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive714. As will be appreciated, the removable storage unit718includes a computer usable storage medium having stored therein computer software and/or data.

In alternative embodiments, secondary memory710may include other similar means for allowing computer programs or other instructions to be loaded into computer system700. Such means may include, for example, a removable storage unit722and an interface720. Examples of such may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an Erasable Programmable Read-Only Memory (EPROM), Universal Serial Bus (USB) flash memory, or PROM) and associated socket, and other removable storage units722and interfaces720which allow software and data to be transferred from the removable storage unit722to computer system700. In general, Computer system700is controlled and coordinated by operating system (OS) software, which performs tasks such as process scheduling, memory management, networking and I/O services.

There may also be a communications interface724connecting to the bus702. Communications interface724allows software and data to be transferred between computer system700and external devices. Examples of communications interface724may include a modem, a network interface (such as an Ethernet card), a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. Software and data transferred via communications interface724are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface724. The computer700communicates with other computing devices over a data network based on a special set of rules (i.e., a protocol). One of the common protocols is TCP/IP (Transmission Control Protocol/Internet Protocol) commonly used in the Internet. In general, the communication interface724manages the assembling of a data file into smaller packets that are transmitted over the data network or reassembles received packets into the original data file. In addition, the communication interface724handles the address part of each packet so that it gets to the right destination or intercepts packets destined for the computer700. In this document, the terms “computer program medium”, “computer usable medium”, and “computer readable medium” are used to generally refer to media such as removable storage drive714, and/or a hard disk installed in hard disk drive712. These computer program products are means for providing software to computer system700. The invention is directed to such computer program products.

Computer programs (also called computer control logic) are stored as application modules706in main memory708and/or secondary memory710. Computer programs may also be received via communications interface724. Such computer programs, when executed, enable the computer system700to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor704to perform features of the present invention. Accordingly, such computer programs represent controllers of the computer system700.

In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system700using removable storage drive714, hard drive712, or communications interface724. The application module706, when executed by the processor704, causes the processor704to perform the functions of the invention as described herein.

The main memory708may be loaded with one or more application modules706that can be executed by one or more processors704with or without a user input through the I/O interface730to achieve desired tasks. In operation, when at least one processor704executes one of the application modules706, the results are computed and stored in the secondary memory710(i.e., hard disk drive712). The status of the computer simulation of muscle movements (e.g., finite element analysis results) is reported to the user via the I/O interface730in either text or graphical representation.

Although the present invention has been described with reference to specific embodiments thereof, these embodiments are merely illustrative, and not restrictive of, the present invention. Various modifications or changes to the specifically disclosed exemplary embodiments will be suggested to persons skilled in the art. For example, whereas muscles and joints in a human arm have been shown and described to be modeled as truss elements and rollers, other muscles and joints can be modeled, for example, leg muscles and knee or ankle joints. Additionally, whereas a nonlinear Hill-type muscle bio-mechanical property model has been shown and described, other suitable numerical model that emulates muscle bio-mechanical properties may be used. Moreover, whereas three truss elements and one roller have been shown and described for “slipping” and “swapping” adjustments, the present invention does not set limit as to how many truss elements and rollers to represent muscles and joints. In summary, the scope of the invention should not be restricted to the specific exemplary embodiments disclosed herein, and all modifications that are readily suggested to those of ordinary skill in the art should be included within the spirit and purview of this application and scope of the appended claims.