curvas b spline explicada analiticamente

22
“Diseño e implementación de algoritmos de control cinemático mediante interpoladores polinomiales y visión artificial” INTERPOLACIÓN MEDIANTE B-SPLINE RESÚMEN La Creación de modelos matemáticos que expliquen o generen patrones similares a los de la naturaleza son de gran parte de interés por parte de los matemáticos, físicos e ingenieros. Ya que estos modelos “naturales” son flexibles a los cambios y proveen una salida estable ante situaciones indeterminadas. Esto se aplica en muchas áreas de la ciencia, tratar de modelar patrones, trayectorias o formas es solo una de las pocas aplicaciones que abarca la interpolación, esta se basa en la tendencia que sigue cierta composición vectorial. Por lo que mínimamente necesitamos conocer esta composición de tramos para definir su modelo. FIGURA 1.0- Representación matemática de contorno de tiburón. Las curvas B-Spline o Basis Spline, se basan en la continuidad de sus diferentes intervalos. Basando su suavidad en el criterio de continuidad de las primeras y segundas derivadas, ya que son funciones polinómicas cubicas a trozos. Existen varias clases de especificaciones de B Spline que se usan en las aplicaciones gráficas. Generalmente tiene una naturaleza no global, cada vértice del polígono generador de la curva está asociado a una función. El ejemplo más sencillo es el Spline 0 , o sea lineal por trozos. Este Spline es simplemente una poligonal en el plano o en el espacio. Splines: Una curva () se denomina un Spline de grado n sobre la secuencia de nudos 0 ,…, +1 < ++1 para todas las posibles i. () − () ≤ [ , +1 ] = 0 , . . . , − 1 Es común referirse a un Spline de grado n como Spline de orden n+1. Las figuras siguientes muestran Splines sobre secuencia de nudos simples (multiplicidad uno). Los puntos de Bézier internos y externos se denotan por pequeños círculos blancos y negros respectivamente. Splines de grado 0 (orden 1): son funciones constantes por tramos como se muestra en la figura: FIGURA 1.1- Ejemplo de una aproximación a trozos mediante polinomios de grado 0.

description

el presente documento muestra de manera sencilla el proceso de realizar curvas b spline, usando el metodo de induccion y como software matlab.correo : [email protected]

