Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.25;
Скачать: CL | DM;

Вниз

"Формула маятника"   Найти похожие ветки 

 
RASkov   (2007-01-23 12:39) [0]

Люди, подскажите пожалуйста(ну не силен я в математике)формулу по которой можно реализовать движение типа маятника, т.е. мне нужно расчитывать координаты точки по полукругу относительно центра, с уменьшением длинны качания. Т.е, на веревке висит груз оттянули в сторону, отпустили... вот нужно координаты ентого груза расчитать в 2D.


 
novill ©   (2007-01-23 12:52) [1]

Задача в общем школьная, но самый большой вопрос вызывает фраза
> с уменьшением длинны качания
поясни...


 
Думкин ©   (2007-01-23 12:52) [2]


> с уменьшением длинны качания

Расшифруй.

Дело не в математике. Дело хотя бы для начала в собственном понимании - а чего же я хочу. А то как в мультике: "так вы и есть за меня будете? - Ага".


 
clickmaker ©   (2007-01-23 12:56) [3]


> с уменьшением длинны качания

енто называется "амплитуда колебаний"


 
TCrash   (2007-01-23 12:56) [4]

novill ©   (23.01.07 12:52) [1]
Я так понимаю не длины, а амплитуды


 
RASkov   (2007-01-23 12:58) [5]

> [1] novill ©   (23.01.07 12:52)


> Задача в общем школьная,

В школе, математику вроде знал, а сейчас забыл все :(

> > с уменьшением длинны качания
>
> поясни...
> Расшифруй.


Ну это его остановка, т.е. что бы он не вечно качался, а как груз на веревке, через какое-то время остановился.


 
TCrash   (2007-01-23 12:59) [6]

Задача по механике. Вспоминать влом, но использовать нужно E=mv^2 , v=v0+at, где а=g ну и из той же оперы.
В общем учебник физики за 6й класс


 
TCrash   (2007-01-23 13:00) [7]

RASkov   (23.01.07 12:58) [5]
>Ну это его остановка, т.е. что бы он не вечно
>качался, а как груз на веревке, через какое-то время
>остановился.

Тогда еще и сопромат :)
Учитывать жесткость веревки :)


 
Думкин ©   (2007-01-23 13:04) [8]

exp(-aT)*sin(b0+bT)


 
novill ©   (2007-01-23 13:08) [9]

> [5] RASkov   (23.01.07 12:58)

Я сейчас эти уравнения не возьмусь записать даже на форуме.

Вбей в поиск "затухающие колебания на примере физического маятника" и быстро найдешь нужные...


 
RASkov   (2007-01-23 13:09) [10]

> [3] clickmaker ©   (23.01.07 12:56)


> [4] TCrash   (23.01.07 12:56)

Вот - вот... амплитуды, наверное.


       O <- Центр
      .
     .
    .
   .
  .
 .
G <-груз

       O
        .
         .
          .
           .
            .
     вот     .
<-----------> G



> [8] Думкин ©   (23.01.07 13:04)

Если не трудно можно немного прокомментировать что, где, почем....
Спасибо.


 
RASkov   (2007-01-23 13:09) [11]

> [9] novill ©   (23.01.07 13:08)

Сейчас попробую, спасибо.


 
RASkov   (2007-01-23 13:29) [12]

> [9] novill ©   (23.01.07 13:08)

Нашел гору формул, типа как здесь привели.... сижу думаю что с ними сделать, ... т.е. как на делфи все это изобразить :(

Ну вообщем если никто больше помочь не сможет спасибо и на этом.


 
novill ©   (2007-01-23 13:48) [13]

> [12] RASkov   (23.01.07 13:29)

тебя будет интересовать формула угла отклонения от вертикальной оси.

Зная координаты точки крепления, длину маятника и угол отклонения ты сможешь получить координаты точки на конце маятника.


 
Думкин ©   (2007-01-23 13:59) [14]

> RASkov   (23.01.07 13:29) [12]

Все-таки какая модель предполагается? Для одной достаточно того, чтоя привел с комментариями, для другой таки придется численно решать дифф. уравнения ибо в квадратурах не решается.


 
Jeer ©   (2007-01-23 14:05) [15]

А мы пойдем другим путем:))

