Sei sulla pagina 1di 4

close all

clc

%Dati

Q = 1500; %[N]

a = 45; %[mm]

b = 120; %[mm]

r = 24; %[mm]

delta = 1/20; %grado di irregolarità

omega_media = 23; %[rad/s]

% creo un vettore Span per phi

phi_range = linspace(0,2*pi,100);

%calcolo gli angoli phi_0 e gamma

gamma = acos(r/b);

phi_0 = pi-gamma;

%Applicando il teorema del coseno a gamma, ottengo:

OA = sqrt((r^2+b^2-2*r*b*cos(gamma+phi_range))); %[m]

%Determino l'angolo lambda mediante il teorema dei seni

lambda = asin((b*sin(gamma+phi_range))./OA);

%Verifico che l'argomento sia sempre compreso tra [-1,1]

plot((b*sin(gamma+phi_range))./OA, 'r') %plottando l'argomento risulta che esso è compreso tra


[-1,1], quindi soddisfa la condizione

%Ricavo il valore di AL

AL = r*cos(lambda);

tau1 = AL./OA;% rappresenta la funzione non invertita dalla funzione sign di marlab

%per 2*phi_0 il moto del glifo (3) si inverte, bisogna pertanto trovare il

%valore dell'angolo minimo di phi_range corrispondente

[m, ind] = min(abs(phi_range-2*phi_0)); % m è il valore minimo (molto prossimo a 0), mentre ind è
l’indice corrispondente

sign = [ones(1, ind) , -ones(1, numel(phi_range)-ind)];%Dove il vettore sign è un vettore composto


da un vettore di 1 di tanti elementi quanti gli elementi di φ<2φ0 e tanti -1 quanti gli elementi di
φ>2φ0.

tau = sign.*AL./OA;

% Plot di tau

figure('Name', 'Tau'); hold on; grid on;

plot(tau, 'b');

plot(tau1, 'r')

title('Funzione Tau')

legend('Tau Reale', 'Tau non invertita')

%calcolo il momento resistente,sapendo che in risalita Q=0

Mr = (AL./OA)*Q*a;

Mres = tau .* Mr .* [ones(1, ind) , zeros(1, numel(phi_range)-ind)];

%Calcolo il lavoro, conoscendo l'angolo e il momento della manovella

Lr = trapz(phi_range, Mres);

% Calcolo il momento motore

Mm = Lr/(2*pi);

%Calcolo l'integrale mediante il metodo del trapezio, il quale approssima e

%cumula i valori di un vettore

Mmot = Mm * ones(1, numel(phi_range));

Lres = cumtrapz(phi_range,Mres);

Lmot = cumtrapz(phi_range,Mmot);

% Plot dei momenti resistente e motore, e del lavoro resistente e motore

figure ('Name', 'Grafico Momento e Lavoro','NumberTitle', 'off'); hold on; grid on;

plot(Mmot,'r')

plot(Mres,'y')

plot(Lres, '--')

plot(Lmot,'b')

legend(‘Mmot','Mres','Lres','Lmot')

%calcolo il grado di irregilarità

k = max(Lmot-Lres)-min(Lmot-Lres);

%Calcolo l'inerzia del volano

Jv = k/(omega_media.^2 * delta);