How can I parametrize the "To Workspace" block in Simulink?
조회 수: 7 (최근 30일)
이전 댓글 표시
Hi there. I am trying to parametrize the "To Workspace" block in Simulink, but it shows me error. Instead of the default variable name simout , I want to use a name that I can pass from workspace. Ex: eval('HHH') instead of simout , where HHH='some_var' . Then the signal from simulation should be stored in a variable named some_var in the base workspace.
The actual scenario is a bit more complex. I would want to provide variable name through eval('B.Label') , where the field Label of the structure B is initialized in the base workspace as B.Label='some_var' . Otherwise, B could be an internal variable in the mask of the subsystem that contains the "To Workspace" block.
The variable name is never changed during the simulation. Thanks in advance for any helpful suggestions.
These are the inputs I tried instead of the default simout, but they gave error Invalid MATLAB variable name specified in ...
eval('B.Label')
B.Label
댓글 수: 0
채택된 답변
Christopher Berry
2014년 8월 4일
Hi Krishnanand,
Since the variable name does not change during the simulation, you can set the output parameter 'VariableName' of the 'To Workspace' block completely from the base workspace like this:
First, you will need to get the system path for the 'To Workspace' block in question. You can do this interactively by selecting that block and then typing:
>> h = gcb;
or you can do this at the cmd prompt by typing:
>> h = find_system(gcs,'Name','To Workspace')
Where 'To Workspace' is the exact name of the block you want to manipulate. If you have more than one 'To Workspace' block, make sure to pick the right one!
Either way, the system path for the block will not change unless you change it, so you will only need to do this once after you create your model.
Then, before you start your simulation, just execute the following lines:
>> B.Label = 'test_struct_name';
>> set_param(h,'VariableName',B.Label);
Then you shoudld be good to go!
댓글 수: 2
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Choose and Parameterize Blocks에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!