The function return the value "phi_dot" might be unset (warning)
7 ビュー (過去 30 日間)
古いコメントを表示
This is only the last part of my code, i don't understand why matlab tells me the message "The function return the value "phi_dot" might be unset (warning)". Anyone can help me to find any solution, please?
(I don't put all the code because it works untill H=jacobian...)
A = jacobian(f,x);
%Linearizzazione delle uscite
H = jacobian(h,x);
%% Ricavo la PHI da utilizzare per il calcolo del gramiano
%condizione iniziale per l'equazione differenziale
F0 = eye(size(A)); %uso size(A) perchè phi non l'ho ancora definita e A e phi hanno stesse dimensioni
%definisco la funzione a cui applicare la ode
odefun = @(t,phi) state_sensitivity_matrix(t,phi,A);
%Calcolo la ode con vettori dei tempi pari a t (vedi inizio programma) e
%condizione iniziale F0 -> riportata in un vettore colonna solo e non a
%matrice
[T,F] = ode45(odefun,t,F0(:));
%Riporto le varie F (che sarebbero le phi) nel tempo in forma matriciale
F = reshape(F.',size(A(1)),size(A(2)),[]);
%% Funzione che apporta alcune modifiche per poter usare la ode45 con
%%matrici e sarà la stessa funzione da passare alla ode per risolvere
%%l'equazione differenziale
function phi_dot = state_sensitivity_matrix(t1,phi,A)
%Siccome phy ha la stessa dimensione di A, con reshape dico a matlab che
%phy è una matrice delle stesse dimensioni di A e la chiamo F
F = reshape(phi,size(A));
%Siccome l'equazione differenziale da risolvere è: phi_dot=A*phy inizio a
%calcolare il prodotto matriciale A*phy
AF = A*F;
%Adesso scrivo l'equazione differenziale vera e propria ma riscrivo A*phi
%come se fosse un vettore colonna solo dove ogni colonna viene riportata
%sotto alla precedente fino ad ottenere un vettore colonna
%per esempio [1 2; 3 4] diventerebbe [1 2 3 4]'
phy_dot = AF(:);
end
0 件のコメント
採用された回答
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!