MATLAB Answers

Jonas
0

Get parameter value from named parameter in Simulink in Simulink Real-time

Jonas
さんによって質問されました 2019 年 11 月 14 日 10:00
最新アクティビティ Jonas
さんによって コメントされました 2019 年 11 月 15 日 11:29
Hi all
I am running a Simulink model using Simulink Real-time on a SpeedGoat target. I am using Simulink Parameters inside a Data Dictionary. I can easily change the value of these Simulink Parameters defined in the Data Dictionary by using the command set_param(tg,'Ki_speed',2), which will change the value of parameter 'Ki_speed' to 2 running in real-time on my target 'tg'. I really like this approach since I can use the parameter name anywhere in my model - also inside model referenced - and it has immediate effect.
I am now looking to also request the parameter value of the named Simulink Parameter, instead of setting it. I have tried get_param(tg,'Ki_speed') but it throws the error:
The first input to get_param must be of type 'double', 'char' or 'cell'.
When I request get_param('tg','Ki_speed') I get the error:
Invalid Simulink object name: tg
Caused by:
No block diagram 'tg' is loaded.
I have also tried get_param(0,'Ki_speed') but it throws
block_diagram does not have a parameter named 'Ki_speed'
I don't know how to do use this command in this situation, or don't know if it can be used for this purpose at all. Does anyone know? Thanks!

  0 件のコメント

サインイン to comment.

1 件の回答

Answer by Diego Kuratli on 14 Nov 2019 at 14:43
 Accepted Answer

For reading and writing parameters during real-time execution, you can use the following functions:
getparam(tg, 'Ki_speed')
setparam(tg, 'Ki_speed', 2)
See:

  1 件のコメント

Oh I feel stupid. It is indeed setparam that I am using to set a parameter value, and should use getparam for reading the value. It works fine! I was mixing up with the set_param and get_param commands.
Or maybe I should not be so hard on myself and realise that the commands are confusing and easily mixed up...
Thanks for the help!

サインイン to comment.



Translated by