- Timestamp:
- 05/25/08 10:33:05 (6 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/maintenance/3.0/Modelica/Mechanics/Rotational.mo
r1119 r1129 6 6 7 7 annotation ( 8 version="1.1.1", versionDate="2007-11-22", 8 version="1.1.1", versionDate="2007-11-22" 9 , 9 10 Documentation(info="<html> 10 11 … … 841 842 locked, forward sliding.</p> 842 843 843 </HTML>"), __Dymola_Commands(file="Scripts/__Dymola_CoupledClutches.mos" 844 "Simulate and Plot"), 844 </HTML>"), __Dymola_Commands(file="Scripts/__Dymola_CoupledClutches.mos" "Simulate and Plot"), 845 845 Diagram(coordinateSystem(preserveAspectRatio=true, extent={{-140,-80},{ 846 846 140,80}}, … … 1346 1346 0))); 1347 1347 annotation ( 1348 1348 1349 Icon(coordinateSystem( 1349 1350 preserveAspectRatio=true, … … 1383 1384 Line(points={{-40,-40},{-80,-80}}, color={0,0,0}), 1384 1385 Line(points={{0,-40},{0,-4}}, color={0,0,0})})); 1385 1386 1386 equation 1387 1387 flange.phi = phi0; … … 1407 1407 1408 1408 annotation ( 1409 1409 1410 Documentation(info="<html> 1410 1411 <p> … … 1453 1454 extent={{-100,-100},{100,100}}, 1454 1455 grid={1,1}), graphics)); 1455 1456 1456 equation 1457 1457 phi = flange_a.phi; … … 1470 1470 SI.Angle phi "Absolute rotation angle of component"; 1471 1471 annotation ( 1472 1472 1473 Documentation(info="<html> 1473 1474 <p> … … 1514 1515 extent={{-100,-100},{100,100}}, 1515 1516 grid={1,1}), graphics)); 1516 1517 1517 equation 1518 1518 flange_a.phi = phi - deltaPhi/2; … … 1528 1528 1529 1529 annotation ( 1530 1530 1531 Documentation(info="<html> 1531 1532 <p> … … 1574 1575 Line(points={{-96,0},{-60,0},{-42,-32},{-12,30},{18,-30},{48,28},{ 1575 1576 62,0},{96,0}}, color={0,0,255})})); 1576 1577 1577 equation 1578 1578 tau = c*(phi_rel - phi_rel0); … … 1585 1585 "Damping constant"; 1586 1586 annotation ( 1587 1587 1588 Documentation(info="<html> 1588 1589 <p> … … 1641 1642 fillColor={128,128,128}, 1642 1643 fillPattern=FillPattern.Solid)})); 1643 1644 1644 equation 1645 1645 tau = d*w_rel; … … 1657 1657 1658 1658 annotation ( 1659 1659 1660 Documentation(info="<html> 1660 1661 <p> … … 1732 1733 Line(points={{-96,0},{-80,0}}, color={0,0,0}), 1733 1734 Line(points={{96,0},{80,0}}, color={0,0,0})})); 1734 1735 1735 equation 1736 1736 tau = c*(phi_rel - phi_rel0) + d*w_rel; … … 1763 1763 constant SI.Angle bEps = 1e-10 "minimum backlash"; 1764 1764 annotation ( 1765 1765 1766 Documentation(info="<html> 1766 1767 <p> … … 2036 2037 fillPattern=FillPattern.Solid, 2037 2038 textString="b")})); 2038 2039 2039 equation 2040 2040 if initial() then … … 2194 2194 2195 2195 </HTML> 2196 "), Icon(coordinateSystem( 2196 ") , 2197 Icon(coordinateSystem( 2197 2198 preserveAspectRatio=true, 2198 2199 extent={{-100,-100},{100,100}}, … … 2320 2321 rotation=90))); 2321 2322 annotation ( 2323 2322 2324 Icon(coordinateSystem( 2323 2325 preserveAspectRatio=true, … … 2366 2368 fillPattern=FillPattern.Solid), 2367 2369 Line(points={{0,90},{80,70},{80,-40},{70,-40}}, color={0,0,127}), 2368 Line(points={{0,90},{-80,70},{-80,-40},{-70,-40}}, color={0,0,127}), 2370 Line(points={{0,90},{-80,70},{-80,-40},{-70,-40}}, color={0,0,127}), 2371 2369 2372 Text( 2370 2373 extent={{-150,-180},{150,-140}}, … … 2516 2519 rotation=90))); 2517 2520 annotation ( 2521 2518 2522 Icon(coordinateSystem( 2519 2523 preserveAspectRatio=true, … … 2649 2653 extent={{-100,-100},{100,100}}, 2650 2654 grid={1,1}), graphics)); 2651 2652 2655 equation 2653 2656 // Constant auxiliary variable … … 2714 2717 rotation=90))); 2715 2718 annotation ( 2719 2716 2720 Icon(coordinateSystem( 2717 2721 preserveAspectRatio=true, … … 2847 2851 extent={{-100,-100},{100,100}}, 2848 2852 grid={1,1}), graphics)); 2849 2850 2853 equation 2851 2854 // Constant auxiliary variable … … 2888 2891 2889 2892 annotation ( 2893 2890 2894 Documentation(info="<html> 2891 2895 <p> … … 2959 2963 extent={{-100,-100},{100,100}}, 2960 2964 grid={1,1}), graphics)); 2961 2962 2965 equation 2963 2966 phi_a = flange_a.phi - internalSupport.phi; … … 3315 3318 0))); 3316 3319 annotation ( 3320 3317 3321 Documentation(info="<HTML> 3318 3322 <p> … … 3502 3506 lineColor={128,128,128}, 3503 3507 textString="rotation axis")})); 3504 3505 3508 equation 3506 3509 (1 + ratio)*carrier.phi = sun.phi + ratio*ring.phi; … … 3579 3582 fillColor={192,192,192}), 3580 3583 Polygon( 3581 points={{-60,10},{-60,20},{-40,40},{-40,-40},{-60,-20},{-60,10}}, 3584 points={{-60,10},{-60,20},{-40,40},{-40,-40},{-60,-20},{-60,10}}, 3585 3582 3586 lineColor={0,0,0}, 3583 3587 fillPattern=FillPattern.HorizontalCylinder, … … 3639 3643 "Transmission ratio (flange_a.phi/flange_b.s)"; 3640 3644 annotation ( 3645 3641 3646 Documentation(info="<html> 3642 3647 This is an ideal mass- and inertialess gearbox which transforms a … … 3715 3720 extent={{-100,-100},{100,100}}, 3716 3721 grid={1,1}), graphics)); 3717 3718 3722 equation 3719 3723 (flangeR.phi - internalSupportR.phi) = ratio*(flangeT.s - internalSupportT.s); … … 4014 4018 SI.AngularAcceleration a_rel(start=0) "Relative angular acceleration"; 4015 4019 annotation ( 4020 4016 4021 Documentation(info="<html> 4017 4022 <p> … … 4108 4113 color={0,0,0}, 4109 4114 pattern=LinePattern.Dash)})); 4110 4111 4115 equation 4112 4116 phi_rel = flange_b.phi - flange_a.phi; … … 4156 4160 rotation=0))); 4157 4161 annotation ( 4162 4158 4163 Documentation(info="<HTML> 4159 4164 <p> … … 4226 4231 extent={{-100,-100},{100,100}}, 4227 4232 grid={2,2}), graphics)); 4228 4229 4233 protected 4230 4234 parameter Modelica.SIunits.AngularFrequency w_crit=2*Modelica.Constants.pi*f_crit … … 4270 4274 rotation=0))); 4271 4275 annotation ( 4276 4272 4277 Documentation(info="<html> 4273 4278 <p> … … 4340 4345 extent={{-100,-100},{100,100}}, 4341 4346 grid={2,2}), graphics)); 4342 4343 4347 protected 4344 4348 parameter Modelica.SIunits.AngularFrequency w_crit=2*Modelica.Constants.pi*f_crit … … 4378 4382 rotation=0))); 4379 4383 annotation ( 4384 4380 4385 Documentation(info="<html> 4381 4386 <p> … … 4424 4429 extent={{-100,-100},{100,100}}, 4425 4430 grid={2,2}), graphics)); 4426 4427 4431 equation 4428 4432 phi = flange.phi - internalSupport.phi; … … 4501 4505 extent={{-150,100},{150,60}}, 4502 4506 textString="%name", 4503 lineColor={0,0,255})})); 4507 lineColor={0,0,255})}) 4508 ); 4504 4509 protected 4505 4510 function position … … 4551 4556 rotation=0))); 4552 4557 annotation ( 4558 4553 4559 Documentation(info="<HTML> 4554 4560 <p> … … 4590 4596 Line(points={{-10,-50},{10,-30}}, color={0,0,0}), 4591 4597 Line(points={{10,-50},{30,-30}}, color={0,0,0}), 4592 Line(points={{-54,-42},{-38,-28},{-16,-16},{4,-14},{22,-18},{36,-26}, 4593 {48,-36},{56,-46},{64,-58}}, color={0,0,0}), 4598 Line( 4599 points={{-54,-42},{-38,-28},{-16,-16},{4,-14},{22,-18},{36,-26},{ 4600 48,-36},{56,-46},{64,-58}}, 4601 color={0,0,0}), 4594 4602 Polygon( 4595 4603 points={{-61,-66},{-44,-42},{-58,-36},{-61,-66}}, … … 4621 4629 fillColor={0,0,0}, 4622 4630 fillPattern=FillPattern.Solid)})); 4623 4624 4631 equation 4625 4632 flange.tau = -tau; … … 4637 4644 4638 4645 annotation ( 4646 4639 4647 Documentation(info="<HTML> 4640 4648 <p> … … 4712 4720 fillColor={0,0,0}, 4713 4721 fillPattern=FillPattern.Solid)})); 4714 4715 4722 equation 4716 4723 flange_a.tau = tau; … … 4934 4941 preserveAspectRatio=true, 4935 4942 extent={{-100,-100},{100,100}}, 4936 grid={1,1}), graphics)); 4943 grid={1,1}), graphics) 4944 ); 4937 4945 equation 4938 4946 phi = flange.phi; … … 4967 4975 preserveAspectRatio=true, 4968 4976 extent={{-100,-100},{100,100}}, 4969 grid={1,1}), graphics)); 4977 grid={1,1}), graphics) 4978 ); 4970 4979 equation 4971 4980 w = der(flange.phi); … … 5001 5010 preserveAspectRatio=true, 5002 5011 extent={{-100,-100},{100,100}}, 5003 grid={1,1}), graphics)); 5012 grid={1,1}), graphics) 5013 ); 5004 5014 equation 5005 5015 w = der(flange.phi); … … 5038 5048 preserveAspectRatio=true, 5039 5049 extent={{-100,-100},{100,100}}, 5040 grid={1,1}), graphics)); 5050 grid={1,1}), graphics) 5051 ); 5041 5052 equation 5042 5053 phi_rel = flange_b.phi - flange_a.phi; … … 5078 5089 preserveAspectRatio=true, 5079 5090 extent={{-100,-100},{100,100}}, 5080 grid={1,1}), graphics)); 5091 grid={1,1}), graphics) 5092 ); 5081 5093 equation 5082 5094 phi_rel = flange_b.phi - flange_a.phi; … … 5120 5132 preserveAspectRatio=true, 5121 5133 extent={{-100,-100},{100,100}}, 5122 grid={1,1}), graphics)); 5134 grid={1,1}), graphics) 5135 ); 5123 5136 equation 5124 5137 phi_rel = flange_b.phi - flange_a.phi; … … 5159 5172 preserveAspectRatio=true, 5160 5173 extent={{-100,-100},{100,100}}, 5161 grid={1,1}), graphics)); 5174 grid={1,1}), graphics) 5175 ); 5162 5176 equation 5163 5177 flange_a.phi = flange_b.phi; … … 5194 5208 preserveAspectRatio=true, 5195 5209 extent={{-100,-100},{100,100}}, 5196 grid={1,1}), graphics)); 5210 grid={1,1}), graphics) 5211 ); 5197 5212 equation 5198 5213 flange_a.phi = flange_b.phi; … … 5219 5234 SI.Angle phi "Absolute rotation angle of flange"; 5220 5235 flow SI.Torque tau "Cut torque in the flange"; 5221 annotation(defaultComponentName = "flange_a", 5236 annotation(defaultComponentName = "flange_a" 5237 , 5222 5238 Documentation(info="<html> 5223 5239 <p> … … 5280 5296 SI.Angle phi "Absolute rotation angle of flange"; 5281 5297 flow SI.Torque tau "Cut torque in the flange"; 5282 annotation(defaultComponentName = "flange_b", 5298 annotation(defaultComponentName = "flange_b" 5299 , 5283 5300 Documentation(info="<html> 5284 5301 <p> … … 5503 5520 preserveAspectRatio=true, 5504 5521 extent={{-100,-100},{100,100}}, 5505 grid={2,2}), graphics)); 5522 grid={2,2}), graphics) 5523 ); 5506 5524 end PartialTwoFlanges; 5507 5525 … … 5540 5558 extent={{21,-95},{61,-96}}, 5541 5559 lineColor={95,95,95}, 5542 textString="(if not useSupport)")}), 5560 textString="(if not useSupport)")}) 5561 , 5543 5562 Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ 5544 5563 100,100}}), graphics={ … … 5617 5636 extent={{24,-97},{64,-98}}, 5618 5637 lineColor={95,95,95}, 5619 textString="(if not useSupport)")}), 5638 textString="(if not useSupport)")}) 5639 , 5620 5640 Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ 5621 5641 100,100}}), graphics={ … … 5672 5692 5673 5693 annotation ( 5694 5674 5695 Documentation(info="<html> 5675 5696 <p> … … 5687 5708 extent={{-100,-100},{100,100}}, 5688 5709 grid={2,2}), graphics)); 5689 5690 5710 equation 5691 5711 phi_rel = flange_b.phi - flange_a.phi; … … 5718 5738 5719 5739 annotation ( 5740 5720 5741 Documentation(info="<html> 5721 5742 <p> … … 5753 5774 extent={{-100,-100},{100,100}}, 5754 5775 grid={2,2}), graphics)); 5755 5756 5776 equation 5757 5777 phi_rel = flange_b.phi - flange_a.phi; … … 5796 5816 extent={{-38,-98},{-6,-96}}, 5797 5817 lineColor={95,95,95}, 5798 textString="(if useSupport)")}), 5818 textString="(if useSupport)")}) 5819 , 5799 5820 Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ 5800 5821 100,100}}), graphics={ … … 5873 5894 extent={{-38,-98},{-6,-96}}, 5874 5895 lineColor={95,95,95}, 5875 textString="(if useSupport)")}), 5896 textString="(if useSupport)")}) 5897 , 5876 5898 Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100},{ 5877 5899 100,100}}), graphics={ … … 5937 5959 5938 5960 annotation ( 5961 5939 5962 Documentation(info="<html> 5940 5963 … … 6009 6032 extent={{-100,-100},{100,100}}, 6010 6033 grid={1,1}), graphics)); 6011 6012 6034 protected 6013 6035 Rotational.Interfaces.InternalSupport internalSupportR(tau = - flangeR.tau) … … 6067 6089 fillColor={0,0,0}, 6068 6090 fillPattern=FillPattern.Solid), 6069 Line(points={{-58,-82},{-42,-68},{-20,-56},{0,-54},{18,-56},{34,-62}, 6070 {44,-72},{54,-82},{60,-94}}, color={0,0,0}), 6091 Line( 6092 points={{-58,-82},{-42,-68},{-20,-56},{0,-54},{18,-56},{34,-62},{ 6093 44,-72},{54,-82},{60,-94}}, 6094 color={0,0,0}), 6071 6095 Polygon( 6072 6096 points={{-65,-98},{-46,-80},{-58,-72},{-65,-98}}, … … 6120 6144 rotation=0))); 6121 6145 annotation ( 6146 6122 6147 Documentation(info="<html> 6123 6148 <p> … … 6164 6189 extent={{-100,-100},{100,100}}, 6165 6190 grid={1,1}), graphics)); 6166 6167 6191 equation 6168 6192 0 = flange.tau; … … 6179 6203 rotation=0))); 6180 6204 annotation ( 6205 6181 6206 Documentation(info="<html> 6182 6207 <p> … … 6224 6249 extent={{-100,-100},{100,100}}, 6225 6250 grid={1,1}), graphics)); 6226 6227 6251 equation 6228 6252 0 = flange_a.tau + flange_b.tau; … … 6271 6295 constant SI.AngularAcceleration unitAngularAcceleration = 1 annotation(HideResult=true); 6272 6296 constant SI.Torque unitTorque = 1 annotation(HideResult=true); 6273 Real sa0 = (tau0_max + (tau0_max - tau0))/unitTorque6274 "Value of sa when start of forward sliding at w=0";6275 6297 equation 6276 6298 /* Friction characteristic … … 6279 6301 if for each configuration special code shall be generated) 6280 6302 */ 6281 startForward = pre(mode) == Stuck and sa > tau0_max/unitTorque or 6303 startForward = pre(mode) == Stuck and 6304 (pre(startForward) or sa > tau0_max/unitTorque and sa > tau0/unitTorque) or 6282 6305 pre(mode) == Backward and w_relfric > w_small or initial() and w_relfric > 0; 6283 startBackward = pre(mode) == Stuck and sa < -tau0_max/unitTorque or 6306 startBackward = pre(mode) == Stuck and 6307 (pre(startBackward) or sa < -tau0_max/unitTorque and sa < -tau0/unitTorque) or 6284 6308 pre(mode) == Forward and w_relfric < -w_small or initial() and w_relfric < 0; 6285 6309 locked = not free and … … 6287 6311 a_relfric/unitAngularAcceleration = if locked then 0 else 6288 6312 if free then sa else 6289 if startForward then sa - sa0else6290 if startBackward then sa + sa0else6291 if pre(mode) == Forward then sa - sa0else6292 sa + sa0;6313 if startForward then sa - tau0/unitTorque else 6314 if startBackward then sa + tau0/unitTorque else 6315 if pre(mode) == Forward then sa - tau0/unitTorque else 6316 sa + tau0/unitTorque; 6293 6317 /* Friction torque has to be defined in a subclass. Example for a clutch: 6294 6318 tau = if locked then sa else
