0
J'écris un code sur matlab pour un exercice pour dessiner la forme de mode d'un système. L'image que je reçois est correcte, mais je veux pouvoir changer de couleur et rendre la ligne plus épaisse. Voici mon code:Personnalisez la fonction de tige sur matlab
clear all
close all
clc
%% Assignment 3
% X Direction
% Natural Frequencies and Damping Ratios
wn_X1=354.3; d_X1=0.038;
wn_X2=467.6; d_X2=0.049;
% Damped Frequencies
wd_X1=wn_X1*sqrt(1-(d_X1)^2);
wd_X2=wn_X2*sqrt(1-(d_X2)^2);
% Residues in X direction
sX1_11=1.9890*10^-6; nuX1_11=-1.9644*10^-5;
sX2_11=1.4978*10^-5; nuX2_11=-4.4070*10^-5;
sX1_12=-4.4952*10^-6; nuX1_12=-1.2556*10^-5;
sX2_12=7.0287*10^-6; nuX2_12=-3.3470*10^-5;
alphaX11_1=2*(d_X1*wn_X1*sX1_11-wd_X1*nuX1_11);
alphaX12_1=2*(d_X1*wn_X1*sX1_12-wd_X1*nuX1_12);
alphaX11_2=2*(d_X2*wn_X2*sX2_11-wd_X2*nuX2_11);
alphaX12_2=2*(d_X2*wn_X2*sX2_12-wd_X2*nuX2_12);
betaX11_1=2*sX1_11;
betaX12_1=2*sX1_12;
betaX11_2=2*sX2_11;
betaX12_2=2*sX2_12;
% Complex modal matrix in X direction
sX1=wd_X1*1j; sX2=wd_X2*1j;
u_11=sqrt(alphaX11_1+betaX11_1*sX1);
u_21=sqrt(alphaX12_1+betaX12_1*sX1);
u_12=sqrt(alphaX11_2+betaX11_2*sX2);
u_22=sqrt(alphaX12_2+betaX12_2*sX2);
U=[u_11 u_12; u_21 u_22]
% Y Direction
% Natural Frequencies and Damping Ratios
wn_Y1=225.6; d_Y1=0.038;
wn_Y2=386.6; d_Y2=0.049;
% Damped Frequencies
wd_Y1=wn_Y1*sqrt(1-(d_Y1)^2);
wd_Y2=wn_Y2*sqrt(1-(d_Y2)^2);
% Residues in X direction
sY1_11=8.5993*10^-6; nuY1_11=-1.5280*10^-5;
sY2_11=1.4732*10^-5; nuY2_11=-4.9648*10^-5;
sY1_12=4.0081*10^-6; nuY1_12=-1.0945*10^-5;
sY2_12=4.4653*10^-6; nuY2_12=-3.3297*10^-5;
alphaY11_1=2*(d_Y1*wn_Y1*sY1_11-wd_Y1*nuY1_11);
alphaY12_1=2*(d_Y1*wn_Y1*sY1_12-wd_Y1*nuY1_12);
alphaY11_2=2*(d_Y2*wn_Y2*sY2_11-wd_Y2*nuY2_11);
alphaY12_2=2*(d_Y2*wn_Y2*sY2_12-wd_Y2*nuY2_12);
betaY11_1=2*sX1_11;
betaY12_1=2*sX1_12;
betaY11_2=2*sX2_11;
betaY12_2=2*sX2_12;
% Complex modal matrix in X direction
sY1=wd_Y1*1j; sY2=wd_Y2*1j;
v_11=sqrt(alphaY11_1+betaY11_1*sY1);
v_21=sqrt(alphaY12_1+betaY12_1*sY1);
v_12=sqrt(alphaY11_2+betaY11_2*sY2);
v_22=sqrt(alphaY12_2+betaY12_2*sY2);
V=[v_11 v_12; v_21 v_22]
% Plot mode shapes in X Direction
UU=real(U);
omegaX=[wn_X1 wn_X2];
subplot(2,1,1)
plot(UU,'--');
xlabel('Elements','FontSize',25); ylabel('Mode amplitude','FontSize',25);
title(['Mode shapes in X direction, \omega=' sprintf('%4.2f, ',omegaX)],'FontSize',25);
axis([0.5 2.5 -0.2 0.3]);
set(gca,'XTick',[1:2],'FontSize',20);
Leg=legend('Mode 1','Mode 2');
set(Leg,'FontSize',25);
hold on
stem(UU,'filled','MarkerSize',11);
hold on
% Plot mode shapes in Y Direction
VV=real(V);
omegaY=[wn_Y1 wn_Y2];
subplot(2,1,2)
plot(VV,'--');
xlabel('Elements','FontSize',25); ylabel('Mode amplitude','FontSize',25);
title(['Mode shapes in Y direction, \omega=' sprintf('%4.2f, ',omegaY)],'FontSize',25);
axis([0.5 2.5 -0.2 0.3]);
set(gca,'XTick',[1:2],'FontSize',20);
Leg=legend('Mode 1','Mode 2');
set(Leg,'FontSize',25);
hold on
stem(VV,'filled','MarkerSize',11);
hold on
Le code est runable, je veux juste l'intrigue de regarder un peu plus agréable. Vive les gars D
'plot' vous permet de spécifier les couleurs, lineWidth etc: [Matlab plot doc] (http://www.mathworks.com /help/matlab/ref/plot.html#namevaluepairarguments) ... Idem pour 'stem': [document racine MATLAB] (http://www.mathworks.com/help/matlab/ref/stem.html#namevaluepairarguments – Geoff
Si je spécifie 'b', je reçois les 4 points en bleu, mais je veux les points pour le mode 1 en bleu et celui pour le mode 2 en vert. –
Que représentent les matrices 'U' et' V'? Je vois que vous tracez la matrice entière, et la façon dont les matrices sont placées est faite sur une colonne. Chaque colonne obtient une couleur distincte. – rayryeng