aboutsummaryrefslogtreecommitdiffstats
path: root/modelica-parser-lalrpop/examples/modelica_models/breaking_pendulum.mo
diff options
context:
space:
mode:
Diffstat (limited to 'modelica-parser-lalrpop/examples/modelica_models/breaking_pendulum.mo')
-rw-r--r--modelica-parser-lalrpop/examples/modelica_models/breaking_pendulum.mo21
1 files changed, 21 insertions, 0 deletions
diff --git a/modelica-parser-lalrpop/examples/modelica_models/breaking_pendulum.mo b/modelica-parser-lalrpop/examples/modelica_models/breaking_pendulum.mo
new file mode 100644
index 0000000..87b58d3
--- /dev/null
+++ b/modelica-parser-lalrpop/examples/modelica_models/breaking_pendulum.mo
@@ -0,0 +1,21 @@
+model BreakingPendulum3
+ parameter Real m=1, g=9.81;
+ input Boolean Broken;
+ input Real u;
+ Real pos[2], vel[2];
+ constant Real PI=3.141592653589793;
+ Real phi(start=PI/4), phid;
+ Real L=0.5, Ldot;
+equation
+ pos = [L*sin(phi); -L*cos(phi)];
+ vel = der(pos);
+ phid = der(phi);
+ Ldot = der(L);
+ 0 = if not Broken then [
+ // Equations of pendulum
+ m*der(phid) + m*g*L*sin(phi) - u;
+ der(Ldot)]
+ else
+ // Equations of free flying mass
+ m*der(vel) = m*[0; -g];
+end BreakingPendulum3;