Проект EduXXI
Модификатор AcademiaXXI
Учебные пакеты
Программы
Решение задач
Методика
Новости
Киоск
Конкурс
Доска объявлений
Вопросы и ответы
Главная страница
English Главная страница Обратная связь Карта сайта

14-1-4.html

29 сентября 2003 | Рубрика: Учебные пакеты

Кирсанов М.Н. Решебник.Теоретическая механика.  М.:ФИЗМАТЛИТ, 2002.
Иллюстрации и программы к книге

14.1. Задача 4

>    restart:

 

>    read «ris.m»:

     Массы (кг)   

>    ma:=3:mb:=6:

     Жесткость пружин (Н/м)

>     c:=7:

     Кинетические энергии цилиндров  A, B

>    Ta:=3/4*ma*va^2: Tb:=3/4*mb*vb^2:

     Кинетическая энергия системы

>    T:=Ta+Tb:

     Инерционные коэффициенты (Тарг С.М.[19, c.394])

>    a11:=coeff(diff(T,va),va);

 

>    a12:=coeff(diff(T,va),vb);

 

>    a22:=coeff(diff(T,vb),vb);

     Потенциальная энергия

>    Pt:=c/2*xa^2+c/2*(2*xb-xa)^2+c/2*(2*xb)^2+c/2*xb^2:

     Обобщенный силы

>    Q1:=-diff(Pt,xa):Q2:=-diff(Pt,xb):

       Коэффициенты жесткости

>     c11:=-coeff(Q1,xa);
 c12:=-coeff(Q2,xa);
 c22:=-coeff(Q2,xb);

        Уравнения частот

>     ur:=(c11-a11*omega^2)*(c22-a22*omega^2)-c12^2=0:

       Решение уравнения частот

>     sol:=fsolve(ur,omega=0..infinity);

 

sol := 1.455853300, 2.826942214

     Дифференциальные уравнения колебаний

>    eq1:=a11*diff(xa(t),t$2)=subs(xa=xa(t),xb=xb(t),Q1);

 

>    eq2:=a22*diff(xb(t),t$2)=subs(xa=xa(t),xb=xb(t),Q2);

eq1 := 9/2*diff(xa(t),`$`(t,2)) = -14*xa(t)+14*xb(t)

    Численное решение системы  с начальными данными

>    r:=dsolve({eq1,eq2,xa(0)=0,xb(0)=0,D(xa)(0)=10,D(xb)(0)=3},
          {xa(t),xb(t)},type=numeric,
                      output=listprocedure):

 

>    with(plots):

 

>    odeplot(r,[[t,xa(t)],[t,xb(t)]],0..4.3,numpoints=150,
                                          labels=[t,x],
                                          color=black);

 

>    Xa:= subs(r,xa(t)): Xb:= subs(r,xb(t)):

                                 Изображение механизма в движении      
    

Warning, the name changecoords has been redefined

               Подписи точек на рисунке
nam:=[A,B]:
RA:=40: RB:=20: h:=100:
                     Координаты

>      y[1]:=RA:y[4]:=RA:y[2]:=RB:y[3]:=2*RA:

 

>   
    
       Количество кадров K

 

>    K:=12: with(plots):with(plottools):

           Создаем все кадры

>    for i from 0 to K do

 

>    t:=i/K*4.3:

 

>    x[1]:=Xa(t):

 

>    x[2]:=Xb(t)+h:x[4]:=x[2]:
P[i]:=display(Cir(1,RA),Cir(2,RB),
pruzh(-60,x[1],y[1],4,24),
pruzh(x[1],x[4],y[1],4,24),
pruzh(x[4],160,y[4],4,24),
pruzh(x[2],160,y[2],4,24),
Cir(2,2),Cir(1,2),
cir4(1,RA,-Xa(t)/RA),cir4(2,RB,-Xb(t)/RB),
seq(TEXT([x[j]+2,y[j]+8],nam[j]),j=1..2)):
od:

                                 Изображение механизма в движении

>    PP:=display(seq(P[i],i=0..K),insequence=true,
                            thickness=2,
                            scaling=constrained,
                            axes=none):

Warning, the name arrow has been redefined

>    display(PP,Поверхность(-60,0,220,6),Стенка(-60,0,80,6),
Стенка(160,0,48,-6));

 

>   

 

>   

Copyright: А.И.Кириллов © 2024
Сделано на "Интернет Фабрике"
Проект EduXXI | Модификатор AcademiaXXI | Учебные пакеты | Программы | Решение задач | Методика | Новости | Киоск | Конкурс | Вопросы и ответы | Доска объявлений
Главная страница | Карта сайта | Обратная связь