РАЗРАБОТКА ПРОГРАММЫ РАСЧЕТА СОБСТВЕННЫХ КОЛЕБАНИЙ КУЗОВА НА РЕССОРНОМ ПОДВЕШИВАНИИ
4.1. Блок-схема алгоритма решения задач
Для разработки программы расчета собственных колебаний кузова предварительно составим блок-схему алгоритма поставленной задачи, которая будет решаться с помощью языка программирования Паскаль A,B,C
Начало |
Ввод исходных данных |
Мкуз, Мгр, С, h, g,Tmax |
Нет |
Да |
H Tmax |
H, q i+1 |
H = H + h |
М = Мкуз + Мгр, |
q i+1 = 2qi – q i-1+h2(g - ) |
Счетчик времени |
Нахождение текущего перемещения |
Вычисление начальных условий |
Блок расчета переменных |
М=Мкуз qi-1 = q0 qi = q0 |
Блок печати |
Stop |
Логический блок Когда H = Tmax прекращаем интегрирование |
Рисунок 8 – блок-схема алгоритма решения задачи |
Блок пересылки |
Таким образом, представленная на рисунке 8 блок-схема имеет 8 блоков:
Блок ввода исходных данных, блок вычисления начальных условий, блок расчета переменных, блок присваивания (счетчик времени), блок интегрирования (нахождение текущего перемещения) блок печати, блок пересылки, а также логический блок.
4.2. Текст программы расчета исследуемых параметров
По блок-схеме, приведенной на рисунке 8, разрабатываем программу расчета собственных колебаний подпрыгивания кузова вагона рессорном подвешивании.
В таблице 3 приведены обозначения, используемые в программе.
Таблица 3 – Таблица идентификаторов
|
|
Обозначения в блок-схеме | Обозначения в программе | Наименование |
Мкуз | Мk | Масса кузова |
Мгр | Мg | Масса кузова |
М | М | Масса |
с | с | Жесткость рессорного подвешивания |
qi | qi | Перемещение при текущем значении времени |
qi-1 | q1 | Перемещение при предыдущем значении времени |
qi+1 | q2 | Перемещение при последующем значении времени |
q0 | q0 | Положение в начальный момент времени |
h | h | Шаг интегрирования |
H | n | Время интегрирования |
Tmax | Tmax | Максимальное время интегрирования |
Программа написана на языке программирования Object Pascal, в среде программирования Pascal ABC.
Program matmodel
uses crt; оператор открытия консоли для вывода результата
Var q0,qi,q1,q2,h,t,Tmax,C,g,m,Mk,Mg:real; оператор задания переменной
F:text; оператор типа файла F
begin
clrscr; оператор очистки экрана
writeln('Bведите жесткость рессорного подвешивания '); оператор вывода данных
readln(C); оператор ввода данных
|
|
assign(F,' C:\мат модели\результаты расчета.txt); оператор привязывания переменной к файлу
rewrite(F); оператор открытия файла для записи переменной F
h:=0.018;
Mk:=12900;
Tmax:=2;
g:=9.8;
Mg:=14000;
t:=0; блок расчетов
M:=Mk+Mg;
q0:=(M*g)/(2*C);
M:=Mk;
q1:=q0;
qi:=q0;
Repeat оператор цикла
q2:= 2*qi - q1 + sqr(h)*(g-(2*C*qi)/M);
Writeln(q2:0:5,t:10:4); оператор вывода переменной
Writeln(F,q2:0:5,t:10:4); оператор вывода переменной
q1:=qi;
qi:=q2; блок расчетов
t:=t + h;
Until t>=Tmax; оператор условия
Readln; оператор ввода переменной
End.
Дата добавления: 2019-03-09; просмотров: 459; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!