Show
Ignore:
Timestamp:
05/04/08 21:39:16 (4 months ago)
Author:
otter
Message:

Enhanced efficiency of friction models of Rotational and Translational library in some situations (only of peak > 1)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/maintenance/2.2.2/Modelica/Mechanics/Rotational.mo

    r1040 r1118  
    724724      Modelica.Mechanics.Rotational.Torque torque  
    725725                               annotation (extent=[-65, -5; -55, 5]); 
    726       Modelica.Mechanics.Rotational.Clutch clutch1(peak=1.1, fn_max=20)  
     726      Modelica.Mechanics.Rotational.Clutch clutch1(          fn_max=20, peak=1.1) 
    727727        annotation (extent=[-25, -5; -15, 5]); 
    728728      Modelica.Blocks.Sources.Sine sin1(amplitude=10, freqHz=5)  
     
    732732      Modelica.Mechanics.Rotational.Inertia J2(J=1, initType=Modelica.Mechanics.Rotational.Types.Init.InitialState)  
    733733                                 annotation (extent=[-5, -5; 5, 5]); 
    734       Modelica.Mechanics.Rotational.Clutch clutch2(peak=1.1, fn_max=20)  
     734      Modelica.Mechanics.Rotational.Clutch clutch2(          fn_max=20, peak=1.1) 
    735735        annotation (extent=[15, -5; 25, 5]); 
    736736      Modelica.Mechanics.Rotational.Inertia J3(J=1, initType=Modelica.Mechanics.Rotational.Types.Init.InitialState)  
    737737                                 annotation (extent=[35, -5; 45, 5]); 
    738       Modelica.Mechanics.Rotational.Clutch clutch3(peak=1.1, fn_max=20)  
     738      Modelica.Mechanics.Rotational.Clutch clutch3(          fn_max=20, peak=1.1) 
    739739        annotation (extent=[55, -5; 65, 5]); 
    740740      Modelica.Mechanics.Rotational.Inertia J4(J=1, initType=Modelica.Mechanics.Rotational.Types.Init.InitialState)  
     
    18171817      constant SI.AngularAcceleration unitAngularAcceleration = 1; 
    18181818      constant SI.Torque unitTorque = 1; 
    1819        
     1819      Real sa0 = (tau0_max + (tau0_max - tau0))/unitTorque  
     1820        "Value of sa when start of forward sliding at w=0"; 
    18201821    equation  
    18211822      /* Friction characteristic 
     
    18241825      special code shall be generated) */ 
    18251826       
    1826       startForward = pre(mode) == Stuck and (sa > tau0_max/unitTorque or pre(startForward) 
    1827          and sa > tau0/unitTorque) or pre(mode) == Backward and w_relfric > w_small or  
    1828         initial() and (w_relfric > 0); 
    1829       startBackward = pre(mode) == Stuck and (sa < -tau0_max/unitTorque or pre( 
    1830         startBackward) and sa < -tau0/unitTorque) or pre(mode) == Forward and w_relfric < 
    1831         -w_small or initial() and (w_relfric < 0); 
    1832       locked = not free and not (pre(mode) == Forward or startForward or pre( 
    1833         mode) == Backward or startBackward); 
     1827      startForward = pre(mode) == Stuck and sa > tau0_max/unitTorque or  
     1828                     pre(mode) == Backward and w_relfric > w_small or  
     1829                     initial() and (w_relfric > 0); 
     1830      startBackward = pre(mode) == Stuck and sa < -tau0_max/unitTorque or  
     1831                      pre(mode) == Forward and w_relfric < -w_small or  
     1832                      initial() and (w_relfric < 0); 
     1833      locked = not free and not (pre(mode) == Forward or startForward or pre(mode) == Backward or startBackward); 
    18341834       
    18351835      a_relfric = unitAngularAcceleration * 
    1836               (if locked then 0 else if free then sa else if startForward then  
    1837               sa - tau0/unitTorque else if startBackward then sa + tau0/unitTorque else if pre(mode) 
    1838          == Forward then sa - tau0/unitTorque else sa + tau0/unitTorque); 
     1836              (if locked then 0 else if free then sa else  
     1837              if startForward then sa - sa0 else if startBackward then sa + sa0 else  
     1838              if pre(mode)== Forward then sa - sa0 else sa + sa0); 
    18391839       
    18401840      /* Friction torque has to be defined in a subclass. Example for a clutch: