exponenta event banner

Данные строки журнала в инспектор данных моделирования

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

Поведение диаграммы

Во время моделирования блоки синусоидальной волны обеспечивают положение точки, движущейся по замкнутому пути по координатам широты и долготы. Диаграмма проверяет эти координаты и назначает строки q1 и q2 согласно информации в этой таблице.

ШиротаДолготаq1q2
положительныйположительный"North""east"
положительныйотрицательный"North""west"
отрицательныйположительный"South""east"
отрицательныйотрицательный"South""west"

Затем, утверждение

sout = strcat("Location in ",q1,q2," Quadrant");
объединяет эти строки в выходную строку.

Создание модели

Добавление соединений и переходов

  1. Чтобы создать модель Simulink ® с пустой диаграммой, использующей язык действий C, в командной строке MATLAB введите

    sfnew -C

  2. В пустой диаграмме разместите переход по умолчанию. Появится соединение. Укажите точку и перетащите курсор от кромки соединения, чтобы добавить другие переходы и соединения.

  3. Дважды щелкните каждый переход. В текстовом запросе введите соответствующее условие или инструкцию действия.

Определение данных диаграммы

  1. Чтобы разрешить неопределенные данные, на панели Символы (Symbols) щелкните значок Разрешить неопределенные символы (Resolve undefined symbols). Редактор Stateflow назначает соответствующую область для каждого символа на диаграмме.

    СимволОбъем
    latitudeВходные данные
    longitudeВходные данные
    q1Локальные данные
    q2Локальные данные
    soutВыходные данные

  2. Определить q1 в виде строковых данных в поле «Тип» инспектора свойств выберите string. Повторить эту спецификацию для q2 и sout.

    Кроме того, чтобы создать строковые данные с максимальным количеством символов, укажите каждую строку как stringtype(n) с использованием подходящего размера буфера n во избежание усечения его содержимого. Например, в этой таблице перечислены подходящие размеры буфера для строковых данных на диаграмме.

    СимволКоличество символовСтроковый тип данных
    q15stringtype(5)
    q25stringtype(5)
    sout30stringtype(30)

Добавление источников и поглотителей в модель

  1. В модели Simulink добавьте два блока синусоидальной волны и блок отображения. Подключите блоки к входному и выходному портам диаграммы.

  2. Установите параметры блока синусоидальной волны, как указано в этой таблице.

    БлокАмплитудаУклонЧастотаФаза
    Широта50010
    Долгота5001pi/2

  3. Маркировать сигналы в модели как latitude, longitude, и sout. Щелкните правой кнопкой мыши по каждому сигналу и выберите Log Selected Signals.

Просмотр результатов моделирования

  1. При моделировании модели значок «Инспектор расчетных данных» подсвечивается, указывая на наличие новых расчетных данных. Чтобы открыть инспектор данных моделирования, щелкните значок.

  2. В инспекторе данных моделирования установите флажки для latitude, longitude, и sout сигналы так, чтобы они отображались на одном наборе осей. latitude и longitude сигналы появляются в виде синусоидальных кривых. sout сигнал показан как график перехода. Значение строки отображается внутри полосы, а пересекающиеся линии отмечают изменения значения.

  3. Для доступа к записанным данным в рабочей области MATLAB вызовите объект регистрации сигналов. logsout. Поток состояний экспортирует строковые данные sout как скаляр строки MATLAB. Например, в командной строке введите:

    losgout = out.logsout;
    Tbl = table(logsout.get('latitude').Values.Data, ...
       logsout.get('longitude').Values.Data, ...
       logsout.get('sout').Values.Data);
    Tbl.Properties.VariableNames = ...
       {'Latitude','Longitude','QuadrantInfo'};
    Tbl([4:8:30],:)
    ans =
    
      4×3 table
    
        Latitude    Longitude              QuadrantInfo          
        ________    _________    ________________________________
    
         28.232       41.267     "Location in Northeast Quadrant"
         40.425      -29.425     "Location in Northwest Quadrant"
        -30.593      -39.548     "Location in Southwest Quadrant"
        -38.638       31.735     "Location in Southeast Quadrant"
    

См. также

| | (Симулинк)

Связанные темы