Manual de Conexión de Simulink de MATLAB Con Solidworks

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Manual de conexión de Simulink

de MATLAB con Solidworks


UNIVERSIDAD VERACRUZANA
Facultad de Ingeniería
Campus: Ixtaczoquitlán, Veracruz
Experiencia Educativa:
Robótica

Manual de conexión Simulink-SolidWorks

Competencias a desarrollar: El alumno aprenderá a realizar la conexión de un modelo


físico elaborado con SolidWorks con un controlador diseñado en Simulink de MATLAB
con el propósito de realizar pruebas con dicho modelo.

INTRODUCCION

MATLAB es un software con numerosas aplicaciones en el campo de la ingeniería relacionados con


la aplicación de cálculos matemáticos. SolidWorks es un software de diseño de piezas y ensambles
en 3D. Es posible usar ambos software en conjunto para diseñas un ensamble de piezas y aplicar
ecuaciones de control a dicho ensamble con el propósito de realizar pruebas antes de la aplicación
física.

3. SOFTWARE PAR EFECTUAR LA PRÁCTICA

Cantidad Nombre Especificación

1 MATLAB

SolidWorks

4. ARCHIVOS PARA DESARROLLAR LA PRÁCTICA.

Can Nombre Especif


tida icación
d
Ensamble Realiza
do con
SolidWo
rks

smlink.r2017a.win64
https://es.mathworks.com/campaigns/offers/download_smlink_confirmation.html?
elqsid=1592407304019&potential_use=Student&elqCampaignId=10588

5. DESCRIPCIÓN O DESARROLLO

Para seguir las siguientes instrucciones es necesario contar con el archivo “smlink.r2017a.win64” y
las piezas y el ensamble de SolidWorks del robot a controlar.

Compatible con MATLAB 2017a.

A continuación, se presentan los pasos a seguir para usar un ensamble creado en SolidWorks para
realizar simulaciones de control en Simulink:

1. Abrir MATLAB. Es necesario abrir el programa como administrador, de lo contrario nos


negará el acceso para instalar el add-on.
2. En la ventana de comandos escribir la siguiente instrucción.

install_addon('smlink.r2017a.win64.zip')

3. Una vez que termina de instalar el archivo escribir a siguiente instrucción. Esta activará el
add-on Simscape Multibody en Solid Works.
smlink_linksw

4. En SW Abrir el Menú Herramientas, seguido del submenú complementos.

5. Buscar el complemento Simscape Multibody Link y seleccionar las casillas para activarlas.

6. Abrir el archivo con la extensión “. SLDASM” del ensamble que se usará.


7. Abrir nuevamente el menú Herramientas, el submenú Subscape Multibody, la opción
export, y finalmente la opción Simscape Multibody First Generation (1G). Esto nos
generará un archivo “.xml”, el cual podremos usar usando Simulink de Matlab

8. Una vez generado el archivo, volver a Matlab y escribir en la ventana de comandos lo


siguiente:

mech_import('nombredelensamble.xml'). Lo cual nos abrirá una ventana de Simulink con un


diagrama de bloques con las partes de nuestro ensamble.
O smimport('nombredelensamble');

9. En Simulink abrir el Library Browser y buscar en la columna derecha el apartado


Multibody, dentro de este elegir First Generation y Sensors & Actuators
10. Agregar “Joint Actuator” y “Joint Sensor” como se muestra en la figura
Para hacer las uniones con los bloques llamados Revolute, se da doble clic en el bloque y se abrirá
una ventana donde se escribe el número de entradas y salidas que tendrá el bloque.

11. Una vez que se tienen las uniones y las salidas se seleccionan todos los elementos y se
crea un subsistema.
12. Ahora se le agregan, las entradas, salidas, el sistema de control, un scope, un punto suma
y se unen de la forma siguiente.

13. Ahora se corre nuestro programa y se mostrara la simulación de nuestro ensamble con el
sistema de control aplicado.

Control
A continuación se describe el sistema de control utilizado:
function CONTROL = fcn(u)
%entradas
q1=u(1);
q2=u(2);
q=[q1;q2]; %función q (posición)

q1p=u(3);
q2p=u(4);
qp=[q1p;q2p]; %funcion q punto (velocidad)
q1t=u(5);
q2t=u(6);
qt=[q1t;q2t]; %Entrada al controlador

%constantes
l1=0.45; %Longitud del brazo 1
l2=0.45; %longitud del brazo 2
lc1=0.091; %Lugar donde se encuentra el centro de masa del brazo 1
lc2=0.048; %Lugar donde se encuentra el centro de masa del brazo 2
m1=23.902; %Peso del brazo 1
m2=3.88; %Peso del brazo 2
I1=1.266; %Inercia del brazo 1
I2=0.093; %Inercia del brazo 2
g=9.81; %Gravedad

%Ganancias kv=2*sqrt(kp) Kp= Constante proporcional, kv=Constante


Derivativa
kp1=140;
kp2=80;
Kp=[kp1 0;0 kp2];

kv1=2*sqrt(kp1);
kv2=2*sqrt(kp2);
Kv=[kv1 0;0 kv2];

%Par gravitacional
g1=(g*sin(q1)*(m1*lc1+m2*l1))+m2*g*lc2*sin(q1+q2);
g2=m2*g*lc2*sin(q1+q2);

G=[g1;g2];

%Control PD con compensación de gravedad


tau=(Kp*qt)-(Kv*qp)+G;

CONTROL = tau;

Modelo Dinámico

Si se quisiera usar el modelo dinámico para comparar con el del brazo usado en simulink se usaría
la siguiente función, la cual fue obtenido a partir de las ecuaciones de Euler-Lagrange

function ROBOT = fcn(u)

q1=u(1);
q2=u(2);
q=[q1;q2];

q1p=u(3);
q2p=u(4);
qp=[q1p;q2p];

tau1=u(5);
tau2=u(6);
tau=[tau1;tau2];

%parametros del robot


l1=0.45;
l2=0.45;
lc1=0.091;
lc2=0.048;
m1=23.902;
m2=3.88;
I1=1.266;
I2=0.093;
g=9.81;

%matriz de inercia
m11=m1*lc1.^2 + m2*l1.^2 + m2*lc2.^2 + 2*m2*l1*lc2*cos(q2) + I1 + I2;
m21=m2*lc2.^2 + m2*l1*lc2*cos(q2) + I2;
m12=m2*lc2.^2 + m2*l1*lc2*cos(q2) + I2;
m22=m2*lc2.^2 + I2;

M=[m11 m12; m21 m22];


Minv=inv(M);

%Matriz de Coriolis
c11=-m2*l1*lc2*sin(q2)*q2p;
c12=-m2*l1*lc2*sin(q2)*(q1p+q2p);
c21=m2*l1*lc2*sin(q2)*q1p;
c22=0;

C=[c11 c12;c21 c22];

%Par gravitacional
g1=(g*sin(q1)*(m1*lc1+m2*l1))+m2*g*lc2*sin(q1+q2);
g2=m2*g*lc2*sin(q1+q2);

G=[g1;g2];

qpp=Minv*[tau-C*qp-G];

ROBOT = qpp;

También podría gustarte