Manual de Conexión de Simulink de MATLAB Con Solidworks
Manual de Conexión de Simulink de MATLAB Con Solidworks
Manual de Conexión de Simulink de MATLAB Con Solidworks
INTRODUCCION
1 MATLAB
SolidWorks
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.
A continuación, se presentan los pasos a seguir para usar un ensamble creado en SolidWorks para
realizar simulaciones de control en Simulink:
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
5. Buscar el complemento Simscape Multibody Link y seleccionar las casillas para activarlas.
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
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 = 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
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];
%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;
%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;
%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;