Assign to simulink input in State Flow

29 visualizaciones (últimos 30 días)
Hs5555
Hs5555 el 23 de Oct. de 2018
Respondida: Kai Gläsker el 31 de Mzo. de 2021
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 comentarios
TAB
TAB el 23 de Oct. de 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 el 23 de Oct. de 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!

Iniciar sesión para comentar.

Respuestas (2)

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

Categorías

Más información sobre Complex Logic en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by