No BSD License  

Highlights from
Calculating blending moment of the shaft

image thumbnail
from Calculating blending moment of the shaft by Riccardo
It calculate blending moment of the shaft when you insert a generic number of forces.

flex(forze,lung,reazioni)
function flex(forze,lung,reazioni)
i=0;nFor=evalin('base','numeroforze');
Vettori(1,:)=[0 reazioni(1) 0 0];
for i=3:nFor+2
    Vettori(i-1,:)=[forze(i-2,:)];
end
Vettori(nFor+2,:)=[0 reazioni(2) lung 0];
assignin('base','Vettori',Vettori);
nVet=nFor+2;

% Crea un vettore distanze che verr poi usato come insieme di bracci di
% ogni forza
a=0;
for k=nVet-1:-1:2
    a=Vettori(k,3)-Vettori(k-1,3);
    d(k)=[a];
end
d=d';
for i=1:size(d)-1
    d(i)=d(i+1);
end
assignin('base','Distanze',d);

% Crea un vettore di forze comprendendo anche le reazioni vincolari
F(1)=[reazioni(1)];
for i=3:nFor+2
    F(i-1)=[forze(i-2,2)];
end
F(nFor+2)=[reazioni(2)];
F=F';
assignin('base','F',F);
for i=1:nFor
    Fn(i)=i;
end

% Seleziona in base al  numero di forze il calcolo da effettuare chiamando
% felx1
if nFor==1
        M(1)=-F(1)*d(1);
elseif nFor==2
        M(1)=-F(1)*d(1);
        M(2)=-(F(2)*d(2)+F(1)*(d(1)+d(2)));
elseif nFor>2
    M(1)=-F(1)*d(1);
    M(2)=-(F(2)*d(2)+F(1)*(d(1)+d(2)));
    b=0;
    for i=2:nFor
        b=Fn(i)+b;
    end
    [N]= flex1(d,F,nFor,b);
    k=3;x=2;
    for i=1:nFor-2
        x=x+1;
        for j=1:x
            C(i,j)=-F(j)*N(k);
            k=k+1;
        end
    end
    k=3;
    for i=1:size(C,1)
        n=0;
        for j=1:size(C,2)
            n=C(i,j)+n;
        end
        M(k)=n;
        k=k+1;
    end
end
j=0;M=M';

% Scrive le coordinate appena trovate dei momenti in un vettore di punti
% del tipo P(x,y) per poi plottare il grafico del momento in ogni pezzo di
% albero
PM(1,:)=[0 0];k=2;
for i=2:nFor+1
    PM(i,:)=[Vettori(k,3) M(k-1)];
    k=k+1;
end
PM(i+1,:)=[lung 0];
assignin('base','PuntiFlett',PM);

% Finalmente disegna il diagramma del momento flettente
for i=1:nVet-1
    x1=PM(i,1); y1=PM(i,2);
    x2=PM(i+1,1); y2=PM(i+1,2);
    flettente=line([x1 x2], [y1 y2],'marker','.','Color','b');
    text(PM(i,1),PM(i,2),[num2str(PM(i,2)),'Nm']);
end
maxM=max(PM(:,2))*1.1; minM=min(PM(:,2))*1.1;
if maxM==0
    maxM=50;
elseif minM==0
    minM=-50;
end
text(PM(1,1),PM(1,2),[num2str(PM(1,2)),'Nm']);
text(PM(nVet,1),PM(nVet,2),[num2str(PM(nVet,2)),'Nm']);
ylabel('Momento Flettente in Nm'); xlabel('Lunghezza dell''albero in mm');
axis ([-lung/10 1.1*lung minM maxM]);

Contact us at files@mathworks.com