image thumbnail
rosette.m
% Example: rosette
% ~~~~~~~~~~~~~~~~
% This program analyzes for the stresses or
% strains in a plate using Hooke's law.
%
% Data is defined in the declaration statements
% below, where:
%
% Emod     - modulus of elasticity 
% mu       - Poisson's ratio 
% Rosette  - =1, rectangular rosette
%            =2, delta rosette
%            =3, T-delta
% e1,e2,e3 - three strain measures
% e4       - required for T-delta rosettes
%
% User m functions required: none
%----------------------------------------------

clear;
%...Input definitions
Problem=1;
if Problem == 1
  %...Rectangular
  Rosette=1; Emod=30e6; mu=0.3;
  e1=285e-6; e2=65e-6; e3=102e-6;
elseif Problem == 2
  %...Delta
  Rosette=2; Emod=30e6; mu=0.3;
  e1=374e-6; e2=-135e-6; e3=227e-6;
elseif Problem == 3
  %...T-Delta
  Rosette=3; Emod=30e6; mu=0.3;
  e1=225e-6; e2=305e-6; e3=-274e-6; e4=-65e-6;
end

raddeg=180/pi;

if Rosette == 1
  %............................
  %...Rectangular (3 @ 45 degs)
  %............................
  %...Strain calculations
  e_avg=(e1+e3)/2;
  Eradius=sqrt((e1-e3)^2+(2*e2-(e1+e3))^2);
  e_max=e_avg+0.5*Eradius;
  e_min=e_avg-0.5*Eradius; gamma_max=Eradius;
  %...Stress constants
  A=(e1+e3)/2; B=(e1-e3)/2;
  C=(2*e2-(e1+e3))/2;
elseif Rosette == 2
  %......................
  %...Delta (3 @ 60 degs)
  %......................
  %...Strain calculations
  e_avg=(e1+e2+e3)/3;
  Eradius=sqrt((e1-(e1+e2+e3)/3)^2+ ...
               ((e2-e3)/sqrt(3))^2);
  e_max=e_avg+Eradius; e_min=e_avg-Eradius;
  gamma_max=2*Eradius;
  %...Stress constants
  A=(e1+e2+e3)/3; B=e1-(e1+e2+e3)/3;
  C=(e2-e3)/sqrt(3);
elseif Rosette == 3
  %....................................
  %...T-delta (3 @ 60 degs, 1 @ 0 degs)
  %....................................
  %...Strain calculations
  e_avg=(e1+e4)/2;
  Eradius=sqrt((e1-e4)^2+4/3*(e2-e3)^2);
  e_max=e_avg+Eradius/2;
  e_min=e_avg-Eradius/2; gamma_max=Eradius;
  %...Stress constants
  A=(e1+e4)/2; B=(e1-e4)/2; C=(e2-e3)/sqrt(3);
else
  fprintf( ...
  '\n\nERROR: Undefined rosette type\n');
end

%...Stress calculations
Savg=Emod/(1-mu)*A;
Sradius=Emod/(1+mu)*sqrt(B^2+C^2);
Sigma_max=Savg+Sradius;
Sigma_min=Savg-Sradius; Tau_max=Sradius;
Sigma_ang_mxmn=0.5*atan2(C,B);
Sigma_ang_mxmn=Sigma_ang_mxmn*raddeg;

fprintf('\n\nRosette Analysis');
fprintf(  '\n----------------');
fprintf('\n\nInput:');
fprintf('\n  Modulus of elasticity: %g',Emod);
fprintf('\n  Poisson''s ratio:       %g',mu);
fprintf('\n  Rosette type:          %g ', ...
        Rosette);
if Rosette == 1, fprintf('(Rectangular)'); end
if Rosette == 2, fprintf('(Delta)'); end
if Rosette == 3, fprintf('(T-Delta)'); end
fprintf(  '\n  Strains:');
fprintf(  '\n    e1:                  %g ',e1);
fprintf(  '\n    e2:                  %g ',e2);
fprintf(  '\n    e3:                  %g ',e3);
if Rosette == 3
  fprintf('\n    e4:                  %g ',e4);
end
fprintf('\n\nPrincipal stresses:');
fprintf(  '\n  Sigma-1:    %g',Sigma_max);
fprintf(  '\n  Sigma-2:    %g',Sigma_min);
fprintf(  '\n  Tau-12:     %g',Tau_max);
fprintf(  '\n  Sigma_ang:  %g',Sigma_ang_mxmn);
fprintf(  ' degs');
fprintf('\n\nPrincipal strains:');
fprintf(  '\n  e-1:         %g',e_max);
fprintf(  '\n  e-2:         %g',e_min);
fprintf(  '\n  e-12:        %g',gamma_max);
fprintf('\n');

Contact us at files@mathworks.com