В Моторном примере Постоянного электромагнита блок двигателя постоянного тока реализован как подсистема маскированная.
Следующий код реализует ту же модель посредством составного названного DC Motor
компонента. Составной компонент использует компоненты от библиотеки Simscape™ Foundation как стандартные блоки и соединяет их как показано в предыдущей блок-схеме.
component DC_Motor % DC Motor % This block models a DC motor with an equivalent circuit comprising a % series connection of a resistor, inductor, and electromechanical converter. % Default values are as for the DC Motor Simscape example, ssc_dcmotor. nodes p = foundation.electrical.electrical; % +:left n = foundation.electrical.electrical; % -:left R = foundation.mechanical.rotational.rotational; % R:right C = foundation.mechanical.rotational.rotational; % C:right end parameters rotor_resistance = { 3.9, 'Ohm' }; % Rotor Resistance rotor_inductance = { 12e-6, 'H' }; % Rotor Inductance motor_inertia = { 0.01, 'g*cm^2' }; % Inertia breakaway_torque = { 0.02e-3, 'N*m' }; % Breakaway friction torque coulomb_torque = { 0.02e-3, 'N*m' }; % Coulomb friction torque viscous_coeff = { 0, 'N*m*s/rad' }; % Viscous friction coefficient breakaway_velocity = { 0.1, 'rad/s' }; % Breakaway friction velocity back_emf_constant = { 0.072e-3, 'V/rpm' }; % Back EMF constant end components(ExternalAccess=observe) rotorResistor = foundation.electrical.elements.resistor(R = rotor_resistance); rotorInductor = foundation.electrical.elements.inductor(l = rotor_inductance); rotationalElectroMechConverter = foundation.electrical.elements.rotational_converter(K = ... back_emf_constant); friction = foundation.mechanical.rotational.friction(brkwy_trq = ... breakaway_torque, Col_trq = coulomb_torque, ... visc_coef = viscous_coeff, brkwy_vel = breakaway_velocity); motorInertia = foundation.mechanical.rotational.inertia(inertia = motor_inertia); end connections connect(p, rotorResistor.p); connect(rotorResistor.n, rotorInductor.p); connect(rotorInductor.n, rotationalElectroMechConverter.p); connect(rotationalElectroMechConverter.n, n); connect(rotationalElectroMechConverter.R, friction.R, motorInertia.I, R); connect(rotationalElectroMechConverter.C, friction.C, C); end end
Раздел объявления составного компонента запускается с раздела nodes
, который задает порты подключения верхнего уровня получившегося составного блока:
Два электрических порта сохранения, +
и -
, на левой стороне блока
Два механических вращательных порта сохранения, R
и C
, на правой стороне блока
Блок объявлений parameters
перечисляет все параметры, которые будут доступны в составном диалоговом окне блока.
Блок components
объявляет всего участника (составляющая) компоненты, задавая их полные имена, начинающие с директории пакета верхнего уровня. Этот пример использует компоненты от библиотеки Simscape Foundation:
Резистор
Индуктор
Вращательный электромеханический конвертер
Вращательное трение
Инерция
Блок components
также соединяет параметры верхнего уровня, объявленные в блоке объявлений parameters
, к параметрам базовых членских компонентов. Например, параметр Rotor Resistance составного блока (rotor_resistance
) соответствует параметру Resistance (R
) блока Resistor в библиотеке Foundation.
Вы не должны соединять все параметры членских блоков к параметрам верхнего уровня. Например, блок Rotational Friction в библиотеке Foundation имеет параметр Transition approximation coefficient, который не сопоставлен ни с каким параметром в верхнем уровне. Поэтому составная модель всегда использует значение по умолчанию этого параметра, заданного во Вращательном компоненте Трения, 10 рад/с.
Блок connections
задает связи между узлами (порты) членских компонентов и их связи с портами верхнего уровня получившегося составного блока, объявленного в блоке объявлений nodes
составного компонента:
Положительный электрический порт p
составного компонента соединяется с положительным электрическим портом p
Резистора
Отрицательный электрический порт n
Резистора соединяется с положительным электрическим портом p
Индуктора
Отрицательный электрический порт n
Индуктора соединяется с положительным электрическим портом p
Вращательного Электромеханического Конвертера
Отрицательный электрический порт n
Вращательного Электромеханического Конвертера соединяется с отрицательным электрическим портом n
составного компонента
Механический вращательный порт R
составного компонента соединяется со следующими механическими вращательными портами: R
Вращательного Электромеханического Конвертера, R
Вращательного Трения и I
Инерции
Механический вращательный порт C
составного компонента соединяется со следующими механическими вращательными портами: C
Вращательного Электромеханического Конвертера и C
Вращательного Трения
Эти связи являются текстовым эквивалентом графических связей в предыдущей блок-схеме.