Torque

model Torque "Input signal acting as external torque on a flange"
    extends Modelica.Mechanics.Rotational.Interfaces.PartialElementaryOneFlangeAndSupport2;

    Modelica.Blocks.Interfaces.RealInput tau(unit = "N.m") "Accelerating torque acting at flange (= -flange.tau)"
        annotation (Placement(transformation(extent = {
            {-140, -20}, 
            {-100, 20}})));
equation
    flange.tau = -tau;

    annotation (
        Documentation(info = "<html>\n<p>\nThe input signal <strong>tau</strong> defines an external\ntorque in [Nm] which acts (with negative sign) at\na flange connector, i.e., the component connected to this\nflange is driven by torque <strong>tau</strong>.</p>\n<p>\nThe input signal can be provided from one of the signal generator\nblocks of Modelica.Blocks.Sources.\n</p>\n</html>"),
        Icon(
            coordinateSystem(
                preserveAspectRatio = true,
                extent = {
                    {-100, -100}, 
                    {100, 100}}),
            graphics = {
                Text(
                    extent = {
                        {-150, 110}, 
                        {150, 70}},
                    textString = "%name",
                    lineColor = {0, 0, 255}), 
                Text(
                    extent = {
                        {-62, -29}, 
                        {-141, -70}},
                    textString = "tau"), 
                Polygon(
                    points = {
                        {86, 0}, 
                        {66, 58}, 
                        {37, 27}, 
                        {86, 0}},
                    fillPattern = FillPattern.Solid), 
                Line(points = {
                    {0, -10}, 
                    {0, -101}}), 
                Polygon(
                    points = {
                        {-53, -54}, 
                        {-36, -30}, 
                        {-50, -24}, 
                        {-53, -54}},
                    fillPattern = FillPattern.Solid), 
                Line(
                    points = {
                        {-84, 0}, 
                        {-78, 18}, 
                        {-56, 46}, 
                        {-20, 60}, 
                        {20, 60}, 
                        {60, 40}, 
                        {82, 8}},
                    smooth = Smooth.Bezier,
                    thickness = 0.5), 
                Line(
                    points = {
                        {-50, -40}, 
                        {-38, -24}, 
                        {-18, -12}, 
                        {0, -10}, 
                        {18, -12}, 
                        {38, -24}, 
                        {50, -40}},
                    smooth = Smooth.Bezier)}),
        Diagram(
            coordinateSystem(
                preserveAspectRatio = true,
                extent = {
                    {-100, -100}, 
                    {100, 100}}),
            graphics = {
                Text(
                    extent = {
                        {14, 86}, 
                        {82, 73}},
                    lineColor = {128, 128, 128},
                    textString = "rotation axis"), 
                Polygon(
                    points = {
                        {10, 80}, 
                        {-10, 85}, 
                        {-10, 75}, 
                        {10, 80}},
                    lineColor = {128, 128, 128},
                    fillColor = {128, 128, 128},
                    fillPattern = FillPattern.Solid), 
                Line(
                    points = {
                        {-80, 80}, 
                        {-9, 80}},
                    color = {128, 128, 128}), 
                Line(
                    points = {
                        {-88, 0}, 
                        {-64, 30}, 
                        {-36, 52}, 
                        {-2, 62}, 
                        {28, 56}, 
                        {48, 44}, 
                        {64, 28}, 
                        {76, 14}, 
                        {80, 10}},
                    thickness = 0.5,
                    smooth = Smooth.Bezier), 
                Polygon(
                    points = {
                        {86, 0}, 
                        {66, 58}, 
                        {38, 28}, 
                        {86, 0}},
                    fillPattern = FillPattern.Solid)}));
end Torque;