Changeset 542


Ignore:
Timestamp:
Jun 21, 2008, 1:01:41 PM (14 years ago)
Author:
Argimiro Resende Secchi
Message:

Adding polar coordinate for pendulum sample.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sample/miscellaneous/sample_pend.mso

    r396 r542  
    5353        SET
    5454        g     = 9.8 * 'm/s^2';
    55         L     = 1 * 'm';
     55        L     = 0.9 * 'm';
    5656
    5757        INITIAL
    5858        "Initial Position x"
    59         x = -1 * 'm';
     59        x = 0.9 * 'm';
    6060
    6161        "Initial x Velocity"
    6262        w = 0 * 'm/s';
    6363       
    64         #"Initial Position y"  y = 0 * "m";
    65         #"Initial y Velocity"  z = 0 * "m/s";
    66 
    6764        OPTIONS
    6865        TimeStep = 0.1;
    69         TimeEnd = 30;
    70         Integration = "original"; # original, index0 or index1
     66        TimeEnd = 36;
     67        Integration = "original"; # original, index0, or index1
    7168
    7269        NLASolver(
     
    7572        );
    7673        DAESolver(
    77                 File = "dasslc",
     74                #File = "dasslc",
    7875                #File = "dassl", # fail when "original" (high-index)
     76                File = "mebdf",
     77                #File = "pside",
     78                #File = "sundials", # fail when "original" (high-index)
     79                RelativeAccuracy = 1e-6,
     80                AbsoluteAccuracy = 1e-8
     81        );
     82        SparseAlgebra = true;
     83end
     84
     85
     86FlowSheet pend_polar
     87        PARAMETERS
     88        g     as acceleration (Brief = "Gravity acceleration");
     89        L     as length (Brief = "Pendulum cable length");
     90       
     91        VARIABLES
     92        phi   as angle (Brief="Angle");
     93        omega as frequency (Brief="Angular velocity", Lower=-100);
     94        x     as length_delta(Brief="Position x");
     95        y     as length_delta(Brief="Position y");
     96        w     as velocity(Brief = "Velocity for x");
     97        z     as velocity(Brief = "Velocity for y");
     98        T     as Real(Brief = "Tension on cable",Default=10,Unit='1/s^2');
     99       
     100        EQUATIONS
     101        "x Position"
     102        x = L*sin(phi);
     103
     104        "y Position"
     105        y = -L*cos(phi);
     106
     107        "Velocity on x"
     108        w = L*omega*cos(phi);
     109       
     110        "Velocity on y"
     111        z = L*omega*sin(phi);
     112       
     113        "Tension"
     114        T = -g*cos(phi)/L-omega^2;
     115
     116        "Angular velocity"
     117        diff(phi) = omega*'rad';
     118
     119        "Angular acceleration"
     120        diff(omega) = -g*sin(phi)/L;
     121
     122        SET
     123        g     = 9.8 * 'm/s^2';
     124        L     = 0.9 * 'm';
     125
     126        INITIAL
     127        "Initial Position x"
     128        x = 0.9 * 'm';
     129
     130        "Initial x Velocity"
     131        w = 0 * 'm/s';
     132       
     133        OPTIONS
     134        TimeStep = 0.1;
     135        TimeEnd = 36;
     136        Integration = "original"; # original, index0, or index1
     137
     138        NLASolver(
     139                RelativeAccuracy = 1e-8,
     140                AbsoluteAccuracy = 1e-9
     141        );
     142        DAESolver(
     143                #File = "dasslc",
     144                File = "dassl", # fail when "original" (high-index)
    79145                #File = "mebdf",
    80146                #File = "pside",
    81147                #File = "sundials", # fail when "original" (high-index)
    82148                RelativeAccuracy = 1e-6,
    83                 AbsoluteAccuracy = 1e-8,
    84                 EventAccuracy = 1e-3
     149                AbsoluteAccuracy = 1e-8
    85150        );
    86         SparseAlgebra = true; # dense or sparse
     151        SparseAlgebra = true;
    87152end
Note: See TracChangeset for help on using the changeset viewer.