Вы можете считать данные с фиксированной точкой из 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 time — 0.0
Stop time — 10.0
Type — Fixed-step
Solver — discrete (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 см. Раздел «Доступ к блочным данным во время симуляции».