Попробуем смоделировать движение физического маятника, т.е. будем решать
численными методами уравнения движения.
Что имеем:
- груз массой m в условиях действия гравитационного поля подвешен на нерастяжимом безинерционном стержне длиной L  и отклонен от нормали на угол A0;
- во время движения под действием силы тяжести на груз действуют тормозящие силы:
   - аэродинамическая Fa = Cx * Vt^2;
   - кулоновская сила трения в оси качения Fk
- в момент времени t=0 груз приобретает свободу движения, ограниченную силой реакции стержня.

На груз действуют:
- тангенциальная составляющая  сила тяжести Ft = P * Sin(A);
- аэродинамическая сила Fa = Cx * Vt^2;
- кулоновская сила трения Fk;
Итого:
Fs = Ft - sgn(Vt) * Fa - sgn(Vt) * Fk
  sgn = 1 при Vt > 0
  sgn = -1 при Vt < 0
  sgn = 0 при Vt = 0

В начальный момент времени:
Vt = 0
A = A0
X = L * Sin(A)
Y = L*Cos(A)

Начало моделирования с шагом по времени dT.
//*****************************
Груз приобретает ускорение  At = Fs / m
Скорость  Vt = Vt + At * dT
Элементарный путь  dS = Vt * dT
Элементарный угол dA = dS / L
Полный угол A = A + dA
Координаты
X = X + L * Sin(A)
Y = Y + L * Cos(A)
//*****************************

Все вместе это называется численное интегрирование дифференциального уравнения  движения физического маятника в условиях действия диссипативных сил сопротивления.

Думкин привел результат аналитического решения дифф.ур-ний движения математического маятника в условиях действия константной диссипативной силы трения.


 
palva ©   (2007-01-23 14:10) [16]

Синусоида умноженная на экспоненту от минус t. Кучу параметров подобрать.


 
Jeer ©   (2007-01-23 14:20) [17]

palva ©   (23.01.07 14:10) [16]

повтор, см [8]


 
palva ©   (2007-01-23 14:33) [18]

> повтор, см [8]
Одна школа


 
Vlad Oshin ©   (2007-01-23 16:14) [19]


> Jeer ©   (23.01.07 14:05) [15]

Вы сейчас с кем говорили?


 
Jeer ©   (2007-01-23 16:22) [20]


> Vlad Oshin ©   (23.01.07 16:14) [19]


Иногда достаточно факта, что "слушают":)


 
RASkov   (2007-01-23 20:34) [21]

> [15] Jeer ©   (23.01.07 14:05)

Ох и запутался я...

> Иногда достаточно факта, что "слушают":)

Слушаем, слушаем... :)

Народ, кому не трудно, переведите это [15] на паскаль:)
Т.е. подправьте код:

procedure StartPendulum(const XCentr, YCentr, L: Integer; const Angle: Extended);
var X, Y, Speed, At: Extended;
begin
 Fs:=?
 At:=? / ?(пусть m = 50... гр.)
 while Speed<>0 do begin
  Form1.Canvas.FillRect(Form1.Canvas.ClipRect);
  //Груз приобретает ускорение  At = Fs / m
  //Скорость  Speed = Speed + At * dT
  //Элементарный путь  dS = Speed * dT
  //Элементарный угол dA = dS / L
  //Полный угол A = A + dA
  X := XCentr+L * Sin(Angle);
  Y := YCentr+L * Cos(Angle);
  Form1.Canvas.MoveTo(XCentr, YCentr);
  Form1.Canvas.LineTo(Round(X), Round(Y));
  Form1.Canvas.Ellipse(Round(X-5), Round(Y-5), Round(X+5), Round(Y+5));
 end;
end;


вызов StartPendulum(200, 50, 100, -70);
Думаю, понятно, что должно получиться? Я вот запутался в этих Vt, dT, dS, dA...
Может Fs как нить константой задать, и что есть dT?  Спасибо.


 
RASkov   (2007-01-23 20:42) [22]

Ясно... в "прочих", ну здесь уже лавить наверное нечего :)


 
Chort ©   (2007-01-23 21:30) [23]

Мне кажется что нужно начать с того, что m,L,Angle:real;
Потом правильно указать что откуда вводится, написать нормально формулы,
ну и вывести результат.


 
SlymRO   (2007-01-24 04:28) [24]

Писал одному охломону... лови:
unit Unit1;

interface

uses
 Windows, SysUtils, Classes, Graphics, Forms,
 StdCtrls, ExtCtrls, ActnList, Controls, Menus, AppEvnts;

type
 TForm1 = class(TForm)
   GroupBox1: TGroupBox;
   Label1: TLabel;
   U_Edit: TEdit;
   Label2: TLabel;
   L_Edit: TEdit;
   Label3: TLabel;
   G_Edit: TEdit;
   Image: TImage;
   Button1: TButton;
   Button2: TButton;
   Label4: TLabel;
   T_Edit: TEdit;
   Image1: TImage;
   Timer1: TTimer;
   ActionList1: TActionList;
   StartAcnt: TAction;
   StopAcnt: TAction;
   log: TMemo;
   procedure StartAcntExecute(Sender: TObject);
   procedure StartAcntUpdate(Sender: TObject);
   procedure StopAcntExecute(Sender: TObject);
   procedure StopAcntUpdate(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
 private
   u,l,g,T,A:extended;
   dt0:dword;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation
uses SysConst;
{$R *.dfm}

procedure TForm1.StartAcntExecute(Sender: TObject);
begin
 u:=StrToFloat(U_Edit.Text);
 l:=StrToFloat(L_Edit.Text);
 g:=StrToFloat(G_Edit.Text);
 A:=l*sin(u*PI/180);
 T:=2*PI*sqrt(l/g);
 dt0:=GetTickCount;
 T_Edit.Text:=format("%f",[T]);
 DoubleBuffered:=true;
 Timer1.Enabled:=true;
end;

procedure TForm1.StartAcntUpdate(Sender: TObject);
begin
 TAction(Sender).Enabled:=not Timer1.Enabled;
end;

procedure TForm1.StopAcntExecute(Sender: TObject);
begin
 Timer1.Enabled:=false;
end;

procedure TForm1.StopAcntUpdate(Sender: TObject);
begin
 TAction(Sender).Enabled:=Timer1.Enabled;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
const PR:integer=7;
var
 dt,x,y,K:extended;
 px,py,Cx,Cy:integer;
begin
 if not Timer1.Enabled then exit;
 //Математика маятника
 dt:=(GetTickCount-dt0)/1000;
 x:=A*cos(dt/T*2*PI);
 y:=sqrt(l*l-x*x);

 log.Lines[0]:="x/y: "+format("%f",[x])+"/"+format("%f",[y]);

 //Перевод в координаты отрисовки
 k:=trunc(Image.Height*0.9);
 Cx:=Image.Width div 2;
 Cy:=20;
 px:=trunc(x*K/l)+Cx;
 py:=trunc(y*K/l)+Cy;

 //Отрисовка
 with Image.Canvas do
 begin
   Brush.Color:=RGB(0,0,0);
   Pen.Color:=RGB(255,255,255);
   FillRect(ClipRect);
   MoveTo(Cx,Cy);
   LineTo(px,py);
   Brush.Color:=Pen.Color;
   Ellipse(px-PR,py-PR,px+PR,py+PR);
 end;
end;

end.


 
Думкин ©   (2007-01-24 06:10) [25]


> Chort ©   (23.01.07 21:30) [23]
> Мне кажется что нужно начать с того, что m,L,Angle:real;
>

А можно обоснование такого начала?


 
novill ©   (2007-01-24 09:48) [26]

> [24] SlymRO   (24.01.07 04:28)


Может еще и DFM-ку бросишь?
Было бы здорово :)


 
Jeer   (2007-01-24 09:57) [27]


> novill ©   (24.01.07 09:48) [26]


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

Тем не менее, поясню:
dT = дискретность по времени, можно константой, можно как в [24]
Fs - суммарная сила, действующая на груз, формула приведена в [15]

Все остальное легко кодируется в pascal-программу, если вообще-то знаешь язык.


 
SlymRO   (2007-01-24 09:57) [28]

novill ©   (24.01.07 9:48) [26]
Может еще и DFM-ку

DFM-ку несложно и самому сделать, на свой вкус и цвет...


 
novill ©   (2007-01-24 10:16) [29]

> [27] Jeer   (24.01.07 09:57)

Если ты не заметил, автор вопроса - не я :)

А ДФМка нужна была просто полюбопытствовать, а не "мозгом думать" :)

>DFM-ку ... на свой вкус и цвет... У меня вот сейчас ни вкуса, ни цвета, а на картинку с качающимся мячиком прикольно посмотреть :)


 
Jeer   (2007-01-24 10:20) [30]


> novill ©   (24.01.07 10:16) [29]


Извини, но все равно халявщик:))


 
SlymRO   (2007-01-24 11:18) [31]

novill ©   (24.01.07 10:16) [29]
а на картинку с качающимся мячиком прикольно посмотреть :)

Мыльнул... смотри.. не жалко :)


 
SlymRO   (2007-01-24 11:39) [32]

кстати... содрано по мотивам http://www.compress.ru/Archive/CP/2006/9/33/#Колебания математического маятника


 
novill ©   (2007-01-24 12:20) [33]

> [32] SlymRO   (24.01.07 11:39)

Спасибо


 
RASkov   (2007-01-31 13:44) [34]

> [24] SlymRO   (24.01.07 04:28)

Ну вот типа этого и хотелось. Спасибо. Хотелось бы еще чтоб он останавливался.. постепенно.... ну думаю, что нибудь придумаю. Математика блин. Еще раз спасибо.


 
Vlad Oshin ©   (2007-01-31 15:12) [35]

http://articles.org.ru/cfaq/index.php?qid=2548
попали :)


 
Jeer ©   (2007-01-31 15:17) [36]

Мдя..
Вот так wikipedia и создается, на которую потом все ссылаются, а кто-то и помирает от субъективного мнения горстки индивидумов.:))


 
_uw_ ©   (2007-01-31 16:09) [37]

А что, публикация! Только вот это "аэродинамическая сила fa = cx * vt^2;" выглядит как-то не очень. Короче, подложил кто-то :)


 
novill ©   (2007-01-31 16:20) [38]

> http://articles.org.ru/cfaq/index.php?qid=2548
> попали :)

Хорошо конечно, но!
Нещадно бить тех, кто информацию рвет такими грубыми кусками.


 
Jeer ©   (2007-01-31 16:40) [39]


> fa = cx * vt^2;" выглядит как-то не очень.


А в чем промблем ?

АД-сила: F = Cx*q*S
где
Cx зависит от чисел Маха и Рейнолдса которые в свою очередь зависят от скорости;
q=0.5*V^2 - скоростной напор;
S - площадь миделя.

Для тех скоростей, с которыми мотается маятник, Cx от V не зависит - остается только q(v^2)

Так, шта - все по честному.


 
_uw_ ©   (2007-01-31 16:49) [40]

С миделем это ты здорово объяснил - сразу и t пропало :)



Страницы: 1 2 вся ветка

Текущий архив: 2007.02.25;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.065 c
15-1170566067
kail
2007-02-04 08:14
2007.02.25
Компонент htmlviwer


2-1170511122
Gamer
2007-02-03 16:58
2007.02.25
удаление строки с TStringGrid....не обновляется


2-1170416975
Елена
2007-02-02 14:49
2007.02.25
Application.Terminate


15-1170601610
Ricks
2007-02-04 18:06
2007.02.25
Куда девался пункт меню Project->Resources???


2-1170760184
Ламот
2007-02-06 14:09
2007.02.25
Указать в пути к файлу/папке переменную среды