Problemas prácticos encontrados en la resolución de ecuaciones diferenciales con ode45

        Recientemente, estoy usando ode45 para resolver la solución numérica de ecuaciones diferenciales, tratando de reproducir el gráfico en el papel. En términos generales, siempre que la ecuación diferencial (grupo) escriba la función de devolución de llamada correspondiente de acuerdo con las condiciones de respuesta, básicamente no es difícil, pero para el problema encontrado en este artículo, es posible que se necesiten algunas habilidades para realizar la solución. Hablemos de algunos de los problemas que encontramos.

       1. Planteamiento de problemas y análisis simple:

       Las condiciones y valores iniciales de la ecuación son las siguientes:

        Coeficientes constantes y variables iniciales:        

  Parámetros del modelo: Ms=1.6x10^6; a=1000; alpha=0.001; mu0=4πx10^7; c=0.1; gamma1=7x10^-18; gamma1_p=-1x10^-25; -30; gamma2_p=2.1 x10^-38;E=2.02x10^11;ksi=2000;H=40;

        El intervalo de la variable independiente σ es [0,300]MPa  Nota: 1 MP a= 1 ×1 0 6  P a , preste atención a esto cuando sustituya en la fórmula para el cálculo, todos los parámetros del modelo anterior se asignan sobre la base de Pa . 

       Los valores iniciales de M son: M(0)=0 ;M(0)=10000 ;M(0)=20000;M(0)=30000;M(0)=40000;

        Análisis simple, este debería ser un sistema binario de ecuaciones diferenciales de coeficiente constante de primer orden , solo se debe prestar atención a dM y dMan, otras variables, Heff, Hsigma están relacionadas con Man, Man es una variable relativamente clave, pero la expresión de Man y dMan No hay forma directa, esto necesita atención. Hsigma es un puente, que básicamente conecta a Heff y Hman, y Heff y Man están enredados entre sí.

        2. Resuelve el problema del valor inicial

         En la expresión que introducimos en ode45, el valor inicial es un parámetro necesario.

        El valor inicial de M se da en el título, pero Man no se da, así que tenemos que encontrar una manera de encontrarlo. Resuelve observando que la ecuación debe estar compuesta por las tres primeras expresiones del sistema de ecuaciones original.

        Eso es resolver el valor de Man bajo la condición de sigma=0 por estas tres fórmulas

        Como sigma de la tercera fórmula es cero, Hsigma = 0. Además, Man y Heff son obviamente ecuaciones trascendentales, se estima que no hay solución analítica, por lo que buscamos una solución numérica.

         Usamos fsolve para resolver la solución numérica, porque no conocemos el valor inicial, asignamos aleatoriamente Man y Heff a 1, y Hsigma a 0

% Man ,Heff,Hsigma 初值,sigma=0 下
[x,fval,exitflag]=fsolve(@myfun,[1 1 0]);

Los códigos clave en myfun son los siguientes:

eq1 = Man -( Ms*(coth(Heff/a)-a/Heff));
eq2 = Heff- (H+Hsigma+alpha*Man);
eq3 = Hsigma - (3*sigma/mu0*((gamma1 + gamma1_p*sigma)*Man + 2*(gamma2 + gamma2_p*sigma)*Man*Man*Man));

F = [eq1;eq2;eq3];

 

El resultado no se encuentra, lo que significa que el valor inicial no ha sido seleccionado, y no funcionará después de encontrar varios valores iniciales. Parece que necesitamos analizar la relación entre Man y Heff en detalle. Aquí usamos el método de dibujo. y la curva real para ver los dos al final.En qué punto se superpone, de acuerdo con eq1 y eq2, hacemos un ligero cambio y dibujamos la curva de tendencia de Man y Heff

Ms = 1.6e6;
a = 1000;
H = 40;
alpha = 0.001;
Heff = [1:500];

for i = 1:length(Heff)
    
    Man1(i) =( Ms*(coth(Heff(i)/a)-a/Heff(i)));
    Man2(i) = (Heff(i)- H)/alpha;

end

plot(Heff,Man1,'r');
hold on
plot(Heff,Man2,'b');

 

Probablemente la intersección esté alrededor de Heff = 86, Man=46000, [ este tipo de valor inicial depende de que usted especifique la escritura a mano al azar, se estima que es imposible ], se selecciona el problema del valor inicial y ahora podemos finalmente ingresar al primer paso ! , el valor inicial de Man calculado en este paso es 45666.419496657

2. Determinación de dMan

[x,y] = ode45(@(x,y)f(x,y,st),[t(1),t(end)],y0,nstep); 

   Donde y es [M0, Man0], dentro de la función de devolución de llamada, la estructura general es la siguiente

 function dydt = f(x,y,st)  
    sigma = x;
    dydt = zeros(size(y));
   
    %y(1), y(2)
    %M, Man

    Man = y(2);
    
    %想办法求出来 dMan_dt

    dydt(2)= dMan_dt;       
    dydt(1) = sigma /(E*ksi) * (y(2) - y(1)) + c* dydt(2);

end

        Los pasos aquí son muy particulares. Tienes que sacar la variable independiente integral x, que es t, que también es sigma. Además, el valor de y es y(1) = M, y(2)=Man, pero el valor de M es básicamente inútil Los valores de sigma y Man deben usarse para encontrar dMan_dt, y el dydt(2) calculado debe ser usado por dydt(1), así que escríbalo al final.       

        dMan no sabe, ¿es posible derivar sigma para las tres primeras fórmulas y resolver un sistema de ecuaciones de cinco elementos [ sigma, Heff, dHsigma, dMan, dHeff, dHsigma,Man Lo más problemático es el valor inicial, el valor inicial de Heff es fácil de manejar, pero el valor inicial de esas expresiones diferenciales es difícil de estimar.

       Encontrar dMan_dsigma es muy importante. Se estima que el método anterior no funcionará, y necesitamos cambiar nuestra forma de pensar. Después del análisis anterior, Heff y Man están anidados entre sí, puedes aprovechar esto,

,

     dMan_dHeff, el resultado es básicamente una función de Man, y el diferencial de Heff también es sigma y Man, lo cual es fácil de manejar, es decir, se encuentra la siguiente relación funcional, lo más importante es que Man y sigma ya son Know !

   

 Es que la formula diferencial encadenada da mas miedo

No importa, dejémoslo en Matlab

    Hsigma = (3*sigma/mu0*((gamma1 + gamma1_p*sigma)*Man + 2*(gamma2 + gamma2_p*sigma)*Man*Man*Man));
    Heff = H + Hsigma + alpha *Man;
    pp = (gamma1 + 2*gamma1_p*sigma)*Man + 2*(gamma2 + 2*gamma2_p*sigma)*Man*Man*Man;
    dMan_dt = 3*Ms/(mu0*a)*( -(csch(Heff/a))^2 + (a/Heff)^2) *pp;

 Hasta ahora estos problemas han sido resueltos, finalmente veamos cómo se ve la imagen;

Tres, la imagen del corazón.

 Se puede alinear con los dibujos adjuntos de la tesis

 Además, el valor observado de la gráfica de Man no cambia con el valor inicial de M. Obviamente, en primer lugar, el valor inicial de Man es fijo (cuando la integral parte de 0), y el proceso de dMan y el valor inicial de M0 no se cambian En la relación del hilo, una variable está determinada por estos dos factores, el valor inicial de la integral y el tamaño del paso integral. M versus Man es equivalente a la variable dependiente de la deformación.

Supongo que te gusta

Origin blog.csdn.net/book_bbyuan/article/details/128608257
Recomendado
Clasificación