- Timestamp:
- 05/25/08 10:25:16 (6 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/maintenance/2.2.2/Modelica/Mechanics/Translational.mo
r1118 r1128 1 within Modelica.Mechanics; 1 within Modelica.Mechanics; 2 2 3 3 … … 302 302 Translational.Spring S1( 303 303 s_rel0=1, 304 c=1e3, 304 c=1e3, 305 305 s_rel(start=1, fixed=false)) 306 306 annotation (extent=[-58, -20; -38, 0]); … … 308 308 Translational.SpringDamper SD1( 309 309 s_rel0=1, 310 c=111, 310 c=111, 311 311 s_rel(start=1, fixed=true)) 312 312 annotation (extent=[20, -20; 40, 0]); … … 1526 1526 </ul> 1527 1527 </html>")); 1528 protected 1528 protected 1529 1529 constant SI.Acceleration unitAcceleration = 1; 1530 1530 constant SI.Force unitForce = 1; 1531 Real sa0 = (f0_max + (f0_max - f0))/unitForce1532 "Value of sa when start of forward sliding at w=0";1533 1531 equation 1534 1532 /* Friction characteristic … … 1538 1536 */ 1539 1537 1540 startForward = pre(mode) == Stuck and sa > f0_max/unitForce and s < (smax - L/2) or 1541 pre(mode) == Backward and v_relfric > v_small or initial() and (v_relfric > 0); 1542 startBackward = pre(mode) == Stuck and sa < -f0_max/unitForce and s > (smin + L/2) or 1543 pre(mode) == Forward and v_relfric < -v_small or initial() and (v_relfric < 0); 1538 startForward = pre(mode) == Stuck and (sa > f0_max/unitForce and s < (smax - L/2) or 1539 pre(startForward) and sa > f0/unitForce and s < (smax - L/2)) or pre(mode) 1540 == Backward and v_relfric > v_small or initial() and (v_relfric > 0); 1541 startBackward = pre(mode) == Stuck and (sa < -f0_max/unitForce and s > (smin + L/2) or 1542 pre(startBackward) and sa < -f0/unitForce and s > (smin + L/2)) or pre(mode) 1543 == Forward and v_relfric < -v_small or initial() and (v_relfric < 0); 1544 1544 1545 1545 locked = not free and not (pre(mode) == Forward or startForward or pre( … … 1547 1547 1548 1548 a_relfric = unitAcceleration*(if locked then 0 else if free then sa else if startForward then 1549 sa - sa0 else if startBackward then sa + sa0 else if pre(mode) == Forward then sa - sa0 else sa + sa0); 1549 sa - f0/unitForce else if startBackward then sa + f0/unitForce else if pre(mode) == 1550 Forward then sa - f0/unitForce else sa + f0/unitForce); 1550 1551 1551 1552 /* Friction torque has to be defined in a subclass. Example for a clutch:
