Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.044 c
2-1170850723
smaller
2007-02-07 15:18
2007.02.25
Не ловится исключительная ситуация:


15-1170238059
hmmm
2007-01-31 13:07
2007.02.25
PHP, алиасы


1-1168240005
DelphiLexx
2007-01-08 10:06
2007.02.25
DBGrid (DBGridEh) и dgColLines


2-1170941021
Vas
2007-02-08 16:23
2007.02.25
SQL


11-1148619176
igorek_2005
2006-05-26 08:52
2007.02.25
Как создать TToolBar?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский