Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект по Мат Мод. Иутин АВ.docx
Скачиваний:
9
Добавлен:
06.12.2018
Размер:
850.6 Кб
Скачать

Блок-схема подпрограммы вычисления сил, действующих в модели

Начало

с, b, dlt1, m, Ft0, P0, g, v, mu

if(dlt<0)

F=-c*dlt-b*vdlt;

elseif (dlt>=0 & dlt<=dlt1)

F=0.0;

else

F=-c*(dlt-dlt1)-b*vdlt;

end

Вычисление внешнего кинематического воздействия

Вычисление зависимости изменения знака vx

Вычисление силы трения

Вычисление силы полезного сопротивления

Конец

Приложение Г

Блок-схема подпрограммы вычисления правых частей системы дифференциальных уравнений

Начало

m, v, g

Вычисление внешнего кинематического воздействия

Вычисление сил, действующих в модели

Вычисление правых частей

Формирование выходного массива

Конец

Приложение Д

Программа моделирования динамики иглы в замке вязального механизма на языке программирования системы matlab

function igla_okr

% IGLA_OKR - программа моделирования движения иглы по заключающему клину.

% Первый участок - парабола

% Второй участок - прямая

% Третий участок - синусоида

% Глобальные переменные программы

global c b dlt1 m Ft0 P0 g v mu

global b1 z1 z2 z3

global L1 L2 L3

% Параметры участков клина

z1 = 2.23e-03;

z2 = 7.00e-03;

z3 = 14.04e-03;

Bt = 50;

b1 = tan(Bt*pi/180);

% Параметры динамической модели

c = 1e+04

psi = 0.6;

dlt1 = 0.24e-03;

m = 0.713e-03;

Ft0 = 0.24;

P0 = 0.1;

g = 9.81;

v = 0.7;

w = sqrt(c/m);

b = c*psi/(2*pi*w);

mu = 100000;

% Определение законов движения по участкам

% Первй участок - парабола

L1 = 2*z1/b1;

% Второй участок - прямая

L2 = L1 + z2/b1;

% Третий участок - синусоида

L3 = L2 + 2*(z3-z2-z1)/b1;

% Задание интервала интегрирования

t0 = 0; tk = L3/v;

% Начальные условия

y0 = [0, 0];

% Интегрирование дифференциального уравнения математической модели

[t,y1] = ode45(@sysdif, [t0, tk], y0);

% Транспонирование массива времени

t = t';

% Выделение из двумерного массива y1 массивос dlt (деформация) и vdlt

% (скорость деформации в зазоре)

dlt = y1(:,1)';

vdlt = y1(:,2)';

% Вычисление сил, действующих в зазоре игла-клин и ускорения деформации для

% построения графиков

for k=1:length(t)

L(k) = t(k)*v;

[y(k), vy(k), wy(k)] = ksi(L(k));

[F(k), Ft(k), P(k)] = sila(t(k), dlt(k), vdlt(k));

wdlt(k) = (F(k)-Ft(k)-P(k)-m*g-m*v*v*wy(k))/m;

end;

% Построение графиков законов движения иглы

figure(1)

subplot(311); plot(L, y, '-k', 'LineWidth', 2);

grid on, xlabel('L, m'), ylabel('\xi, m');

subplot(312); plot(L, vy*v, '-k', 'LineWidth', 2);

grid on, xlabel('L, m'), ylabel('\xi\prime, m/c');

subplot(313); plot(L, wy*v^2, '-k', 'LineWidth', 2);

grid on, xlabel('L, m'), ylabel('\xi\prime\prime, m/c^2');

% Построение графиков зависимостей деформации, скорости и ускоерния

% деформации в зазоре игла-клин

figure(2)

subplot(311), plot(t, dlt, '-k', 'LineWidth', 2), grid on

xlabel('t, c'), ylabel('\Delta, m')

subplot(312), plot(t, vdlt, '-k', 'LineWidth', 2), grid on

xlabel('t, c'), ylabel('\Delta\prime, m/c')

subplot(313), plot(t, wdlt, '-k', 'LineWidth', 2), grid on

xlabel('t, c'), ylabel('\Delta\prime\prime, m/c^2')

% Построение графика зависимости силы в зазоре игла-клин

figure(3);

subplot(311), plot(t, Ft, '-k', 'LineWidth', 2), grid on

xlabel('t, c'), ylabel('Ft, H')

subplot(312), plot(t, P, '-k', 'LineWidth', 2), grid on

xlabel('t, c'), ylabel('P, H')

subplot(313), plot(t, F, '-k', 'LineWidth', 2), grid on

xlabel('t, c'), ylabel('F, H')

%=========================================================================

% ПОДПРОГРАММЫ

%=========================================================================

% Подпрограмма вычисления зависимости ksi(L) и ее первой и второй

% передаточных функций

function [y, vy, wy] = ksi(L)

% Описание глобальных параметров

global L1 L2 L3 R1 R2 b1 z1 z2 z3

% Перебор участков

if L <= L1

% Первый участок

y = b1^2*L^2/(4*z1);

vy = b1^2*L/(2*z1);

wy = b1^2/(2*z1);

elseif L >= L2

% Если движение на третьем участке

y = z3+(z3-z2-z1)*((L-L3)/(L3-L2)-1/pi*sin(pi*(L-L3)/(L3-L2)));

vy = (z3-z2-z1)/(L3-L2)*(1-cos(pi*(L-L3)/(L3-L2)));

wy = (z3-z2-z1)*(pi/(L3-L2)^2)*sin(pi*(L-L3)/(L3-L2));

else

% Если движение на втором участке

y = z1 + b1*(L-L1);

vy = b1;

wy = 0;

end

% -----------------------------------------------------

% Подпрограмма вычисления сил, действующих в модели

function [F, Ft, P] = sila(t, dlt, vdlt)

% Описание глобальных параметров

global c b dlt1 m Ft0 P0 g v mu

% Вычисление силы F

if(dlt<0)

F=-c*dlt-b*vdlt;

elseif (dlt>=0 & dlt<=dlt1)

F=0.0;

else

F=-c*(dlt-dlt1)-b*vdlt;

end

% Вычисление внешнего кинематического воздействия

L = v*t;

[y, vy, wy] = ksi(L);

vx = v*vy + vdlt;

% Вычисление зависимости изменения знака vx

k = sign(vx);

zn = k*(1-exp(-k*mu*vx));

% Сила трения

Ft = Ft0*zn;

% Сила полезного сопротивления

P = P0*zn;

% -----------------------------------------------------

% Подпрограмма вычисления правых частей системы дифференциальных уравнений

function dzdt = sysdif(t, z)

% Описание глобальных параметров

global m v g

% Вычисление внешнего кинематического воздействия

L = v*t;

[y, vy, wy] = ksi(L);

vy = v*vy;

wy = v^2*wy;

% Вычисление сил, действующих в модели

[F, Ft, P] = sila(t, z(1), z(2));

% Вычисление правых частей

dz1dt = z(2);

dz2dt = (F-Ft-P-m*g-m*wy)/m;

% Формирование выходного массива

dzdt = [dz1dt; ...

dz2dt];