Transcript of curvas b spline explicada analiticamente

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    INTERPOLACIN MEDIANTE B-SPLINE

    RESMEN

    La Creacin de modelos matemticos que expliquen o generen patrones similares a los de la naturaleza son de gran parte

    de inters por parte de los matemticos, fsicos e ingenieros. Ya que estos modelos naturales son flexibles a los cambios

    y proveen una salida estable ante situaciones indeterminadas. Esto se aplica en muchas reas de la ciencia, tratar de

    modelar patrones, trayectorias o formas es solo una de las pocas aplicaciones que abarca la interpolacin, esta se basa en

    la tendencia que sigue cierta composicin vectorial. Por lo que mnimamente necesitamos conocer esta composicin de

    tramos para definir su modelo.

    FIGURA 1.0- Representacin matemtica de contorno de tiburn.

    Las curvas B-Spline o Basis Spline, se basan en la continuidad de sus diferentes intervalos. Basando su suavidad en el

    criterio de continuidad de las primeras y segundas derivadas, ya que son funciones polinmicas cubicas a trozos.

    Existen varias clases de especificaciones de B Spline que se usan en las aplicaciones grficas. Generalmente tiene una

    naturaleza no global, cada vrtice del polgono generador de la curva est asociado a una funcin. El ejemplo ms

    sencillo es el Spline 0, o sea lineal por trozos. Este Spline es simplemente una poligonal en el plano o en el espacio.

    Splines:

    Una curva () se denomina un Spline de grado n sobre la secuencia de nudos 0, , +1 < ++1 para todas las posibles i.

    () () [ , +1] = 0 , . . . , 1

    Es comn referirse a un Spline de grado n como Spline de orden n+1. Las figuras siguientes muestran Splines sobre

    secuencia de nudos simples (multiplicidad uno). Los puntos de Bzier

    internos y externos se denotan por pequeos crculos blancos y negros respectivamente.

    Splines de grado 0 (orden 1): son funciones constantes por tramos como se muestra en la figura:

    FIGURA 1.1- Ejemplo de una aproximacin a trozos mediante polinomios de grado 0.

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Siguiendo la ecuacin:

    0 0 0, 1,

    1,

    ( ) [ )

    ( ) ...

    ( ) [ )n n n n

    S u C u a a

    S u

    S u C u a a

    Donde los iC son las constantes que se grafican en los intervalos 1,[ )i iu a a con i > 0.

    Splines de grado 1 (orden 2): Son funciones lineales a tramos. Un ejemplo se presenta en la siguiente figura:

    FIGURA 1.2- Ejemplo de una aproximacin a trozos mediante polinomios de grado 1.

    Siguiendo la ecuacin:

    0 0 0 0, 1,

    1,

    ( ) [ )

    ( ) ...

    ( ) [ [n n n n n

    S u p u q u a a

    S u

    S u p u q u a a

    Donde ,i ip q son los coeficientes de la ecuacin lineal a tramos.

    B-Splines:

    En analoga a la representacin de Bzier de curvas polinmicas tambin es conveniente expresar un Spline () como una combinacin afn de ciertos puntos de control , esto es:

    ( ) ( )ni iS u c N u

    Donde los ( )n

    iN u son funciones polinmicas por trozos con soporte finito (se anulan fuera de un intervalo finito) y

    satisfacen ciertas condiciones de continuidad.

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    FIGURA 1.3- Curva grado 1(Lineal), Curva grado 2 (Parablica) y Curva Grado 3(Cubica).

    Definicin recursiva de los B-Splines:

    Para introducir la relacin de recurrencia para definir los B-Splines, consideramos por simplicidad una secuencia (())

    doblemente infinita de nudos simples tales que () < (+1) para todo i. Entonces los B-Splines se definen a travs

    de la siguiente relacin recursiva:

    ( ) ( )01

    ( )0

    i i

    i

    si a u adonde N u

    de otra manera

    () =

    ()(+) ()

    1() +

    (++1) (++1) (+1)

    +11()

    = = =

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Representacin de Spline de grado 0, grado 1, grado 2:

    FIGURA 1.4- Spline de grado 0, grado 1, grado 2.

    Dada la definicin de los B-Spline se desprende de forma inmediata las siguientes propiedades:

    () Es polinmicas a trozos y tiene grado n.

    () Es positiva sobre (, ++1).

    () 0 fuera de (, ++1).

    () Es continua por la derecha.

    El Algoritmo de De Boor:

    Considerando la combinacin lineal:

    () = 0

    ()

    Sobre B-Splines de grado n sobre una secuencias de nudos Sin prdida de generalidad podemos suponer que la secuencia de nudos y la sumatoria se extienden de a . Por la forma de los soportes locales de los

    esta suma es

    siempre finita para cualquier u dado. Suponemos que

    [ , +1) entonces:

    () = 0

    ()

    Usando repetidamente la relacin de recurrencia para los B-Splines y agrupando trminos obtenemos:

    () = 1

    =1

    1()

    () =

    =1

    0() =

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Donde los

    estn dados por las combinaciones a fines:

    = (1)1

    1+ 1 , =

    =

    ++1

    Note que [0 , 1] pues [ , +1] , y por lo tanto, las combinaciones afines son convexas.

    Este algoritmo fue desarrollado por De Boor en 1972. Los puntos

    se pueden ordenar en el siguiente esquema

    triangular, donde la regla de recursin es la anterior recursin afn.

    00

    10 1

    2

    20 2

    1 22

    0 1

    2

    Una consecuencia importante del algoritmo de De Boor es que el Spline () sobre un intervalo internodal (i.e. entre dos nudos consecutivos) es una combinacin convexa de n+1 coeficientes consecutivos .Por lo tanto si los representan puntos en un espacio afn, entonces () tambin es un punto del espacio afn. Por esta razn, los se denominan puntos de control de ()

    Los B-Splines forman una particin de la unidad. La figura ilustra la interpretacin geomtrica del algoritmo de De Boor

    dada por Gordon y Riesenfeld en 1974.

    FIGURA 1.5- Interpretacin geomtrica del Algoritmo de De Boor.

    1

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    El teorema fundamental.

    Los polinomios simtricos nos permitirn considerar el algoritmo de De Boor en un contexto ms amplio. Sea

    () = ()

    Un spline de grado n sobre los nudos , y sea si [ , +1) la forma polar que coincide sobre su diagonal con () sobre [ , +1). Entonces tenemos una versin ms general del teorema fundamental.

    Los puntos de control estn definidos por:

    = [+1 +] = , ,

    = [+1 + ]

    = (1) + ++1

    Entonces:

    = (1)1

    1+ 1

    Donde:

    =

    ++1

    Para [ , +1] esta demostracin coincide con el algoritmo de De Boor y puede utilizarse para calcular cualquier polinomio.

    FIGURA 1.6- B-Spline grado 3, los puntos iniciales y finales no se tocan.

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Interpolacin:

    Si se tiene un conjunto de puntos = ( , ) = 0 2 que se deseen interpolar, podemos hacerlo a travs de una curva de la siguiente forma:

    FIGURA 1.7- Interpolacin B-Spline de grado 3.

    Anlisis del problema:

    Para obtener la curva construida, cuntos nudos se necesitan? Considere el siguiente caso:

    FIGURA 1.8- Visualizacin de los intervalos del vector de nudos t (para este caso).

    Entonces para interpolar (n+1) puntos se necesitan (n+7) nudos 0, 1, . . . , +6 para una interpolacin cubica uniforme.

    Para obtener la curva construida, cuntos puntos de control son es necesario? Considere el siguiente caso:

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    FIGURA 1.9- Interpolacin de curva cubica y obtencin del polgono de control.

    Para interpolar (n+1) puntos, se necesitan (n+3) puntos de control 0, 1, . . . , +2 para una interpolacin cubica uniforme.

    La B-Spline cubica tendr segmentos 1(), 2(), () y con los criterios de la segunda derivada se llega al siguiente acuerdo:

    ,3 () + +1,3 ()+1 + +2,3 ()+2 =

    = 0,1, ,

    Tambin:

    0 = 0

    1

    41 +

    7

    122 +

    1

    63 = 1

    1

    62 +

    2

    33 +

    1

    64 = 2

    1

    62 +

    2

    31 +

    1

    6 = 2

    1

    61 +

    7

    12 +

    1

    4+1 = 1

    +2 =

    Actualmente 1, . . . , +1 Son valores no conocidos. Al ignorar la primera y la ltima ecuacin (dado que son datos ya conocidos) se genera un sistema de n-1 ecuaciones, con n+1 incgnitas. Se necesitan dos condiciones ms para resolver el

    sistema.

    Una opcin es encontrar las segundas derivadas de la primera y ltima ecuacin e igualarlas a cero.

    (0) = 0,3 (0)0 + 1,3

    (0)1 + 2,3 (0)2 = 0

    () = ,3 () + +1,3

    () + +2,3 ()+2 = 0

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Tambin:

    60 91 + 32 = 0

    3 9+1 + 6+2 = 0

    Sabiendo que 0 y +2 son conocidos (0 = 0 y +2 = ) Por lo tanto, la ecuacin anterior se puede escribir como:

    31 2 = 20 3

    21

    1

    22 = 0

    + 3+1 = 2 1

    2 +

    3

    2+1 =

    Mediante la combinacin de estas dos ecuaciones, se completa el sistema de (n+1) ecuaciones con (n+1) incgnitas, que

    se representa en el siguiente sistema matricial:

    3 / 2 1/ 2

    1/ 4 7 /12 1/ 6

    1/ 6 2 / 3 1/ 6

    .

    .

    1/ 6 2 / 3 1/ 6

    1/ 6 7 /12 1/ 4

    1/ 2 3 / 2

    1

    2

    3

    1

    1

    .

    .

    n

    n

    n

    p

    p

    p

    p

    p

    p

    =

    0

    1

    2

    2

    1

    .

    .

    n

    n

    n

    D

    D

    D

    D

    D

    D

    Implementacin B-Spline en Matlab:

    Dado la estructura de la ecuacin B-Spline:

    () =

    ()

    0() = {

    1 () < (+1)0

    () =

    ()(+) ()

    1() +

    (++1) (++1) (+1)

    +11()

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Analizando el vector de nudos (knot):

    Los nudos uniformes tienen la forma de:

    = [0 1 2 3 4 5 6 . . . ]

    Donde cada elemento () < (+1) , lo que destaca es que la curva generada estar encerrada en el conjunto de la capsula convexa pero la parametrizacin de a har que no toque ni el primero ni el ltimo punto.

    = [(), (+1), ()] () < (+1) = +

    Los Nudos uniforme abiertos tiene la siguiente forma:

    = [0, 0, 0, 1, 2, 3, 3, 3]

    Que generalizando se tiene:

    = [(), . . , (), (), (+1), () , , ()] () < (+1) =

    Tiene la caracterstica de que toca tanto el primero como el ltimo punto gracias a sus nudos auxiliares en los extremos.

    Implementacin:

    Nudos Uniformes implementacin y resultado, sobre una curva B-Spline grado 3 (orden 4):

    tmax = length(x); % x es el vector que contiene los puntos

    k = 4; % k es el orden (grado+1)

    a = [0,1:tmax+k]; % llena el vector

    Resultado:

    FIGURA 2.0- Curva B-Spline grado 3 en cuatro puntos del polgono usando vector de nudos uniformes.

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Nudos uniformes abiertos implementacin y resultado, sobre una curva B-Spline grado 3 (orden 4):

    tmax = length(x) % cantidad de puntos polgono

    k = 4; % orden de la curva

    a = [(0: k-1)*0,1:tmax-k,(0:k-1)*0+tmax-(k-1)] %%%nodo no uniforme

    Resultado:

    FIGURA 2.1- Curva B-Spline grado 3 en cuatro puntos del polgono usando vector de nudos NO uniformes (Abiertos).

    Anlisis a las Funciones Base:

    Las ecuaciones se definen mediante funciones base, tales funciones se calculan recursivamente es decir llamndose a s

    misma con cierta variacin de parmetros, tales como son:

    = = =

    () =

    ()(+) ()

    1() +

    (++1) (++1) (+1)

    +11()

    0() = {

    1 () < (+1)0

    Se evalan las funciones base para los casos en que el nodo sea uniforme y cuando el grado es 0, 1, 2, 3.

    Grado 0:

    Desarrollando:

    00() = { 1 0 < 1

    0

    0

    0() = {1 0 < 1

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Grafica:

    FIGURA 2.2- Funcin base de grado cero (Constante).

    Como resultado se genera una constante de valor 1 esto quiere decir que si cumple la condicin de continuidad en los

    intervalos de nudos. La evaluacin de los intervalos en los nudos se hace siempre que el orden equivale a uno o el grado

    toma valor de cero.

    Grado 1: los tramos entraran en la forma de evaluacin de la funcin base () teniendo as las primeras ecuaciones

    que seran polinomios de grado 1.

    Desarrollando se tiene:

    01() =

    (0)

    (1) (0)0

    0() +(2)

    (2) (1)1

    0()

    00() = {1 0 < 1

    10() = {1 1 < 2

    0

    1() = ()(1) + (2 )(1)

    A modo de visualizar la recursin:

    ()

    1() +1

    1()

    Cada intervalo tiene sus nudos de complemento por lo que se generan diferentes ecuaciones.

    01() = {

    0 < 1(2 ) 1 < 2

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Grafica:

    FIGURA 2.3- Funcin base de grado uno (Lineal).

    Grado 2: las curvas usan polinomios de grado 2 por lo que sus segmentos son cuadrticos. Como nota; al aumentar el

    grado de la curva, esta tiende a alejarse ms de los puntos de control. Por lo que el orden ideal se encuentra entre grado (2-

    3-4) dependiendo del uso y la exactitud que se requiera.

    Las curvas de mayor grado tienen mayor complejidad para calcular sus funciones base por lo que primero se hace un

    anlisis de su recursin:

    ,

    ,1 +1,1

    ,2 +1,2 +1,2 +2,2

    Se observa los segmentos de la curva que se evalan en las diferentes posiciones del vector de nudos.

    = + 1

    ( )

    ( ) ( 1)

    ( 1) ( ) ( 2) ( )

    ( ) ( 1) ( ) ( 1)

    ( 1) ( 2)

    ( 1) ( ) ( 1) ( 1) ( ) ( 1) ( 1) ( 1)

    2

    ( )

    ( )

    ( )( )

    ( )

    (

    i

    i i

    i k i i k i

    i i k i k i

    i i

    i k i i k i i k i i k i

    i k

    u aa u a

    a a a a

    u a a u a u u aa u a

    a a a a a a a a

    a u

    a

    ( 2) ( 3)

    ( ) ( 1) ( ) ( 2))( )i i

    i k i i k i

    a u aa a a

    () < ( + 1) ( + 1) < ( + 2) ( + 2) < ( + 3)

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Sustituyendo valores:

    Simplificando:

    Graficando:

    FIGURA 2.4- Funcin base de grado dos (Parablica).

    Grado 3: se presenta a continuacin la definicin de las ecuaciones que provienen de la recursin del modelo general de

    B-Spline utilizando el grado tres para tener una mayor exactitud en la curva.

    2

    2

    ( 0)0 1

    (2 0)(1 0)

    0 2 3 11 2

    2 0 2 1 3 1 2 1

    (3 )0 1

    (3 1)(3 2)

    uu

    u u u uu

    uu

    2

    2 2

    0

    2

    0 12

    33 1 2

    2

    93 2 3

    2 2

    uu

    N u u u

    uu u

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Analizando la recursin:

    ,i kN

    , 1i kN 1, 1i kN

    , 2i kN 1, 2i kN 1, 2i kN 2, 2i kN

    , 3i kN 1, 3i kN 1, 3i kN 2, 3i kN 1, 3i kN 2, 3i kN 2, 3i kN 3, 3i kN

    Teniendo como base:

    () =

    ()(+) ()

    1() +

    (++1) (++1) (+1)

    +11()

    0() = {

    1 () < (+1)0

    = + 1

    Las ecuaciones quedan como sigue:

    3

    ( )

    ( 1) ( ) ( 2) ( ) ( 3) ( )

    ( )

    ( )( )( )

    i

    i k i i k i i k i

    u aA

    a a a a a a

    ( 2) ( ) ( 1) ( 1) ( )

    ( 2) ( 1) ( 2) ( ) ( 2) ( 1) ( 1) ( 1) ( 1) ( )

    ( ) ( ) ( ) ( ) ( )...

    ( ) ( ) ( ) ( ) ( )

    i k i i i k i

    i k i i k i i k i i k i i k i

    a u u a u a a u u aB

    a a a a a a a a a a

    ( 1) ( 1) ( )

    ( 2) ( 1) ( 1) ( 1) ( ) ( 1)

    ( ) ( ) ( )...

    ( ) ( ) ( )

    i i i k

    i k i i k i i k i

    u a u a a u

    a a a a a a

    ( 1) ( 1) ( )

    ( 1) ( 2) ( 1) ( 1) ( 1) ( )

    ( ) ( ) ( )...

    ( ) ( ) ( )

    i k i k i

    i k i i k i i k i

    a u a u u aC

    a a a a a a

    ( 1) ( 1) ( 2) ( ) ( )

    ( 1) ( 2) ( 1) ( 1) ( 1) ( 2) ( ) ( 2) ( ) ( 1)

    ( ) ( ) ( ) ( ) ( )...

    ( ) ( ) ( ) ( ) ( )

    i k i i i k i k

    i k i i k i i k i i k i i k i

    a u u a u a a u a u

    a a a a a a a a a a

    3

    ( )

    ( ) ( 1) ( ) ( 2) ( ) ( 3)

    ( )

    ( )( )( )

    i k

    i k i i k i i k i

    a uD

    a a a a a a

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Sustituyendo valores y simplificando:

    Graficando:

    FIGURA 2.5- Funcin base de grado tres (Cubica).

    Se concluye el anlisis de las funciones B-Spline bsica mediante recursin para sus posteriores pruebas. Teniendo en

    cuenta que el B-Spline grado 3 es el ms estable y tiene una tendencia uniforme a lo largo de sus intervalos se demostrara

    la diferencia con grado 2.

    3

    32

    3

    0 32

    32

    0 16

    32 2 1 2

    2 2( )

    224 10 2 3

    2 3

    222 8 3 4

    6 3

    uu

    uu u u

    N uu

    u u u

    uu u u

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    Implementacin:

    Implementando grado 2 (orden 3) con nudos no uniformes:

    j=0;

    %% ecuaciones grado 2

    for i=1 : tmax

    e1 = simplify ((a(i)-u)^2/( (a(i)-a(i+k-1))* (a(i)-a(i+k-2)) ) );

    e2 = simplify ( ( ((u-a(i))/(a(i+k-1)-a(i)) )*( (a(i+k-1)-u)/(a(i+k-1)...

    -a(i+1)) ) )+( ( (a(i+k)-u)/(a(i+k)-a(i+1)) )*( (u-a(i+1))/(a(i+k-1)...

    -a(i+1)) ) ));

    e3 = simplify (( (a(i+k)-u)^2/((a(i+k) -a(i+2) )*(a(i+k) -a(i+1) ) )) );

    Ni(1+j,1+j) = e1;

    Ni(2+j,1+j) = e2;

    Ni(3+j,1+j) = e3;

    j=j+1;

    end

    Resultados:

    FIGURA 2.6- Curva cuadrtica con nudos No uniformes (Abiertos).

    Implementando grado 2 (orden 3) con nudos no uniformes:

    j=0;

    %% ecuaciones grado 3

    for i=1 : tmax

    e1 = simplify( ((u-a(i))^3)/( (a(i+k-1)-a(i))*(a(i+k-2)-a(i))*(a(i+k-3)-U(i)) ) );

    e2 = simplify( (((((a(i+k-2)-u)/(a(i+k-2)-a(i+1)))*( (u-a(i))/(a(i+k-2)-a(i)) ) ) + ...

    (((u-a(i+1))/(a(i+k-2)-a(i+1)))*( (a(i+k-1)-u)/(a(i+k-1)-a(i+1)) ) ) )* ...

    ((u-a(i))/(a(i+k-1)-a(i)) ) ) + ( ((u-a(i+1))/(a(i+k-2)-a(i+1)))*...

    ((u-a(i+1))/(a(i+k-1)-a(i+1)))*((a(i+k)-u)/(a(i+k)-a(i+1)))));

    e3 = simplify( (((a(i+k-1)-u)/(a(i+k-1)-a(i+2)))*( (a(i+k-1)-u)/(a(i+k-1)-a(i+1)) )*...

    ( (u-a(i) )/(a(i+k-1)-a(i)) ) )+( (((a(i+k-1)-u)/(a(i+k-1)-a(i+2)) )*...

    ( (u-a(i+1))/(a(i+k-1)-a(i+1))) )+(((u-a(i+2))/(a(i+k-1)-a(i+2)))*...

    ((a(i+k)-u)/(a(i+k)-a(i+2)))))*((a(i+k)-u)/(a(i+k)-a(i+1))));

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    e4 = simplify( ( (a(i+k)-u)^3 )/( (a(i+k)-a(i+1))*(a(i+k)-a(i+2))*(a(i+k)-a(i+3)) ) );

    %%llenando la matriz de ecuacione en forma diagonal principal

    Ni(1+j,1+j) = e1;

    Ni(2+j,1+j) = e2;

    Ni(3+j,1+j) = e3;

    Ni(4+j,1+j) = e4;

    j=j+1;

    end

    Resultados:

    FIGURA 2.7- Curva B-Spline grado tres (Cubica).

    Concluyendo de manera significativa que las curvas B-Spline no uniformes de grado 3 (orden 4) poseen un control local

    de sus puntos. Y que debido a las ecuaciones obtenidas de las funciones se han tratadas de forma general para este caso.

    Tanto en nudos uniformes como en nudos no uniformes. Las curvas de grado 3 obtienen un mejor resultado que las de

    grado 2, si de caso contrario optamos por grado 4 las curvas se alejan cada vez ms de los puntos del polgono de control

    por lo que usualmente se usan grado 3 para la mayora de aplicaciones.

    Implementando interpolacin (grado 3):

    Anterior mente se dedujo las ecuaciones necesarias que se aplican en la matriz tridiagonal para generar las nuevas

    ecuaciones que cumpliran el criterio de pasar por los puntos (x) que se interpolan. A continuacin dicho cdigo:

    %% creando matriz de solucion

    len = length(x);

    A=zeros(len,len);

    Derive=[3/2,-1/2,1/4,7/12,1/6,2/3];

    %solo cuatro puntos

    A(1,1) = Derive(1);A(1,2) = Derive(2);

    A(2,1) = Derive(3);A(2,2) = Derive(4);

    A(2,3) = Derive(5);

    A(len-1,len-2) = Derive(5);

    A(len-1,len-1) = Derive(4);

    A(len-1,len) = Derive(3);

    A(len,len-1) = Derive(2);

    A(len,len) = Derive(1);

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    %para los puntos intermedios

    if len > 4

    %%llenando la diagonal principal si tiene mas de 4 puntos

    for i=0 : len-5

    A(3+i,2+i) = Derive(5);

    A(3+i,3+i) = Derive(6);

    A(3+i,4+i) = Derive(5);

    end

    end

    Aux_x=A\x;%inversa

    Aux_y=A\y;%inversa

    Ax(1,1)=x(1);

    Ay(1,1)=y(1);

    for i=1 : len

    Ax(1,i+1) = Aux_x(i,1);

    Ay(1,i+1) = Aux_y(i,1);

    end

    Ax(1,len+2) = x(len);

    Ay(1,len+2) = y(len);

    %ploteando el poligono de control generado

    plot(Ax,Ay,'-ro','LineWidth',2)

    Resultados:

    FIGURA 2.8- Curva Cubica interpolante de 6 puntos, con el polgono de control generado.

    Interpolacin Cubica a pieza: dado que las curvas B-Spline cubicas tiene una aproximacin ms estable sobre lo que se

    desea interpolar, se plantea como una solucin al problema de aproximar modelos naturales a modelos matemticos para

    su posterior anlisis.

    En el rea de ingeniera el anlisis estructural de las piezas producidas es de suma importancia, dado que los errores en la

    lnea de produccin pueden ocasionar piezas defectuosas, por lo tanto se hace el anlisis de la siguiente pieza:

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    FIGURA 2.9- Pieza mecnica producida en masa.

    Para el anlisis a esta pieza se obtiene la imagen usando la funcin imread(imagen. Extensin) con lo cual se vaca en

    una matriz de 3 capas debido al tipo de imagen RGB (color).

    FIGURA 2.9- Imagen RGB visualizada como matriz multidimensional, con cada color como una dimensin.

    La obtencin de los puntos a interpolar sigue el contorno de la imagen, dando as un conglomerado en las reas donde ms

    cambios de trayectoria se generen en el contorno exterior de la imagen, para obtener una forma cerrada tanto el primer

    como el ltimo punto son estn en las mismas coordenadas dando una ecuacin que recorre todo el contorno.

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    FIGURA 2.9- Seleccionando un total de 47 puntos a interpolar sobre el contorno de imagen.

    La generacin de las ecuaciones un total de 46 ecuaciones paramtricas, que graficadas bajo los intervalos generan el

    conjunto de ecuaciones que envuelven la figura:

    FIGURA 3.0- Modelo matemtico de pieza, usando algoritmo de interpolacin en Curvas B Splines.

    Dando como resultado una aproximacin al modelo matemtico de la pieza con el mnimo de errores posibles, usando las

    curvas B Splines.

  • Diseo e implementacin de algoritmos de control cinemtico mediante interpoladores polinomiales y

    visin artificial

    REFERENCIAS:

    [1] SCHABAK (1993), Error stimates for approximation from controls nets

    Computer aided geometric desing 10:57-66

    [2] SCHOENBERG And A. WHITNEY (1953). On spline function

    Iniequlities, pages 255-291. Academic press

    [3] LEONARDO FERNNDEZ JAMBRIMA (2012).Curvas polinmicas a trozo

    http://dcain.etsin.upm.es/~leonardo/tema4.pdf