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