model.rtw Файлы и областиПрограммное обеспечение генерации кода создает файл из модели Simulink ®. Amodel.rtw файл является частичным представлением модели, созданной процессом построения для использования компилятором целевого языка. В нем описываются блоки, входы, выходы, параметры, состояния, хранилище и другие компоненты и свойства модели из соответствующего файла модели.model.rtw
Произведенный файл вводится в компилятор целевого языка. Если выбрать Сохранить .rtw файл на панели Параметры конфигурации > Создание кода, после построения модели можно просмотреть model.rtw файл, который был создан.model.rtw
A файл реализован как ASCII-файл пар параметр-значение, хранящийся в иерархии записей. Пара имя/значение параметра указана какmodel.rtw
ParameterName value
где ParameterName (также называется идентификатором) - имя идентификатора TLC и value - строка, скаляр, вектор или матрица. Например, в паре имя/значение параметра
NumDataOutputPorts 1
NumDataOutputPorts - идентификатор, а 1 - его значение.
RecordName {
.
.
.
}Запись содержит пары имя/значение параметра и/или субзаписи. Например, эта запись содержит одну пару имя/значение параметра:
DataStores {
NumDataStores 0
}Примечание
Структура файл с большой вероятностью изменится между выпусками, что является убедительной причиной ограничить ваш доступ к model.rtw к функциям библиотеки, задокументированным в TLC Function Library Reference: Target Language Compiler. Дополнительные сведения см. в разделе Исключение при использовании библиотечных функций, обращающихся к model.rtw.model.rtw
model.rtw ФайлКаждая запись создает новую область. файл использует фигурные скобки 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-функционального блока используется
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-функциональных блоков объем записи S-функционального блока определяется так, как показано выше. %with директива была выполнена. В встроенном .tlc , вы должны получить доступ к полям без полного пути.
Следующий код показывает более подробный пример области, где Block запись имеет несколько пар параметр-значение (Type, Name, Identifierи так далее), и три субзаписи, каждая из которых называется Parameter. Block является субзаписью System, которая является субзаписью CompiledModel. Обратите внимание, что имена параметров в этом файле изменяются с версии на версию.
