Значения угла перевернутого маятника в Modelica

Я хочу создать систему, которая будет имитировать маятник в виде перевернутого колеса с обменом моментами, показанным ниже.

введите здесь описание изображения

Пока у меня есть система, состоящая из трех моделей:

RotationalPendulum.mo

model RotationalPendulum
  import Modelica.SIunits;
  Modelica.Mechanics.Rotational.Interfaces.Flange_a p;
  parameter SIunits.Length L = 1.0;
  parameter SIunits.Mass m = 1.0;
protected
  SIunits.AngularVelocity omega;
  SIunits.AngularAcceleration alpha;
  parameter SIunits.MomentOfInertia J = m * L ^ 2;
  constant Real g = Modelica.Constants.g_n;
equation
  // equation to compute p.tau
end RotationalPendulum;

FrictionlessJoint.mo

model FrictionlessJoint
    Modelica.Mechanics.Rotational.Interfaces.Flange_a a;
    Modelica.Mechanics.Rotational.Interfaces.Flange_b b;
equation
    a.tau = 0;
    b.tau = 0;
end FrictionlessJoint;

PendulumSystem.mo

model PendulumSystem "Simple pendulum"
  RotationalPendulum pend(m = 1, p(phi(start = 1, fixed = true)));
  FrictionlessJoint joint;
  Modelica.Mechanics.Rotational.Components.Fixed fixed;
equation
  connect(pend.p,joint.a);
  connect(joint.b,fixed.flange);
end PendulumSystem;

В модели RotationalPendulum.mo есть уравнение, которое должно отвечать за вычисление значения Tau и имеет следующую форму:

tau=gamma1*sin(q1)+kp*(q2+gamma2*q1)+kv*(d/dt(q2)+gamma2*d/dt(q1))

где gamma1, gamma2, kp, kv — константы и q1 = theta1, q2 = (theta1 + theta2).

У меня проблема в том, что я не знаю, как получить значение тета1, так как это угол стержня, но уравнение расположено в модели вращающегося маятника, где я могу получить доступ только к значению тета2, которое равно p.phi ( если я не ошибаюсь). Спасибо за любые идеи и помощь.


person yojimbo87    schedule 17.01.2014    source источник


Ответы (2)


Я не знаю, какие у вас есть ограничения, но я бы просто использовал библиотеку Modelica MultiBody. Ваша модель будет состоять из земли, безмассового стержня и цилиндра. Земля и стержень будут соединены вращающимся соединением, а стержень и цилиндр также будут соединены вращательным соединением. Поворотное соединение по умолчанию не имеет трения.

Примечание: я не совсем понимаю смысл решения для омега2. Является ли это колесо симметричным? Если это так, колесо просто продолжит вращаться с начальной скоростью. Так почему бы не рассматривать его как точечную массу?

person Michael Tiller    schedule 17.01.2014

Посмотрите на аналогичную модель двойного маятника, определенную в Modelica_LinearSystems2:

Modelica_LinearSystems2.Controller.Examples.Components.DoublePendulum

Можно найти на github: https://github.com/modelica/Modelica_LinearSystems2

person modelicaFan    schedule 17.10.2017