Рефераты. Автоматизація розрахунків легкового автомобілю

Таким чином, алгоритм МНК включає три етапи:

1. Формування системи рівнянь.

2. Розв"язання системи лінійних алгебраїчних рівнянь та знаходження коефіцієнтів апроксимуючого полінома

3. Вибір "оптимального" (найкращого) степеня апроксимуючого полінома, за заданою припущеною похибкою метода .

При розробці алгоритма і програми формування системи рівнянь необхідно скористатись тим, що в матриці коефіцієнтів знаходяться суми

від до ;

від до :

3.4 Розробка алгоритмів розв'язання задачі

45

45

Рис.10 - схема алгоритму метода найменших квадратів для знаходження коефіцієнтів степеневого апроксимуючого полінома

  • 3.5 Вибір типу та структури оброблюваних даних

В процесі розв'язку поставленої задачі оброблюються дані наступного типу:

Таблиця 3.1

Тип

Область значень

Фізичний формат

Integer

від -2147483648 до 2147483647

32 розряди, зі знаком

Real

від 2,9?10-39 до 1,7?1038

Точність 11-12 розрядів, розмір в байтах - 6

З метою збереження і обробки в пам'яті ЕОМ прийнята така система ідентифікаторів:

Таблиця 3.2

Назва параметра

Позначення

у формулі

у програмі

Масив даних крутного момента

с[i]

Масив даних питомої витрати паливаа

b[i]

Масив даних кількості обертів колінчастого валу

n[i]

Масив коефіцієнтів полінома

a[i]

Кількість коефіцієнтів

m

Інші

-

n1, e1, t, h, a1, b1, b2, eps, s, s0, i, j, k, k2, n2, i1, i3, i2, j1, j3, j2, m1, z1, f, e

3.6 Програмування задачі на мові програмування pascal 7.0

Program Aproksimatsia;

Uses CRT;

Type mas= array[1..25,1..25] of real;

mas1= array[1..25] of real;

Var

a: mas;

c,b,x,x1,y1: mas1;

n,n1,i1,i3,i2,j1,j3,j2,m1: integer;

e1: real;

t,h,a1,b1,b2,eps,s,s0:real;

i,j,k,n2:integer;

Procedure MNK(n1:integer;x1,y1:mas1;var a:mas);

Var

k2:integer; z1,f,e : real;

BEGIN

for k2:=1 to n1 do

begin

z1:=x1[k2]; f:=y1[k2]; e:=1;

for i2:=1 to 2*m1+1 do

begin

c[i2]:=c[i2]+e;

if i2<=m1+1 then b[i2]:=b[i2]+e*f;

e:=e*z1

end;

end;

for i2:=1 to m1+1 do

begin

for j2:=1 to m1+1 do

a[i2,j2]:=c[i2+j2-1];

end;

END;

Procedure Gaus(n:integer;a:mas; b:mas1; var x:mas1);

Var

i,j,k,l:integer; max,z,s,m : real;

BEGIN

writeln('**** Vixidna sistema rivnyan ****');

for i:=1 to n do

begin

for j:=1 to n do write(' ',a[i,j]:5:2); write(' ',b[i]:5:2);

WRITELN;

end;

WRITELN;

for k:=1 to n-1 do

begin

max:=abs(a[k,k]); l:=k;

for i:=k+1 to n do

begin

if abs(a[i,k])>max then

begin l:=i; max:=abs(a[i,k]); end;

end;

if l<>k then begin

for j:=k to n do

begin

z:=a[l,j]; a[l,j]:=a[k,j]; a[k,j]:=z;

end;

z:=b[l]; b[l]:=b[k]; b[k]:=z;

end;

for i:=k+1 to n do

begin

m:=a[i,k]/a[k,k];

for j:=k to n do a[i,j]:=a[i,j]-m*a[k,j];

b[i]:=b[i]-m*b[k];

a[i,k]:=0;

end;

end;

Writeln('*** trikytna sistema rivnayn ***');

for i:=1 to n do

begin

for j:=1 to n do write(' ',a[i,j]:5:2); write(' ',b[i]:5:2);

WRITELN;

end;

writeln;

(*** xod nazad ***)

x[n]:=b[n]/a[n,n];

for i:=n-1 downto 1 do

begin

s:=0;

for j:=i+1 to n do s:=s+x[j]*a[i,j];

x[i]:=(b[i]-s)/a[i,i];

end;

END;

Function q(t:real):real;

BEGIN

q:=x[1]+x[2]*t+x[3]*t*t+x[4]*t*t*t;

