MATLAB Answers

How to make simulink function block interact with RL Agents by updating states and other environment parameters?

1 view (last 30 days)
Sunandan Adhikary
Sunandan Adhikary on 13 Oct 2020
Commented: Sunandan Adhikary on 16 Oct 2020
In Simulink RL toolbox, I am trying to make an environment block. Instead of creating the block with simulink objects due to too complex nature of the control system model, I used a matlab function block that interacts with agents. It takes actions from agents as function input and progresses with time giving certain states as observable outputs for agents. Since I was not able to access the base workspace parameters from the function block, I defined a class object with those properties and passed it as input to the function block. After updating the states every sampling period, again output the object for the agents to observe. Is it a right way to implement? Can anyone suggest any better way?

  0 Comments

Sign in to comment.

Answers (1)

Emmanouil Tzorakoleftherakis
I think you can just read the workspace params if you set an additional variable as a parameter in the MATLAB Fcn block. In the screenshot below, if you click 'Edit Data' and add an additional parameter as shown, give it the same name as you base workspace variable and you are all set. This could be a struct if you have multiple parameters

  1 Comment

Sunandan Adhikary
Sunandan Adhikary on 16 Oct 2020
Tried that creating a custom class object. But even though I initialize it in main script, then run the simulink file, it throws this error, "Expression <data name> for initial value of data <data name> must evaluate to a logical or supported numeric type."

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!