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

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

Fangjun Jiang
Fangjun Jiang am 22 Jun. 2018
Bearbeitet: Fangjun Jiang am 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 Kommentare
Shady Nada
Shady Nada am 26 Jun. 2018
Bearbeitet: Shady Nada am 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by