Simulink - vary which part of a structure is accessed in a matlab function block (using a bus)
5 ビュー (過去 30 日間)
古いコメントを表示
Hello,
Within a matlab function block can I dictate what part of a structure is accessed based on one of the function blocks inputs?
I am using an embedded 'matlab function' block in simulink to control the value of a force. The force depends on time and 1 other parameter (that I have called 'which_force'). The various values for Force are contained in a structure. I use a bus to grant Simulink access to the structure.
The structure looks like:
Forces.which_force1.Heave
Forces.which_force2.Heave
Here is a simplified version of the code:
function F_Heave = get_force(Forces, Clock, which_force)
F_Heave = Forces.(which_force).Heave(Clock)
An error occurs with (which_force) that states:
'Non-constant expression or empty matrix. This expression must be constant because its value determines the size or class of some expression. In this context, the value of the string must be known.'
I have also applied which_force from a constant block and I still receive the same error message.
0 件のコメント
採用された回答
Kaustubha Govind
2013 年 10 月 9 日
I think the only way this code might work is if the variable which_force is configured as a non-tunable parameter of the block, instead of as an input signal.
5 件のコメント
Ketan
2013 年 10 月 20 日
Hi Leo,
If you are evaluating the performance of a model containing MATLAB Function blocks, you may want to disable debugging for the MATLAB Function blocks. By default they are configured for debugging. See the following page for information on controlling function block debugging:
Ketan
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Event Functions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!