Assign to simulink input in State Flow

48 vues (au cours des 30 derniers jours)
Hs5555
Hs5555 le 23 Oct 2018
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 commentaires
TAB
TAB le 23 Oct 2018
Please post the code/part of code/example code with your question.
It will be easy to understand what you want to do.
Hs5555
Hs5555 le 23 Oct 2018
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
and
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!

Connectez-vous pour commenter.

Réponses (2)

Arunkumar M
Arunkumar M le 13 Nov 2018
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 le 31 Mar 2021
Hello, maybe you switched the variables.
entry = Output Data
transition = Input Data

Catégories

En savoir plus sur Complex Logic dans Help Center et File Exchange

Tags

Produits


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by