- Select the block from which you want to trace the signal's source.
- Refer to the code given below to trace the signal to the origin.
How to find path of the signal source from its name?
조회 수: 18 (최근 30일)
이전 댓글 표시
Above is the subsystem of my big model, in this I've 2 outports and the path of the subsytem is "MyModel/handle_error/apply_linear", this outports is going to my root of the model "MyModel". If i press "highlight to source" in my required signal at root path, it is taking me to my source.
How to get this via matlab command? Like if i give a signal name "final_output", the command should be able to give path of source "MyModel/handle_error/apply_linear"
댓글 수: 0
답변 (1개)
Abhaya
2024년 9월 6일
편집: Abhaya
2024년 9월 6일
Hi Vick,
To trace the origin of a signal in a Simulink model, you can utilize the‘SrcBlockHandle’and‘SrcPortHandle’parameters with MATLAB ‘get_param’function.
Please follow the given steps to find the source of a signal from its handle.
function src=traceSignalFun(blockHandle)
portHandles = get_param(blockHandle, 'PortHandles');
src=getfullname(blockHandle);
if isfield(portHandles, 'Inport')
line = get_param(portHandles.Inport(1), 'Line');
if line ~= -1 % Check if there is a connected line
% Get the source block of the line
srcBlockHandle = get_param(line, 'SrcBlockHandle');
srcPortHandle = get_param(line, 'SrcPortHandle');
% Get the full name of the source block
srcBlockName = getfullname(srcBlockHandle);
% Get the source port number
srcPortNumber = get_param(srcPortHandle, 'PortNumber');
blockType = get_param(srcBlockHandle, 'BlockType');
if strcmp(blockType, 'SubSystem')
% Get the blocks inside the subsystem
outPorts=find_system(srcBlockHandle,'SearchDepth', 1, 'BlockType', 'Outport');
src=traceSignalFun(get_param(outPorts(srcPortNumber),'Handle'));
else
src=getfullname(srcBlockName);
end
end
end
end
%call the function using handle to the selected block
source=traceSignalFun(gcbh);
disp(source);
For further information, please refer to the MATLAB documentation for ‘get_param’ function,
Hope this helps.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!