在Modelica中建立弹性摆的模型

在Modelica中建立弹性摆的模型,modelica,Modelica,我想在Modelica中模拟一个简单的弹性摆; 但我没有得到正确的结果-有人能帮忙吗? 质量、标称摆长和重力常数取一 model SP parameter Real k = 1; "spring constant" Real y1(start=1), y2(start=0),y3,y4; Real ld; equation ld= k* (sqrt(y1^2+y2^2)-1)/sqrt(y1^2+y2^2); der(y1) = y3; der(y2) = y4;

我想在Modelica中模拟一个简单的弹性摆; 但我没有得到正确的结果-有人能帮忙吗?
质量、标称摆长和重力常数取一

model SP
  parameter Real k = 1; "spring constant"
  Real y1(start=1), y2(start=0),y3,y4;
  Real ld;

equation 
  ld= k* (sqrt(y1^2+y2^2)-1)/sqrt(y1^2+y2^2);
  der(y1) = y3;
  der(y2) = y4;
  der(y3) = -y1*ld;
  der(y4)= -y2*ld;


end SP;

首先是一个小的语法错误。将
k=1
后面的逗号移动到
后面的“弹簧常数”

其次,给出
y3
y4
初始条件。使用
开始
初始方程
。以下是Wolfram SystemModeler中
ld
的解决方案图:


您得到的结果是什么,为什么不合适?如果您使用变量名来解释预期的含义,或者添加注释和解释,就像您对“k”所做的那样,可能会有所帮助。
  parameter Real k = 1 "spring constant";