Исследование и визуализация свободных колебаний системы с двумя степенями свободы
Исследование механической системы с двумя степенями свободы в случае свободных колебаний. Определение кинетической и потенциальной энергии системы. Вывод уравнений свободных колебаний; средства визуализации. Определение частот и форм колебаний системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 11.01.2020 |
Размер файла | 550,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.Ru/
Размещено на http://www.Allbest.Ru/
Размещено на http://www.Allbest.Ru/
Санкт-Петербургский политехнический университет Петра Великого
Институт прикладной математики и механики
Кафедра «Теоретическая механика»
КУРСОВая работа
по дисциплине «Языки программирования»
Исследование и визуализация свободных колебаний системы с двумя степенями свободы
Выполнил Д.А. Сызранцев
студент группы 23632/2
Руководитель асс. А.Ю. Панченко
Санкт-Петербург - 2018
Содержание
Введение
1. Вывод уравнений свободных колебаний системы
1.1 Средства визуализации
2. Решение задачи
2.1. Постановка задачи
2.2. Исследование свободных колебаний механической системы
3. Код программы
Заключение
Список использованной литературы
Введение
В технике и в окружающем нас мире часто приходится сталкиваться с периодическими (или почти периодическими) процессами, которые повторяются через одинаковые промежутки времени. Такие процессы называют колебательными. Колебательные явления различной физической природы подчиняются общим закономерностям. Например, колебания тока в электрической цепи и колебания математического маятника могут описываться одинаковыми уравнениями. Общность колебательных закономерностей позволяет рассматривать колебательные процессы различной природы с единой точки зрения.
Выделение разных видов колебаний зависит от подчёркиваемых свойств систем с колебательными процессами.
По физической природе:
1. Механические (звук, вибрация).
2. Электромагнитные (свет, радиоволны, тепловые).
3. Смешанного типа -- комбинации вышеперечисленных.
По характеру взаимодействия с окружающей средой:
1. Вынужденные -- Колебания, которые вызываются переменным внешним воздействием, называют вынужденными колебаниями. Они характерны для неавтономных систем.
2. Свободные (или собственные) -- это колебания, которые совершаются при отсутствии переменного внешнего воздействия и без поступления энергии извне, называются свободными колебаниями. Они происходят за счет первоначально накопленной энергии, величина которой определяется перемещениями и скоростями, заданными системе в некоторый начальный момент времени. Свободные колебания могут происходить лишь в автономных системах.
3. Автоколебания -- колебания, при которых система имеет запас потенциальной энергии, расходующейся на совершение колебаний (пример такой системы -- механические часы). Характерным отличием автоколебаний от вынужденных колебаний является то, что их амплитуда определяется свойствами самой системы, а не начальными условиями.
4. Параметрические -- колебания, которые вызываются изменением во времени параметров системы. Такие колебания возможны лишь в нестационарных системах.
5. Случайные -- колебания, при которых внешняя или параметрическая нагрузка является случайным процессом.
1. Вывод уравнений свободных колебаний системы
Пусть положение системы определяется обобщенными координатами и при система находится в устойчивом равновесии. Тогда кинетическую и потенциальную энергии системы с точностью до квадратов малых величин можно представить в виде:
где инерционные коэффициенты и квазиупругие коэффициенты -- величины постоянные.
Уравнения Лагранжа для рассматриваемой системы имеют вид:
Подставив в уравнения Лагранжа значения и получим следующие дифференциальные уравнения малых колебаний системы с двумя степенями свободы:
Будем искать решение уравнений в виде:
Уравнение частот, вытекающее из данной системы дифференциальных уравнений, имеет вид:
Корни этого уравнения вещественны и положительны. Величины и являются частотами свободных колебаний системы. Соответствующие этим частотам колебания называют главными колебаниями системы. При этом, колебание с меньшей называют первым главным колебанием, а с большей частотой -- вторым главным колебанием.
Определив значения из уравнения частот, находим два значения соответствующие каждому из главных колебаний:
Тогда уравнения, определяющие первое главное колебание, примут следующий вид:
Уравнения, определяющие второе главное колебание, примут вид:
Общее решение системы дифференциальных уравнений (2.2) получается путем суммирования частных решений:
Эти равенства определяют закон малых колебаний системы. Эти колебания слагаются из двух главных колебаний с частотами и не являются гармоническими. В частных случаях, при соответствующих начальных условиях, система может совершать только одно из главных колебаний (например, первое, если ).
1.1 Средства визуализации
JavaScript -- это полноценный динамический язык программирования, который применяется к HTML документу, и может обеспечить динамическую интерактивность на веб-сайтах. Его разработал Brendan Eich, сооснователь проекта Mozilla, Mozilla Foundation и Mozilla Corporation.
JavaScript невероятно универсален. Используя данный язык программирования, вы сможете создавать игры, анимированную 2D и 3D графику, полномасштабные приложения с базами данных и многое другое.
JavaScript сам по себе довольно компактный, но очень гибкий. Разработчиками написано большое количество инструментов поверх основного языка JavaScript. К ним относятся библиотеки three.js, dat.GUI и stats которые были использованы в данной работе.
three.js - кроссбраузерная библиотека, которая позволяет создавать ускоренную на GPU 3D графику, используя язык JavaScript. Построенная таким образом графика обрабатывается как часть сайта без подключения проприетарных плагинов для браузера. Это возможно благодаря использованию технологии WebGL.
dat.GUI - панель управления, которая может пригодится для быстрой настройки приложения путём изменения исходных параметров.
stats - вспомогательная библиотека, которая предоставляет информацию о частоте кадров, с которой работает анимация.
2. Решение задачи
2.1 Постановка задачи
Стержень покоится на трёх пружинах, жёсткости которых равны = 20 Н/см, = 30 Н/см и = 40 Н/см. Масса стержня = 6кг, длина стержня = 0,5 м. Определить частоты малых свободных колебаний и формы главных колебаний системы с двумя степенями свободы при выведении системы из состояния равновесия, пренебрегая силами сопротивления и массами пружин.
Рис. 1. Колебательная система
2.2 Исследование свободных колебаний механической системы
В состоянии покоя стержень занимает горизонтальное положение. Пружины с коэффициентами жесткости и деформированы соответственно на величины и . Пружина с коэффициентом жесткости растянута на величину .
За обобщенные координаты примем: - вертикальное смещение груза от положения покоя, - угол поворота стержня от положения покоя.
Найдем кинетическую и потенциальную энергии системы. Кинетическая энергия системы полностью определяется кинетической энергией стержня:
где - обобщённые скорости; - момент инерции стержня.
Момент инерции:
Потенциальная энергия системы равна работе сил при перемещении системы из отклоненного положения в нулевое (положение статического равновесия). Потенциальную энергию системы вычислим как сумму:
где - потенциальная энергия груза и рычага в поле сил тяжести; - потенциальная энергия деформированных пружин.
где - статические деформации пружин; - перемещения точек крепления пружин.
После подстановки в уравнение для и упрощения, получим:
Потенциальная энергия всей системы:
Из условий покоя рассматриваемой системы, находящейся под действием сил, имеющих потенциал, имеем:
Потенциальная энергия системы с учетом условий покоя имеет вид:
Таким образом,
Или
где - коэффициенты инерции:
- коэффициенты жёсткости:
Для рассматриваемой системы уравнения Лагранжа имеют вид:
Вычислив производные и подставив их в уравнения Лагранжа, получим:
свободный колебание визуализация механический система
где .
Частное решение этих уравнений:
Уравнение частот, вытекающее из этой системы уравнений имеет вид:
Корни этого биквадратного уравнения, соответствующие квадратам частот, определим по формулам:
Следовательно, частоты свободных колебаний:
Коэффициенты распределения, соответствующие частотам и , в общем случае имеют вид:
Уравнения, определяющие первое главное колебание:
Уравнения, определяющие второе главное колебание:
Общее решение дифференциальных уравнений представляет собой сумму частных решений:
находим из начальных условий.
3. Код программы
<!DOCTYPE html>
<html>
<head>
<title>Example 01.03 - Materials and light</title>
<script type="text/javascript"
src="http://tm.spbstu.ru/htmlets/libs/three.min.js"></script>
<script type="text/javascript"
src="http://tm.spbstu.ru/htmlets/libs/stats.min.js"></script>
<script type="text/javascript"
src="http://tm.spbstu.ru/htmlets/libs/dat.gui.min.js"></script>
<style>
body{
margin: 0;
overflow: hidden;
}
</style>
</head>
<body>
<div id="Stats-output">
</div>
<div id="WebGL-output">
</div>
<script type="text/javascript">
var stats=initStats();
var scene=new THREE.Scene();
var camera=new
THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1
,1000);
var renderer=new THREE.WebGLRenderer();
scene.background=new THREE.Color(0xEEEEEE);
camera.position.set(0,0,15);
camera.lookAt(new THREE.Vector3(0,0,0));
renderer.setClearColor(new THREE.Color(0xFFFFFF,1.0));
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.shadowMap.enabled=true;
var material1 = new THREE.MeshPhongMaterial( {
color: 0x156289,
emissive: 0x072534,
side: THREE.DoubleSide,
flatShading: true
} )
var material2 = new THREE.MeshPhongMaterial( {
color: 0xF9FFF5,
emissive: 0x072534,
side: THREE.DoubleSide,
flatShading: true
} )
var rc=0.2,lc=5,n=20,by=-5,sl=0.7;
var rod=new THREE.Mesh(new
THREE.CylinderGeometry(rc,rc,lc,32,0),material1);
var base=new THREE.Mesh(new
THREE.BoxGeometry(lc,0.7,0.7),material2);
base.position.set(0,by,0);
for(var k=1;k<=3;k++)
for(var i=0;i<=n;i++)
{
var nexus=new THREE.Mesh(new
THREE.CylinderGeometry(0.05,0.05,sl),new
THREE.MeshLambertMaterial({color:0xF9FFF5}));
nexus.name=k+"-"+i;
nexus.castShadow=true;
scene.add(nexus);
}
var ambientLight=new THREE.AmbientLight(0x0F0F0F);
var spotLight=new THREE.SpotLight(0xFFFFFF);
rod.castShadow=true;
spotLight.castShadow=true;
scene.add(base);
scene.add(rod);
scene.add(ambientLight);
scene.add(spotLight);
document.getElementById("WebGL-
output").appendChild(renderer.domElement);
var l,m,g,c1,c2,c3;
var k1,k2,mu1,mu2;
var A1,A2,b1,b2;
var y0,f0,v0,w0;
var a11,a12,a22;
var c11,c12,c22;
var Y,F;
var t=0,dt,fl=true;
var cnt=new function()
{
this.dt=0.002;
this.y0=0.5;
this.f0=5;
this.v0=0.5;
this.w0=0.5;
this.l=1;
this.m=6;
this.g = 9.8;
this.c1=2000;
this.c2=3000;
this.c3=4000;
this.a11 = this.m;
this.a12 = 0;
this.a22 = (this.m*Math.pow(this.l,2))/3;
this.c11 = this.c1+this.c2+this.c3;
this.c12 = (this.c1+this.c2/2-this.c3)*this.l;
this.c22 = (this.c1+this.c2/4+this.c3)*Math.pow(this.l,2);
this.Y = this.m*this.g/(this.c1+this.c2+this.c3);
this.F = (Math.asin(2*this.m*this.g/(Math.pow(this.l,2)*(this.c3-this.c2/4-
this.c1))))/2
this.pause=function(){fl=false;}
this.resume=function(){fl=true;}
this.redraw=function()
{
t=0;
y0=cnt.y0;
f0=Math.PI*cnt.f0/180;
v0=cnt.v0;
w0=cnt.w0;
dt=cnt.dt;
l=cnt.l;
m=cnt.m;
c1=cnt.c1;
c2=cnt.c2;
c3=cnt.c3;
a11=cnt.a11;
a12=cnt.a12;
a22=cnt.a22;
c11=cnt.c11;
c12=cnt.c12;
c22=cnt.c22;
Y=cnt.Y;
F=cnt.F;
scene.remove(rod);
scene.remove(base);
rod=new THREE.Mesh(new
THREE.CylinderGeometry(rc,rc,l*10,32,0),material1);
base=new THREE.Mesh(new
THREE.BoxGeometry(l*10+2,0.7,0.7),material2);
base.position.set(0,by,0);
scene.add(rod);
scene.add(base);
init();
};
};
var gui=new dat.GUI();
gui.add(cnt,'dt',0.001,0.005);
gui.add(cnt,'y0',-1,1);
gui.add(cnt,'f0',-15,15);
gui.add(cnt,'v0',-0.7,0.7);
gui.add(cnt,'w0',-0.7,0.7);
gui.add(cnt,'l',0.5,2);
gui.add(cnt,'m',1,12);
gui.add(cnt,'c1',500,10000);
gui.add(cnt,'c2',500,10000);
gui.add(cnt,'c3',500,10000);
gui.add(cnt,'pause');
gui.add(cnt,'resume');
gui.add(cnt,'redraw');
cnt.redraw();
render();
function render()
{
stats.update();
if(fl)t+=dt;
var yt = Y+A1*Math.sin(k1*t+b1)+A2*Math.sin(k2*t+b2);;
var ft = F+mu1*A1*Math.sin(k1*t+b1)+mu2*A2*Math.sin(k2*t+b2);
rod.position.y=yt;
rod.rotation.z=ft+Math.PI/2;
for(var k=1;k<=3;k++)
{
var ys,yf,xs,xf;
if(k==1){
ys=by;
yf=yt-5*l*Math.sin(ft);
xs = -5*l;
xf = -5*l*Math.cos(ft);
}
if(k==2){
ys=by;
yf=yt-5*l*Math.sin(ft)/2;
xs = -5*l/2;
xf = -5*l*Math.cos(ft)/2;
}
if(k==3){
ys=by;
yf=yt+5*l*Math.sin(ft);
xs = 5*l;
xf = 5*l*Math.cos(ft);
}
var lengty=Math.abs(ys-yf);
var lengtx=Math.abs(xs-xf);
var dly=lengty/(n+1);
var dlx=lengtx/(n+1);
for(var i=0;i<=n;i++)
{
var nexus=scene.getObjectByName(k+"-"+i);
nexus.position.y=ys+(i+1/2)*dly;
if ((k==1)||(k==2)){
nexus.position.x=xs+i*dlx;
}else{
nexus.position.x=xs-i*dlx;
}
if ((k==2)||(k==3)){
if(i%2==0)nexus.rotation.z=Math.acos(Math.sqrt(Math.pow(dly,2)+Math.po
w(dlx,2))/sl);
else nexus.rotation.z=-
Math.acos(Math.sqrt(Math.pow(dly,2)+Math.pow(dlx,2))/sl);
}else{
if(i%2==0)nexus.rotation.z=-
Math.acos(Math.sqrt(Math.pow(dly,2)+Math.pow(dlx,2))/sl);
else
nexus.rotation.z=Math.acos(Math.sqrt(Math.pow(dly,2)+Math.pow(dlx,2))/s
l);
}
}
renderer.render(scene,camera);
requestAnimationFrame(render);
}
function init()
{
k1 = Math.sqrt((a11*c22+a22*c11-
Math.sqrt(Math.pow(a11*c22+a22*c11,2)-4*a11*a22*(c11*c22-
Math.pow(c12,2))))/(2*a11*a22));
k2 =
Math.sqrt((a11*c22+a22*c11+Math.sqrt(Math.pow(a11*c22+a22*c11,2)-
4*a11*a22*(c11*c22-Math.pow(c12,2))))/(2*a11*a22));
mu1 = -(c11-a11*Math.pow(k1,2))/(c12-a12*Math.pow(k1,2));
mu2 = -(c11-a11*Math.pow(k2,2))/(c12-a12*Math.pow(k2,2));
if ((f0==0)&&(y0==0)&&(w0==0)&&(v0==0)){
b1=Math.atan(k1*(1-mu2)/(1-mu2));
b2=Math.atan(k2*(1-mu1)/(1-mu1));
}else{
b1=Math.atan(k1*(f0-mu2*y0)/(w0-mu2*v0));
b2=Math.atan(k2*(f0-mu1*y0)/(w0-mu1*v0));
}
if ((f0==0)&&(y0==0)&&(b1==0)){
A1=(Math.sqrt(Math.pow((w0-mu2*v0),2)+Math.pow((k1*(f0-
mu2*y0)),2)))/((mu1-mu2)*k1);
}else{
A1=(f0-mu2*y0)/(mu1-mu2)/Math.sin(b1);
}
if ((f0==0)&&(y0==0)&&(b2==0)){
A2=(Math.sqrt(Math.pow((w0-mu1*v0),2)+Math.pow((k2*(f0-
mu1*y0)),2)))/((mu2-mu1)*k2);
}else{
A2=(f0-mu1*y0)/(mu2-mu1)/Math.sin(b2);
}
rod.position.set(0,y0,0);
rod.rotation.z=Math.PI/2+f0;;
spotLight.position.set(50,60,50);
for(var k=1;k<=3;k++)
for(var i=0;i<=n;i++)
{
var nexus=scene.getObjectByName(k+"-"+i);
nexus.position.set(0,rc+0.7/2,0);
}
}
function initStats()
{
var stats = new Stats();
stats.setMode(0);
stats.domElement.style.position='absolute';
stats.domElement.style.left='0px';
stats.domElement.style.top='0px';
document.getElementById("Stats-output").appendChild(stats.domElement);
return stats;
}
window.onload=init;
</script>
</body>
</html>
Заключение
В рамках курсовой работы было проведено исследование механической системы с двумя степенями свободы в случае свободных колебаний. Были найдены частоты малых колебаний и формы главных колебаний системы.
Результаты визуализации:
Список использованной литературы
1. Ландау Л.Д., Лифшиц Е.М. Теоретическая физика: Учеб. пособие.-- В 10-ти т. Т. I. Механика. -- 4-е изд., испр. -- М.: Наука. Гл. ред. физ.-мат. лит., 1988.--216 с.
2. Яблонский А.А., Норейко С.С. Сборник заданий для курсовых работ по теоретической механике: Учебное пособие для технических вузов. - 5-е изд., исправленное - М.: Интеграл-Пресс, 2000. - 384с.
3. Dirksen J. - «Learning Three.js. The JavaScript 3D Library for WebGL (2nd Edition) - М.
Размещено на allbest.ru
...Подобные документы
Изучение принципа работы компьютерных программ, моделирующих работу генератора электромагнитных колебаний звуковой частоты и работу осциллографа. Разработка серии опытов для измерения характеристик цепей переменного тока и характеристик колебаний в них.
презентация [256,6 K], добавлен 13.11.2011Проектирование приложения, позволяющего находить решение системы алгебраических линейных уравнений матричным методом. Выбор количества уравнений, заполнение значений коэффициентов системы уравнений и свободных членов, алгоритм решения линейных уравнений.
курсовая работа [939,4 K], добавлен 16.01.2014Цифровое представление звуковых сигналов. Устройства вывода звуковой информации: колонки, динамик и наушники. Устройства ввода звуковой информации. Частота и интенсивность звука. Амплитуда звуковых колебаний, мощность источника звука, диапазон колебаний.
реферат [133,3 K], добавлен 08.02.2011Разработка автоматизированной системы "Кадровое агентство" с целью оформления и принятия заявок от работников, желающих найти свободные вакансии, регистрации свободных вакансий. Автоматический поиск соответствий свободных вакансий и безработных граждан.
курсовая работа [1,5 M], добавлен 05.07.2014Лазерные средства отображения информации. Особенности сопряжения имитационной модели Matlab-Simulink и программное обеспечение визуализации. Возможности средств разработки виртуальных миров, использующих VRML, для визуализации моделирования системы.
курсовая работа [1,6 M], добавлен 01.12.2014Освоение методов манипуляции параметрами SVG изображений при помощи JavaScript и возможности по анимации в современных браузерах. Интерфейс и структура модуля визуализации данных. Определение аномальных данных и их определение, реализованные типы.
курсовая работа [1,7 M], добавлен 20.05.2014Построение имитационной модели системы массового обслуживания с дисциплиной обслуживания FIFO, варьируемыми входными факторами (число устройств, емкость накопителя) и возможностью визуализации процесса функционирования системы. Построение генераторов.
курсовая работа [852,1 K], добавлен 07.06.2013Исследование характера движения математического маятника в идеальных условиях, то есть без учёта сил сопротивления, что позволяет маятнику совершать гармонические колебания неограниченное количество времени. Рассмотрение алгоритма решения задачи на ЭВМ.
курсовая работа [231,1 K], добавлен 07.03.2013Разработка схемы управляющего устройства. Принципы построения конечных автоматов. Определение путей переходов. Составление уравнений динамической системы в пространстве состояний и нахождение их решений в линейном случае. Метод прямого программирования.
курсовая работа [128,0 K], добавлен 24.06.2013Понятие пространства состояний, матрицы передаточной функции. Понятие управляемости многомерной системы. Реализация и исследование многомерной системы регулирования. Построение математической модели. Визуализация полученных результатов средствами Mathcad.
курсовая работа [366,1 K], добавлен 19.10.2012Создание информационной системы, предоставляющей в удобном формате все необходимые данные о качестве питьевых и технических водных ресурсов в разных районах города Вологды. Выбор системы управления сайтом. Особенности выбранного хостинга "Timeweb".
дипломная работа [10,1 M], добавлен 27.10.2017Решение системы дифференциальных уравнений, заданной в нормальной форме Коши. Определение аналитических зависимостей изменения переменных состояния системы с использованием преобразования Лапласа. Численный метод решения системы c помощью Mathcad.
практическая работа [657,1 K], добавлен 05.12.2009Структурная схема автоматической системы регулирования. Построение амплитудно-фазовой характеристики объекта по каналам регулирующего и возмущающего воздействия. Определение эффективной полосы пропускания частот и оптимальных настроек ПИД–регулятора.
курсовая работа [1,2 M], добавлен 20.08.2013Стационарные решения уравнения теплопроводности в характерных точках внутри диапазона бистабильности, построение фазового портрета. Создание компьютерной модели динамики материальной точки в поле кольца Тора. Представление системы в виде 3D-анимации.
курсовая работа [500,3 K], добавлен 26.12.2014Применение систем визуализации показателей качества воды. Принципы создания информационных систем, их назначение, цели и требования к ним. Разработка сайта и возможности CMS Joomla. Построение модели информационной системы с помощью CASE-технологий.
дипломная работа [2,5 M], добавлен 12.08.2017Разработка геометрической модели тепловой системы. Определение физических свойств элементов системы и граничных условий. Расчёт параметров и визуализация результатов расчёта. Картина теплового распределения с изотермами при медной и стальной пластинах.
практическая работа [781,4 K], добавлен 26.06.2015Определение с помощью симплекс-метода плана выпуска продукции для получения максимальной прибыли, чтобы сырьё II вида было израсходовано полностью. Решение задач линейного программирования средствами табличного процессора Excel, составление алгоритма.
курсовая работа [53,2 K], добавлен 30.09.2013Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.
курсовая работа [1,9 M], добавлен 05.01.2013Разработка программы, имитирующей работу системы массового обслуживания. Методы и средства решения задачи. Создание концептуальной и структурной моделей системы. Анализ и оценка результатов моделирования, определение достоинств и недостатков системы.
курсовая работа [469,5 K], добавлен 03.03.2015Файловая и сетевая системы операционной системы Windows. Характеристика модели "клиент-сервер". Функциональные требования и архитектура программы, которая должна обеспечивать передачу файлов от клиента к серверу, сервера к клиенту, обмен сообщениями.
курсовая работа [1,4 M], добавлен 24.04.2013