exponenta event banner

Составной компонент - двигатель постоянного тока

В примере двигателя постоянного тока постоянного магнита блок двигателя постоянного тока реализован как маскированная подсистема.

Следующий код реализует ту же модель с помощью составного компонента, называемого 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) соответствует параметру Сопротивление (R) блока Резистор в библиотеке фундамента.

Нет необходимости связывать все параметры блоков-членов с параметрами верхнего уровня. Например, блок «Вращательное трение» в библиотеке фундамента имеет параметр коэффициента аппроксимации «Переход», который не сопоставлен ни с одним параметром на верхнем уровне. Поэтому композитная модель всегда использует значение этого параметра по умолчанию, указанное в компоненте «Вращательное трение», 10 рад/с.

connections блок определяет соединения между узлами (портами) компонентов-членов и их соединения с портами верхнего уровня результирующего составного блока, объявленного в nodes блок объявления составного компонента:

  • Положительный электрический порт p составной компонент подключен к положительному электрическому порту p резистора

  • Отрицательный электрический порт n резистора подключен к положительному электрическому порту p индуктора

  • Отрицательный электрический порт n Индуктор подключен к положительному электрическому порту p вращательного электромеханического преобразователя

  • Отрицательный электрический порт n Вращательный электромеханический преобразователь подключен к отрицательному электрическому порту n составного компонента

  • Механический поворотный порт R составной компонент соединен со следующими механическими вращательными портами: R вращательного электромеханического преобразователя, R вращательного трения, и I Инерции

  • Механический поворотный порт C составной компонент соединен со следующими механическими вращательными портами: C вращательного электромеханического преобразователя и C вращательного трения

Эти соединения являются текстовым эквивалентом графических соединений на предыдущей блок-схеме.

Связанные темы