Приложения технологии языка программирования Паскаль в прикладной механике
p align="left">DefaultFont (шрифт 8x8 (по умолчанию)TriplexFont (полужирный шрифт); SmallFont (тонкий шрифт); SansSerifFont (шрифт без засечек); GothicFont (готический шрифт); Direction (ориентация и направление вывода символов): 0 (привычный вывод слева направо 1 (снизу вверх (надпись «положена на бок») 2 (слева направо, но «лежачими» буквами. Size (размер шрифта (целые числа от 0 до 10). Другая возможность при работе с текстом (это выравнивание его относительно задаваемых координат вывода. Для этого используется процедура SetTextJustify(horiz,wert: word). Horiz указывет как текст расположен относительно заданной позиции по горизонтали, а vert (по вертикали. Возможные константы: для horiz: LeftText (указанная позиция является левым краем строки); CenterText (позиция является серединой выводимой строки); RightText (правым краем строки); для vert: BottomText (позиция находится на нижнем крае изображения); CenterText (по центру); TopText (позиция является верхним краем изображения); Процедура (последовательность действий (записанных на Паскале), названная каким-либо именем. Для того чтобы выполнить эту последовательность, нужно в соответствующем месте программы указать её имя (так, например, для очистки экрана при работе с графикой мы указываем ClearDevice;). Кроме того, что программа становится при использовании процедур короче и понятнее, процедуры можно вызывать из разных мест программы (в противном случае пришлось бы повторять в тексте программы одинаковые последовательности действий несколько раз). Те действия, которые входят в процедуру, записываются до начала основной программы в следующем виде: program ... const ... type ... var ... procedure MyProc; begin {действия} end; begin {основная программа} end. Рассмотрим пример нахождения максимума из трёх чисел: Program Max1; var a,b,c,m: integer; begin write('Введите a: '); readln(a); write('Введите b: '); readln(b); write('Введите c: '); readln(c); if a>b then m:=a else m:=b; if c>m then m:=c; writeln('Максимум = ',m); readln; end. {Перепишем его с использованием процедуры:} program Max2; var a,b,c,m: integer; procedure FindMax; begin if a>b then m:=a else m:=b; if c>m then m:=c; end; begin write('Введите a: '); readln(a); write('Введите b: '); readln(b); write('Введите c: '); readln(c); FindMax; writeln('Максимум = ',m); readln; end. Этот вариант можно улучшить. Пока наша процедура может искать минимум только среди значений конкретных переменных a, b и c. Заставим её искать минимум среди любых трёх целых чисел и помещать результат в нужную нам переменную, а не всегда в m. Чтобы была видна польза от такой процедуры, рассмотрим пример программы для поиска максимума среди чисел a+b, b+c и a+c: Program Max3; var a,b,c,m: integer; procedure FindMax(n1,n2,n3: integer; var max: integer); begin if n1>n2 then max:=n1 else max:=n2; if n3>max then max:=n3; end; begin write ('Введите a: '); readln(a); write ('Введите b: '); readln(b); write ('Введите c: '); readln(c); FindMax (a+b,b+c,a+c,m); writeln ('Максимум из сумм = ',m); readln; end. В скобках после имени процедуры (в её описании) записаны так называемые параметры. Эта запись обозначает, что внутри процедуры можно использовать целые числа, обозначенные n1, n2 и n3, а также заносить значения в переменную типа integer, которая внутри процедуры называется max (а реально во время работы программы все действия производятся над переменной m). Параметры, в которых хранятся числа (n1,n2,n3) называются параметрами-значениями; а те, которые обозначают переменные (max) (параметрами-переменными, перед ними в описании ставится слово var. Параметры, на которые имеются ссылки внутри процедуры (n1, n2, n3, max), называются формальными, а те, которые реально используются при вызове (a+b, b+c, a+c, m) -- фактическими. Процедуры последнего вида оказываются достаточно удобными. Можно один раз написать такую процедуру, убедиться в её работоспособности и использовать в других программах. Примерами таких процедур являются процедуры для работы со строками, встроенные в Турбо Паскаль. В нашем примере можно переписать программу и по-другому. Максимум из трёх чисел определяется по ним однозначно, или, говоря математическим языком, является функцией этих трёх чисел. Понятие функции есть также и в Паскале. Рассмотрим такую программу: Program Max4; var a,b,c,m: integer; function Max(n1,n2,n3: integer) : integer; var m: integer; begin if n1>n2 then m:=n1 else m:=n2; if n3>m then m:=n3; Max:=m; end; begin write ('Введите a: '); readln(a); write ('Введите b: '); readln(b); write ('Введите c: '); readln(c); writeln ('Максимум = ',Max(a+b,b+c,a+c)); readln; end. Нам уже известно как вызывать функцию из программы (например sqrt, sin и т. п.). Рассмотрим описание функции. Оно очень похоже на описание процедур, но есть два отличия: 1. После имени функции и списка параметров (если есть) через двоеточиезаписывается тип значения функции (возможны не только числовые типы, но и логические, строковые, символьные); 2. Среди операторов в теле функции наиболее важными являются операторы присваивания значения функции (в нашем случае это строчка Max:=m;). В записанной выше функции используется так называемая локальная переменная m, то есть переменная, которая «видна» только нашей функции, а другие процедуры и функции, а также главная программа её «не видят». Кроме локальных переменных в Турбо Паскале можно определять локальные константы и типы. Приведём другие примеры процедур и функций. 1. Напишем на Паскале функцию [pic]. function Cube(x: real): real; begin Cube:=x*x*x; end; 2. Вычисление площади треугольника через длины сторон. Здесь будет использована формула Герона: [pic], где p (полупериметр треугольника, a, b, c (длины сторон). function Square(a,b,c: real): real; var p: real; begin p:=(a+b+c)/2; Square:=sqrt(p*(p-a)*(p-b)*(p-c)); end; 3. Процедура для решения квадратного уравнения. Будем передавать этой процедуре коэффициенты уравнения, а результаты своей работы она будет выдавать в трёх параметрах-переменных. Через первую, логического типа, процедура сообщит, есть ли вещественные корни, а еще в двух она выдаст сами эти корни (если корней нет, то на эти две переменные пользователь нашей процедуры может не обращать внимания). Procedure SqEquation(a,b,c: real; var RootsExist: boolean; var x1,x2: real); var d: real; begin d:=sqr(b)-4*a*c; if d>=0 then begin RootsExist:=true; x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); end else RootsExist:=false; end; Можно вместо процедуры написать и функцию, по логическому значению которой мы определяем, есть ли корни, а сами корни передаются также как и в процедуре: Function EqHasRoots(a,b,c: real; var x1,x2: real) : boolean; var d: real; begin d:=sqr(b)-4*a*c; if d>=0 then begin EqHasRoots:=true; x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); end else EqHasRoots:=false; end; Использовать такую функцию даже проще чем последнюю процедуру: if EqHasRoots(1,2,1,r1,r2) then writeln(r1,' ',r2) else writeln('Нет корней'). ГЛАВА II. ПОСТАНОВЛЕНИЕ И РЕШЕНИЕ ЗАДАЧ МЕХАНИКИ В СРЕДЕ СИСТЕМЫ ПАСКАЛЬ Процесс решения задач на компьютере - это совместная деятельность человека и ЭВМ. Этот процесс можно представить виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью - постановкой, алгоритмизацией, программированием задач анализом результатов, а на долю компьютера - этапы обработки информации с соответствии с разработанным алгоритмом. Первый этап - постановка задачи. На этом этапе участвует человек, хорошо представляющий предметную область задачи. Он должен чётко определить цель задачи, дать словесное описание содержания задачи и предложить общий подход к её решению. Для вычисления суммы двух целых чисел человек, знающий, как складываются числа, может описать задачу следующим образом: ввести два целых числа, сложить их и вывести сумму в качестве результата решения задачи. Второй этап - математическое и информационное моделирование. Цель этого этапа - создать такую математическую модель решаемой задачи, которая может быть реализована в компьютере. Существует целый ряд задач, где математическая постановка сводится к простому перечислению формул и логических условий. Этот этап тесно связан с первым этапом, и его можно отдельно не рассматривать, однако возможно, что для полученной модели известны несколько методов решения, и тогда предстоит выбрать лучший. Для вышеописанной задачи данный этап сведётся к следующему: введённые в компьютер числа запомним в памяти под именами А и В, затем вычислим значение этих чисел по формуле А+В, и результат запомним в памяти под именем Summa. Третий этап - алгоритмизация задачи. На основе математическогоописания необходимо разработать алгоритм решения. Четвёртый этап - программирование. Программой называется план действий, подлежащий выполнению некоторым исполнителем, в качестве которого может выступать компьютер. Составление программы обеспечивает возможность выполнение алгоритма и соответственно поставленной задачи исполнителем - компьютером. Во многих задачах при программирование на алгоритмическом языке часто пользуются заменой блока алгоритма на один или несколько операторов, введением новых блоков, замена одних блоков на другими. Пятый этап - ввод программы и исходных данных в ЭВМ. Программа и исходные данные вводятся в ЭВМ с клавиатуры с помощью редакторов текстов, и для постоянного хранения осуществляется их запись на гибкий или жёсткий магнитный диск. Шестой этап - тестирование и отладка программы. На этом этапе происходит исполнение алгоритма с помощью ЭВМ, поиск и исключение ошибок. При этом программисту приходится выполнять рутинную работу по проверке работы программы, поиску и исключению ошибок, и поэтому для сложных программ этот этап часто требует, гораздо больше времени и сил, чем написание первоначального текста программы. Отладка программы - сложный и нестандартный процесс. Исходный план отладки заключается в том, чтобы оттестировать программу на контрольных примерах. Контрольные примеры стремятся выбрать так, чтобы при работе с ними программа прошла все основные пути блок - схемы алгоритма, поскольку на каждом из путей могут быть свои ошибки, а детализация плана зависит от того, как поведёт себя программа на этих примерах: на одном может зациклиться (т.е. бесконечно повторять одно и то же действие); на другом - дать явно неверный или бессмысленный результат и т.д. Сложные программы отлаживаются отдельными фрагментами. Для повышения качества выполнения этого этапа используются специальные программы - отладчики, которые позволяют исполнить программу «по шагам» с наблюдением за изменением значений переменных, выражений и других объектов программы, с отслеживанием выполняемых операторов. Седьмой этап - исполнение отлаженной программы и анализ результатов. На этом этапе программист запускает программу и задаёт исходные данные, требуемые по условию задачи. Полученные в результате решения выходные данные анализируются постановщиком задачи, и на основе этого анализа вырабатываются соответствующие решения, рекомендации, выводы. Например, если при решение задачи на компьютере результат сложения двух чисел 2 и 3 будет 4, то следует сделать вывод о том, что надо изменить алгоритм и программу. Возможно, что по итогам анализа результатов потребуется пересмотр самого подхода к решению задачи и возврат к первому этапу для повторного выполнения всех этапов с учётом приобретённого опыта. Таким образом, в процессе создания программы некоторые этапы будут повторяться до тех пор, пока мы получи алгоритм и программу, удовлетворяющие показанным выше свойствам. 2.1. ЗАДАЧИ СТАТИКИ, РЕШАЕМЫЕ С ПОМОЩЬЮ ЯЗЫКА ПАСКАЛЬ Основной задачей статики является изучение методов замены различных систем сил, действующих на абсолютно твердое тело, простейшими системами, оказывающими на тело такое же действие, как и исходная система. Выяснение условий взаимной уравновешенности системы сил является одной из основных задач статики. На основе изложенной в первой главе курсовой работы алгоритм конструкции языка программирования Паскаль составим и решим ряд задач по прикладной механике. Сформулируем задачу по статике первому разделу прикладной механики. Задача. Найти центр тяжести тонкого круглого однородного стержня изогнутого по дуге окружности. Размеры стержня указаны на рисунке. Геометрическая модель решения задачи по статике. Решение: Плоскость, в которой лежит окружность радиуса R, является плоскостью симметрии тела. Мы примем ее за координатную плоскость хОу. Тогда будем иметь zc=0. Кроме того того, тело имеет ось симметрии, расположенную в плоскости и направленную по биссектрисе угла 2?. Рис. 1. Геометрическая модель тонкого круглого однородного стержня изогнутого по дуге окружности Принимая эту ось ось за ось абсцисс, заключаем, что yc=0. Выбрав начало координат в центре окружности радиуса R, вычислим абсциссу центра тяжести тела. Выделим элементарный цилиндр с длиной образующей dl. Его объем равен dv=?r2dl=?r2Rв?, а абсцисса его центра тяжести равна x=Rcos? При решении задач на равновесие твердого тела при наличии сил трения следует выполнить: 1. Выделить твердое тело, равновесие которого надо рассмотреть для отыскания неизвестных величин. 2. Изобразить активные силы. 3. Если твердое тело несвободно, то применив закон освобождаемости от связей, приложить к нему соответствующие реакции связей. 4. Рассмотреть равновесие данного несвободного твердого тела. как тела свободного, находящегося под действием активных сил и реакций связей. При этом следует реакцию шероховатой поверхности представить двумя составляющими - нормальной реакцией и силой трения, или же двумя составляющими - нормальной реакцией и силой трения, или же, не раскладывая эту реакцию на составляющие, направить ее под углом трения к нормали к поверхности (при максимальной силе трения). 5. Сопоставить число неизвестных величин и число независимых уравнений равновесия, которые должны быть равны для статически определимых задач; при этом к уравнениям равновесия твердого тела следует добавить зависимость силы трения от нормального давления; 6. Выбрать систему координат. 7. Составить систему уравнений равновесия для сил, приложенных к твердому телу или к системе твердых тел. 8. Решив систему уравнений равновесия, определить искомые величины. Таким образом, мы пришли к результату, выраженному формулой (2). Сопоставляя оба решения, мы видим, что в первом случае мы применили общий метод составления уравнений равновесия для твердого тела, находящегося под действием произвольной плоской системы сил, не учитывая особенностей данной задачи. Достоинство общих методов и заключается в том, что они ведут к цели, несмотря на различия в условиях задач. Иногда такой путь не является самым простым и коротким. На примере второго способа решения мы видим, что при учете особенностей данной задачи удалось составить меньшее число уравнений равновесия, которые проще и скорее привели к цели. На основе разработанного алгоритма решения задачи по статике составим Паскаль-программу. Program Statika; Var x, y, a, Pmin, Pmax:Real; R:Integer; Begin Writeln('vvedite ves sterchnya'); Readln(dv); Writeln('vvedite dliny sterchnya'); Rreadln(dl); Writeln('vvedite ugol'); Readln(?); {?=60} Pmin:=(R*(((cos(?)*3.14/180)/cos(?)*3.14/180)+y)); {minimalnaya velichina gruza} Pmax:=(R*(((cos(a)*3.14/180)/cos(?)*3.14/180)-y)); {maximalnaya velichina gruza} {pri cos(?)<y sila xmax ne suschestvuet} Begin If xmax<0 then x:=xmin+xmax; If xmax>0 then x:=Pmin-xmax; End; Writeln('xmin=',xmin:8:6); Writeln('xmax=',xmax:8:6); Writeln('x=',x:8:6); Readln; End. 2.2. ЗАДАЧИ КИНЕМАТИКИ, РЕШАЕМЫЕ ПОСРЕДСТВОМ ЯЗЫКА ПАСКАЛЬ Скорости точек плоской фигуры могут быть определены аналитическими , графическими или же графоаналитическими методами. Аналитический метод. При аналитическом методе должны быть заданы уравнения движения плоской фигуры (рис.2) Хo1=f 1(t) , Yо1 =f 2(t) , ? = f3 (t). (1*) Проекции скорости точки М на неподвижные оси координат определяется равенствами: Vx=Vо1Х-W z(Y-Yo1) (2*) Vy=Vо1Y + Wz (Х-Хo1) (3*) В этих формулах Vx , Vy - искомые проекции скорости точки М на неподвижные оси координат; Vо1x = Хo1 , Vо1y = Yo1-проекции скорости полюса, начала подвижной системы координат ХY на неподвижные оси координат ; Wz =? -проекция угловой скорости на ось Z , перпендикулярную к плоскости движения ;ХУ координаты точки М в неподвижной системе координат ; Хо1 ,Yо1 - координаты полюса О1 в неподвижной системе осей. Определение координат Х ,Y точки М , по заданным уравнениям движения плоской фигуры (1*) производится по формулам: Х=Хо1+Х1 cos? - Y1sin ? Y= Yо1+ Х1 sin ? +Y1 cos ? Проекции скорости точки М на неподвижные оси координат находятся по формулам: Vx1 =Vo1 x cos ? + Vo1 у sin ? - Wzy1 (4*) Vу 1= -Vo1 x sin ? + Vo1 у сos ? - Wz х1 (5*) В этих формулах Vx , Vу- искомые проекции скорости точки М на оси х, у подвижной системы координат , жестко связанной с плоской фигурой ; х у - координаты точки М в подвижной системе осей , остальные величины имеют то же значение , что и в уравнениях (2*) , (3*). Величины скорости точки М по известным проекциям определяются формулой: V= vVx 2+ Vу2 =v Vx12 + Vу12 (6*) Направляющие косинусы даются равенствами: cos (V,X)= Vx/V , cos (V,У)= Vy/V (7*) cos (V,X)= Vx/V , cos (V,У)= Vy/V (8*) Графоаналитические методы. Первый графоаналитический способ определения скоростей точек плоской фигуры основан на формуле распределения скоростей (рис.2). Рис. 2. Геометрическая модель плоской фигуры V=Vo1+W r , (9*) в этой формуле V - искомая скорости точки М; Vo1 - скорость полюса О, W - угловая скорость плоской фигуры; r - радиус-вектор , проведенный из полюса О в Рис. 3 точку М. Таким образом, зная скорость какой-либо точки плоской фигуры, выбираем эту точку за полюс. Далее откладываем от точки М, скорость которой подлежит определению, вектор, равный скорости полюса, и вектор W r1, направлен перпендикулярно к r1, и равный по величине W r1.Векторная сумма этих слагаемых и дает искомую скорость точки М, Если скорость точки М известна по направлению, то можно не знать величины вращательной скорости W r1, так как и эта скорость, и искомая скорость точки М определяется пересечением прямой, совпадающей с направлением скорости точки М, и прямой, перпендикулярной к линии О М, проведенной из конца вектора Vо, отложенного из точки М. После того, как треугольник или параллелограмм скоростей выражающий равенство (9*), построен, задача может считаться решенной. Величина и направление скорости точки М могут быть найдены по рис.(2) или получены из решения этого треугольника. Формула распределения скоростей (9*)записывается часто в виде: Vb=Va+Vba (9**) где V-искомая скорость точки В, Va-известная скорость точки А , избранной за полюс, а Vba= W АВ, Vba = W AB, (9***) - вращательная скорость точки В вокруг точки А, равная по модулю, произведению мгновенной угловой скорости плоской фигуры на расстояние от точки до полюса и направленная перпендикулярно к отрезку прямой ВА в сторону мгновенного вращения фигуры. Многие задачи могут быть решены при помощи теоремы о равенстве проекции скоростей концов отрезка плоской фигуры на направление отрезка. Второй графоаналитический метод определения скоростей плоской фигуры основан на использовании мгновенного центра скоростей этой фигуры. При не поступательном движении плоской фигуры (W=0) в каждый данный момент существует точка тела , скорость которой равна нулю. Эта точка называется мгновенным центром скоростей и обычно обозначается через P. Единственным исключением является случай так называемого мгновенно поступательного движения (W=0), который будет рассмотрен отдельно. Выбирая мгновенный центр за полюс, имеем закон распределения скоростей в плоской фигуре. V=W r 1, V=W М Р , (10*) где V-искомая, скорость произвольной точки М; W-угловая скорость плоской фигуры, r1-радиус-вектор, проведенный из мгновенного центра скоростей в точку М, называемый мгновенным радиусом. Таким образом, скорости всех точек плоской фигуры являются в данный момент вращательными скоростями вокруг мгновенного центра скоростей. Их величина равна произведению величин угловой скорости на модуль мгновенного радиуса, а направлены они перпендикулярно к мгновенному радиусу. Таким образом, величина скоростей точки плоской фигуры пропорциональны величине мгновенных радиусов: Vb / ВР=Va / АР=...=W, (11*) При графоаналитических методах решения задач рекомендуется такая последовательность действий: 1) Выбрать за полюс ту точку плоской фигуры, направление скорости которой известно; 2) найти другую точку плоской фигуры, направление скорости которой известно; 1) пользуясь формулой распределения скоростей, найти скорость этой точки плоской фигуры; 2) исходя из формулы распределения скоростей определить значение угловой скорости плоской фигуры в данный момент времени; 3) зная угловую скорость фигуры и скорость полюса, найти с помощью формулы распределения скоростей искомые скорости других точек фигуры. При графоаналитическом методе решения задач может быть применен метод проекции. В этом случае может быть рекомендован следующий порядок решения задач: 1. Выбрать за полюс точку плоской фигуры, скорость которой известна; 2. Пользуясь формулой распределения скоростей, построить скорость другой точки плоской фигуры, у которой известно направление ее скорости; 3. Спроектировать полученный треугольник скоростей на направление прямой, соединяющей обе точки, и найти скорость второй точки; 4. Спроектировать треугольник скоростей на направление, перпендикулярное к прямой, соединяющей обе точки, и найти вращательную скорость второй точки по отношению к полюсу; 5. Разделив вращательную скорость на расстояние от точки до полюса, найти мгновенную угловую скорость плоской фигуры; 6. Зная мгновенную угловую скорость фигуры, можно найти скорости любых точек плоской фигуры, пользуясь формулой распределения скоростей. Если задача решается при помощи мгновенного центра скоростей, рекомендуется такая последовательность: 1) определить положение мгновенного центра плоской фигуры; 2) найти величину мгновенного радиуса той точки плоской фигуры, скорость которой известна и определить угловую скорость плоской фигуры, разделив величину скорости точки на величину мгновенного радиуса; 3) найти искомые величины скоростей точек плоской фигуры, умножая угловую скорость на мгновенный радиус соответствующей точки или используя. Теперь рассмотрим конкретную задачу по кинематике. Задача. Для преобразования периодического возвратно-поступательного движения во вращательное движение в двигателях внутреннего сгорания применяют шатунно-кривошипный механизм, состоящий из кривошипа ОА=r, вращающегося вокруг неподвижной точки О в плоскости рисунка, шатуна АВ=l, шарнирно соединенного с кривошипом, и поршня В, двигающегося по горизонтальным направляющим цилиндра, совпадающим с прямой ОВ. Рис. 3. Геометрическая модель плоского шатунно-кривошипного механизма На основе разработанного алгоритма решения задачи по кинематике составим Паскаль - программу. Program Kinematika; Var t,f0,k,b1,b2,x1,x2,a,b,l,d,f1,f2,a1,a2,w1,w:real; Begin Write('vvedite welichini a b d l w t = '); Readln(a,b,d,l,w,t); x1:=(sqr(d+b)-a*a+l*l)/(2*l*(d+b)); f1:=(180/pi)*arctan(sqrt(1-sqr(x1))/x1); x2:=(sqr(d+b)-a*a-l*l)/(2*l*a); a1:=(180/pi)*arctan(sqrt(1-sqr(x2))/x2); x1:=-(l*l+sqr(d-b)-a*a)/(2*l*(d-b)); f2:=(180/pi)*arctan(sqrt(1-sqr(x1))/x1); x2:=(l*l-sqr(d-b)+a*a)/(2*l*a); a2:=(180/pi)*arctan(sqrt(1-sqr(x2))/x2); f0:=w*t; k:=sqrt(l*l+b*b-2*l*b*cos(f0)); x1:=(k*k+d*d-a*a)/(2*k*d); b2:=arctan(sqrt(1-sqr(x1))/x1); x2:=(1/k)*sin(f0); b1:=arctan(x2/sqrt(1-sqr(x2))); w1:=(b*k*sin(b1+b2)*w)/(a*a*sin(b2)); Writeln('a1= ', a1:6:3,' a2= ',a2:6:3); Writeln('f1= ', f1:6:3,' f2= ',f2:6:3); Writeln('w1= ',w1:6:3); Readln; End. 2.3. ЗАДАЧИ ДИНАМИКИ, РЕШАЕМЫЕ В СРЕДЕ СИСТЕМЫ ПАСКАЛЬ Теорема о движении центра масс системы материальных точек. В случае сохранения скорости центра масс. Теорема о движении центра масс системы материальных точек. Зависимость между скоростью центра масс и скоростями точек материальной системы имеет вид: Vс=(?mk *Vk)/M, т.е. xc=(?mk*xk)/M, yc=(?mk*yk)/M, zc=(?mk*zk)/M (1*) Здесь Vс=xc*i+yc*j+zc*k Зависимость между ускорением центра масс и с ускорениями точек материальной системы выражается соотношением Wс=(?mk*Wk)/M, т.е. xc=(?mk*xk)/M, yc=(?mk*yk)/M, zc=(?mk*zk)/M, (2*) Здесь Wс=xc*i+yc*j+zc*k Напомним формулировку теоремы о движении центра масс: центр масс системы материальных точек движется как материальная точка, масса которой равна массе материальной системы и к которой приложены все внешние силы, действующие на систему: M*Wc=?Fk. Та же теорема, записанная в проекциях на оси декартовых координат имеет вид: Mxc=?Fkx, Myc=?Fky, Mzc=?Fkz, (3*) Движение центра масс системы материальных точек зависит от внешних сил, приложенных к данной системе. Внутренние силы, которые отсутствуют в формулировке теоремы, непосредственно на движение центра инерции системы не влияют. Это обстоятельство значительно облегчает решение задач, так как внутренние силы системы большей частью бывают неизвестны. Задачи динамики поступательного движения твердого тела решаются посредством теоремы о движении центра масс системы материальных точек. Действительно, применив эту теорему, мы определим уравнение траектории, скорость и ускорение центра тяжести твердого тела. При поступательном движении твердого тела траектории всех точек одинаковы, а скорости и ускорения их соответственно равны. С помощью теоремы о движении центра масс можно решать прямые и обратные задачи динамики. Последовательность решения задач: 1. Изобразить на рисунке все внешние силы системы; 2. Выбрать систему осей координат; 3. Записать теорему о движении центра масс (3*) в проекциях на декартовы оси координат; 4. Вычислить суммы проекций всех внешних сил системы на оси декартовых координат и подставить их в (3*); 5. В зависимости от условия решать прямую, либо обратную задачи динамики. В некоторых прямых задачах бывают заданы все внешние силы, корме одной, массы всех материальных точек системы и законы их движения. Тогда после выполнения первых четырех пунктов для вычисления левых частей уравнения (3*) надо воспользоваться вспомогательными формулами Mxc=?mkxk, Myc=?mkyk, Mzc=?mkzk (4*) где mk - масса k-ой точки, а xk, yk, zk - уравнения ее движения, ввести эти результаты в (3*) и определить неизвестную силу. В некоторых обратных задачах бывают заданы все внешние силы, массы всех точек системы и законы движения всех точек, кроме одной и требуется определить движение этой точки. Тогда, после выполнения первых четырех пунктов также следует воспользоваться формулами (4*), полученные результаты ввести в левые части уравнений (3*) и затем найти искомый закон движения точки. Если в состав системы входят тела с непрерывным распределением масс, то следует записать координаты xk, yk, zk центров тяжести этих тел и затем воспользоваться формулами (4*). Задача. Эпициклический механизм, расположенный в вертикальной плоскости, установлен на горизонтальной идеально гладкой плоскости и прикреплен к ней болтами K и L. Зубчатое колесо 1 радиуса r1 неподвижно. С2 - центр тяжести зубчатого колеса 2 весом Р2 и радиусом r2. С1 - центр тяжести станины А и колеса 1, общий вес которых равен Р1. Массой кривошипа С1С2, вращающегося с постоянной угловой скоростью w, пренебречь. В начальный момент кривошип занимал правое горизонтальное положение. Определить: 1) нормальное давление механизма на плоскость, 2) угловую скорость w вращения кривошипа, при которой механизм в условиях отсутствия болтов начнет подпрыгивать над горизонтальной плоскостью, 3) наибольшее горизонтальное усилие, действующее на болты, движение центра тяжести С1 станины механизма после среза болтов K и L.
Рис. 4. Геометрическая модель наклонной плоскости. Решение. Материальная система состоит из двух масс: неподвижного колеса 1 со станиной и подвижного колеса 2. Изобразим внешние силы этой системы: Р1 - вес станины и неподвижного колеса 1, Р2 - вес подвижного колеса 2, Ry - суммарная нормальная реакция плоскости, Rx - суммарная тангенциальная реакция болтов K и L. Направим ось Oy по вертикали через точку С1, ось x - вдоль горизонтальной плоскости направо. Запишем теорему о движении центра масс системы в проекциях на оси x и y: Mxc=?Fkx, Myc=?Fky, Mzc=?Fkz В данной задаче ?Fkx=Rx, ?Fky=Ry-P1-P2, Rx= Mxc, (1) Ry= Myc+P1+P2 (2) Для определения сил Rx и Ry остается подсчитать Mxc и Myc. Вычисление Mxc и Myc ведется по формулам: Mxc=?mkxk, Myc=?mkyk. В данном случае Mxc= m1 x1+m2 x2 и Myc= m1 y1+m2 y2, (3). Где x1 и y1 - координаты центра тяжести С1 станины механизма и неподвижного колеса 1, x2 и y2 - координаты центра тяжести С2 подвижного колеса 2. Как видно из рис., x1=0, y1=ОС1 - постоянная, x1=C1 C2 cosw t=(r1+r2) cos w t (угол поворота кривошипа С1С2 равен ?=wt, так как по условию w постоянна), y2=ОС1+С1С2 sinw t=ОС1+(r1+r2) sinw t. Вычислив вторые производные x1, y1, x2, y2 по времени t находим x1=0 y1=0, x2=-(r1+r2) w2 cosw t, y2=-(r1+r2) w2 sinw t. Внеся эти значения в формулы (3), получим: Mxc= -m2 ( r1+ r2 )w2 соs wt, (4) Myc= -m2( r1+ r2 )w2 sin wt (5) После подстановки (4) в (1) и (5) в (2) находим: Rx = -P2 /g *( r1+ r2 )w2 соs wt (6) Ry= P1+ P2 - P2/g *( r1+ r2 )w2 sin wt (7) Давление механизма на горизонтальную плоскость направлено противоположно реакции Ry и по модулю равно ей: Ny=P1+ P2 -P2 /g *( r1+r2 ) w2 sin wt Наибольшее давление: Ny max = P1 + P2+ P2/g * (r1+ r2 ) w2 Наименьшее давление: Ny min = Р1 + P2 - P2 /g * ( r1 +r2 ) w2 В условиях отсутствия болтов механизм может начать подпрыгивать над горизонтальной плоскостью. Это будет иметь место при Rymin<0, т.е при Р1 +P2-P2/g* (r1 + r2) w2<0, откуда следует, что угловая скорость w вращения кривошипа C1C2, при которой происходит подпрыгивание механизма, должна удовлетворять неравенству w > vg*(P1+P2) / P2(r1+r2). Горизонтальное давление, действующее на болты, направлено противоположно Rх (см. формулу (6)), причем Nx=P2/g*(r1 + r2)w2 coswt. Наибольшее давление равно Nxmax=P2/g*(r1 + r2)w2 Допустим, что под действием, силы Nx произошел срез болтов. Тогда весь механизм начнет двигаться по идеально гладкой горизонтальной плоскости. На рис. б изображен механизм в положении, когда точка С1 сместилась с оси у направо на х1. Так как станина механизма находится в движении относительно оси х, то х1 является функцией времени t. Из чертежа видно, что в данном случае х2=х1 + С1С2 cos wt= х1 + (r1 + r2) cos wt. Следовательно, Mxc =т1х1 +т2 x2 = (m1 +m2)x1 - m2 (r1 + r2) w2 cos wt (8) Теорема о движении центра масс системы материальных точек в проекции на ось х имеет вид Мхс = ?Fekx Так как после среза болтов реакция Rx отсутствует, а внешние силы Р1 Р2 и Rу перпендикулярны к оси х, то ?Fkx = 0 и Мхс = 0. Подставив в это уравнение значение Mxс из формулы (8), получим (т1 +m2) х1 -m2 (r1 + r2) w2 cos wt = 0, т. е. x1 = Р2/(Р1+Р2 )*(r1 + r2) w2 cos wt, (9) Это - дифференциальное уравнение движения центра тяжести С1 станины механизма по идеально гладкой горизонтальной плоскости при отсутствии болтов. Для интегрирования уравнения (9) должны быть известны начальные условия движения точки С1. Так как в момент среза болтов точка C1 находилась на оси у и была в покое, то начальные условия движения записываются в виде: при t= 0 x1 =0 и y1 = 0. Проинтегрировав дифференциальное уравнение (9), получим: x1= Р2/Р1+Р2 *(r1 + r2) w sin wt + D1 После подстановки начального условия движения t = 0 и x1 = 0 имеет D1 = 0, т. е x1= Р2/Р1+Р2 *(r1 + r2) w sin wt Вторично проинтегрировав, находим х1 = - Р2/Р1+Р2 *(г1 + r2) cos wt +D2. Использовав то, что при t=0, х1=0, имеем: D2 = Р2/Р1+Р2 *(r1 + r2) т.е. x1 = Р2 / Р1+Р2 *(r1 + r2 )(1-cos wt). Итак, центр тяжести С1 станины механизма в случае отсутствия болтов совершает гармонические колебания с амплитудой Р2/Р1+Р2 *(r1 + r2) и круговой частотой, равной угловой скорости w вращения кривошипа С1С2. Эту задачу можно решить также с помощью уравнения динамики переносного движения. Как известно, переносное поступательное движение системы происходит как движение абсолютное под действием всех внешних сил системы и сил инерции масс в их относительном движении, т.е. Mwe=?Fk+?Jrk , где Fk-- внешние силы, a Jrk -- силы инерции в относительном движении. В проекциях на оси декартовых координат имеем: Мхе =? Fkxe+ ?Jrkx Муе = ?Fkye + ?Jrky, k=1 Мzе = ?Fkze + ?Jrkz k=1 В данной задаче колесо 2, участвуя в переносном поступательном движении вместе с колесом 1 и станиной, совершает относительное вращательное движение вокруг оси, проходящей через центр тяжести С1 колеса 1и станины перпендикулярно к плоскости ху. Изобразив все внешние силы системы Р1, Р2, Rx и Ry (см. рис. в), добавляем центробежную силу инерции в относительном движении Jrn = -Р2 /g*wrn. Так как точка С2 в относительном движении описывает окружность с центром С1 радиуса С1С2 = r1+ r2, то, центро-стремительное ускорение wrn, направлено от С2 к С1 и, следовательно, центробежная сила инерции в относительном движении Jrn направлена противоположно. По модулю Jrn = -Р2 /g*wrn= Р2 /g*(r1+ r2)w2 Вращательная сила инерции в относительном движении Jr? = -Р2 /g*wr? равна нулю, так как кривошип вращается равномерно. Применив дифференциальные уравнения переносного поступательного движения материальной системы в проекциях на оси х и у: Мхе =? Fkxe+ ?Jrkx , Муе = ?Fkye + ?Jrky, k=1 k=1 k=1 k=1 получим Mxe =Rx+Jrn coswt, Mye =Re -- P1-- P2+Jrn sinwt, Так как хe = х1 ,ye=y1 , Jrn =P2/g*(r1+r2) w2, то Мх1=Rx+P2/g(r1+r2)w2coswt , (10) My1=Ry-P1- Р2 +P2/g (r1 + r2) w2 sinwt. (11) В случае механизма, закрепленного болтами, центр тяжести С1 колеса 1 и станины неподвижен , т. е. х1=у1=0, и дифференциальные уравнения принимают вид Rx+P2/g(r1+r2)w2coswt =0, (12) Ry- -P1- Рг +P2/g (r1 + r2) w2 sinwt , (13) откуда вытекает, что проекция нормальной реакции плоскости равна Ry = P1 - Рг +P2 /g (r1 + r2) w2 sinwt. (14) Проекция на ось х горизонтальной силы реакции болтов равна Rx= P2 / g (r1+r2 )w2coswt. (15) Условие подпрыгивания определяем из (14), считая R у min отрицательным. Так как Rymin = P1 + Рг - P2 /g *(r1 + r2) w2, а Ry min<0 , то P1 +Р2 -P2 /g *(r1 + r2) w2<0 откуда w>v g*(P1+P2)/(P2(r1+r2 )) Для определения закона движения центра тяжести CL колеса 1 и станины механизма после среза болтов надо в формуле (10) положить Rx = 0. Тогда Мх1 = P2/g*(r1 + r2) w2 coswt , Т.е. приходим к уравнению (9): x1=P2 /(P1+ P2 )*(r1 + r2 ) w2cos wt , решение которого было получено выше. На основе разработанного алгоритма решения задачи по кинематике составим Паскаль - программу. Program DINAMIKA; Var w,r1,r2,P1,P2,t,NxMax,Ny,x1:Real; Const g=9.8; Begin Writeln ('vvedite radius r1'); Readln (r1); Writeln ('vvedite radius r2'); Readln (r2); Writeln ('vvedite ves P1'); Readln (P1); Writeln ('vvedite ves P2'); Readln (P2); Writeln ('vvedite vremya'); Readln (t); w:=sqrt((g*(P1+P2))/(P2*(r1+r2))); Ny:=P1+P2-(P2/g)*(r1+r2)*w*w*cos(w)*t; NxMax:=P2/g*(r1+r2)*w*w; x1:=P2/P1+P2*(r1+r2)*(1-cos(w)*t); Writeln ('w:=',w); Writeln ('Ny:=',Ny:8:6); Writeln ('NxMax:=',NxMax:8:6); Writeln ('x1:=',x1:8:6); Readln; End. ЗАКЛЮЧЕНИЕ Целью курсовой работы являлась изучение полного спектра функциональных возможностей языка программирования Паскаль для решения задач прикладной механики. Задачами данной работы являлись: 1. Освоение полного спектра функциональных возможностей языка программирования Паскаль; 2. Постановка и решение задач прикладной механики традиционным способом; 3. Решение задач механики в среде языка программирования Паскаль. Методами работы при выполнении поставленных задач: 1. Теоретический анализ научно-технической литературы по языку программирования Паскаль; 2. Математическое моделирование задач прикладной механики; 3. Компьютерное решение задач прикладной механики. На основе проведенного курсового исследования на тему «Приложения технологии языка программирования паскаль в прикладной механике» можно сформулировать следующие выводы: 1. Язык программирования высокого уровня Паскаль обладает широким спектром логических конструкций и функций, необходимых для успешного решения задач прикладной механики. 2. Информационное моделирование механических явлений средствами логики и высшей математики позволяет достаточно быстро перевести решение задач прикладной механики на уровень компьютерных вычислений посредством языка программирования Паскаль. ЛИТЕРАТУРА 1. Бать М.И., Джанелидзе Г., Кельзон А.С. Теоретическая механика в примерах и задачах. Т.1. М.: Просвещение, 2000. 2. Бать М.И., Джанелидзе Г., Кельзон А.С. Теоретическая механика в примерах и задачах. Т.2. М.: Просвещение, 2000. 3. Бочкин А. И. Методика преподавания информатики. - Минск: Высшая школа, 1998. 4. Блашкин И.И., Буров А.А. Новые возможности Turbo-Pascal 6.0. -- Спб.: Изд-во «Макет», 1992. 5. Бородич Ю.С. и др. Паскаль для персональных компьютеров: Справ. пособие/ Ю.С.Бородич, А.Н.Вальвачев, А.И.Кузьмич. -- Мн.: Выш. шк.: БФ ГИТМП «НИКА», 1991. 6. Васильев П.П. Турбо Паскаль -- мой друг: М.: Компьютер, ЮНИТИ, 1995. 7. Великов В.П., Новая информатика в школе // Информатика и образование. - 1986. - №1. 8. Вычислительная техника и программирование. Под редакцией А. В. Петрова М., Высшая школа, 1990. 9. Голубева О.В. Теоретическая механика. Изд-во «Высшая школа». М.: 1968. 10. Донцов Д.А. Самые нужные программы для Windows. Популярный самоучитель.- Спб.: Питер, 2006. 11. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT, AT: Пер. с англ./ Предисл. Н.В.Гайского. -- М.: Финансы и статистика, 1991. 12. Зозуля Ю. Компьютер на 100 % - Спб.: Питер, 2006. 13. Зуев Е.А. Язык программирования Turbo Pascal 6.0. -- М.: Унитех, 1992. 14. Информатика. Базовый курс: Учеб. пособ. для студентов технических вузов / С.В. Симонович, Г. Евсеев, В. И. Мухаровский и др.; под ред. Симоновича - Спб.: Питер, 2005. 15. Информатика: Учеб. пособ. для пед. спец. вузов /А.Р. Есаян, В.И. Ефимов, Л.П. Липецкая и др. - М.: Просвещение, 1991. 16. Лапчик М. П. Методика преподавания информатики. М.: Посвещение, 2001. 17. Левин А. Самоучитель полезных программ 3-е изд.- Спб.: Питер, 2003.Турбо Паскаль 7.0 - К.: Издательская группа BHV, 1998. 18. Марченко А. И., Марченко Л. И. Программирование в среде Turbo-Pascal 7.0-М., Бином Универсал, К.: Юниор, 1997. 19. Мизрохи А.М. Turbo Pascal и объектно-ориентированное программирование. -- М.: Финансы и статистика, 1992. 20. Немнюгин С.А. Turbo Pascal. Программирование на языке высокого уровня. Учебник для вузов. 2-е изд.- Спб.: Питер, 2005. 21. Рывкин К.А. Справочник школьника по информатике. 7-11 кл. - М.: ООО Изд. дом «Оникс 21 век », 2005. 22. Справочник по процедурам и функциям Borland Pascal with Objects 7.0. -- Киев: «Диалектика», 1993. 23. Фарафонов В.В. Турбо Паскаль 7.0. Начальный курс: учеб. пособие. - М.: Кнорус, 2006. 24. Фёдоров А. Особенности программирования на Borland Pascal. -- Киев: «Диалектика», 1994. 25. Хершель Р. Турбо Паскаль/ 2-е изд., перераб. -- Вологда: МП «МИК», 1991. 26. POWER TOOLS PLUS. Процедуры поддержки для Turbo Pascal 4.0.: Справочное руководство пользователя. Техническая документация.
Страницы: 1, 2
|