Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR SIMULATION OF NONLINEAR DYNAMIC SYSTEMS APPLICABLE WITHIN SOFT COMPUTING
Document Type and Number:
WIPO Patent Application WO/2004/012098
Kind Code:
A1
Abstract:
A system and method for efficient stochastic simulation of dynamic systems is described. Since analytic solutions cannot usually be found for stochastic differential equations, complete analysis requires numerical simulations. These simulations are most commonly done with first-order Euler-type algorithm. The efficiency of these algorithms is improved by removing algebraic loops in the simulation. An algebraic loop occurs when an output variable of the system of equations is also in an input variable to one or more of the equations describing the system. In one embodiment, the algebraic loops are removed by formulating a simulation wherein an output variable that gives rise to an algebraic loop is integrated to produce an integrated output. The integrated output is later provided to a differentiator to reconstruct the output variable as needed.

Inventors:
ULYANOV SERGEI V
PANFILOV SERGEI
Application Number:
PCT/US2003/023666
Publication Date:
February 05, 2004
Filing Date:
July 28, 2003
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
YAMAHA MOTOR CO LTD (JP)
YAMAHA MOTOR CORP USA (US)
International Classes:
G06F19/00; G05B17/00; G05B17/02; G06F17/10; G06F17/13; (IPC1-7): G06F17/13; G05B13/02
Domestic Patent References:
WO2001067186A12001-09-13
Other References:
"Using Simulink, Version 5", July 2002, THE MATHWORKS, XP002259369
"Simulink Reference, Version 5", July 2002, THE MATHWORKS, XP002259370
TAUBERT K, WIEDL W: "Differentialgleichungen mit Simulink", 2000, SKRIPT ZUR VORLESUNG "DIFFERENTIALGLEICHUNGEN MIT SIMULINK", WINTERSEMESTER 1999/2000, UNIVERSITÄT HAMBURG, XP002259371
ELMQVIST H, OTTER M: "Methods for tearing systems of equations in object-oriented modeling", PROCEEDINGS ESM'94 EUROPEAN SIMULATION MULTICONFERENCE, BARCELONA, SPAIN, 1 June 1994 (1994-06-01) - 3 June 1994 (1994-06-03), pages 326 - 332, XP002259367, Retrieved from the Internet [retrieved on 20031027]
HAGIWARA T, PANFILOV S A, ULYANOV S V, TAKAHASHI K, DIAMANTE O: "An application of a smart control suspension system for a passenger car based on soft computing", YAMAHA MOTOR TECHNICAL REVIEW, no. 35, 15 January 2003 (2003-01-15), XP002259368, Retrieved from the Internet [retrieved on 20031027]
Attorney, Agent or Firm:
Delaney, Karoline A. (MARTENS OLSON & BEAR, LLP, 2040 Main Street, 14th Floo, Irvine CA, US)
Download PDF:
Claims:
WHAT IS CLAIMED IS :
1. An efficient method for numerical integration for use in simulation of nonlinear differential equations with essential nonlinearities including higherorder derivatives: comprising: providing one or more input variables to a system of equations; computing one or more outputs from said system of equations using said input variables; integrating at least one selected output to produce an integrated output; differentiating said integrated output to produce a reconstructed selected output; and providing said reconstructed selected output as a next input to said system of equations.
2. A method for stochastic simulation of nonlinear differential equations with nonlinearities including higher order derivatives, comprising: defining a system of nonlinear differential equations having an algebraic loop wherein an output variable of at ieast one equation is also an input to said at least one equation, said output variable corresponding to an nth derivative of a quantity represented by said output variable; defining a simulation system that removes said algebraic loop by: integrating said output variable to produce an integrated output variable, said integrated output variable corresponding to an (n1)th derivative of said quantity represented by said output variable ; providing said integrated output variable to an input of said at least one equation; and differentiating said integrated output variable and providing an output of said integration to an input of said at least one equation; and using an Eulertype method to numerically evaluate said simulation system.
3. The method of Claim 2, further comprising: providing one or more inputs to a control system; computing a control output from said one or more inputs to said control system; and providing said control output to at least one onput of said system of equations.
4. The method of Claim 2, further comprising: generating a control signal using a controller, said controller receiving input from a first information signal, said first information signal comprising at least one variable from said system of equations; computing an entropy from said information signal ; computing a teaching signal using said entropy; teaching said controller using said teaching signal.
5. The method of Claim 4, further comprising: using said teaching signal to train a neural network.
6. The method of Claim 5, wherein said teaching signal is computed by a genetic analyzer.
7. The method of Claim 6, wherein a fitness function of said genetic analyzer is based on said information signal.
8. The method of Claim 6, wherein a fitness function of said genetic analyzer is configured to reduce an entropy of said first information signal.
9. The method of Claim 5 wherein said neural network is a fuzzy neural network.
10. The method of Claim 5, wherein said neural network is a fuzzy neural network trained by said teaching signal.
11. The method of Claim 5, wherein computing said teaching signal comprises running a genetic analyzer having a fitness function that reduces an entropy of said system of equations.
12. A simulation system for simulating control of a plant described as a system of nonlinear differential equations, comprising: a plant simulation module configured to compute one more plant outputs from a system of equations based on one or more plant variables, wherein output variables from said system of equations that also appear as inputs to said system of equations are first integrated and then differentiated before being provided as inputs to said system of equations; means for generating a teaching signal by computing said teaching signal to produce control that reduces an entropy of said plant ; means for generating a gain schedule as directed by said teaching signal; and control means to generate a control signal using at least one of said plant variables and said gain schedule.
13. The control system of Claim 12, wherein said means for generating a gain schedule comprises a genetic analyzer.
14. An apparatus for simulating control of a plant described as a system of nonlinear differential equations, comprising: a plant simulation module configured to compute one more plant outputs from a system of equations based on one or more plant variables, wherein output variables from said system of equations that also appear as inputs to said system of equations are first integrated and then differentiated before being provided as inputs to said system of equations; and a multiplexer configured to provide said inputs to said system of equations according to a simulation algorithm.
15. The apparatus of Claim 14, wherein said simulation algorithm is a firstorder Euler algorithm.
16. The apparatus of Claim 14, wherein said simulation algorithm is a RungeKutta algorithm.
17. The apparatus of Claim 14, further comprising: an analyzer for generating a teaching signal by computing said teaching signal to produce control that reduces an entropy of said plant ; a fuzzy logic classifier module for generating a gain schedule as directed by said teaching signal; and a control module to generate a control signal using at least one of said plant variables and said gain schedule.
18. The control system of Claim 17, wherein said means for generating a gain schedule comprises a genetic analyzer.
19. A selforganizing method for simulating control of a nonlinear plant described by one or more differential equations, comprising: obtaining a difference between a time differentiation (dSUldt) of the entropy of a plant and a time differentiation (dSJdf) of the entropy provided to the plant from a lowlevel controller that controls the plant ; evolving a control rule by evolution in a genetic algorithm, said genetic algorithm using said difference as a fitness function; removing algebraic loops from said simulation by integrating outputs from said system of equations that also appear as inputs to said system of equations to produce integrated outputs, differentiating said integrated outputs to produce reconstructed inputs, providing said reconstructed inputs to said system of equations, simulating operating of said nonlinear plant by computing new inputs for said system of equations from previous outputs of said system of equations according to the method of Euler or the RungeKutta method.
20. The method of Claim 19, further comprising: analyzing one or more nonlinear operation characteristics of said physical plant by using a Lyapunov function; and correcting said control rule based on an evolution.
21. The method of Claim 19, further comprising: evolving a control rule relative to a variable of said lowlevel controller by using a genetic algorithm, said genetic algorithm using fitness function that reduces a difference between a time differentiation of an entropy of said plant (dSuldt) and a time differentiation (dsddt) of an entropy provided to said plant from said lowlevel controller ; and correcting a variable of said lowlevel controller based on said evolved control rule.
22. A control apparatus adapted to control a nonlinear plant, comprising: a simulator configured to use a system of nonlinear differential equations to simulate operation of a nonlinear plant according to the method of Euler, wherein outputs from said system of equations that also appear as inputs to said system of equations are first integrated and then differentiated before being provided as inputs to said system of equations; an entropy calculator that calculates an entropy production amount based on a difference between a time differentiation of entropy of said plant (dSuldf) and a time differentiation (dSJdf) of an entropy provided to said plant from a lowlevel controller that controls said plant; a genetic algorithm module that obtains an adaptation function in which said difference is minimized; and a fuzzy logic classifier configured to determine a fuzzy rule by using a learning process, said fuzzy logic controller configured to use an output from said genetic algorithm as a teaching signal, said fuzzy logic controller further configured to form a control rule that sets a variable gain of said controller by following said fuzzy rule.
23. The apparatus of Claim 22, wherein said fuzzy logic classifier comprises: a fuzzy neural network configured to form a lookup table for said fuzzy rule by using said learning process; and a fuzzy controller configured to generating a variable gain schedule for said controller that controls said plant.
24. The apparatus of Claim 22, wherein said lowlevel controller is a linear controller.
25. The apparatus of Claim 22, wherein said lowlevel controller is a PID controller.
26. An apparatus for simulation of nonlinear differential equations with nonlinearities including higher order derivatives, comprising: an equation module for computing a system of nonlinear differential equations wherein an output variable of at least one equation is also an input to said at least one equation, said output variable corresponding to an nth derivative of a quantity represented by said output variable; an integrator module configured to integrate said output variable to produce an integrated output variable, said integrated output variable corresponding to an (n1)th derivative of said quantity represented by said output variable; a differentiator module configured to differentiate said integrated output variable to reconstruct said output variable as a reconstructed output variable; and a multiplexer configured to receive said integrated output vairable and said reconstructed output variable and to compute new inputs for said equation module according to a solution method.
27. The apparatus of Claim 26, wherein said solution method is an Euler method.
28. The apparatus of Claim 26, wherein said solution method is a RungeKutta method.
29. The apparatus of Claim 26, wherein said system of nonlinear differential equations describes a unicycle.
30. The apparatus of Claim 26, wherein said system of nonlinear differential equations comprises a simulation model of a unicycle.
31. The apparatus of Claim 26, wherein said system of nonlinear differential equations comprises a simulation model of a suspension system.
32. The apparatus of Claim 26, wherein said system of nonlinear differential equations comprises a simulation model of a suspension system in the presence of a stochastic road signal.
Description:
SYSTEM AND METHOD FOR SIMULATION OF NONLINEAR DYNAMIC SYSTEMS APPLICABLE WITHIN SOFT COMPUTING

Background Field of the Invention The disclosed invention is relates generally to stochastic simulation of nonlinear dynamic systems with variable stochastic structure.

Description of the Related Art Numerical evaluation and simulation of nonlinear dynamic systems of differential equations are typically based on the method of Euler or on Runge-Kutta methods. These methods use local algebraic loops, and in practice they require additional time for integration. The temporal complexity of such integrations depends greatly on the following factors: 1) number of degrees of freedom in the dynamic system; 2) the types of non- linearity exhibited by the dynamic system and the structure of the non-linearities ; and 3) the type of stochastic excitation. The accuracy of the calculated results depends on the order of the integration routine and on the settings of integration error tolerances.

The first two factors listed above define the strategy used for numerical simulations of real nonlinear dynamic systems. The standard method of decreasing the order of these nonlinear equations usually exhibits high temporal complexity, and additional requirements for integration constraints. Necessary conditions for integration accuracy also typically add additional temporal complexity and thus additional computing resources.

Since analytic solutions usually cannot be found for stochastic differential equations, complete analysis requires numerical simulations. These numerical simulations are most commonly done with a first-order Euler- type algorithm.

Feedback control systems are widely used to maintain the output of a nonlinear dynamic system at a desired value in spite of external disturbances that would displace the dynamic system from the desired value.

For example, a household space-heating furnace, controlled by a thermostat, is an example of a feedback control system. The thermostat continuously measures the air temperature inside the house, and when the temperature falls below a desired minimum temperature the thermostat turns the furnace on. When the interior temperature reaches the desired minimum temperature, the thermostat turns the furnace off. The thermostat- furnace system maintains the household temperature at a substantially constant value in spite of external disturbances such as a drop in the outside temperature. Similar types of feedback controls are used in many applications.

A central component in a feedback control system is a controlled object, a machine, or a process that can be defined as a"plant", having an output variable or performance characteristic to be controlled. In the above example, the"plant"is the house, the output variable is the interior air temperature in the house and the disturbance is the flow of heat (dispersion) through the walls of the house. The plant is controlled by a control system, In the above example, the control system is the thermostat in combination with the furnace. The thermostat-furnace system uses simple on-off feedback control system to maintain the temperature of the house. In many control environments, such as motor shaft position or motor speed control systems, simple on- off feedback control is insufficient. More advanced control systems rely on combinati, ns of proportional feedback control, integral feedback control, and derivative feedback control. A feedback control based on a sum of proportional feedback, plus integral feedback, plus derivative feedback, is often referred as PID control.

A PID control system is a linear control system that is based on a dynamic model of the plant. In classical control systems, a linear dynamic model is obtained in the form of dynamic equations, usually ordinary differential equations. The plant is assumed to be relatively linear, time invariant, and stable.

However, many real-world plants are time-varying, highly non-linear, and unstable. For example, the dynamic model may contain parameters (e. g. , masses, inductance, aerodynamics coefficients, etc. ), which are either only approximately known or depend on a changing environment. If the parameter variation is small and the dynamic model is stable, then the PID controller may be satisfactory. However, if the parameter variation is large or if the dynamic model is unstable, then it is common to add adaptive or intelligent (Al) control functions to the PID control system.

Al control systems use an optimizer, typically a non-linear optimizer, to program the operation of the PID controller and thereby improve the overall operation of the control system.

Classical advanced control theory is based on the assumption that near of equilibrium points all controlled"plants"can be approximated as linear systems. Unfortunately, this assumption is rarely true in the real world. Most plants are highly nonlinear, and often do not have simple control algorithms. In order to meet these needs for a nonlinear control, systems have been developed that use soft computing concepts such as genetic algorithms, fuzzy neural networks, fuzzy controllers and the like. By these techniques, the control system evolves (changes) over time to adapt itself to changes that may occur in the controlled"plant'and/or in the operating environment.

As discussed above, the existence of algebraic loops in the simulation of dynamic systems increases the temporal complexity of the simulation and thus the computing resources needed for the simulation.

Summary The present invention solves these and other problems by removing algebraic loops from the simulation of dynamic systems. An algebraic loop occurs when an output variable of the system of equations describing the system is also in an input variable to one or more of the equations in the system of equations. In one embodiment, the algebraic loops are removed by formulating a simulation wherein an output variable that gives rise to an algebraic loop is integrated to produce an integrated output. The integrated output is later

provided to a differentiator to reconstruct the output variable as needed. Thus, the output variable that would otherwise give rise to an algebraic loop is not fed back directly into the system of equtions, but, rather, is first integrated and then differentiated before being fed back into the system of euqations. The process of integration followed by differentiation removes the algebraic loop and thereby speeds up the simulation. When more than one output variable gives rise to an algebraic loop, each output variable giving rise to an algebraic loop is first integrated and then differentiated before being fed back into the system of equations, thereby removing all potential algebraic loops from the simulation.

Brief Description of the Figures The above and other aspects, features, and advantages of the present invention will be more apparent from the following description thereof presented in connection with the following drawings.

Figure 1 illustrates a general structure of a self-organizing intelligent control system based on soft computing.

Figure 2A is a block diagram of a simulation system, with algebraic loops, for solving a system of non-linear differential equations.

Figure 2B is a block diagram of a simulation system, without algebraic loops, for solving a system of non-linear differential equations.

Figure 3A is a block diagram of a system with an algebraic loop for simulating a dynamic system.

Figure 3B shows the algebraic loop of the system shown in Figure 3A.

Figure 4 is a block diagram of the system in Figure 3A with the algebraic loop removed.

Figure 5 is a plot showing computer runtimes for the simulations of Figures 3A and 4 for free, exited, and controlled simulations, and showing the improvement obtained by removing the algebraic loop.

Figure 6 is a block diagram of a dynamic simulation system with an algebraic loop and a control feedback loop.

Figure 7 is a block diagram of the dynamic simulation system in Figure 6 with the algebraic loop removed.

Figure 8 shows a full car model of a suspension system.

Figure 9A is a plot showing computer runtimes and improvement of the simulation speed for the suspension system model with fixed damping.

Figure 9B is a plot showing computer runtimes and improvement of the simulation speed for the suspension system model with variable damping.

Figure 10 shows the components and coordinate systems of a unicycle model.

Figure 11 is a representative plot showing comparison of the alpha angle for a simulation based on the above unicycle equations of motion for simulations with and without algebraic loops.

Figure 12 is a representative plot showing comparison of the beta angle for a simulation based on the above unicycle equations of motion for simulations with and without algebraic loops.

Figure 13 is a representative plot showing comparison of the gamma angle for a simulation based on the above unicycle equations of motion for simulations with and without algebraic loops.

In the drawings, the first digit of any three-digit element reference number generally indicates the number of the figure in which the referenced element first appears and the first two digits of any four-digit element reference number generally indicates the number of the figure in which the referenced element first appears.

Description Figure 1 is a block diagram of a control system 100 for controlling a plant based on soft computing.

In the controller 100, a reference signal y is provided to a first input of an adder 105. An output of the adder 105 is an error signal e, which is provided to an input of a Fuzzy Controller (FC) 143 and to an input of a Proportional-Integral-Differential (PID) controller 150. An output of the PID controller 150 is a control signal ut, which is provided to a control input of a plant 120 and to a first input of an entropy-calculation module 132. A disturbance m (t) 110 is also provided to an input of the plant 120. An output of the plant 120 is a response x, which is provided to a second input the entropy-calculation module 132 and to a second input of the adder 105. The second input of the adder 105 is negated such that the output of the adder 105 (the error signal s) is the value of the first input minus the value of the second input.

An output of the entropy-calculation module 132 is provided as a fitness function to a Genetic Analyzer (GA) 131. An output solution from the GA 131 is provided to an input of a FNN 142. An output of the FNN 132 is provided as a knowledge base to the FC 143. An output of the FC 143 is provided as a gain schedule to the PID controller 150.

The GA 131 and the entropy calculation module 132 are part of a Simulation System of Control Quality (SSCQ) 130. The FNN 142 and the FC 143 are part of a Fuzzy Logic Classifier System (FLCS) 140.

Using a set of inputs, and the fitness function 132, the genetic algorithm 131 works in a manner similar to a biological evolutionary process to arrive at a solution which is, hopefully, optimal. The genetic algorithm 131 generates sets of"chromosomes" (that is, possible solutions) and then sorts the chromosomes by evaluating each solution using the fitness function 132. The fitness function 132 determines where each solution ranks on a fitness scale. Chromosomes (solutions) that are relatively more fit are those chromosomes that correspond to solutions that rate high on the fitness scale. Chromosomes that are relatively less fit are those chromosomes that correspond to solutions that rate low on the fitness scale.

Chromosomes that are more fit are kept (survive) and chromosomes that are less fit are discarded (die). New chromosomes are created to replace the discarded chromosomes. The new chromosomes are created by crossing pieces of existing chromosomes and by introducing mutations.

The PID controller 150 has a linear transfer function and thus is based upon a linearized equation of motion for the controlled"plant"120. Prior art genetic algorithms used to program PID controllers typically use simple fitness and thus do not solve the problem of poor controllability typically seen in linearization models.

As is the case with most optimizers, the success or failure of the optimization often ultimately depends on the selection of the performance (fitness) function.

Evaluating the motion characteristics of a nonlinear plant is often difficult, in part due to the lack of a general analysis method. Conventionally, when controlling a plant with nonlinear motion characteristics, it is common to find certain equilibrium points of the plant and the motion characteristics of the plant are linearized in a vicinity near an equilibrium point. Control is then based on evaluating the pseudo (linearized) motion characteristics near the equilibrium point. This technique is scarcely, if at all, effective for plants described by models that are unstable or dissipative.

