Contenido principal

Componente mecánico: resorte

El siguiente archivo, spring.ssc, implementa un componente denominado spring.

La sección de la declaración del componente incluye:

  • Dos nodos rotacionales, r y c (para la varilla y la carcasa, respectivamente)

  • Parámetro k, con un valor predeterminado de 10 N*m/rad, que especifica la tasa de elasticidad del resorte

  • Variables Through y Across, el par motor t y la velocidad angular w, que se van a conectar a las variables Through y Across del dominio de rotación más adelante en el archivo

  • Variable interna theta, con un valor predeterminado de 0 rad, que especifica el ángulo relativo, es decir, la deformación del resorte

La sección branches establece la relación entre la variable Through del componente y los nodos del componente (y, por lo tanto, de la variable Through del dominio). La instrucción t : r.t -> c.t indica que el par motor a través del resorte actúa desde el nodo r hasta el nodo c.

La sección de ecuaciones comienza con un constructo assert, que comprueba que la tasa de elasticidad del resorte es mayor que cero. Si el parámetro de bloque está establecido de manera incorrecta, assert se genera un error en tiempo de ejecución.

La primera ecuación, w == r.w - c.w, establece la relación entre la variable Across del componente y los nodos del componente (y, por lo tanto, la variable Across del dominio). Define la velocidad angular a lo largo del resorte como la diferencia entre las velocidades angulares de los nodos.

Las dos ecuaciones siguientes definen la acción del resorte:

  • t = k * theta, es decir, el par motor es igual a la tasa de elasticidad del resorte por la deformación del resorte

  • w = theta.der, es decir, la velocidad angular es igual a la derivada de tiempo de la deformación del resorte

component spring 
  nodes
    r = foundation.mechanical.rotational.rotational; 
    c = foundation.mechanical.rotational.rotational; 
  end 
  parameters
    k = { 10, 'N*m/rad' }; 
  end 
  variables
    theta = { 0, 'rad' };  
    t = { 0, 'N*m' };        % torque through
    w = { 0, 'rad/s' };      % velocity across
  end
  branches
    t : r.t -> c.t; % torque through from node r to node c
  end
  equations
    assert(k>0)     % spring rate must be greater than zero
    w == r.w - c.w; % velocity across between node r and node c
    t == k * theta; 
    w == der(theta); 
  end
end

Consulte también

Temas