model.rtw Файлы и возможности

Программное обеспечение генерации кода создает model.rtw файл из вашего Simulink® модель. A model.rtw файл является частичным представлением модели, сгенерированной процессом сборки для использования компилятором целевого языка. Он описывает блоки, входы, выходы, параметры, состояния, хранилище и другие компоненты модели и свойства из соответствующего файла модели.

Сгенерированный model.rtw файл вводится в компилятор целевого языка. Если вы выбираете Retain .rtw file на панели Configuration Parameters > Code Generation, после создания модели можно просмотреть model.rtw сгенерированный файл.

A model.rtw файл реализован как ASCII-файл пар значение параметров, хранящийся в иерархии записей. Пара имя/значение параметра задается как

ParameterName  value

где ParameterName (также называемый identifier) - имя идентификатора TLC и value является строкой, скаляром, вектором или матрицей. Для примера в паре имя/значение параметра

     NumDataOutputPorts 1    

NumDataOutputPorts - идентификатор, а 1 - его значение.

А record задается как

RecordName {
     .
     .
     .
}

Запись содержит пары имя/значение параметра и/или подзаписи. Для примера эта запись содержит одну пару имя/значение параметра:

DataStores {
    NumDataStores	    0
}

Примечание

Структура model.rtw файл с большой вероятностью изменится между релизами, что является убедительной причиной для ограничения вашего доступа к model.rtw к функциям библиотеки, задокументированным в разделе TLC Function Library Reference: Target Language Compiler. Для получения дополнительной информации смотрите Исключение из использования функций библиотеки, которые получают доступ к модели.rtw.

Возможности в model.rtw Файл

Каждая запись создает новую scope. The model.rtw в файле используются фигурные скобки { и } для открытия и закрытия записей (или возможностей). Используя возможности, вы можете получить доступ к значениям в model.rtw файл.

Возможности в этом примере начинаются с CompiledModel. Использовать периоды (.) для доступа к значениям в конкретных возможностях. Формат model.rtw является

CompiledModel {
  Name   "modelname"           -- Example of a parameter-value
  ...                             pair (record field).
  System {                     -- There is one system for each
                                  nonvirtual subsystem.
    Block {                    -- Block records for each
      Type     "S-Function"       nonvirtual block in the
                                  system.
      Name     "<S3>/S-Function"
      ...
      Parameter {
       Name "P1"
       Value Matrix(1,2) [[1, 2];]
    }
    ...
    Block {
    }
  }
  ...
  System {                     -- The last system is for the
                                  root of your model.
}

Для примера, для доступа к Name в пределах CompiledModel, вы бы использовали

CompiledModel.Name

Несколько записей с таким же именем образуют список, в котором индекс первой записи начинается с 0. Для доступа к вышеуказанной записи блока s-function вы бы использовали

CompiledModel.System[0].Block[0]

Для доступа к полю имен этого блока вы бы использовали

CompiledModel.System[0].Block[0].Name

Чтобы упростить этот процесс, можно использовать %with директива, которая изменяет текущие возможности. Для примера:

%with CompiledModel.System[0].Block[0]
%assign blockName = Name
%endwith

blockName будет иметь значение "<S3>/S-Function".

При встраивании блоков s-function ваша запись блока s-function просматривается так же, как и выше %with директива была выполнена. Во встроенном .tlc файл, вы должны получить доступ к полям без полного пути.

Следующий код показывает более подробный пример просмотра, где Block запись имеет несколько пар значение параметров (Type, Name, Identifier, и так далее), и три подзаписи, каждый из которых вызывался Parameter. Block является подзаписью System, который является подзаписью CompiledModel. Обратите внимание, что имена параметров в этом файле изменяются с релиза на релиз.

Похожие темы