Можно создать data objects для задания значений, областей значений, типов данных, настраиваемости и других характеристик сигналов, состояний и параметров блоков. Вы используете имена объектов в Simulink® диалоговые окна для определения сигнала, состояния и характеристик параметра. Объекты существуют в рабочей области, такое как базовое рабочее пространство, рабочее пространство модели или словарь данных Simulink. Объекты данных позволяют вам вносить изменения всей модели в сигнал, состояние и характеристики параметра путем изменения только значений объектов рабочей области.
Объекты данных создаются как образцы классов данных. Структуры памяти, называемые data class packages, содержат определения классов данных. Встроенный пакет Simulink
задает два класса данных, Simulink.Signal
и Simulink.Parameter
, который можно использовать для создания объектов данных. Чтобы хранить данные интерполяционной таблицы для совместного использования между блоками интерполяционной таблицы (такими как n-D Lookup Table), можно использовать Simulink.LookupTable
и Simulink.Breakpoint
классы.
Чтобы решить, использовать ли объекты данных для конфигурации сигналов, включая Inport и Outport блоки, смотрите Атрибуты Проекта Хранилища Сигналов и состояний.
Можно настроить свойства и методы объектов данных путем определения подклассов встроенных классов данных. Дополнительные сведения о создании пакета классов данных см. в разделе Определение классов данных.
Simulink использует запись через точку для того, чтобы назвать классы данных:
package.class
пакет является именем пакета, содержащего определение класса.
class - имя класса.
Это обозначение позволяет вам создавать и ссылаться на одинаково именованные классы, которые относятся к различным пакетам. В этом обозначении имя пакета qualifies имя класса.
Имена классов и пакетов учитываются в регистре. Для примера вы не можете использовать MYPACKAGE.MYCLASS
и mypackage.myclass
взаимозаменяемо для ссылки на тот же класс.
Чтобы задать опции симуляции и генерации кода для сигналов, параметров блоков и состояний путем изменения переменных в рабочей области или словаре данных, используйте объекты данных. Связать объекты с сигналами, параметрами и состояниями в диаграмме модели.
Можно использовать объекты параметров, вместо числовых MATLAB® переменные, чтобы задать значения для параметров блоков. Например, чтобы создать и использовать Simulink.Parameter
объект с именем myParam
чтобы задать параметр Gain блока Gain:
В модели на вкладке Modeling, под Design, нажмите Property Inspector.
В модели щелкните целевой Gain блок. Property Inspector показывает свойства и параметры блока.
Установите значение параметра Gain равным myParam
.
Рядом со значением параметров нажмите кнопку действия и выберите Create.
В диалоговом окне Create New Data установите Value равным Simulink.Parameter(15.23)
и нажмите Create.
The Simulink.Parameter
объект, myParam
, появляется в базовом рабочем пространстве. Диалоговое окно свойства показывает, что объект хранит значение параметров 15.23
в свойстве Value.
Используйте диалоговое окно свойств, чтобы задать другие характеристики для параметров блоков путем корректировки свойств объекта. Для примера, чтобы задать минимальное и максимальное значения, которые может взять параметр, используйте свойства Minimum и Maximum.
Во время симуляции параметр Gain теперь использует значение 15.23
.
Для совместного использования данных интерполяционной таблицы при помощи Simulink.LookupTable
и Simulink.Breakpoint
объекты, см. «Упаковать общие данные точек по оси Х» и «Данные таблицы» для интерполяционных таблиц.
Можно связать сигнальную линию или состояние блока, например состояние Unit Delay блока, с сигнальным объектом.
Для сигналов. Чтобы использовать объект сигнала для управления характеристиками сигнала в модели, создайте объект в рабочей области с помощью того же имени, что и сигнал.
В модели на вкладке Modeling нажмите Model Data Editor.
В Model Data Editor выберите вкладку Signals.
В модели выберите целевой сигнал. Этот Model Data Editor подсвечивает строку, которая соответствует сигналу.
В Model Data Editor в столбце Name дайте сигналу имя, такое как mySig
.
Нажмите кнопку рядом с именем сигнала. Выберите Create and Resolve.
В диалоговом окне «Создание новых данных» установите Value равным Simulink.Signal
. Используйте выпадающий список Location, чтобы выбрать рабочую область для хранения объекта (значение по умолчанию Base Workspace
). Нажмите Create.
The Simulink.Signal
mySig объекта
появляется в целевой рабочей области. Simulink выбирает Signal name must resolve to Simulink signal object свойства сигнала, который заставляет сигнал в модели использовать свойства, которые хранит объект сигнала. Чтобы узнать, как управлять тем, как имена сигналов разрешаются к объектам сигнала, смотрите Разрешение символов.
Откроется диалоговое окно свойств нового объекта.
Используйте диалоговое окно свойств, чтобы задать характеристики сигнала. Нажмите OK.
Для программной настройки сигнала:
% Create the signal object. mySig = Simulink.Signal; mySig.DataType = 'boolean'; % Get a handle to the block port that creates the % target signal. portHandles = get_param('myModel/myBlock','portHandles'); outportHandle = portHandles.Outport; % Specify the programmatic port parameter 'Name'. set_param(outportHandle,'Name','mySig') % Set the port parameter 'MustResolveToSignalObject'. set_param(outportHandle,'MustResolveToSignalObject','on')
Чтобы сконфигурировать Outport блока корневого уровня программно, необходимо использовать несколько другой метод:
% Create the signal object. mySig = Simulink.Signal; mySig.DataType = 'boolean'; % Specify the programmatic block parameter 'SignalName'. set_param('myModel/myOutport','SignalName','mySig') % Set the block parameter 'MustResolveToSignalObject'. set_param('myModel/myOutport','MustResolveToSignalObject','on')
Для государств. Можно использовать объект сигнала для управления характеристиками состояния блока, такого как у блока Discrete-Time Integrator.
В модели на вкладке Modeling нажмите Model Data Editor.
В Model Data Editor выберите вкладку States.
В модели выберите блок, который содержит целевое состояние. В Model Data Editor подсвечивается строка, которая соответствует состоянию.
В Model Data Editor, в Name столбце, задайте состояние имени, такому как myState
.
Нажмите кнопку рядом с именем состояния. Выберите Create and Resolve.
В диалоговом окне «Создание новых данных» установите Value равным Simulink.Signal
. Используйте выпадающий список Location, чтобы выбрать рабочую область для хранения объекта (значение по умолчанию Base Workspace
). Нажмите Create.
The Simulink.Signal
myState объекта
появляется в целевой рабочей области. Simulink выбирает параметры блоков State name must resolve to Simulink signal object, которая заставляет состояние в модели использовать свойства, которые хранит объект сигнала. Чтобы узнать, как управлять тем, как имена состояний разрешаются к сигнальным объектам, смотрите Разрешение символов.
Откроется диалоговое окно свойств нового объекта.
Используйте диалоговое окно свойств, чтобы задать характеристики состояния. Нажмите OK.
Для программной настройки состояния:
% Create the signal object. myState = Simulink.Signal; myState.DataType = 'int16'; % Set the state name in the block. set_param('myModel/myBlock','StateName','myState') % Set the port parameter 'StateMustResolveToSignalObject'. set_param('myModel/myBlock','StateMustResolveToSignalObject','on')
Чтобы управлять характеристиками параметра и сигнала с помощью объектов данных, вы задаете значения для свойств объекта данных. Для примера объекты данных параметров и сигналов имеют DataType
свойство, которое определяет тип данных целевых параметров блоков или сигнала. Определения классов данных определяют имена, типы значений, значения по умолчанию и допустимые области значений значений свойств объекта данных.
Можно использовать команды Model Explorer или MATLAB, чтобы изменить свойства объекта данных.
Список свойств объекта сигнала см. Simulink.Signal
. Список свойств объекта параметра см. в разделе Simulink.Parameter
.
Чтобы использовать Model Explorer для изменения свойств объекта, выберите рабочую область, содержащую объект, на панели иерархии модели Model Explorer. Затем выберите объект на панели Содержимое обозревателя моделей (Model Explorer).
В Model Explorer отображается диалоговое окно свойств объекта на панели Диалоговое окно (если панель видна).
Можно настроить браузер Model Explorer, чтобы отобразить некоторые или все свойства объекта на панели Содержимое (Contents) (см. Model Explorer). Чтобы изменить свойство, щелкните его значение на панели «Содержимое» или «Диалоговое окно». Значение заменяется элементом управления, который позволяет изменять значение.
Можно также использовать команды MATLAB, чтобы получить и задать свойства объекта данных. Используйте следующую запись через точку в командах и программах MATLAB, чтобы получить и задать свойства объекта данных:
value = obj.property; obj.property = value;
где
- переменная, которая ссылается либо на объект, если это образец класса значений, либо на указатель на объект, если объект является образцом класса Handle (см. «Handle Verson Value Classes»), obj
PROPERTY
- имя свойства, и VALUE
- значение свойства. Например, следующий код MATLAB создает объект псевдонима типа данных (т.е. образец Simulink.AliasType
) и устанавливает его базовый тип на uint8
:
gain = Simulink.AliasType;
gain.BaseType = 'uint8';
Вы можете рекурсивно использовать запись через точку, чтобы получить и задать свойства объектов, которые являются значениями свойств другого объекта, например,
gain.CoderInfo.StorageClass = 'ExportedGlobal';
Simulink
Встроенный пакет Simulink
задает два класса объектов данных Simulink.Parameter
и Simulink.Signal
. Можно создать эти объекты данных с помощью пользовательского интерфейса или программно.
На Model Hierarchy панели Model Explorer выберите рабочую область, которая будет содержать объекты данных. Для примера нажмите Base Workspace
.
На панели инструментов щелкните стреле рядом с Add Parameter или Add Signal . В раскрывающемся списке выберите Simulink Parameter или Simulink Signal.
В базовом рабочем пространстве появляется параметр или сигнальный объект. Имя по умолчанию для новых объектов параметра Param
. Имя по умолчанию для новых объектов сигнала Sig
.
Чтобы создать больше объектов, щелкните Add Parameter или Add Signal.
Создание Simulink.LookupTable
и Simulink.Breakpoint
Объекты на панели инструментов Model Explorer используйте кнопку.
% Create a Simulink.Parameter object named myParam whose value is 15.23. myParam = Simulink.Parameter(15.23); % Create a Simulink.Signal object named mySig. mySig = Simulink.Signal;
Можно преобразовать числовую переменную в Simulink.Parameter
объект следующим образом.
/* Define numeric variable in base workspace myVar = 5; /* Create data object and assign variable value myObject = Simulink.Parameter(myVar);
Можно создать свой собственный пакет, чтобы задать пользовательские классы объектов данных, которые подклассы Simulink.Parameter
и Simulink.Signal
. Можно использовать этот метод для добавления собственных свойств и методов к объектам данных. Если у вас есть Embedded Coder® лицензия, можно задать классы памяти и разделы памяти в пакете. Дополнительные сведения о создании пакета классов данных см. в разделе Определение классов данных.
Предположим, что вы задаете пакет класса данных myPackage
. Прежде чем вы сможете создать объекты данных из пакета, необходимо включить папку, содержащую папку пакета, в путь MATLAB.
На Model Hierarchy панели Model Explorer выберите рабочую область, которая будет содержать объекты данных. Для примера нажмите Base Workspace
.
Щелкните стреле рядом с Add Parameter или Add Signal и выберите Customize class lists.
В диалоговом окне установите флажок рядом с нужным классом. Для примера установите флажки рядом с myPackage.Parameter
и myPackage.Signal
. Нажмите OK.
Щелкните стрелку рядом с стрелой Add Parameter или Add Signal. Выберите класс для объекта данных, который вы хотите создать. Например, выберите myPackage Parameter или myPackage Signal.
В базовом рабочем пространстве появляется параметр или сигнальный объект. Имя по умолчанию для новых объектов параметра Param
. Имя по умолчанию для новых объектов сигнала Sig
.
Чтобы создать больше объектов данных из пакета myPackage
Нажмите Add Parameter или Add Signal еще раз.
Предположим, что вы задаете пакет класса данных myPackage
. Прежде чем вы сможете создать объекты данных из пакета, необходимо включить папку, содержащую папку пакета, в путь MATLAB.
% Create a myPackage.Parameter object named % myParam whose value is 15.23. myParam = myPackage.Parameter(15.23); % Create a myPackage.Signal object named mySig. mySig = myPackage.Signal;
Когда вы открываете диалоговое окно Свойства, диалоговое окно блока или Property Inspector (на вкладке Modeling, под Design, нажмите Property Inspector), можно эффективно создать объект сигнала или данных параметра в рабочей области или словаре данных.
В числовых параметрах блоков в диалоговом окне укажите имя, которое вы хотите использовать для объекта данных. Для примера укажите имя myParam
.
Нажмите кнопку рядом со значением параметров блоков. Выберите Create.
В диалоговом окне Create New Data задайте Value как Simulink.Parameter
.
Кроме того, можно задать имя созданного класса данных, например myPackage.Parameter
. Можно также использовать выпадающий список, чтобы выбрать из списка доступных классов объектов данных.
Задайте Location следующим Base Workspace
и нажмите Create.
Можно использовать опцию Location, чтобы выбрать рабочую область, которая будет содержать новый объект данных. Если модель связана со словарем данных, можно выбрать создание объекта данных в словаре.
В открывшемся диалоговом окне сконфигурируйте свойства объекта данных. Задайте числовое значение для параметра в Value поле. Нажмите OK.
Объект параметра myParam
появляется в базовом рабочем пространстве.
В диалоговом окне параметров блоков нажмите OK.
В Signal name окне задайте имя сигнала, такого как mySig
. Нажмите Apply.
Нажмите кнопку рядом со значением Signal name. Выберите Create and Resolve.
В диалоговом окне Create New Data задайте Value как Simulink.Signal
.
Кроме того, можно задать имя созданного класса данных, например myPackage.Signal
. Кроме того, из выпадающего списка можно выбрать класс объекта данных, который существует в пути MATLAB.
Задайте Location следующим Base Workspace
и нажмите Create.
Можно использовать опцию Location, чтобы выбрать рабочую область, которая будет содержать новый объект данных. Если модель связана со словарем данных, можно выбрать создание объекта данных в словаре.
В открывшемся диалоговом окне сконфигурируйте свойства объекта данных и нажатия кнопки OK.
Объект сигнала mySig
появляется в базовом рабочем пространстве. В диалоговом окне Свойств сигнала» выбрано свойство Signal name must resolve to Simulink signal object.
Чтобы создать объекты данных, которые представляют сигналы, параметры и состояния в модели, можно использовать Мастер объектов данных. Мастер находит в модели данные, которые не имеют соответствующих объектов данных.
На основе спецификаций в модели мастер создает объекты и присваивает эти характеристики:
Сигнал, параметр или имя состояния.
Числовое значение для объектов параметра.
Тип данных. Для объектов сигнала включает типы псевдонимов, такие как Sumlink.AliasType
и Simulink.NumericType
.
В редакторе Simulink, на вкладке Modeling, в разделе Design, нажмите Data Object Wizard.
В Model name поле введите имя модели, которую вы хотите искать.
По умолчанию поле содержит имя модели, из которой вы открыли мастер.
В разделе Find options установите флажки рядом с типами объектов данных, которые вы хотите создать. Таблица описывает опции.
Опция | Описание | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Root inputs | Именованные сигналы от блоков Inport корневого уровня. | |||||||||
Root outputs | Именованные сигналы от блоков Outport корневого уровня. | |||||||||
States | Состояния, связанные с этими дискретными блоками:
| |||||||||
Data stores | Хранилища данных. Дополнительные сведения о хранилищах данных см. в разделах Локальные и Глобальные хранилища данных. | |||||||||
Block outputs | Именованные сигналы, источниками которых являются блоки не корневого уровня. | |||||||||
Parameters | ||||||||||
Alias types | Тип данных имена замены, которые вы задаете в Configuration Parameters > Code Generation > Data Type Replacement. Если у вас есть лицензия Embedded Coder, мастер создания объектов данных создает Simulink.AliasType объекты для этих имен замещения типов данных. Для получения дополнительной информации о замене типа данных смотрите Параметры конфигурации модели: Замена типа данных генерации кода (Embedded Coder) |
Нажмите Find.
В таблице объектов данных отображаются предлагаемые объекты.
(Необязательно) Чтобы создать объекты из класса данных, отличного от классов по умолчанию, установите флажок рядом с объектами, класс которых необходимо изменить. Чтобы выбрать все объекты, нажмите Select All. Нажмите Change Class. В открывшемся диалоговом окне выберите классы с помощью раскрывающихся списков рядом с Parameter и Signal.
Если требуемые классы не отображаются в раскрывающемся списке, выберите Customize class lists
. В открывшемся диалоговом окне установите флажок рядом с нужными классами и нажатием кнопки OK.
Чтобы изменить параметры по умолчанию и классы сигналов, которые мастер использует для предложения объектов:
На Model Hierarchy панели Model Explorer выберите рабочую область. Для примера выберите Base Workspace.
На панели инструментов щелкните стреле рядом с Add Parameter или Add Signal .
В раскрывающемся списке выберите класс, который должен использоваться мастером. Например, выберите myPackage Parameter или myPackage Signal.
В выбранной рабочей области появляется параметр или сигнальный объект. Имя по умолчанию для новых объектов параметра Param
. Имя по умолчанию для новых объектов сигнала Sig
.
В следующий раз, когда вы используете Мастер объектов данных, мастер предлагает объекты с помощью параметра или класса сигнала, выбранного в Model Explorer.
Установите флажок рядом с предлагаемыми объектами, которые необходимо создать. Чтобы выбрать все предлагаемые объекты, щелкните Select All.
Нажмите Create.
Объекты данных появляются в базовом рабочем пространстве. Если целевая модель связана со словарем данных, объекты появляются в словаре.
Мастер изменяет настройки в модели в зависимости от параметра конфигурации Configuration Parameters > Diagnostics > Data Validity > Signal resolution.
Если вы устанавливаете параметр равным Explicit only
Мастер заставляет соответствующие сигналы и состояния в вашей модели разрешаться к новым объектам сигнала. Мастер выбирает опцию, Signal name must resolve to Simulink signal object в каждом диалоговом окне Свойств сигнала» и State name must resolve to Simulink signal object в каждом диалоговом окне блока.
Если вы устанавливаете параметр равным Explicit and implicit
или Explicit and warn implicit
Мастер не изменяет настройку Signal name must resolve to Simulink signal object или State name must resolve to Simulink signal object для каких-либо сигналов или состояний.
Рассмотрите отключение неявного разрешения объекта сигнала для вашей модели при помощи функции disableimplicitsignalresolution
. Дополнительные сведения см. в разделе Явное и неявное разрешение символов.
Мастер объектов данных компилирует модели для генерации кода в порядок, чтобы предложить создание объектов сигнала. Из-за этого мастер не может использоваться для моделей, которые не действительны для генерации кода.
Мастер объектов данных не предлагает создание объектов данных для этих сущностей в модели:
Несколько отдельных сигналов, которые имеют то же имя.
Сигнал с таким же именем, как и переменная, используемый в параметрах блоков.
Сигнал, который не имеет единственного смежного исходного блока.
Сигнал, чей исходный блок комментируется или комментируется.
Элементы данных, которые отображаются неактивными блоками Variant Source и Variant Sink. Мастер предлагает объекты только для элементов данных, связанных с активными блоками.
Сигналы и состояния, когда вы устанавливаете параметр конфигурации модели Signal resolution равным None
.
В этом примере показано, как создать объекты данных на основе внешнего источника данных (такого как Microsoft® Excel® файл) при помощи скрипта.
Создайте новый файл скрипта MATLAB.
Поместите информацию в файл, который описывает данные во внешнем файле, которые вы хотите преобразовать в объекты данных. Например, следующая информация создает две Simulink
объекты данных с указанными свойствами. Первый - для параметра, а второй - для сигнала:
% Parameters ParCon = Simulink.Parameter; ParCon.CoderInfo.StorageClass = 'Custom' ParCon.CoderInfo.CustomStorageClass ='Const'; ParCon.Value = 3; % Signals SigGlb = Simulink.Signal; SigGlb.DataType = 'int8';
Запустите файл скрипта. Объекты данных появляются в рабочем пространстве MATLAB.
Если необходимо импортировать целевые данные из внешнего источника, можно записать функции MATLAB и скрипты, которые считывают информацию, преобразуют информацию в объекты данных и загружают объекты в базовое рабочее пространство.
Можно использовать эти функции для взаимодействия с файлами, которые являются внешними для MATLAB:
xmlread
xmlwrite
xlsread
xlswrite
csvread
csvwrite
dlmread
dlmwrite
Классы данных определяют функции, называемые методами, для создания и управления объектами, которые они определяют. Класс может задать любой из следующих видов методов.
Динамический метод является методом, тождества которого зависят от его имени и класса объекта, указанного неявно или явно в качестве его первого аргумента. Можно использовать функцию или запись через точку для задания этого объекта, который должен быть образцом класса, определяющего метод, или образцом подкласса класса, определяющего метод. Например, предположим, что A
классов задает метод, называемый
setName
которое присваивает имя образцу A
. Кроме того, предположим, что рабочее пространство MATLAB содержит образец A, назначенный переменной obj
. Затем для присвоения имени можно использовать одну из следующих операторов 'foo'
на obj
:
obj.setName('foo'); setName(obj, 'foo');
Класс может задавать набор методов, имеющих то же имя что и метод, заданный одним из его супер классов. В этом случае метод, заданный подклассом, переопределяет поведение метода, заданного родительским классом. Simulink определяет, какой метод следует вызвать во время выполнения, из класса объекта, который вы задаете в качестве его первого или неявного аргумента. Следовательно, термин динамический метод.
Примечание
Большинство методов объекта данных Simulink являются динамическими методами. Если документация для метода не задает обратное, можно предположить, что метод является динамическим методом.
Статический метод является методом, тождества которого зависят только от его имени и, следовательно, не может измениться во время выполнения. Чтобы вызвать статический метод, используйте его полное имя, которое включает имя класса, определяющего его, и имя самого метода. Для примера, Simulink.ModelAdvisor
класс задает статический метод с именем getModelAdvisor
. Полное имя этого статического метода Simulink.ModelAdvisor.getModelAdvisor
. Следующий пример иллюстрирует вызов статического метода.
ma = Simulink.ModelAdvisor.getModelAdvisor('vdp');
Каждый класс данных определяет метод для создания образцов этого класса. Имя метода совпадает с именем класса. Для примера - имя Simulink.Parameter
конструктор класса Simulink.Parameter
. Конструкторы, заданные классами данных Simulink, не берут аргументов.
Значение, возвращаемое конструктором, зависит от того, является ли его класс классом handle или классом value. Конструктор класса handle возвращает указатель на образец, который он создает, если класс образца является классом handle; в противном случае возвращается сам образец (см. Указатель Versus Значения Классов).
Классы Simulink, включая классы объектов данных, подразделяются на две категории: классы значений и классы handle.
Конструктор класса значений (см. «Конструкторы») возвращает образец класса, и образец постоянно связан с переменным MATLAB, которой он первоначально назначен. Переназначение или передача переменной функции заставляет MATLAB создавать и назначать или передавать копию исходного объекта.
Для примера, Simulink.NumericType
- класс значений. Выполнение следующих операторов
x = Simulink.NumericType; y = x;
создает два образцов классов Simulink.NumericType
в рабочей области - единица, назначенная переменной x
и другой, чтобы y
.
Конструктор для класса handle возвращает объект указатель. Указатель может быть назначен нескольким переменным или передан функциям, не вызывая создания копии исходного объекта. Для примера, Simulink.Parameter
класс является классом handle. Выполнение
x = Simulink.Parameter; y = x;
создает только один образец Simulink.Parameter
класс в рабочем пространстве MATLAB. Переменные x и y ссылаются на образец через его указатель.
Программа может изменять образец класса handle путем изменения любой переменной, которая ссылается на него, например, продолжая предыдущий пример,
x.Description = 'input gain';
y.Description
ans = input gain
Большинство классов объектов данных Simulink являются классами значений. Исключения включают Simulink.Signal
и Simulink.Parameter
класс.
Чтобы определить, является ли значение переменной объектом (классом значений) или указателем на объект, смотрите Определение, является ли объект указателем.
Используйте метод копирования объекта указателя, чтобы создать копии образцов этого объекта. Для примера, ConfigSet
является указатель объекта, которая представляет наборам конфигурации модели. Следующий код создает копию активной конфигурации модели текущей модели и присоединяет его к модели как альтернативное строение, ориентированную на разработку модели.
activeConfig = getActiveConfigSet(gcs);
develConfig = copy(activeConfig);
develConfig.Name = 'develConfig';
attachConfigSet(gcs, develConfig);
Объекты данных Simulink обеспечивают метод, названный isequal
, который определяет, равны ли значения свойств объекта. Этот метод сравнивает значения свойств одного объекта с значениями, принадлежащими другому объекту, и возвращает true (1
), если все значения одинаковы или ложны (0
) в противном случае. Например, следующий код создает два объекта сигнала (A и B) и задает значения для конкретных свойств.
A = Simulink.Signal; B = Simulink.Signal; A.DataType = 'int8'; B.DataType = 'int8'; A.InitialValue = '1.5'; B.InitialValue = '1.5';
После используйте isequal
метод, чтобы проверить, что свойства объектов A и B равны.
result = isequal(A,B)
result = 1
Если сигнал задан в диалоговом окне Свойства и сигнальный объект с таким же именем задан с помощью командной строки или в Model Explorer, потенциал существует для неоднозначности, когда механизм Simulink пытается разрешить символ, представляющий имя сигнала. Один из способов разрешить неоднозначность - задать, что сигнал разрешается к Simulink.Signal
объект данных. Выберите опцию Signal name must resolve to Simulink signal object в диалоговом окне Свойства.
Чтобы сконфигурировать данные сигнала, используйте редактор Code Mappings или API отображений кода, чтобы добавить сигнал к отображениям кода модели и задать свойства класса памяти и класса памяти. Для получения Simulink Coder™ смотрите Configure Signal Data for C Code Generation (Simulink Coder). Для Embedded Coder смотрите Configure Signal Data for Генерация Кода C (Embedded Coder).
Чтобы сохранить объекты данных так, чтобы они сохранялись при закрытии MATLAB, можно:
Сохраните объекты в словаре данных или рабочем пространстве модели. Чтобы решить, где постоянно хранить данные модели, смотрите Определить, Где хранить переменные и Объекты для Моделей Simulink.
Используйте save
команда для сохранения объектов данных в MAT-файле и load
команда, чтобы восстановить их в базовом рабочем пространстве MATLAB в том же или более позднем сеансе. Сконфигурируйте модель, чтобы загрузить объекты из MAT-файла или файла скрипта, когда модель загружается.
Чтобы загрузить объекты данных из файла при загрузке модели, напишите скрипт, который создает объекты и конфигурирует их свойства. Кроме того, сохраните объекты в MAT-файле. Затем используйте скрипт или команду load в качестве PreLoadFcn
стандартная программа коллбэка для модели, которая использует объекты. Предположим, что вы сохраняете объекты данных в файле с именем data_objects.mat
, и модель, к которой они применяются, открыта и активна. В командной строке введите:
set_param(gcs, 'PreLoadFcn', 'load data_objects');
устанавливает load data_objects
как функцию предварительной загрузки модели. Каждый раз, когда вы открываете модель, объекты данных появляются в базовом рабочем пространстве.
Определения классов сохраненных объектов должны существовать в пути MATLAB, чтобы они были восстановлены. Если класс сохраненного объекта приобретает новые свойства после сохранения объекта, Simulink добавляет новые свойства к восстановленной версии объекта. Если класс теряет свойства после сохранения объекта, восстанавливаются только оставшиеся свойства.
disableimplicitsignalresolution
| Simulink.Breakpoint
| Simulink.LookupTable
| Simulink.Parameter
| Simulink.Signal