Simulink Mask Port Visibility

37 次查看(过去 30 天)
Hello!
I have a masked simulink block which has 3 models with different level of fidelity.
I would like to add a check box that when selected turns on/off the visibility of certain ports that are/are not required in the block depending of the user selection.
I see that in some blocks such as the battery one in the figure. This functionality is already added. The port Ta is activated or deactived as a function of the check box.
Does anyone know who to do this?
Thanks in advance.

回答(4 个)

Nikhil Sonavane
Nikhil Sonavane 2020-11-27
You may refer to this link for more details.

Arthur Reis
Arthur Reis 2022-3-23
Perhaps using an enabled subsystem?

Katherine May
Katherine May 2022-4-20
If you're running a custom S-function using a MEXed C-file, you can add the checkbox value to the S-function parameters to send it through to your C file, then selectively enable only the number of ports that you need. Also make sure that accompanying TLC files & port labels will set/grab the correct values from the correct ports.
Like this:
static void mdlInitializeSizes(SimStruct *S) {
boolean usePort = mxGetScalar(ssGetSFcnParam(S, INDEX_USE_PORT)) == 1;
[...]
if(usePort){
ssSetNumInputPorts(S, 1);
ssSetNumOutputPorts(S, 1);
} else {
ssSetNumInputPorts(S, 0);
ssSetNumOutputPorts(S, 0);
}
}
I'm still investigating a solution for when the controlling block is a subsystem containing S-function blocks.

Alexander
Alexander 2023-12-22

类别

Help CenterFile Exchange 中查找有关 Subsystems 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by