Assign to simulink input in State Flow

조회 수: 52(최근 30일)
Hs5555 2018년 10월 23일
답변: Kai Gläsker 2021년 3월 31일
My state flow accepts variables from Workspace as Inputs.
In one of the stateflow state blocks, there is a function call (which I wrote in matlab). This function receives those Inputs as arguments, modifies them during the run and returns them because I intend to pass them to other functions that are invoked in other states.
However, I get the following error:
Attempted to assign to simulink input.
I would appreciate any help to overcome this problem.
  댓글 수: 2
Hs5555 2018년 10월 23일
variable a is located at the workspace. In the state flow window there is a state that receives the a variable as an input. In one of the states, under the entry part, I wrote a function call:
[a] = FuncA(a);
this function receives variable a as an argument, assign a new value to it and returns it.
When I press run in the stateflow window, the diagnostic viewer window pops and gives the error message I mentioned above.
I guess that I cannot assign to an input that the stateflow receives so my questions are:
how should I define variable a in the stateflow so I can:
1. get its initial value from the workspace
2. modify it inside the stateflow in a way that it will be updated in the workspace?
I hope its much more clear now. thanks!

댓글을 달려면 로그인하십시오.


Arunkumar M
Arunkumar M 2018년 11월 13일
I think what you want to do is to start with the input value and then overwrite the input value later during simulation.
You can try one of the two methods:
  1. assign a temporary variable say b in entry action (en: b = a), where a is your input variable. Later you can modify b and can use b also in your transition conditions. But in this, the variable a remains untouched
  2. since your input variable a is stored in workspace, you can overwrite the variable a in workspace through assignin command. This lets your simulation to take the updated value from the next time step.

Kai Gläsker
Kai Gläsker 2021년 3월 31일
Hello, maybe you switched the variables.
entry = Output Data
transition = Input Data


Find more on Stateflow in Help Center and File Exchange





Community Treasure Hunt

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

Start Hunting!

Translated by