Передайте данные с фиксированной точкой между моделями Simulink и MATLAB

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

Чтение данных с фиксированной точкой из рабочей области

Используйте блок From Workspace, чтобы считать данные с фиксированной точкой из рабочего пространства MATLAB в модель Simulink. Для этого данные должны быть в формате структуры с Fixed-Point Designer™ fi объект в values поле. В формате массива блок From Workspace принимает только действительные, с двойной точностью данные.

Чтобы прочитать в fi данные, параметр Interpolate data блока From Workspace не должен быть выбран, и параметр Form output after final data value by должен быть установлен на что-либо кроме Extrapolation.

Запись данных с фиксированной точкой в рабочую область

Можно записать выход с фиксированной точкой из модели в рабочее пространство MATLAB через блок To Workspace в формате массива или структуры. Данные с фиксированной точкой, записанные блоком To Workspace в рабочую область в формате структуры, могут быть считаны в модель Simulink в формате структуры блоком From Workspace.

Примечание

Чтобы записать данные с фиксированной точкой в рабочую область как fi установите флажок Log fixed-point data as a fi object в диалоговом окне To Workspace блока. В противном случае данные с фиксированной точкой преобразуются в double и записан в рабочую область как double.

Например, можно использовать следующий код для создания структуры в рабочем пространстве MATLAB с fi объект в values поле. Затем можно использовать блок Из Рабочей области, чтобы перенести данные в модель Simulink.

a = fi([sin(0:10)' sin(10:-1:0)'])
 
a =
 
         0   -0.5440
    0.8415    0.4121
    0.9093    0.9893
    0.1411    0.6570
   -0.7568   -0.2794
   -0.9589   -0.9589
   -0.2794   -0.7568
    0.6570    0.1411
    0.9893    0.9093
    0.4121    0.8415
   -0.5440         0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15

s.signals.values = a

s = 

  struct with fields:

    signals: [1×1 struct]

s.signals.dimensions = 2

s = 

  struct with fields:

    signals: [1×1 struct]

s.time = [0:10]'

s = 

  struct with fields:

    signals: [1×1 struct]
       time: [11×1 double]

Блок From Workspace в следующей модели имеет fi структура s в параметре Data. В модели следующие параметры на панели Solver диалогового окна Параметров конфигурации имеют указанные настройки:

  • Start time0.0

  • Stop time10.0

  • TypeFixed-step

  • Solverdiscrete (no continuous states)

  • Fixed-step size (fundamental sample time)1.0

Блок To Workspace записывает результат симуляции в рабочее пространство MATLAB как fi структура.

out.simout.data

ans = 

         0   -8.7041
   13.4634    6.5938
   14.5488   15.8296
    2.2578   10.5117
  -12.1089   -4.4707
  -15.3428  -15.3428
   -4.4707  -12.1089
   10.5117    2.2578
   15.8296   14.5488
    6.5938   13.4634
   -8.7041         0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 32
        FractionLength: 25

Журнал сигналов с фиксированной точкой

Когда сигналы с фиксированной точкой регистрируются в рабочем пространстве MATLAB через логгирование сигналов, они всегда регистрируются как Fixed-Point Designer fi объекты.

Чтобы включить логгирование сигнала, сначала выберите сигнал. Затем на вкладке Simulation нажмите Log Signals.

Для получения дополнительной информации см. логгирование сигналов».

Когда вы записываете сигналы от ссылочной модели или Stateflow® диаграмма в вашей модели, размеры слова fi объекты могут быть больше, чем вы ожидаете. Размеры слова сигналов с фиксированной точкой в ссылочных моделях и диаграммах Stateflow регистрируются как следующий больший размер контейнера хранения данных.

Доступ к блочным данным с фиксированной точкой во время симуляции

Simulink предоставляет интерфейс прикладного программирования (API), который позволяет программный доступ к блочным данным, таким как блок входы и выходы, параметры, состояния и рабочие векторы, в то время как симуляция выполняется. Можно использовать этот интерфейс для разработки программ MATLAB, способных обращаться к блокам данным во время выполнения симуляции или для доступа к данным из командной строки MATLAB. Информация о сигнале с фиксированной точкой возвращается вам через этот API как fi объекты. Для получения дополнительной информации об API см. Раздел «Доступ к блочным данным во время симуляции».

См. также

|

Похожие темы