Can I display the value of an output of my block on its mask?

25 Ansichten (letzte 30 Tage)
Jan
Jan am 23 Mär. 2018
Kommentiert: Jan am 28 Jul. 2022
Is it possible to mimic the behavior of the display sink block on my own masks? I would like to modify the value of a slowly varying signal inside my block, deliver the output to a subsequent block and display the output result (an integer) on the mask. This avoids having to fork off the output signal to an additional display block on the top level diagram.

Akzeptierte Antwort

Andrea Carignano
Andrea Carignano am 28 Jan. 2021
Bearbeitet: Andrea Carignano am 28 Jan. 2021
Hi Jan,
If I understood correctly you have a subsystem like this:
Inside the block you have for example:
And you want to see the value of OUTPUT displayed on SUBSYSTEM mask
SOLUTION 1: Show the value label of the signal (not exactly what you want)
SOLUTION 2 (nice but not recommended because it can slow down the simulation)
  • Add a hidden edit box to the SUBSYSTEM mask and choose a name for the parameter (example "x")
  • In Icons & Ports add the code:
disp(get_param(gcb,'x'))
  • Add a Matlab function block inside SUBSYSTEM with 1 input from the value you want to display and no output.
  • Use this code in the matlab function block
function fcn(u)
coder.extrinsic('gcb','set_param','get_param');
p = get_param(gcb,'parent');
set_param(p,'x',sprintf('%.0f',u));
end
  • (Optional but recommended) set the matlab function block Sample Time to avoid a slowdown of the simulation
  • In the end you have the value of the output displayed on your mask during simulation

Weitere Antworten (0)

Kategorien

Mehr zu Subsystems finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by