Ӳкерчĕк:Driven-pendulums-resonance-animation.gif

Driven-pendulums-resonance-animation.gif((220 × 136 пиксел, файл пысăкăше: 120 Кб, MIME-тĕсĕ: image/gif), циклланса ларнӑ, 100 фрейм, 4,0 с)

Ку файлпа, на Викискладе илнӗскерпе, ытти проектсенче усӑ курма пултараҫҫӗ. Унӑн страницӑри ӑнлантарӑвӗпе аяларах паллаштарнӑ.

Кĕскен ăнлантарни

Ӑнлантарни
English: Animation of three identical pendulums of resonance frequency ω0 and damping D=0.05. The pendulums are driven with the same strength, but different driving frequencies ω:
  • left: ω=2/3ω0
  • center: ω=ω0
  • right: ω=4/3ω0
One can see that the pendulums driven below and above resonance oscillate less, whereas the pendulum at resonance oscillates strongest. The pendulums also show different relative phases relative to the drive.
Дата
Ҫӑлкуҫ Хӑвӑрӑн ӗҫ
 
Это plot было создано с помощью Matplotlib.
Автор Geek3

Source Code

The plot was generated with Python Matplotlib.


Python Matplotlib source code
#!/usr/bin/python
# -*- coding: utf8 -*-

import os
import inspect
from math import *
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import animation

# settings
mpl.rcParams['path.snap'] = False
fname = 'driven-pendulums-resonance-animation'
size = 220, 136
nframes = 100

susp = 16
f0 = 3.0
pendulums = [
{'x0':29, 'y0':117.5, 'f':2.0, 'A':4, 'D':0.05, 'l':89, 'phi0':0.},
{'x0':110, 'y0':117.5, 'f':3.0, 'A':4, 'D':0.05, 'l':89, 'phi0':0.},
{'x0':191, 'y0':117.5, 'f':4.0, 'A':4, 'D':0.05, 'l':89, 'phi0':0.}]

for p in pendulums:
    D = p['D']
    eta = p['f'] / f0
    # use harmonic approximation
    p['Arel'] = 1.0 / sqrt((1. - eta**2)**2 + (2.*eta*D)**2)
    p['Phaserel'] = atan2(2 * eta * D, 1.0 - eta**2)

def animate(nframe, saveframes=False):
    print nframe, nframes
    t = float(nframe) / nframes
    
    plt.clf()
    fig.gca().set_position((0, 0, 1, 1))
    plt.xlim(0, size[0])
    plt.ylim(0, size[1])
    plt.axis('off')
    
    for p in pendulums:
        dxSusp = p['A'] * sin(p['phi0'] + 2*pi*p['f']*t)
        dsPend = p['A'] * sin(p['phi0'] + 2*pi*p['f']*t - p['Phaserel']) * p['Arel']
        PhiPend = (dsPend - dxSusp) / p['l']
        dxPend = dxSusp + p['l'] * sin(PhiPend)
        dyPend = -p['l'] * cos(PhiPend)
        
        xSusp = p['x0'] + dxSusp
        xPend = p['x0'] + dxPend
        yPend = p['y0'] + dyPend
        
        # draw pendulum
        s = 0.72
        plt.plot([p['x0'] - susp, p['x0'] + susp],
                 [p['y0'], p['y0']], '-k', lw=3)
        plt.plot([xSusp, xPend], [p['y0'], yPend], '-k', lw=1.5)
        plt.plot([xSusp], [p['y0']], '.k', markersize=12)
        plt.plot([xPend], [yPend], 'o', color='#aaaaaa',
                 markersize=14, markeredgewidth=1.5)
    
    if saveframes:
        # export frame
        dig = int(ceil(log10(nframes)))
        fsavename = ('frame{:0' + str(dig) + '}.svg').format(nframe)
        fig.savefig(fsavename)
        with open(fsavename) as f: content = f.read()
        content = content.replace('pt"', 'px"').replace('pt"', 'px"')
        with open(fsavename, 'w') as f: f.write(content)

fig = plt.figure(figsize=(size[0]/72., size[1]/72.))

#anim = animation.FuncAnimation(fig, animate, frames=nframes)
#anim.save(fname + '.gif', writer='imagemagick', fps=25)

# use imagemagick on svgs rather than builtin imagemagick support
# this avoids snapping and offers some custom settings
os.chdir(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))))
for i in range(nframes):
    animate(i, True)
os.system('convert -loop 0 -delay 4 frame*.svg +dither -posterize 16 ' + fname + '.gif')
for i in os.listdir('.'):
    if i.startswith('frame') and i.endswith('.svg'):
        os.remove(i)

Лицензилени

Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующих лицензий:
GNU head Ку документа Ирӗклӗ программа хатӗрӗсен фончӗ вырнаҫтарнӑ GNU Free Documentation License 1.2 версийӗпе е каяраххипе килӗшӳллӗн хуплашкан пӗрремӗш тата юлашки страницӑри улшӑнми пайсемсемпе текстсемсӗр копилеме, сарма тата/е улӑштарма юрать. Лицензи копине GNU Free Documentation License ятлӑ пая вырнаҫтарнӑ.
w:cv:Creative Commons
атрибуци
Этот файл доступен по лицензии Creative Commons Attribution 3.0 Unported
Эсир ирӗклӗн:
  • ку ӗҫе ыттисене тивӗҫтерме – ку ӗҫе копилеме, сарма тата ыттисене пама
  • унашкаллисене хатӗрлеме – ку ӗҫе улӑштарма
Ҫак условисене пӑхӑнсан:
  • атрибуци – Сирӗн кам автор пулнине кӑтартмалла, лицензи ҫине каҫӑ памалла та автор мӗнле те пулин улшӑнусем кӗртнипе кӗртменнине палӑртмалла. Ҫакна кирек мӗнле юрӑхлӑ меслетпе те тума пулать, анчах лицензиат сире пулӑшнине е сире асӑннӑ хайлавпа усӑ курма ирӗк панине кӑтартмасӑр.
Эсир ҫак лицензисенчен хӑть те хӑшне суйлама пултаратӑр.

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект вырӑс

создатель вырӑс

У этого свойства есть некоторое значение без элемента в

Файл историйĕ

Вӑхӑт ҫине пуссан, ун чухнехи версине пӑхма пулать.

Дата/ВăхăтМиниатюраКалӑпӑшХутшăнаканАсăрхав
хальхи21:08, 10 Ака уйӑхӗн 201621:08, 10 Ака уйӑхӗн 2016 вӑхӑтри версийĕн миниатюри220 × 136 (120 Кб)Geek3smaller drive amplitude
20:57, 10 Ака уйӑхӗн 201620:57, 10 Ака уйӑхӗн 2016 вӑхӑтри версийĕн миниатюри220 × 136 (121 Кб)Geek3{{Information |Description ={{en|1=Animation of three identical pendulums of resonance frequency ''ω''<sub>0</sub> and damping ''D''=0.1. The pendulums are driven with the sam...

Ку файлпа ҫак 2 страницӑра усӑ курнӑ:

Файлпа глобаллӑ усӑ курасси

Ку файлпа ҫак викисенче усӑ курнӑ:

Метаданнăйсем: