How to set Stateflow properties in Stateflow Model Explorer using matlab script?

7 views (last 30 days)
Hi all, I know that in Simulink Block Properties / Handles can be called and set using the set_param and get_param commands, respectively. How to do so for Stateflow Model Explorer Properties using matlab script?
>> Example: I have a model called “TestModel.mdl” which contains a Stateflow Chart “MyChart” at a deeper level: ‘TestModel/SubSystem_A/MyChart’. I would like to Add Data in the Model Explorer by means of a command in a m-file, with example properties;
Name: "PresParam_A"
Scope: Parameter
Size: <empty>
Complexity: Off
Type: Double

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 22 Jun 2018
Edited: Fangjun Jiang on 25 Jun 2018
clear;close all;
sfnew;
rt=sfroot;
ch=rt.find('-isa','Stateflow.Chart');
d1=Stateflow.Data(ch)
then specify the properties of the data
  3 Comments
Shady Nada
Shady Nada on 26 Jun 2018
Edited: Shady Nada on 26 Jun 2018
Thanks Fangjun!
It still took a while to figure out how to specify the properties, yet your answer helped me in searching.
For all others who might benefit from this, below the exact solution:
% obtain a handle to the Root object
rt = sfroot;
% Use the handle to the Root object, rt, to find the Model object and assign it a handle as follows
m = rt.find('-isa', 'Simulink.BlockDiagram')
% Access the new Chart object and assign it to the workspace variable as follows
ch = m.find('-isa','Stateflow.Chart');
% Specify Properties
d1 = Stateflow.Data(ch); %add Data
d1.name = 'chm_e_actu_test_state'; %set Name
d1.scope = 'Parameter'; %set Scope
d1.datatype = 'Inherit: Same as Simulink'; %set DataType
% I was not able to speciy 'Complexity' or 'Size'. Be default this is 'Off' and '-1', respectivly.

Sign in to comment.

More Answers (0)

Categories

Find more on Simulink Functions 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!