subsystem2ssc
функция позволяет вам преобразовать подсистему, состоящую полностью из блоков Simscape™ в текстовый файл Simscape. Функция генерирует составной файл компонента на основе настройки подсистемы. Если преобразовываемая подсистема содержит вложенные подсистемы, то функция генерирует несколько файлов Simscape, один для каждой подсистемы.
Используйте эту функциональность для:
Упростите авторскую разработку составных компонентов. При записывании текстовых файлов это может затруднить, чтобы визуализировать связи в составном компоненте. Эта функциональность позволяет вам создать модель из блоков Simscape, заключить ее в подсистему, и затем преобразовать эту подсистему на текстовый составной компонент.
Улучшите удобство пользования комплексной подсистемы путем сокращения помехи и представления только нескольких соответствующих параметров в верхнем уровне.
Совместно используйте свои модели с клиентами, не показывая базовую интеллектуальную собственность.
Создать допускающий повторное использование составной компонент:
Смоделируйте физический компонент (такой как двигатель, клапан, усилитель, и так далее) использующие блоки из библиотеки Simscape Foundation, библиотек продукта дополнения или пользовательских блоков. Подстройте параметры и диагностируйте модель по мере необходимости.
Выберите блоки и линии связи, которые представляют ваш физический компонент и создают подсистему из выбора. Для получения дополнительной информации смотрите, Создают Подсистемы.
Подсистема не должна быть замаскирована. Однако, чтобы отсоединить базовые параметры блоков или переменные в верхнем уровне, необходимо замаскировать подсистему и продвинуть эти параметры или переменные к маске подсистемы. Для получения дополнительной информации смотрите Продвижение Параметра.
Используйте subsystem2ssc
функционируйте, чтобы преобразовать вашу подсистему на текстовый составной компонент. Если преобразовываемая подсистема содержит вложенные подсистемы, то функция генерирует несколько файлов Simscape, один для каждой подсистемы.
Включить совместное использование модели, не показывая базовую интеллектуальную собственность:
При преобразовании подсистемы используйте subsystem2ssc
функция с targetFolder
аргумент, чтобы поместить файл или файлы, сгенерированные функцией в целевую папку.
Например,
subsystem2ssc('ssc_dcmotor/DC Motor','./MotorsLibrary')
создает файл с именем DC_Motor.ssc
и места это в папку под названием MotorsLibrary
.
Создайте и поместите другие модели электродвигателя в ту же целевую папку.
Защитите исходные файлы в целевой папке при помощи ssc_protect
функция.
Совместно используйте содержимое папки с другими пользователями или клиентами, не показывая базовый источник.
Можно поместить сгенерированные файлы в папку пакета и создать библиотеку при помощи ssc_build
или ssc_mirror
функции. Однако, если ваша подсистема содержит вложенные подсистемы, необходимо отредактировать пути к субкомпоненту в сгенерированных файлах вручную, чтобы совпадать намеченной структурой пакета. В качестве альтернативы можно использовать блоки Simscape Component, которые работают с плоской иерархией целевой папки без модификации.
Можно отметить блок члена и параметры подсистемы для продвижения верхнему уровню с помощью маски подсистемы. subsystem2ssc
функция автоматически генерирует соответствующий код Simscape, подобный, чтобы составить компоненты. Для получения дополнительной информации смотрите Компоненты Составного объекта Параметризации.
Когда вы развертываете сгенерированный составной файл как пользовательский блок, диалоговое окно блока содержит эти продвинутые параметры только.
В этом примере показано, как можно сделать инерцию двигателя модифицируемой на уровне подсистемы двигателя постоянного тока и эффекте на сгенерированном коде Simscape и получившейся маске пользовательского блока:
Откройте Моторную модель Постоянного электромагнита в качестве примера путем ввода ssc_dcmotor
в MATLAB® Командное окно.
Щелкните правой кнопкой по подсистеме двигателя постоянного тока и, из контекстного меню, выберите Mask> Edit Mask.
Кликните по вкладке Parameters & Dialog. Используйте опцию управления Promote, чтобы продвинуть параметр Inertia блока Inertia к маске подсистемы. Для получения дополнительной информации смотрите, Продвигают Базовые Параметры Маску Подсистемы.
В качестве альтернативы можно использовать опцию управления Edit, чтобы добавить параметр в маску подсистемы и сопоставить его параметром Inertia базового блока Inertia.
Преобразуйте подсистему двигателя постоянного тока в файл компонента Simscape и поместите этот файл в свою текущую рабочую папку:
subsystem2ssc('ssc_dcmotor/DC Motor')
Функция создает файл с именем DC_Motor.ssc
в текущей папке. Откройте файл в редакторе.
component DC_Motor parameters inertia = {.01, 'cm^2*g'}; %Inertia end nodes C = foundation.mechanical.rotational.rotational; R = foundation.mechanical.rotational.rotational; V1 = foundation.electrical.electrical; V0 = foundation.electrical.electrical; end components(ExternalAccess = observe) Rotor_Resistance = foundation.electrical.elements.resistor(R = {3.9, 'Ohm'}); Rotor_Inductance = foundation.electrical.elements.inductor(l = {1.2e-05, 'H'}, r = {0, 'Ohm'}, g = {1e-09, '1/Ohm'}, i_L = {value = {0, 'A'}, priority = priority.high}); Rotational_Electromechanical_Converter = foundation.electrical.elements.rotational_converter(K = {.0006875493541569879, 's*V/rad'}); Inertia = foundation.mechanical.rotational.inertia(inertia = inertia); Friction = foundation.mechanical.rotational.friction(brkwy_trq = {2e-05, 'm*N'}, brkwy_vel = {.03347, 'rad/s'}, Col_trq = {2e-05, 'm*N'}, visc_coef = {0, 'm*s*N/rad'}); end connections connect(V0,Rotor_Resistance.p); connect(Rotational_Electromechanical_Converter.p,Rotor_Inductance.n); connect(V1,Rotational_Electromechanical_Converter.n); connect(Rotor_Inductance.p,Rotor_Resistance.n); connect(R,Friction.R); connect(R,Inertia.I); connect(R,Rotational_Electromechanical_Converter.R); connect(C,Friction.C); connect(C,Rotational_Electromechanical_Converter.C); end end
Заметьте parameters
верхнего уровня блокируйтесь содержащий
inertia
параметр.
Если вы теперь указываете блок Simscape Component на DC_Motor.ssc
исходный файл, диалоговое окно блока содержит параметр под названием Inertia.
Преобразовываемая подсистема должна состоять полностью из блоков, созданных на языке Simscape, таких как блоки из библиотеки Simscape Foundation, библиотек продукта дополнения или пользовательских блоков. Блоки из библиотеки Simscape Utilities не созданы на языке Simscape, поэтому:
Если подсистема содержит блок Simscape Component, то во время преобразования этот блок заменяется его исходным компонентом.
Блоки Connection Port представлены connect
операторы.
Другие блоки из библиотеки Utilities (Solver Configuration, Simscape Bus, и так далее) не позволены, потому что у них нет эквивалентного текстового представления.
Преобразовываемая подсистема не может содержать несколько сетей Simscape.
Если преобразовываемая подсистема содержит вложенные подсистемы, вам придется вручную отредактировать ссылки на сгенерированные файлы для вложенных подсистем при выполнении ssc_build
на пакете.
Если вы используете блоки из библиотек Simscape, сохраните исходную подсистему используемой, чтобы сгенерировать составной компонент. Язык Simscape не поддерживает передающие таблицы или управление версиями. В результате, если базовые библиотечные блоки претерпевают изменения в будущем релизе, текстовый составной компонент, сгенерированный от этих блоков, может прекратить работать. Если это происходит, откройте исходную подсистему в новом релизе и повторно выполните преобразование.
subsystem2ssc
| components
| connections
| ssc_build
| ssc_mirror
| ssc_protect