Bonjour,

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

function Amplitudes_vibrations(varargin)

global Nbr_elements Inertie Raideur Amortissement Frequence_triees Nbr_elements_avant_M Nbr_elements_M

Ordre_allumage = evalin('base','Ordre_allumage');
Nbr_cylindres = evalin('base','Nbr_cylindres');
Aiq(1,:) = evalin('base','Aiq');
Biq(1,:) = evalin('base','Biq');

Alpha_gene = 720/Nbr_cylindres;
Alpha=zeros(Nbr_elements,1);
for i = (Nbr_elements_avant_M+1) : ((Nbr_elements_avant_M+1)+Nbr_elements_M)
    for j = 1 : Nbr_cylindres
        if (i-Nbr_elements_avant_M) == Ordre_allumage(j)
            Alpha(i) = Alpha_gene * ( j-1 );
        end
    end
end
assignin('base','Alpharem',Alpha)
for i = 1 : Nbr_elements
    for q = 0.5:0.5:2
        Aiq(i,q*2) = Aiq(1,q*2) * cos( q * Alpha(i) ) + Biq(1,q*2) * sin( q * Alpha(i) );
        Biq(i,q*2) = Aiq(1,q*2) * sin( q * Alpha(i) ) + Biq(1,q*2) * cos( q * Alpha(i) );
    end
end

Y = [Aiq;Biq];

Omega = Frequence_triees * pi / 30;

for w = 1:Nbr_elements
    
    t = 0:(4*pi/(10*Omega(w))):(4*pi/Omega(w));
    
    for q = 0.5:0.5:2
        a = Raideur - Inertie * Omega(w) * Omega(w) * q * q;
        b = Amortissement * Omega(w) * q;
    end

    Matrice_alpha = [a -b;b a];

    X = inv(Matrice_alpha) * Y;
    Xq = X(1:Nbr_elements,:);
    Yq = X(Nbr_elements+1:2*Nbr_elements,:);

    for i = 1 : Nbr_elements
        for q = 0.5:0.5:2
            Teta_q(i,q*2,:) = Xq(i,q*2) * sin( q * Omega(w) * t) + Yq(i,q*2) * cos( q * Omega(w) * t);
        end
    end
    
    for i = 1:Nbr_elements
        Teta(i) = sum(Teta_q(i,:));
    end
    
    %Matrice_Omega(w,1) = Teta_q(w);
    Matrice_Omega(w,2) = Teta(w);
end

for i = 1:(Nbr_elements-1)
    Delta_Teta(i) = Teta(i+1) - Teta(i)
end
et voici mon erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
? Subscripted assignment dimension mismatch.
 
Error in ==> Amplitudes_vibrations at 48
            Teta_q(i,q*2,:) = Xq(i,q*2) * sin( q * Omega(w) * t) + Yq(i,q*2) * cos( q * Omega(w) * t);
 
Error in ==> Calculs_test at 21
Amplitudes_vibrations
J'ai beau relire mon code, je ne trouve l'erreur dans mon expression, quelqu'un peut-il me dire quelle matrice pose problème