How to read out value from simout object

I'm running the simulation from the Matlab script via sim() and I need to read output variables and since model is hierachivsl - how can I access the resulting values?
The values I want ot get are at subsystem:
global_model/control_loop with variable at "Out" port 6, named "my_estim"
and within Variant subsystem
global_model/plant/Variant Subsystem1/Lumped (abc_param) at port 8, named "my_ctrl"
running the model from cmd line: simout = sim("global_model.slx");
how to read these variables out of simout aka plot(simout.yout.get('my_estim').Values);
how to read these variables?

 Accepted Answer

You need to click that signal line, right click, select properties, and then give it a name and log the signal. Once done that, the signal logging will be saved in the simout file.

5 Comments

>> out1 = sim("global_model.slx");
>> plot(out1.yout.get('estim').Values)
Dot indexing is not supported for variables of this type.
>>
>> res = get(out1,'estim')
Error using matlab.graphics.Graphics/get
Unrecognized property estim for class matlab.ui.Root.
>>
can't get access it :(

Can you screenshot the Simulink block diagram and highlight the signal you wish to access. It makes it earlier for us to guide you.

Peter
Peter on 24 Feb 2025
Edited: Peter on 24 Feb 2025
I want to run multiple simulations with different configurations and then compare results on "Theta_elec_estim" vs. "Theta_elec_plant" vs. ""Theta_elec_ctrl"
aka
'estim' is not logged. Right click the signal line, checkmark to log the signal.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!