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

32 views (last 30 days)
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!

Accepted Answer

Diego Kuratli
Diego Kuratli on 14 Nov 2019
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 Comment
Jonas
Jonas on 15 Nov 2019
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!

Sign in to comment.

More Answers (0)

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!