Создайте графики при помощи СКРИПТА MATLAB

В этом примере показано, как включать команды Stateflow® API в функцию MATLAB® или скрипт. Создание скрипта команд API позволяет вам избегать повторяющихся шагов создания графика и воссоздавать ту же модель с одной командой. Для получения дополнительной информации см. Обзор API Stateflow.

Запустите функцию MATLAB

Функциональный makeMyModel, то, которое задано в нижней части этой страницы, производит "основную" диаграмму Stateflow, которую можно снова использовать как шаблон для приложений.

ch = makeMyModel;
ch.view

Создайте функцию основной диаграммы

Эта функция создает диаграмму Stateflow и возвращает указатель на соответствующий Chart объект.

function ch = makeMyModel

% Create model and get handle for new chart

    rt = sfroot;
    prev_machines = rt.find('-isa','Stateflow.Machine');
    sfnew;
    curr_machines = rt.find('-isa','Stateflow.Machine');
    m = setdiff(curr_machines,prev_machines);
    ch = m.find('-isa', 'Stateflow.Chart');
    
% Create state A in chart

    sA = Stateflow.State(ch);
    sA.Name = 'A';
    sA.Position = [50 50 310 200];
    
% Create state A1 inside of state A

    sA1 = Stateflow.State(ch);
    sA1.Name = 'A1';
    sA1.Position = [80 120 90 60];
    
% Create state A2 inside of state A

    sA2 = Stateflow.State(ch);
    sA2.Name = 'A2';
    sA2.Position = [240 120 90 60];
    
% Create transition from A1 to A2

    tA1A2 = Stateflow.Transition(ch);
    tA1A2.Source = sA1;
    tA1A2.Destination = sA2;
    tA1A2.SourceOClock = 3;
    tA1A2.DestinationOClock = 9;
    
% Add default transition to state A

    dtA = Stateflow.Transition(ch);
    dtA.Destination = sA;
    dtA.DestinationOClock = 0;
    dtA.SourceEndPoint = dtA.DestinationEndpoint-[0 30];
    dtA.MidPoint = dtA.DestinationEndpoint-[0 15];
    
% Add default transition to state A1

    dtA1 = Stateflow.Transition(ch);
    dtA1.Destination = sA1;
    dtA1.DestinationOClock = 0;
    dtA1.SourceEndPoint = dtA1.DestinationEndpoint-[0 30];
    dtA1.MidPoint = dtA1.DestinationEndpoint-[0 15];

end

Смотрите также

| | | | | |

Похожие темы