model IdealRollingWheel "Simple 1-dim. model of an ideal rolling wheel without inertia"
extends Rotational.Interfaces.PartialElementaryRotationalToTranslational;
parameter Modelica.SIunits.Distance radius(start = 0.3) "Wheel radius";
equation
0 = radius * flangeT.f + flangeR.tau;
(flangeR.phi - internalSupportR.phi) * radius = flangeT.s - internalSupportT.s;
annotation (
Icon(
coordinateSystem(
preserveAspectRatio = true,
extent = {
{-100, -100},
{100, 100}}),
graphics = {
Rectangle(
lineColor = {64, 64, 64},
fillColor = {192, 192, 192},
fillPattern = FillPattern.HorizontalCylinder,
extent = {
{-100, -10},
{-46, 10}}),
Ellipse(
lineColor = {64, 64, 64},
fillColor = {255, 255, 255},
fillPattern = FillPattern.HorizontalCylinder,
extent = {
{-50, -80},
{10, 80}}),
Rectangle(
lineColor = {64, 64, 64},
fillColor = {255, 255, 255},
pattern = LinePattern.None,
fillPattern = FillPattern.HorizontalCylinder,
extent = {
{-20, -80},
{12, 80}}),
Ellipse(
lineColor = {64, 64, 64},
fillColor = {128, 128, 128},
fillPattern = FillPattern.Solid,
extent = {
{-16, -80},
{44, 80}}),
Ellipse(
lineColor = {192, 192, 192},
fillColor = {192, 192, 192},
fillPattern = FillPattern.Solid,
extent = {
{-2, -52},
{34, 52}}),
Ellipse(
lineColor = {64, 64, 64},
fillColor = {192, 192, 192},
fillPattern = FillPattern.HorizontalCylinder,
extent = {
{12, -10},
{20, 10}}),
Rectangle(
lineColor = {64, 64, 64},
fillColor = {192, 192, 192},
pattern = LinePattern.None,
fillPattern = FillPattern.HorizontalCylinder,
extent = {
{16, -10},
{60, 10}}),
Ellipse(
fillColor = {192, 192, 192},
fillPattern = FillPattern.Solid,
extent = {
{56, -10},
{64, 10}}),
Text(
lineColor = {0, 0, 255},
extent = {
{-150, 90},
{150, 130}},
textString = "%name"),
Polygon(
lineColor = {0, 127, 0},
fillColor = {0, 127, 0},
fillPattern = FillPattern.Solid,
points = {
{80, 10},
{80, 26},
{60, 26},
{60, 20},
{70, 20},
{70, -20},
{60, -20},
{60, -26},
{80, -26},
{80, -10},
{90, -10},
{90, 10},
{80, 10}}),
Line(points = {
{-100, -20},
{-60, -20}}),
Line(points = {
{-100, -20},
{-100, -100}}),
Line(points = {
{-100, 20},
{-60, 20}}),
Line(
points = {
{100, -90},
{-40, -90}},
color = {0, 127, 0}),
Line(
points = {
{70, -26},
{70, -50},
{100, -50},
{100, -100}},
color = {0, 127, 0}),
Line(
origin = {-2.5, 80},
points = {
{-17.5, 0},
{17.5, 0}},
color = {64, 64, 64}),
Line(
origin = {-2.5, -80},
points = {
{-17.5, 0},
{17.5, 0}},
color = {64, 64, 64}),
Line(
origin = {38, 10},
points = {
{-22, 0},
{22, 0}},
color = {64, 64, 64}),
Line(
origin = {38, -10},
points = {
{-22, 0},
{22, 0}},
color = {64, 64, 64}),
Text(
extent = {
{-150, -120},
{150, -150}},
textString = "radius=%radius")}),
Documentation(info = "<html>\n<p>\nA simple kinematic model of a rolling wheel which has no inertia and\nno rolling resistance. This component defines the kinematic constraint:\n</p>\n\n<pre>\n (flangeR.phi - internalSupportR.phi)*wheelRadius = (flangeT.s - internalSupportT.s);\n</pre>\n</html>"));
end IdealRollingWheel;