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

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

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

The parameters В блоке объявления перечислены все параметры, которые будут доступны в диалоговом окне составного блока.

The components блок объявляет все представителя (составляющие) компоненты, задавая их полные имена начиная с директории пакета верхнего уровня. В этом примере используются компоненты из библиотеки Simscape Foundation:

  • Резистор

  • Катушка индуктивности

  • Вращательный Электромеханический Преобразователь

  • Вращательное трение

  • Инерция

The components блок также связывает параметры верхнего уровня, объявленные в parameters объявление блока, к параметрам базовых представителей компонентов. Для примера, параметр Rotor Resistance составного блока (rotor_resistance) соответствует параметру Resistance (R) блока Резистор в библиотеке Фундамента.

Вы не должны связывать все параметры представителя блоков с параметрами верхнего уровня. Для примера блок Вращательное Трение в библиотеке Foundation имеет параметр Transition approximation coefficient, который не сопоставлен ни с одним параметром на верхнем уровне. Поэтому составная модель всегда использует значение по умолчанию этого параметра, заданное в компоненте Вращательного трения, 10 рад/с.

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

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

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

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

  • Отрицательный электрический порт n Вращательного Электромеханического Конвертера соединяется с отрицательным электрическим портом n составного компонента

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

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

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

Похожие темы