MATLAB Answers

0

What is the best way to do some calculation within a state in stateflow?

Asked by Tharindu Weerakoon on 26 Sep 2016
Latest activity Commented on by Tharindu Weerakoon on 30 Sep 2016
Dear all, I'm bit confused of selecting a method to do some calculating program in a 'State' of the Stateflow. I do have to calculate some values checking some external measurements within a 'State'. I used to write some codes of calculation in the state block like Matlab script, but I then moved this code to Matlab Function block, since the state machine just better to show the state changes visually. Still, I am looking for the best way of doing such thing in sateflow while minimizing the execution time. Can anyone suggest me a better way to do such things (writing matlab codes in stateflow states)?

  0 Comments

Sign in to comment.

1 Answer

Answer by Zhao Wang on 28 Sep 2016
 Accepted Answer

I understand that you want to find a better way to write MATLAB code in Stateflow states. I am not sure in what sense you mean better. It might be shorter execution time, easier maintenance, or something else.
I assume you want to make the Stateflow chart easier to change than directly editing MATLAB code in a 'State'. In order to achieve this, you can include MATLAB functions in a Stateflow chart. Refer to the following link for more details about using MATLAB functions in a Stateflow chart:
If you have any specific question, you can contact MathWorks Technical Support for further assistance.

  1 Comment

Thanks Zhao. Right now I am using the same technique.
BTW, I want to access the variables used in the MATLAB function in Stateflow chart, which should be defined as a global variable. Also the input parameters should be defined globally and they will be updated every time. In the state chart, I will execute the matlab function and it will calculate many parameters/variables and I will be able to get them without defining input and output when I call the function ([output] = Function_Name(inputs)) as explained in this example.
I have post this question in detail, and can you suggest a way to do this?

Sign in to comment.