اطلاعیه

Collapse
No announcement yet.

انتگرال گیری اویلر

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    انتگرال گیری اویلر

    سلام به همگی.سال نو مبارک
    من یه سوال داشتم .میخوام با انتگرال گیری اویلر در رابطه زیر دوبار از tetaddotانتگرال بگیرم و به teta برسم؟میشه یه راهنماییم کنید این چیزی که نوشتم جواب نمیده. درضمن تو m-file میخوام حلقه انتگرال گیرم با حلقه فایل سیمولینکم یکی باشه.ممنون

    syms Teta1 Teta2 dTeta1 dTeta2 k s Ta Tetad1 Tetad2
    m1=160;
    m2=150;
    Ixx=1;
    Iyy=1;
    Izz=1;
    g=9.81;
    h1=0.5;
    h2=1.5;
    X_c1=h1;
    X_c2=h2;
    Ta=k
    dTeta=[dTeta1;dTeta2]
    Teta=[Teta1;Teta2]

    u1 = (m2*(X_c2*cos(Teta2))^2 + m2*h1^2+Ixx*sin(Teta2)^2 + Iyy*cos(Teta2)^2 ...
    +2*m2*h1*X_c2*cos(Teta2) + m1*X_c1^2 + Izz);
    u2 = m2*X_c2^2 + Izz;
    M0=[u1 0; 0 u2]
    T_c1 = (-2*m2*X_c2^2*sin(Teta2)*cos(Teta2)+2*Ixx*sin(Teta2) *cos(Teta2)...
    -2*Iyy*sin(Teta2)*cos(Teta2)-m2*h1*X_c2*sin(Teta2))*dTeta1*dTeta2;

    T_c2 = (-m2*X_c2^2*sin(Teta2)*cos(Teta2)+Ixx*sin(Teta2)*cos (Teta2)...
    -Iyy*sin(Teta2)*cos(Teta2)-m2*h1*X_c2*sin(Teta2))*dTeta1^2;

    T_g1 = -m2*g*(h1*sin(Teta1)+X_c2*sin(Teta1)*cos(Teta2))-m1*g*X_c1*sin(Teta1);

    T_g2 = -m2*g*X_c2*sin(Teta2)*cos(Teta1);
    C=[T_c1 ;T_c2]
    G=[T_g1 ;T_g2]
    y=C+G
    tetaddot=M0\(Ta-y)
    deltaT=0.01
    t=1:deltaT:4
    for i=1:length(t)-1
    dTeta(i+deltaT)=dTeta(i)+tetaddot*deltaT
    end
    deltat=0.001
    t=1:deltat:3
    for j=1:length(t)
    Teta(j+deltat)=Teta(j)+dTeta*deltat
    end

    #2
    پاسخ : انتگرال گیری اویلر

    کسی واقعن نمی دونه از یه معادله مثل بالا تو مطلب چطوری انتگرال می گیریم ؟؟؟؟؟؟؟؟؟؟؟؟؟

    دیدگاه


      #3
      پاسخ : انتگرال گیری اویلر

      سلام
      سال نو مبارک

      تو حلقه for اول یک مشکل دارین اونم اینه که نوشتین i+deltaT در حالیکه deltaT برابر 0.01 است و نمیتونین عدد اعشاری رو به عنوان اندیس استفاده کنین.
      دوم اینکه dTeta یک ماتریس هست. درستش اینه که بنویسین dTeta(:,i+deltaT)=dTeta(:,i)+tetaddot*deltaT
      کد:
      for i=1:length(t)-1
       dTeta(i+deltaT)=dTeta(i)+tetaddot*deltaT
      end
      اصلا چرا از دستور int استفاده نمیکنین؟

      دیدگاه

      لطفا صبر کنید...
      X