Variable ... is undefined on some execution paths
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Federico Avino
am 30 Nov. 2020
Beantwortet: Walter Roberson
am 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 Kommentare
Akzeptierte Antwort
Walter Roberson
am 30 Nov. 2020
persistent T1_prev
if isempty(T1_prev); T1_prev = 0; end
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Large-Scale Modeling finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!