Преобразуйте код MATLAB в блок-схемы Stateflow

Чтобы преобразовать ваш код MATLAB® в блок-схемы Stateflow® и графические функции, используйте Pattern Wizard. Поддерживаемые шаблоны для преобразования включают:

  • if, if-else, и другие вложенные операторы решения.

  • for и while циклы.

  • switch операторы.

Pattern Wizard может преобразовать функции MATLAB и скрипты.

  • Функции MATLAB преобразованы в графические функции Stateflow.

  • Скрипты MATLAB преобразованы в блок-схемы Stateflow.

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

Создайте блок-схемы из Скриптов MATLAB

Этот скрипт MATLAB опытным путем проверяет один экземпляр догадки Collatz. Когда дали числовой вход u, скрипт вычисляет последовательность градины n 0 = u, n 1, n 2, n 3, ⋯ путем итерации этого правила:

  • Если n i даже, то n i+1 = n i/2.

  • Если n i нечетна, то n i+1 = 3ni + 1.

Догадка Collatz утверждает, что каждое положительное целое число имеет последовательность градины, которая в конечном счете достигает того.

% Hailstone sequence u, c(u), c(c(u)),...
y = [u];
while y(end) ~= 1
    y(end+1) = c(y(end));
end
disp(y);

function n = c(n)
% Compute next number in hailstone sequence.
% If n is even, then c(n) = n/2.
% If n is odd, then c(n) = 3*n+1.
    if rem(n,2) == 0
        n = n/2;
    else
        n = 3*n+1;
    end
end
Скрипт выполняет while цикл, который неоднократно вызывает вспомогательный функциональный c пока это не производит выходное значение одного. Функциональный c состоит из условного if- else оператор, выход которого зависит от четности входа.

Преобразовывать этот скрипт в блок-схему и графическую функцию:

  1. Откройте новый автономный график.

    edit hailstone.sfx
  2. На вкладке State Chart выберите Pattern> Select File.

  3. В диалоговом окне выберите скрипт MATLAB и нажмите Open. Pattern Wizard добавляет блок-схему и графическую функцию к вашей диаграмме Stateflow. Дважды кликните графическую функцию, чтобы видеть ее содержимое.

  4. В панели Символов нажмите Resolve Undefined Symbols . Редактор Stateflow разрешает u и y как локальные данные.

  5. Сохраните свой график.

  6. Чтобы выполнить график от редактора Stateflow, в панели Символов, вводят значение u = 9 и нажимают Run . В то время как блок-схема выполняется, редактор Stateflow подсвечивает активные переходы посредством анимации графика. Когда выполнение останавливается, Окно Команды MATLAB отображает последовательность градины, начиная со значения девять:

         9    28    14     7    22    11    34    17    52    26    13    40    20    10     5    16     8     4     2     1
    
  7. Нажмите Stop .

Можно скопировать сгенерированные блок-схемы и графические функции и вставить их в другие графики, включая диаграммы Stateflow в моделях Simulink®. Если ваш код MATLAB использует функциональность, которая ограничивается для генерации кода в Simulink, необходимо изменить действия блок-схемы прежде, чем симулировать график. Для получения дополнительной информации смотрите функции MATLAB Значения внешних параметров Вызова в диаграммах Stateflow.

Примечание

Предположим, что вы используете nargin в функции MATLAB, которую вы преобразуете в графическую функцию в графике. Поскольку nargin считает объект диаграммы как один из входных параметров графической функции, значения nargin в графической функции равно одной плюс значение nargin в исходной функции MATLAB. Для получения дополнительной информации смотрите, Выполняют Автономный График.

Похожие темы