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, которые работают с плоской иерархией целевой папки без изменений.
Можно пометить параметры блока и подсистемы для продвижения на верхний уровень с помощью маски подсистемы. subsystem2ssc функция автоматически генерирует соответствующий код Simscape, аналогичный составным компонентам. Дополнительные сведения см. в разделе Параметризация составных компонентов.
При развертывании созданного составного файла в качестве пользовательского блока диалоговое окно блока содержит только эти повышенные параметры.
В этом примере показано, как можно изменить инерцию двигателя на уровне подсистемы двигателя постоянного тока, а также влияние на созданный код Simscape и полученную пользовательскую маску блока:
Откройте пример модели двигателя постоянного тока с постоянным магнитом, введя ssc_dcmotor в окне команд MATLAB ®.

Щелкните правой кнопкой мыши подсистему двигателя постоянного тока и в контекстном меню выберите «Маска» > «Редактировать маску».
Перейдите на вкладку «Параметры и диалоговое окно». Используйте опцию управления «Повысить инерцию» (Promote control), чтобы повысить значение параметра «Инерция» (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 на DC_Motor.ssc исходный файл, диалоговое окно блока содержит параметр «Инерция».

Преобразуемая подсистема должна полностью состоять из блоков, созданных на языке Simscape, таких как блоки из библиотеки Simscape Foundation, библиотеки надстроек или пользовательские блоки. Блоки из библиотеки Simscape Utilities не создаются на языке Simscape, поэтому:
Если подсистема содержит блок компонента Simscape, то во время преобразования этот блок заменяется его исходным компонентом.
Блоки портов соединения представлены connect заявления.
Другие блоки из библиотеки утилит (конфигурация решателя, шина Simscape и т. д.) не разрешены, так как они не имеют эквивалентного текстового представления.
Преобразуемая подсистема не может содержать несколько сетей Simscape.
Если преобразуемая подсистема содержит вложенные подсистемы, может потребоваться вручную отредактировать ссылки на созданные файлы для вложенных подсистем при выполнении ssc_build на упаковке.
Если используются блоки из библиотек Simscape, сохраните исходную подсистему, используемую для создания составного компонента. Язык Simscape не поддерживает пересылку таблиц или управление версиями. В результате, если базовые блоки библиотеки претерпевают изменения в будущей версии, текстовый составной компонент, созданный из этих блоков, может перестать работать. В этом случае откройте исходную подсистему в новой версии и повторно запустите преобразование.
components | connections | ssc_build | ssc_mirror | ssc_protect | subsystem2ssc