Variable ... is undefined on some execution paths
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Federico Avino
le 30 Nov 2020
Réponse apportée : Walter Roberson
le 30 Nov 2020
I'm doing a project in Simulink/Simscape, and it contains a Matlab Function block, which contains the code that must be executed each cycle by the simulator. In this block i need to calculate the discrete derivative of temperature doing (T1-T1_prev)/dt, where T1 is one of the inputs of the block.
In theory, the problem of this methode is the definition of T1_prev at the time 0 of the simulation, so i did an
function y = TCU(u)
%% input
...
time = u(6);
if time <= 0
...
T1_prev = 0;
end
temperature_tank1 = temperatureCheck (T1, T1_prev, Tmax, Tsig, dT_dt_max, deltat);
T1_prev = T1;
y
end
I reported just the parts which i have problems with. In this way matlab says T1_prev is not fully defined due to the lack of an else case, but actually i don't want it, and T1_prev results fully defined, because it's updated in the end of the cycle for each cycle that is not the first. (T1 is updated each cycle too)
How can i solve the problem?
Thank you guys
2 commentaires
John D'Errico
le 30 Nov 2020
Learn to use the debugger? Clearly, even though you think it is always defined, there are some paths where it is not.
Réponse acceptée
Walter Roberson
le 30 Nov 2020
persistent T1_prev
if isempty(T1_prev); T1_prev = 0; end
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Troubleshooting dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!