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

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

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

Используйте блок From Workspace, чтобы считать данные фиксированной точки из рабочего пространства MATLAB в модель Simulink. Для этого данные должны быть в формате структуры с fi Fixed-Point Designer™ объект в 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 поле . Можно затем использовать блок From Workspace, чтобы принести данные в модель 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 структуры в параметре Data. В модели следующие параметры в панели Solver диалогового окна Configuration Parameters имеют обозначенные настройки:

  • Время начала 0.0

  • Stop time10.0

  • Ввод Fixed-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, обратитесь к доступу к Данным о Блоке В процессе моделирования.

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

|

Похожие темы