Преобразование подсистем на составные компоненты

subsystem2ssc функция позволяет вам преобразовать подсистему, состоящую полностью из блоков Simscape™ в текстовый файл Simscape. Функция генерирует составной файл компонента на основе настройки подсистемы. Если преобразовываемая подсистема содержит вложенные подсистемы, то функция генерирует несколько файлов Simscape, один для каждой подсистемы.

Используйте эту функциональность для:

  • Упростите авторскую разработку составных компонентов. При записывании текстовых файлов это может затруднить, чтобы визуализировать связи в составном компоненте. Эта функциональность позволяет вам создать модель из блоков Simscape, заключить ее в подсистему, и затем преобразовать эту подсистему на текстовый составной компонент.

  • Улучшите удобство пользования комплексной подсистемы путем сокращения помехи и представления только нескольких соответствующих параметров в верхнем уровне.

  • Совместно используйте свои модели с клиентами, не показывая базовую интеллектуальную собственность.

Предложенные рабочие процессы

Создать допускающий повторное использование составной компонент:

  1. Смоделируйте физический компонент (такой как двигатель, клапан, усилитель, и так далее) использующие блоки из библиотеки Simscape Foundation, библиотек продукта дополнения или пользовательских блоков. Подстройте параметры и диагностируйте модель по мере необходимости.

  2. Выберите блоки и линии связи, которые представляют ваш физический компонент и создают подсистему из выбора. Для получения дополнительной информации смотрите, Создают Подсистемы.

    Подсистема не должна быть замаскирована. Однако, чтобы отсоединить базовые параметры блоков или переменные в верхнем уровне, необходимо замаскировать подсистему и продвинуть эти параметры или переменные к маске подсистемы. Для получения дополнительной информации смотрите Продвижение Параметра.

  3. Используйте subsystem2ssc функционируйте, чтобы преобразовать вашу подсистему на текстовый составной компонент. Если преобразовываемая подсистема содержит вложенные подсистемы, то функция генерирует несколько файлов Simscape, один для каждой подсистемы.

Включить совместное использование модели, не показывая базовую интеллектуальную собственность:

  1. При преобразовании подсистемы используйте subsystem2ssc функция с targetFolder аргумент, чтобы поместить файл или файлы, сгенерированные функцией в целевую папку.

    Например,

    subsystem2ssc('ssc_dcmotor/DC Motor','./MotorsLibrary')
    

    создает файл с именем DC_Motor.ssc и места это в папку под названием MotorsLibrary.

  2. Создайте и поместите другие модели электродвигателя в ту же целевую папку.

  3. Защитите исходные файлы в целевой папке при помощи ssc_protect функция.

  4. Совместно используйте содержимое папки с другими пользователями или клиентами, не показывая базовый источник.

Можно поместить сгенерированные файлы в папку пакета и создать библиотеку при помощи ssc_build или ssc_mirror функции. Однако, если ваша подсистема содержит вложенные подсистемы, необходимо отредактировать пути к субкомпоненту в сгенерированных файлах вручную, чтобы совпадать намеченной структурой пакета. В качестве альтернативы можно использовать блоки Simscape Component, которые работают с плоской иерархией целевой папки без модификации.

Продвижение параметра

Можно отметить блок члена и параметры подсистемы для продвижения верхнему уровню с помощью маски подсистемы. subsystem2ssc функция автоматически генерирует соответствующий код Simscape, подобный, чтобы составить компоненты. Для получения дополнительной информации смотрите Компоненты Составного объекта Параметризации.

Когда вы развертываете сгенерированный составной файл как пользовательский блок, диалоговое окно блока содержит эти продвинутые параметры только.

В этом примере показано, как можно сделать инерцию двигателя модифицируемой на уровне подсистемы двигателя постоянного тока и эффекте на сгенерированном коде Simscape и получившейся маске пользовательского блока:

  1. Откройте Моторную модель Постоянного электромагнита в качестве примера путем ввода ssc_dcmotor в MATLAB® Командное окно.

  2. Щелкните правой кнопкой по подсистеме двигателя постоянного тока и, из контекстного меню, выберите Mask> Edit Mask.

  3. Кликните по вкладке Parameters & Dialog. Используйте опцию управления Promote, чтобы продвинуть параметр Inertia блока Inertia к маске подсистемы. Для получения дополнительной информации смотрите, Продвигают Базовые Параметры Маску Подсистемы.

    В качестве альтернативы можно использовать опцию управления Edit, чтобы добавить параметр в маску подсистемы и сопоставить его параметром Inertia базового блока Inertia.

  4. Преобразуйте подсистему двигателя постоянного тока в файл компонента 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 параметр.

  5. Если вы теперь указываете блок 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 не поддерживает передающие таблицы или управление версиями. В результате, если базовые библиотечные блоки претерпевают изменения в будущем релизе, текстовый составной компонент, сгенерированный от этих блоков, может прекратить работать. Если это происходит, откройте исходную подсистему в новом релизе и повторно выполните преобразование.

Смотрите также

| | | | |

Похожие темы