Mostrando entradas con la etiqueta MATLAB. Mostrar todas las entradas
Mostrando entradas con la etiqueta MATLAB. Mostrar todas las entradas

domingo, 2 de febrero de 2014

MATLAB Matriz exponencial via laplace

Este script es para encontrar la matriz exponencial de una matriz cuadrada via la transformación de lapace utilizando MATLAB.

% ****************************************************************************
% * Este script encuentra la matriz exponencial y la solución de la matriz A *
% *            Hecho por Jonathan Israel Hernández Hernández                 *
% *                   Nospherathuxxx.blogspot.mx                       *
% ****************************************************************************
clc;clear all;close all; 
disp('Matriz exponencial y la solución de la matriz A')
disp(' ')
q=input('Ingrese la dimención de la matriz A: ');
A=zeros(q);
for i = 1:q       
    for j = 1:q   
        A(i,j) = input(strcat('Ingrese valor numerico de A (',num2str(i),',',num2str(j),') : '));
    end 
    xo(i,1) = input(strcat('Ingrese valor numerico de Xo (',num2str(i),',1) : '));
end
syms s
s1=inv(s.*(eye(q))-A);
disp('La matriz (SI-A)^-1 es: ')
pretty(simplify(s1))
s2=ilaplace(s1);
disp('La matriz e(At) es: ')
pretty(s2)
s3=s2*xo;
for k = 1:q
   strcat('El valor de X(', num2str(k),') = ')
   pretty(s3(k,1))
end
clear all;close all;

MATLAB Hallar los Eigenvectores de una matriz

En este ejemplo se muestra como encontrar los eigenvalores, la transformación diagonal y los eigenvectores de una matriz cuadrada si y solo si los eigenvalores son diferentes de cero y deferentes de si mismos, si no es así el resultado sera erróneo.

MATLAB regresa los valores de los vectores propios de una manera peculiar, sin embargo la realización de  este script se trata de que los vectores propios sean de preferencia números enteros reales como en la mayoría de ejemplos de los libros de álgebra lineal y control automático.

% ************************************************************************
% * Este script encuentra los eigenvalores y eigenvectores de una matriz *
% *          Hecho por Jonathan Israel Hernández Hernández               *
% *               Nospherathuxxx.blogspot.mx                      *
% ************************************************************************
clc;clear all;close all; 
disp('Eigenvalores y Eigenvectores de una matriz')
disp(' ')
q=input('Ingrese la dimención de la matriz A: ');
A=zeros(q);
for i = 1:q       
    for j = 1:q   
        A(i,j) = input(strcat('Ingrese valor numerico de A (',num2str(i),',',num2str(j),') : '));
    end 
end
[vec,val]=eig(A);
('los eigenvalores de la matriz son: ')
L=diag(val)
V=zeros(q);
for k = 1:q
    s1=(vec(:,k));
    s2=(min(abs(s1)));
    if (s2 == 0)
        s2= (max (abs (s1)));
    end
     for n=1:q
         s3(n,1)=( s2 == s1(n,1));
     end
     s4=sum(s3');
     if (s4 == 0)
         vp=(-1/s2).*vec(:,k);
     else
         vp=(1/s2).*vec(:,k);
     end
     for h = 1:q
         V(h,k)=vp(h,1);
     end
end
('los eigenvectores de la matriz son: ')
V
clear all;close all;

MATLAB Solución de ecuaciones lineales

En matemáticas y álgebra lineal, un sistema de ecuaciones lineales, también conocido como sistema lineal de ecuaciones o simplemente sistema lineal, es un conjunto de ecuaciones lineales (es decir, un sistema de ecuaciones en donde cada ecuación es de primer grado). Donde se busca hallar los valores de X1,X2,...,Xn.

En este ejemplo se  muestra un script en MATLAB para resolver sistemas de ecuaciones lineales.

% ********************************************************
% * Este script resuelve Sistemas de Ecuaciones Lineales *
% *    Hecho por Jonathan Israel Hernández Hernández     *
% *         Nospherathuxxx.blogspot.mx          *
% ********************************************************
clc;clear all;close all;
disp('Solución de Sistemas de Ecuaciones Lineales')
disp(' ')
q=input('Ingrese la dimención de la matriz A: ');
A=zeros(q);
for i = 1:q      
    for j = 1:q  
        A(i,j) = input(strcat('Ingrese valor numerico de A (',num2str(i),',',num2str(j),') : '));
    end
    b(i,1) = input(strcat('Ingrese valor numerico de B (',num2str(i),',1) : '));
end
x=A\b;
for k = 1:q
   strcat('El valor de X(', num2str(k),') = ',num2str(x(k,1)),'')
end
clear all;close all;

martes, 31 de diciembre de 2013

Importar modelos CAD de Solidworks a Matlab

Simmechanics es una herramienta dentro del software Matlab, el cuál proporciona un entorno de simulación multicuerpo para sistemas mecanicos 3D. Esta herramienta ha ido evolucionando desde su aparición y asi mismo su instalación. En este tema explicare como hacer la vinculación entre la versión Matlab 2013b y Solidworks 2013 SP0.

Primeramente descargar los 2 archivos de intalación de la pagina de descargas de Matworks correspondiente a la versión de matlab instalada, la versión de solidworks instalada y la arquitectura de windows en su PC.


En mi caso,  SimMechanics Link 4.3 – Release 2013b (SimMechanics 4.3)  para Solidworks en  windows 7 a 64 bits

Posteriormente, no descomprimir el zip descargado, desde la command window de Matlab invocar el siguiente comando (Estos archivos deben de estar en el directorio de busqueda, si no es asi desplazarce a donde se encuentran y  posteriormente invocar el comando).

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

Despues ir a Solidworks y en complementos, marcar SimMechanics Link.

Despues de Marcar esta opción, nos regresamos a Matlab y ingresamos el siguiente comando para registrar la aplicación.

smlink_linksw

Para poder exportar el ensamble, primeramente hay que registrar Matlab como un servidor de automatización. Esto se hace ingresando los siguientes comandos.

regmatlabserver

enableservice('AutomationServer',true)

Por ultimo, regresaremos a solidworks y nos aparecera un menu para exportar el ensambles a *.xml. (Este menú solo aparecera en ensambles).


Podremos exportar a primera generación o segunda generación el ensamble deseado. Finalmente en Matlab ingresar el siguiente comando para que convierta el archivo *.xml y los visualicemos en Simulink.

mech_import('Assambly.xml') % Primera generación

smimport('Assambly.xml') % Segunda generación