Computation of optimal control based on soft computing includes the GA 131 as the first step of a global search for an optimal solution from a space of positive solutions. The GA searches for a set of control weights for the plant. Firstly the weight vector K = {k"..., kn} is used by a conventional proportional- integral-differential (PID) controller 150 in the generation of a signas u* =S (K) which is applied to the plant.

The entropy S ( (5 (K)) associated with the behavior of the plant 120 on this signal is used as a fitness function by the GA 131 to produce a solution that reduces entropy production. The GA 131 is repeated several times at regular time intervals in order to produce a set of weight vectors K. The vectors K generated by the GA 131 are then provided to the FNN 142 and the output of the FNN 142 to the fuzzy controller 143. The output of the fuzzy controller 143 is a collection of gain schdules for the PID controller 150 that controls the plant. For the soft computing system 100 based on a genetic analyzer, there is very often no real control law in the classical control sense, but rather, control is based on a physical control law such as minimum entropy production.

For purposes of simulation, the plant 120 can be modeled as a system of non-linear stochastic differential equations. Since analytic solutions cannot be found for stochastic differential equations, complete analysis requires numerical simulations. These simulations are most commonly done with first-order Euler- type algorithm. For higher accuracy, the method of extended Runge-Kutta algorithms, are sometimes used.

These extensions are developed first for white noise equations and then in general form for colored noise equations. For stochastic simulations of non-linear dynamic systems with hidden higher order derivatives in non-linear terms, these methods possess high temporal complexity. The method of forming filters for stochastic process simulations based on Fokker-Planck-Kolmogorov equations and modified integration method, possesses smaller temporal complexity for calculation than standard methods.

Computation of optimal control based on soft computing includes using the GA 131 to provide a search for an optimal solution based on a fixed space of positive solutions. The GA searches for a set of control weights for the plant. The weight vector K = {kl,..., k"} is used by a conventional proportional-integral- differential (PID) controller 150 in the generation of a signal d (K), which is applied to the plant. The entropy S (a (K » associated with the behavior of the plant on this signal is assumed as a fitness function to minimize. The GA is repeated several times at regular time intervals in order to produce the set of weight vectors.

Genetic algorithms are usually computationally expensive search procedures, requiring many calculations of the fitness function. As described above, the fitness function depends on the results of the output of the controlled object (i. e. , the plant). The controlled object can be a nonlinear and even an unstable nonlinear dynamic system. Such dynamic systems are usually described as systems of second order differential equations of the following form: Where qi are generalized coordinates of the system, qui are generalized velocities, 4, are generalized accelerations, fi are equations of motions, szi are stochastic excitations, u, are control forces, (i = 1,..., ii) and t is the time scale. To find a numerical solution of such a system of differential equations, the equations are usually transformed into a set of nx2 first order differential equations via replacement of the variables. For example in the case when n=1 the system of equations becomes: # = f(q,#, #, #, u, t) (2) By replacing the variables (2) is transformed into: The Equations (1), (2), or (3) can be solved numerically by using the Euler method. The formula for the Euler method is: yn+1 = ynhf (xn, yn) which advances a solution from x"to x"+1---x"+ h, The formula is unsymmetrical in that it advances the solution through an interval h, but uses derivative information only at the beginning of that interval. That means that the step's error is only one power of h smaller than the correction. In some circumstances the method of Euler is less accurate when compared to other methods running at the same step size, and the method can be unstable.

In contrast, to the first-order Euler method, the second (and higher-order Runge-Kutta methods use symmetrization to cancel out the first-order error term, thus improving the accuracy of the solution for a given step size. The second-order Runge-Kutta algorithm is: k1 = h (f(xn, yn) k2 = hf(xn + 1/2h,yn +1/2k1) yn+1 = yn + k2 + O(h3) and the fourth-order Runge-Kutta algorithm is:

k1 = h (f (X,") /Ç2 = hf (x"+ 2 h, Y, l + 2/ /53 = hf(xn + 1/2h,yn + 1/2k2 k4 = hf(xn + h,yn + k3) <BR> <BR> <BR> <BR> <BR> yn+1 = yn + k1/6 + R2/3 + R3/3 + R4/6 +O(h5) A number of numerical simulation programs, such as, for example, Simutink@, can integrate the dynamic systems presented in Equations (1), (2), and (3). For numerical simulation it is easier to present the system of Equation (1) as an analog computing diagram as shown in Figure 2A. In Figure 2A, the system of equations (e. g. as shown in Equation (2) ) is provided by an equations block 201. Outputs from the equations block 201 are provided to an integration block 202, which provides multiple levels of integration of the output from the equations block 201. For example, an output signal #, from the equations block 201, is provided to a input of the integration block 202. In the integration block 202, the signal qi is provided as an output of the integration block 202 (that is, as an un-integrated output to a multiplexer 209), and to an input of an integrator 210. An output signal 4, of the integrator 210 is provided to an input of an integrator 211, and as an output of the integration block 202. An output signal qi of the integrator 211 is provided as an output of the integration block 202.

Outputs of the integration block 202 are provided to inputs of the multiplexer 209. An output 5ri from an excitation block 203 is provided to an excitation input of the multiplexer 209. A control output ui from a Proportional Integral-Differential (PID) control block 204 is provided to a control input of the multiplexer 209.

An output bus 230 from the multiplexer includes the signals #i, #i, qi, #i, and Ui where i can vary from 1 to N for each variable. The output bus 230 is provided to in input of an integration control block 231. An output bus 232 from the integration control block includes the signals #i, #i, qi, #i, and us for a next time step in the integration. The output bus 232 also includes a time-step variable t. The output bus 232 is provided to inputs of the equations block 201. A selected signal designated as a plant output x is provided from the output bus 232 to a negative input of an adder 206. The plant output x is typically selected from the group of the signals #i, #i, and qi.

A reference signal block 205 generates a reference signal that is provided to a positive input of the adder 206. An output of the adder 206, is an error signal--, (which is a difference between the two inputs of the adder 206). The error signal is provided to an error signal input of the PID control block 204. A gain block 207 provides control gains Kip(tP, KiI(t), and KD (t) to a gain-schedule input of the PID control block 204. In one embodiment, the control gains are fixed gains. In one embodiment, the control gains are computed dynamically, as shown in Figure 1 (in which case the gain block 207 can include the FLCS 140 and the SSCQ

130). If the control gains are computed dynamically, then the plant output x can also be provided to an input of the gain block 207.

The integration control 231 receives previous outputs on the bus 230 and computes the inputs for next time step in the integration. The inputs for the next time step are provided to the bus 232. Thus, it is the integration control 231 that implements the integration (i. e. , solution) method (e. g., Euler, Runge-Kutta, etc.).

Figure 2A shows a system with algebraic loops (as discussed in more detail in connection with Figure 3B below). Figure 2B shows a system to solve the same equations as the system in Figure 2A but without the use of algebraic loops. Figure 2B is similar in most respects to Figure 2A except that in Figure 2B, the signal 4, is not provided directly as an output of the integration block 202 (that is, as an un-integrated output to the multiplexer 209). Rather, the signal qi is provided to the integrator 210, and the output of the integrator 210 is provided to an input of a differentiator 212. An output of the differentiator 212, being a reconstruction of the signal qi, is provided as an output of the integration block 202. Thus, the signals q ;, q ;, and qi from the integration block 202 have each passed through at least one integrator in the integration block 202.

The multiplexer 209 includes logic to control the evolution of the solution process. The multiplexer 209 receives outputs from an n'th time step of the solution process and provides inputs to the (n+1)'th time step of the solution process.

Figure 3A is a block diagram of a simulation system 300 with an algebraic loop for simulating a dynamic system. The system 300 is a single-equation version of the more general multi-equation structure shown in Figure 2. In Figure 3A, an equation block 301 is used to implement an equation f (u), where u = q, q, q, 4, t (where the subscript on q and its derivatives has been dropped since there is only one equation). In alternate notation, iT = ddQ/dt2, dQ/dt, Q, , t. An output q from the equation block 301 is provided to a q input of a multiplexer 305, and to an input of an integrator 302. An output q from the integrator 302 is provided to a q input of the multiplexer 305 and to an input of an integrator 303. An output q from the integrator 303 is provided to a q input of the multiplexer 305. An excitation 0 from an excitation generator 304 is provided to a 0 input of the multiplexer 305. A control signal u from a control generator 306 is provided to a u input of the multiplexer 305. An output bus from the multiplexer is provided to an input of the equation block 301.

Calculation time for the integration of nonlinear dynamic systems depends dramatically on the presence of algebraic loops. An algebraic loop occurs when an input of the nonlinear part depends directly on an output of the nonlinear part. In most of the cases of nonlinear dynamic system simulation, an algebraic loop occurs in the terms related to via accelerations of the generalized coordinates, as shown in Figure 3B. Figure 3B shows an algebraic loop path 320 corresponding to the variable ddQldt2. The variable ddQldt2 is an output of the nonlinear dynamic function f (u), and an argument of the function f (u).

Integrating programs typically use special algebraic loop solving routines that, in addition to adding self- integration complexity to the simulation, require additional calculations of the right-hand portions of Equation (1). These additional calculations reduce the computational speed of the simulation algorithm.

Figure 4 shows a system 400 wherein higher order derivatives (e. g., accelerations) are not calculated directly, but replaced with the derivatives of smaller order accelerations (e. g. , velocities). The system 400 of Figure 4 eliminates the algebraic loop 320. Like the structure shown in Figure 3A, Figure 4 shows a single-equation version of the more general multi-equation structure shown in Figure 2. In Figure 4, the equation block 301 is used to implement an equation f (u), where u=&num , q, q, C, t (where the subscript on q and its derivatives has been dropped since there is only one equation). An output q from the equation block 301 is provided to an input of an integrator 402. An output q from the integrator 402 is provided to an input of a differentiator 410, to a q input of the multiplexer 305, and to an input of the integrator 302. An output q from the integrator 302 is provided to an input of an integrator 303. An output q from the integrator 303 is provided to a q input of the multiplexer 305. An output q of the differentiator 410 is provided to q input of the multiplexer 305. The excitation # from the excitation generator 304 is provided to the input of the multiplexer 305. A control signal u from a control generator 306 is provided to a u input of the multiplexer 305. An output bus from the multiplexer is provided to an input of the equation block 301.

The system 400 eliminates the algebraic loop by first integrating the output q from the equation block 301 to produce #. The signal # is the recomputed (reconstructed) by using the differentiator 410.

Figure 5 is a plot showing computer runtimes for the simulations of Figures 3A and 4 for free, exited, and controlled simulations, and showing the improvement obtained by removing the algebraic loop. As shown in Figure 5, the system 400 (without an algebraic loop) is more than twice as fast as the system 300 (with an algebraic loop) when both the excitation and control inputs are zero (i. e. , free systems). The system 400 is approximately 3.4 times as fast as the system 300 when an excitation is applied to both systems (i. e. , excited systems). The system 400 is approximately 2.7 times as fast as the system 300 when a non-zero control input is applied to both systems (i. e., controlled systems).

Figure 6 is a block diagram of a dynamic simulation system 600 having an algebraic loop and including the excitation input 304 and a feedback control system 602. In the system 600, the equation block 301 is used to implement an equation f (u), where u =q, q, q, 4, t (where the subscript on q and its derivatives has been dropped since there is only one equation). An output q from the equation block 301 is provided to the q input of a multiplexer 305, and to an input of the integrator 302. An output q from the integrator 302 is provided to the q input of the multiplexer 305 and to the input of the integrator 303. An output q from the integrator 303 is provided to the q input of the multiplexer 305. An excitation 0 from the excitation generator 304 is provided to the # input of the multiplexer 305.

The control system 602 includes a PID controller 612, an adder 611, a selector 610, and a reference signal generator 609. A control signal u from the PID controller 612 is provided to the u input of the multiplexer 305. An output bus from the multiplexer is provided to an input of the equation block 301 and to an input of the selector 610. An output from the selector 610 is provided to an inverting input of the adder 611. A reference signal output from the reference signal generator is provided to a non-inverting input of the adder 611. The adder provides an error signal (computed as the reference signal minus the signal selected by the selector 610) to an input of the PID controller 612.

The selector 610 is used to select one of the signals from the multiplexer bus as a feedback signal to be used by the feedback control system 602. The feedback control system computes the error signal, which is then provided to the PID controller 612 to generate the control signal u.

Figure 7 is a block diagram of a dynamic simulation system 700, which is similar to the system 600 with the algebraic loop removed. In the system 700, the equation block 301 is used to implement an equation f (u), where iT = q, q, q, , t (where the subscript on q and its derivatives has been dropped since there is only one equation). The output q from the equation block 301 is provided to the input of the integrator 402.

The output g from the integrator 402 is provided to an input of the differentiator 410, to a q input of the multiplexer 305, and to the input of the integrator 302. The output q from the integrator 302 is provided to the input of an integrator 303. The output q from the integrator 303 is provided to the q input of the multiplexer 305. The output q of the differentiator 410 is provided to the q input of the multiplexer 305. An excitation 0 from the excitation generator 304 is provided to the # input of the multiplexer 305. The system 700 also includes the feedback control system 602 as described in connection with Figure 6.

In one embodiment, the systems shown in Figures 3A, 3B, 4,6, and 7 can be used to model a Van der Pol dynamic system, wherein the equation block 301 implements an equation of the form: q + (q2-1) q + (1+#(t))q = u(t) + #(t) where q is a coordinate (e. g. , an x, y, or z coordinate), and (t) is a random excitation. The control signal u (t) is given by: u (t) = kpe +kDe+ k, le dt where e is the error signal computed as e = qo-q where qo is the set point or reference signal. In one simulation, running the above Van der Pol system under conditions of free oscillation (e. g., #(t) = 0, and u (t) = 0) without an algebraic loop is approximately 2.8 times faster than running the simulation with an algebraic loop.

I In one simulation, running the above Van der Pol system under conditions of controlled oscillations (i. e., qO = 1. 5 and kp = kD = Ic, = 1) under parametric excitation, where 4 (t) is band-limited white noise

having zero mean and a dispersion of 0.3,) without an algebraic loop is approximately 2.7 times faster than running the simulation with an algebraic loop.

In one embodiment, the systems shown in Figures 3A, 3B, 4,6, and 7 can be used to model a nonlinear dynamic system with nonlinear inertial force simulation, wherein the equation block 301 implements an equation of the form: # + a1q2# + a2q3 + a3q(q# + #2) +a4# + (1 + #(t))q = u(t) + #(t) where a i = 1,..., 4 are model parameters. In one simulation, al = 0. 5, a2 = 0. 1, a3 = 0. 4, and a4 = 0. 2. Under conditions of free oscillation, this simulation is approximately 4 times faster without algebraic loops than with algebraic loops. Under free oscillation with parametric excitation (zero mean, dispersion of 0.3) the system without algebraic loops is approximately 3.4 times faster without algebraic loops than with algebraic loops. Under PID control with parametric excitation, the simulation without algebraic loops is 3.3 times faster than the system with algebraic loops.

In one embodiment, the systems shown in Figures 3A, 3B, 4,6, and 7 can be used to model a nonlinear dynamic system with nonlinear inertial force simulation, wherein the equation block 301 implements an equation that describes a vehicle suspension system shown in Figure 8.

Figure 8 shows a vehicle body 810 with coordinates for describing position of the body 810 with respect to wheels 801-804 and the suspension system. A global reference coordinate Xr, yr, zr {r} is assumed to be at the geometric center Pr of the vehicle body 710. The following are the transformation matrices to describe the local coordinates for the suspension and its components: {2} is a local coordinate in which an origin is the center of gravity of the vehicle body 710 ; {7} is a local coordinate in which an origin is the center of gravity of the suspension; {10n} is a local coordinate in which an origin is the center of gravity of the n'th arm ; {12n} is a local coordinate in which an origin is the center of gravity of the n'th wheel; {13n} is a local coordinate in which an origin is a contact point of the n'th wheel relative to the road surface; and {14} is a local coordinate in which an origin is a connection point of the stabilizer.

Note that in the development that follows, the wheels 802,801, 804, and 803 are indexed using"i", "ii","iii", and"iv", respectively.

As indicated,"n"is a coefficient indicating wheel positions such as i, ii, iii, and iv for left front, right front, left rear and right rear respectively. The local coordinate systems xo, yo, and zo {0} are expressed by using the following conversion matrix that moves the coordinate {r} along a vector (0,0, zo)

Rotating the vector {r} along yr with an angle ß makes a local coordinate system X0c, Yo :, {Or} with a transformation matrix o°T.

Transferring {Or} through the vector (ain, 0,0) makes a local coordinate system xof, yof, zof {0f} with a transformation matrix OrOfT.

The above procedure is repeated to create other local coordinate systems with the following transformation matrices.

Coordinates for the wheels (index n: i for the left front, ii for the right front, etc. ) are generated as follows. Transferring {1n} through the vector (0, bzn, 0) makes local coordinate system X3n, y3n, zon {3n} with transformation matrix 1f3nT.

Some of the matrices are sub-assembled to make the calculation simpler.

Parts of the model are described both in local coordinate systems and in relations to the coordinate {r} or {1 n} referenced to the vehicle body 710.

In the local coordinate systems : In the global reference coordinate system {r} :

(2. 27) where ;,, is substituted by, #n = -γn - #n because of the link mechanism to support a wheel at this geometric relation.

The stabilizer linkage point is in the local coordinate system {1n}. The stabilizer works as a spring in which force is proportional to the difference of displacement between both arms in a local coordinate system {1 n} fixed to the body 710.

Kinetic energy, potential energy and dissipative functions for the <Body>, <Suspension>, <Arm>, <Wheel> and <Stabilizer> are developed as follows, Kinetic energy and potential energy except by springs are calculated based on the displacement referred to the inertial global coordinate {r}. Potential energy by springs and dissipative functions are calculated based on the movement in each local coordinate.

<Body> <BR> <BR> <BR> Tbtr = 1/2mb (x2b + yb2 +zb2)<BR> <BR> <BR> 2 (2. 29) where xb = (a0 +a1n) cosß + (b0sinα + c0 cosα) sinß Yb =bo cosa-c. sina zb = z0 - (a0+a1n) sinß + (b0 sinα + c0 cosα) cosß (2.30) and thus

<Suspension>

<Wheel> Substituting man with mon and ein with e3n in the equation for the arm, yields an equation for the wheel as:

<Stabilizer> Therefore the total kinetic energy is :

Hereafter variables and coefficients which have index"n"implies implicit or explicit that they require summation with n=i, ii, iii, and iv.

The total potential energy is:

The Lagrangian is written as :

The dissipative function is: The constraints are based on geometrical constraints, and the touch point of the road and the wheel.

The geometrical constraint is expressed as The touch point of the road and the wheel is defined as where Rn (t) is road input at each wheel.

Differentials are:

Since the differentials of these constraints are written as then the values ainj are obtained as follows.

From the above, Lagrange's equation becomes

From the differentiated constraints it follows that: Supplemental differentiation of equation (2.113) for the later entropy production calculation yields:

therefore or from the third equation of constraint :

Equations for entropy production are developed below. Minimum entropy production (for use in the fitness function of the genetic algorithm) is expressed as: To simulate the suspension system, the suspension system equations are programmed into the equation block 201. As shown in Figure 9A, with fixed control (e. g. , with shock absorbers having a fixed damping coefficient, the suspension system simulated according to Figure 3A (with algebraic loops) is more than nine times slower than the suspension system simulated according Figure 4. As shown in Figure 9B, with variable control (e. g. , with shock absorbers having a variable damping coefficient, the suspension system simulated according to Figure 3A (with algebraic loops) is approximately nine times slower than the suspension system simulated according Figure 4.

Figure 10 shows the components and coordinate systems of a unicycle model 1000. The unicycle model 1000 includes a wheel 1001, having an axle 1001, a body 1003, and a rotor 1004. Link pairs L1, L3, and L2, L4 are connected between the body 1003 and the axle 1001. A first motor provides torque to control the angle between the links L1, L3. A second motor provides torque to control the angle between the links L1, L3.

Using the coordinate systems shown in Figure 10, the equation of motion for the unicycle 1000 is give by: The general equation of motion for alpha in the above unicycle equation of motion is: The coefficients of the alpha equation of motion are given by: (Where IIIwshk, IIwshz, IIwshx, are the combined inertia moments of the wheel 1001 and the shaft 1002 around x, y, z axes.)

where: AL101i = [cos (y) 2(IL1x sin(ZU)2 + IL1z cos(ZU)2) + sin(γ)2 IL1y] ; (Where ZU = ß + #1.) AL101m = Ml1 [sin(γ)2 (Rw + elcos(ß) -e2sin(ZU))2 + (elsin(ß) + e2cos(ZU))2 + +k12 cos(γ)3 + k1sin(2γ) (Rw + elcos(ß) - e2sin(ZU))]; AL201=AL201i+AL201m ; where: AL201i = [cos (y) 2 (IL2, sin (ZZ) 2 + IL2z cos (ZZ)2) + sin(γ)2IL2y]; (Here: ZZ = ß + #2.) AL201m = ML2 [sin(γ)2 (Rw+elcos(ß) - e2sin(ZZ))2 + (elsin(ß) + e2cos(ZZ))2 + +kl2 cos(γ)2-klsin(2γ) (Rw + el cos (ß) - e2 sin (ZZ))]; AL301=AL301i+AL301m ; AL301i = [cos(γ)2 (IL3x sin(PR)2 + IL3z cos(PR)2) + sin(γ)2 IL3y]; (Where PR = #3 + #, # = Ow + # (cons).) AL301m = ML3 [(#zsin(PR) + e3xcos(#))2 + sin(γ)2 (e3xsin(#) - #zcos(PR) - Rw)2 + +#ykl2 cos(γ)2 - sin(2γ)#yk1(Re+(#zcos(PR) - e3xsin(#)))]; (Where Aykl = Ay + kl + e3y-displacement by Y.) AL401=AL401i+AL401m ; AL401i = [cos (γ)2 (IL4x sin (PL) Z + IL4z cos(PL)2) + sin (y) 2 IL4) (Where PR = #4 + #, # = #w + #(const).) AL401m = ML4 [(e3xcos(#) -#zsin(PL))2 +sin(γ)2 (Rw +#zcos(PL) +e3xsin(#))2 + +#ykl2 cos(γ)2 - sin(2γ) #ykl(Rw + #zcos(PL) + e3xsin(#))]; ATt01 = ATt01i+Att01m ; ATtOlm = MTgt [sin(γ)2 (Rwe6)2 + sin(ß) e62];

ATtO li = sin (γ)3 (sin(#)2 ITtx + cox(#)2ITty) +1/2 sin (2 ? 7) sin (2y) sin(ß) (ITty - ITtx) + cos (y) 2[sin(ß)2 (cos (#)2ITtx + sin(#)2ITty) + cos (ß)2ITtz]]; (Where Rw e6 = Rw + e6cos(ß),MTt = MTurntable + Mmotor_rot.) A02 = AW02 + AB02 + AL102 + AL202 + AL302 + AL402 + Ate02 ; where: A WO 1 = GW01 = sin (2#w) cos (γ)[IIWshz - IIWshx]; AB03 = - [sin(ß)cos(γ) (MBe5(Rwe5c) + cos(ß)(IBx-IBz))] ; AL102= AL102i+AL102m ; ALl 02i = 1sin (2ZU) cos (y) [IL1z - IL1x]; AL102m = ML1 #cos(γ) #1/2e22 sin(2ZU)-1/2el2 sin(2ß) - Rw(elsin(ß) +e2cos(ZU)) - ele2cos(ZU2E +klsin (y) (elsin(ß) +e2cos(ZU))#; (Where ZU2B = 2ß + #1.) AL202= AL202i+AL202m ; AL202i =sin (2ZZ) cos (y) [IL2z - IL2x]; AL202m = MI-2 [cos(γ) #1/2e22 sin(2ZZ) -1/2 el2 sin(2ß) -Rw)wlsin(ß) +e2cos(ZZ)) - ele2cos(ZZ2B) -klsin(γ) (elsin(ß) +e2cos(ZZ))#; (Where ZZ2B = 2) 6 + 02.) AL302= AL302i+AL302m ; AL302i = 1/2 sin(2PR) cos(γ) [IL3z - IL3x]; AL302m = ML3 #cos(γ) #1/2e3x2 sin(2#) -1/2#z2 sin(2PR) -Rw (#zsin(PR) + e2xcos(#) -#ze3xcos(@ <BR> <BR> +#yklsin(γ) (#zsin(PR) + e2xcos(#))#;<BR> <BR> <BR> <BR> (Where P2R = #3 + 2#.) AL402= AL402i+AL402m ; AL402i = 1/2 sin(2PL) cos(γ) [IL4z - IL4x];

Dwcor-coefficient of viscous friction between flow and wheel's cord.

The general equation of motion for gamma in the unicycle equation of motion is: The coefficients of the gamma equation of motion are given by:

The general beta equation of motion are given by : The coefficients of the beta equation of motion are given by:

Where Dgir is a friction coefficient between the body 1003 and the wheel 1001.

The general thetawheal equation of motion is given by: The coefficients of the thetawheel equation of motion are given by :

where: Dgir-friction coefficient between body and wheel.

The general theta, equation of motion is, from holonomic constraints, given by: The coefficients of the thetal equation of motion are given by: The general theta2 equation of motion is, from holonomic constraints, given by : The coefficients of the theta2 equation of motion are given by:

The general theta3 equation of motion is, from holonomic constraints, given by : 3. T308+ß T303+0w T304+61 T306+03 T3T3+ß T3B+Sw 173S+Ol T3Tl=O The coefficients of the theta3 equation of motion are given by : T303 =-(elcos (ß)-2e2sin (ZU)) ; T304 =-(e3xsin (v)-e4Lsin (PR)) ; T306 = 2e2 sin (ZU) ; T38 = e4Lcos (PR) ; T3B = (el sin (, 8) + 2e2 cos (ZU)) + 01 4e2 cos (ZU) ; T3S =-1-- (e4L sin (PR) + e3x cos (T))-03 (2e4L sin (PR)) ; T3T1=01 2e2cos (ZU) ; T3T3=-03 (e4Lsin (PR)) ; The general theta4 equation of motion is, from holonomic constraints, given by : j4-T409 + -T403 + w-T404 + 2. T407 + d4-T4T4 + T4B + dw-T4S + d2-T4T2 0 The coefficients of the theta4 equation of motion are given by : T403 =- (sl cos (/ ?)-2e2sin (ZZ)) ; T404 = (e4L cos (PL) + e3x sin (w)) ; T407 = 2e2 sin (ZZ) ; T409 = e4L cos (PL) ; T4B = ß (el sin (ß) + 2e2 cos (ZZ)) + 62 4e2 cos (ZZ) ; T4S = T (e3x cos (T)-e4L sin (PL))-04 (2e4L sin (PL)) ; T4T2=02 2e2cos (ZZ) ; T1T4=-04 (e4Lsin (PL)) ; The general eta equation of motion is given by : Q NlO+or NOl+y N02+ci : NA+y NG+ß NB+ND =7 ; 3 ; The coefficients of the eta equation of motion are given by : NO 1= NTt0l ; N02 = NTt02 ; N10 = NTtlO ; ; where : NTtO 1 = ITtZ cos (y) cos (/ ?) ; NTtO 1 = ITta sin (S ; NTtOl = IT>Z ; NA = or NAl + y NA2 +, B NA3 ; where : NA1 =-2 [Sin (211) (sin (y) 2 _ cos (y) 2 sin (ß) 2)-cos (27/) sin (2y) sin (ß) (ITtx--ITfy) ;

NA2 =- [I7 cos (ß) sin (y) + (cos (2ruz sin (y) coso6) +2sin (2, 6) cos (r) sin (27/) j (7y.,,-7,) NA3 =-[IT {Z sin (ß) cos (/) + (sin (y) sin (277)-cos (2 cos (y) sin (, 8)) (IT,- where : where : NG1 =- cos () z sin (277) Tty-I>.) ; NG2 = cos (i) CInZ-cos (2) (InX-IT, ,)] ; NB = ß a NB1 ; where : NBI sin (271) (iny-IT'.) ; ND = d [Drlgs)] ; where : DTtgir-friction coefficient of turntable's motor. T3-turntable's torque ; The general equations for lambda are given by : TH3-a2, 6-TH1-a2,, ; A2 =THI-al,,-TH3-al, 6_. 4 2= alE'a2, 6-a2, 8'al, 6 a, 8 a2, 6-a2, B'al, 6 TH2-a4, 9-TH4-a4, 7 TH4-a3, 7-TH2. a3, 9 _ ; a, 4 = a4, 9'a3, 7-a3, 9'a4, 7 a4, 9 8 a3, 7-a379'a4, 7 The coefficients of the lambda equations are given by : al3 =e1cos (,)-2e2sin (ZU) ; alS =e3xsmy')-e4Lcos (PR) ; a23 =-(elsin (O + 2£cos (ZV)) ; a25 = e3xcos) +e4Lsin (PR) ; a3, 3 = el cos (ß)-2e2siil (7/) ; a3 5 =-e3xsm (g) + e4Lcos (PL) ; a4 3 =-(e1S S) + 2e2 cos (Z)) ; a4 =e4Lsin (PL)-e3xcos (T) ; al 6 =-2e2sm (Zu) ; al 8 =-e4Lcos (PR) ; a2, =-2e2cos (ZLO ; a2,, = e4L sin (PR) ; ==-2e2sm (2Z) ; =-e4Zcos (PZ,) ; a4 7 =-2e2 cos (ZZ) ; a4, 9 = e4Lsin (PL) ; THl=a TlOl+-T102+fi-T103+Sw-T104+ (31-T106+os T1A + y TlG + ß TlB + TlV + TlD ; where : T101= AL106 ; T102 = GL106 ; T103 = BL106 ; T 104 = TWL106 ; T106 = ILl y +ML, e2z ; T1A=aTlAl+yTlA2+3T1A3+wTlA4 ; where : TlAl =-MLI [cosO2e22 sm (2ZW +cos (Z% e2 (2sm (y) 2 [elcos (ß) +R8l + klsm (2y)) + + (elsin (, C3) e2sin (ZL>))]-sui (2Zcos (y) z ILz-ILIZ ; TlA2 = cos (/) [ILIj,-cos (2ZU) [ILIZ x]] +2MLI [kl sin (y) e2sill (ZU) + +cos (y) (e22 sin (ZU) 2 _ e2sin (ZU) Rw-e2sin (ZU) el cos (l3))] ; T1A3 = 2Melsin (y) e2cos (sol) ; T1A4 =RwMLI sin (y) e2cos (ZU) ; TIG TIGI ; T1B = ß TlBl ; T1G1=MLi (e22su1 (2ZLIJ-2e2cos (ZL>) (Rw+elcos (, (i) ) +sin (2ZLILIa-ILIZ ; YlBl=M, Iele2cos (Ol) ; T1V =-MLgcos (y) e2cos (ZU) ; T1D = DLI_BO1 ; Dv1 B-coefficient of viscous friction in joint between link L1 and body. TH2=or T201+ T202+ß T203+Sw T204+02 T207+o : T2A+ + T2G + T2B + T2V + T2D ; where : T201= AL207 ; T202 = GL207 ; T203 = BL207 ; T204 = TwL207 ; T207=IL2y +Ml2e22 ; T2A = a T2A1 + y T2A2 + ß T2A3 + tiw T2A4 ; where : T2A1= MLZ CcoS (y) z e2z sin (2Z2) + cos (ZZ) e2 (2sin (y) 2 [el COS (O + Rw]-kl sin (2y)) + + (elsuz (/3) e2sin (ZZ)),-sin (2cos (Y) z IL2s-ILZz T2A2 cos (r) [IL2y + cos (2ZZ) [IL2z-IL2x +2ML1 [-klsin (r) e2sin (ZZ) + +cos (y) (eosin (Z2) 2-e2sin (Z2) Rw-e2sin (Z2) elcos ())] ;

T2A3 = 2ML, el sin (y) e2 cos (02) ; T2A4 = RwML2 sin (y) e2cos (ZZ) ; T2G= y T2Gl ; T2B = ß T2Bl ; T2G1 =-2 ML2 (e22 sin (2ZZ)-2e2cos (ZZ) (Rl4l+elcos (, 8))) +Isin (2ZZ) [lL2.,-lL2,,] T2B1 = ML2ele2cos (O2) ; T2Y =-ML2g cos (y) e2 cos (ZZ) ; T2D = DL2_BS2 ; Where Dv2 B is a coefficient of viscous friction in joint between link L2 and the body. TH3=a T301+ T302+ß T303+0w (T304+T305) +03 T308+a T3A+ + T3G + T3S + T3V + T3D- where : T301 = AL308 ; T302 = GL308 ; T303 = BL308 ; T304 = TwL308 ; T305 = SL308 ; T308=Iz3y +M, 3Az2 ; T3A = d-T3Al + T3A2 + T3A3 + dw- (T3A4 + T3, 45) ; where : T3A1 =-2 sin (2PR) cos (y) 2 [IL3X-IL3Z]-ML3 SCOS (r) 2 (2 &2 s (2PR) + ksee3xs (PR))- +Azcos (93) e3x-sm (y) 2Rwßzsin (PR)-2 Aykl sm (2y) A7sin (PR)] ; 2 T3A2=cos (y) [[IL3x-IL3Z cos (2PR) +IL3y]-2ML3 [sin (y) AyklAzcos (PR)- -cos (y) (R2 cos (PR) 2 + Az cos (PR) (b-sinif) e3x))] ; T3A4 = 3Az sin (y) Rwsin (PR) ; T3A5 =-2AzM, 3 sin (y) e3xcos (6J3) ; T3G = y T3G1 ; T3S = 6w T3Sl ; T3G1 =-ML3 (A6-sin (PR) e3x sinm-2 Sin (pR) Rw) +2sin (2PR) ['I, 3x lL3, T3S1 =-ML3AZ cos (93) e3x ; T3V =-ML3gcos (y) Azsin (PR) ; T3D = DL3_LI 93 ;

DL3Li is a coefficient of viscous friction in a joint between the links L3 and L1. z, is a torque of the right link's motor. TH4 = cr T401 + T402 + ß T403 + Sw (T404 + T405) + 04 T409 + a T4A + +y T4G+S T4S+T4Z+T4D+a2 ; where : T401 = AL409 ; T402 = GL409 ; T403 = BL409 ; T404 = TwL409 ; T405 = SL409 ; T409 =IL4Y +ML4AZ2 ; T4A = cs T4A1 + y T4A2 + ß T4A3 + Sw (T4A4 + T4A5) ; where : T4A1 =-2 sin (2PL) cos (y) 2 [IL4X-IL4Z]-ML4 Fcos (y) 2 (2 2 s (2PL) + ks (e3xs (PL))- 2 1 (2 -Azcos (04) e3x-Sin (Y) 2 RwAzsin (PL) +Aykl sin (2y) Azsm (PL)] T4A2 = cos (y) [[IL3X-IL3Z] cos (2PL) + IL3),] + 2ML3 [sin (y) AyklAzcos (PL) + + cos (y) (k2 cos (PL) 2 + k cos (PL) (Rw + sin) e3x))] ; T4A4=ML4ksin (y) Rwsin (PL) ; T4A5 =2AzML4 sin (y) e3xcos (04) ; T4G = y T4G1 ; T4S = Sw T4Sl ; 1 1 T4G1 = ML4 (2 2 sin (2PL) + Azsirl (PL) e3xsm (v) + Azsrn (PL) Rw) + 2 si42PL) [IL3x-IL3Z] ; (2 2 T4Sl =ML4Azcos (04) e3x ; T4V =-ML4gcos (y) AzsirSxPL) ; r4D=D,, 4 ; DL4J. 2 is a coefficient of viscous friction in a joint between the links L4 and L2. z2 is a torque of the left link's motor. The general equations for Ci... C6 are given by : C, ==/-a +/ !. ' ag +/ ! g' a + ' 3 ? C, =-' + -a + -d + - ; C3 == *a, 6 +'Z2 * 612, 6 ; C4 = a3, 7 +/14 a4, 7 ; C, =, Z,-al, 8 +/, 2 a2 8 ; C6 =23 a3, 9 +24 a4, 9i The general equations of controlled torques is given by : The =-Z2--K1 h'K2 N W3 = K3 y + Kq y

Where Ki, K2, K3, and K4 are the fuzzy gain coefficients of a PD controller obtained by soft computing techniques (e. g. , a fuzzy controller).

Figure 11 is a representative plot showing comparison of the alpha angle for a simulation based on the above unicycle equations of motion for simulations with and without algebraic loops. Figure 12 is a representative plot showing comparison of the beta angle for a simulation based on the above unicycle equations of motion for simulations with and without algebraic loops. Figure 13 is a representative plot showing comparison of the gamma angle for a simulation based on the above unicycle equations of motion for simulations with and without algebraic loops. In Figure 11-13, the simulation results computed with and without algebraic loops lie roughly on top of one another. Thus, as revealed by Figures 11-13, the simulations with and without algebraic loops produce basically the same results, the benefits of removing the algebraic loops being a significant speed improvement. Depending on the equations being simulated the improvement can be up to a factor of 200 or more.

The forming filter structure for the generation of the nonlinear stochastic processes with selectecd stochastic characteristics is described in U. S. Patent Application No. 10/033370, titleled INTELLIGENT MECHATRONIC CONTROL SYUSPEHNSION SYSTEM BASED ON SOFT COMPUTING, which is hereby incorporated by reference in its entirety.

In one embodiment, the systems shown in Figures 3A, 3B, 4,6, and 7, can be used to model a non- linear forming filter, described as follows. ao. #+a1x2x+a2x3+a3x(x#+#2)+a4#+#2x = #(t) Where x is a coordinate, x is a velocity, is an acceleration, ; (t) iS white noise, at, i = 0,..., 4 are model parameters. In one embodiment, aO = 0.01 a, = 0.5, a2 = 0.0, and a3 = 0.2, a4 = 0.2.

Figure 14 shows position, velocity, and acceleration results of non-gaussian colored stochastic process generation using a filter with algebraic loops. Figure 15 shows position, velocity, and acceleration results of non-gaussian colored stochastic process generation using a filter without algebraic loops. Figure 16 shows phase portraits of generated stochastic processes and the relation between outputs of different filters.

Figure 17 shows temporal complexity estimation of the stochastic process generation.

Although the present invention has been described with reference to a specific embodiment, other embodiments will occur to those skilled in the art. It is to be understood that the embodiment described above has been presented by way of example, and not limitation, and that the invention is defined by the appended claims.