MATLAB Answers

Assign to simulink input in State Flow

44 ビュー (過去 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!


回答 (2 件)

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





Community Treasure Hunt

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

Start Hunting!

Translated by