END;

procedure simpson(a1,b1:real;n2:integer;var s:real);

var

hs:real;e,i:integer;

begin

hs:=(b1-a1)/(2*n2);

s:=q(a1)+q(b1);

e:=1;

for i:=1 to 2*n2-1 do

begin

s:=s+(3+e)*q(a1+i*hs);

e:=-e;

end;

s:=s*hs/3;

end;

BEGIN

Clrscr;

write('vedit kilkistto4ok tabli4noi fynksi N=');readln(n1);

{ctepin polimena} m1:=3;

writeln('vedit vixidni to4ki');

for i3:=1 to n1 do begin

read(x1[i3]); read(y1[i3]);

WRITELN;

end;

writeln('_________________________');

writeln('vihidni dani');

for i3:=1 to n1 do

begin

write(' ',x1[i3]:5:2); write(' ',y1[i3]:5:2);

WRITELN;

end;

c[1]:=0; b[1]:=0;

MNK (n1,x1,y1,a);

for i2:=1 to m1+1 do n:=n+1;

Gaus(n,a,b,x);

writeln('*** vektor rozvyazky ***');

writeln;

for i1:=1 to n do writeln('x[',i1,']=',x[i1]:7:3);

{kofisienti zapicyutsya a0+a1*x+a2*x^2+a3*x^3+...=const}

write(' q(t)'); write(' y');

writeln;

for i3:=1 to n1 do

begin

e1:=e1+Sqr(q(x1[i3])-y1[i3]);

write(' ',q(x1[i3]):7:3); write(' ',y1[i3]:7:3);

writeln;

end;

writeln('poxibka aproksimasyi',e1:7:5);

write('введіть b2=');read(b2);

a1:=0; b1:=b2/10;

eps:=0.001;

repeat

k:=2;

simpson(a1,b1,k,s);

repeat

s0:=s; k:=k*2;

simpson(a1,b1,k,s);

writeln('b1=',b1:5:2,' s=',s:5:2);

until (abs(s-s0)<=eps)or(k>500);

b1:=b1+b2/10;

until b1>b2;

END.

3.7 Відлагодження програми

Виправлення синтаксичних помилок на підставі повідомлень транслятора. Після написання програми транслятор знайшов ні помилку у 149-му рядку з повідомленням “Error 26: type mismatsh

I, j, k, n2: integer;

Після заміни real на integer, програма була запущена транслятором на виконання.

Таблиця 3.3 - Результати контролю правильності розв'язання задачі

Вихідні дані

Результати розрахунків

ППП

MathCad 2000

Програма на мові Turbo Pascal

400

800

1200

1600

2000

2400

2800

3200

3600

4000

4400

4800

5200

5600

36,3

45,5

54,6

56,1

52,5

66,6

67,9

71,3

65,5

66,4

63,3

55,9

52,6

51,3

353

342

3541

332

328

325

319

314

324

330

331

346

353

360

34.47-0.123x+0.028x2-0.0012x3

421.53-2.37x+0.452x2+0.072x3

31.71-0.12x+0.027x2-0.001x3

417.32-2.41x+0.457x2+0.07x3

ВИСНОВОК

В результаті виконаної роботи були розраховані основні параметри диференціала автомобіля, за результатами розрахунків ми дізнались параметри диференціала. Основна мета було Визначити які навантаження може витримати диференціал .

Склавши програму по розрахунку системи лінійних рівнянь методом Гауса розрахували коефіцієнти системи. Знайдені коефіцієнти х=-1,4, х=0,76, х=4,003, х=1,897, х=-2,080, Таким чином у нас є 5 чисел які заміняють невідомі.

Розрахували швидкісну характеристику автомобіля і склали таблицю яку можна роздрукувати. З таблиці видно що з більшання обертів і зростає навантаження.

ПЕРЕЛІК ПОСИЛАНЬ

Смирнов Г.А. Теория движения колесных машин. - М.: Машиностроение, 1981.- 271с.

Кошарний М.Ф. Основи механіки та енергетики автомобіля. - Київ: Вища школа, 1992. - 200с.

Turbo Pascal 7.0 for users. BHV, 1999. - 448p.

Т.А. Павловськая Pascal Издательство «Питер», 2003.-291с.

П.П. Овчинников, Ф.П. Яремчук, В.М. Михайленко Вища математика Частина-1 : Київ «Техніка»2003 -597с.

Савуляк В.І. Навчальний посібник

Кишеніна Н.В., Кишені В.О., «основи інформаційний технологій та програмування « частина-1 Вінниця 2003.

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.