Advertisement
Guest User

Chuyên đề 1

a guest
Sep 19th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.16 KB | None | 0 0
  1.  public static PHANTU TinhKe(PHANTU P1) {
  2.             P1.Ke1 = new Matrix(4,4);
  3.             for (int i = 0; i < 4; i++)
  4.             {
  5.                 for (int j = 0; j < 4; j++)
  6.                 {
  7.                     P1.Ke1.Matran1[i, j] = 0;
  8.                 }
  9.             }
  10.             P1.Ke1.Matran1[0, 0] = P1.MC.VL1.E1 * P1.MC.F1 / P1.L;
  11.             P1.Ke1.Matran1[0, 2] = -P1.Ke1.Matran1[0, 0];
  12.             P1.Ke1.Matran1[2, 0] = -P1.Ke1.Matran1[0, 0];
  13.             P1.Ke1.Matran1[2, 2] = P1.Ke1.Matran1[0, 0];
  14.  
  15.             P1.T1 = new Matrix(4, 4);
  16.             Matrix Te = new Matrix(2, 2);
  17.             Te.Matran1[0, 0] = P1.cosalpha;
  18.             Te.Matran1[0, 1] = P1.sinalpha;
  19.             Te.Matran1[1, 0] = -P1.sinalpha;
  20.             Te.Matran1[1, 1] = P1.cosalpha;
  21.             for (int i = 0; i < 4; i++)
  22.             {
  23.                 for (int j  = 0; j  < 4; j ++)
  24.                 {
  25.                     P1.T1.Matran1[i, j] = 0;
  26.                 }
  27.             }
  28.             for (int i = 0; i < 2; i++)
  29.             {
  30.                 for (int j = 0; j < 2; j++)
  31.                 {
  32.                     P1.T1.Matran1[i, j] = Te.Matran1[i, j];
  33.                     P1.T1.Matran1[2 + i, 2 + j] = Te.Matran1[i, j];
  34.                 }
  35.             }
  36.  
  37.             return P1;
  38.         }
  39.  
  40.  public static PHANTU TinhFe(PHANTU P1) {//Tính Fe
  41.             double P = P1.MC1.VL1.Gama * P1.MC1.B * P1.MC1.H * P1.L1;//P - trong luong ban than
  42.             P1.Ue = new Matrix(4, 1);
  43.             P1.Fe = new Matrix(4, 1);
  44.             P1.Fe.Matran1[0, 0] = 0;
  45.             P1.Fe.Matran1[1, 0] = P / 2;
  46.             P1.Fe.Matran1[2, 0] = 0;
  47.             P1.Fe.Matran1[3, 0] = - P / 2;
  48.  
  49.             for (int i = 0; i < P1.PT1.Px.Length; i++)
  50.             {
  51.                 P1.Fe.Matran1[0, 0] += (P1.L - P1.PT1.Px[i].XI1) * P1.PT1.Px[i].PI1 / P1.L;
  52.                 P1.Fe.Matran1[2,0] += P1.PT1.Px[i].XI1 *P1.PT1.Px[i].PI1 / P1.L;
  53.             }
  54.             for (int i = 0; i < P1.PT1.Py.Length; i++)
  55.             {
  56.                 P1.Fe.Matran1[1, 0] += (P1.L - P1.PT1.Py[i].XI1) * P1.PT1.Py[i].PI1 / P1.L;
  57.                 P1.Fe.Matran1[3, 0] += P1.PT1.Py[i].XI1 * P1.PT1.Py[i].PI1 / P1.L;
  58.             }
  59.             for (int i = 0; i < P1.PT1.Qx.Length; i++)
  60.             {
  61.                 double VA = P1.PT1.Qx[i].Q1 * P1.PT1.Qx[i].B * (P1.L - P1.PT1.Qx[i].A - P1.PT1.Qx[i].B / 2) + (P1.PT1.Qx[i].Q2 - P1.PT1.Qx[i].Q1) * (P1.L - P1.PT1.Qx[i].A - 2 * P1.PT1.Qx[i].B / 3) * P1.PT1.Qx[i].B / (2 * P1.L);
  62.                 double VB = (P1.PT1.Qx[i].Q1 + P1.PT1.Qx[i].Q2) * P1.PT1.Qx[i].B / 2 - VA;
  63.                 P1.Fe.Matran1[0, 0] += VA;
  64.                 P1.Fe.Matran1[2, 0] += VB;
  65.             }
  66.             for (int i = 0; i < P1.PT1.Qy.Length; i++)
  67.             {
  68.                 double VA = P1.PT1.Qy[i].Q1 * P1.PT1.Qy[i].B * (P1.L - P1.PT1.Qy[i].A - P1.PT1.Qy[i].B / 2) + (P1.PT1.Qy[i].Q2 - P1.PT1.Qy[i].Q1) * (P1.L - P1.PT1.Qy[i].A - 2 * P1.PT1.Qy[i].B / 3) * P1.PT1.Qy[i].B / (2 * P1.L);
  69.                 double VB = (P1.PT1.Qy[i].Q1 + P1.PT1.Qy[i].Q2) * P1.PT1.Qy[i].B / 2 - VA;
  70.                 P1.Fe.Matran1[1, 0] += VA;
  71.                 P1.Fe.Matran1[3, 0] += VB;
  72.             }
  73.             return P1;
  74.         }
  75.  
  76. public static Matrix AddKe2K(PHANTU P1, Matrix K)
  77.         {//Đưa Ke vào K
  78.             int n = K.Row;
  79.             Matrix Ke = Matrix.Copy(P1.Ke1);
  80.             Ke = Matrix.M_Mul(P1.T1, P1.Ke1);
  81.             Matrix TT = Matrix.Trans(P1.T1);
  82.             Ke = Matrix.M_Mul(Ke, TT);
  83.             int a = 0;
  84.             for (int i = 0; i < n; i++)
  85.  
  86.                 if (i == 2 * P1.I.Ten1 || i == 2 * P1.I.Ten1 + 1 || i == P1.K.Ten1 * 2 || i == P1.k.Ten1 * 2 + 1)
  87.                 {
  88.                     int b = 0;
  89.                     for (int j = 0; j < n; j++)
  90.                     {
  91.                         if (j == 2 * P1.I.Ten1 || j == 2 * P1.I.Ten1 + 1 || j == P1.K.Ten1 * 2 || j == P1.k.Ten1 * 2 + 1)
  92.                         {
  93.                             K.Matran1[i, j] += Ke.Matran1[a, b];
  94.                             b++;
  95.                         }
  96.                     }
  97.                     a++;
  98.                 }
  99.             return K;
  100.         }
  101.  
  102. public static Matrix AddFe2F(PHANTU P1, Matrix F) {//Đưa Fe vào F
  103.             int i = P1.i.Ten1;
  104.             int k = P1.k.Ten1;
  105.             Matrix Fe = Matrix.Copy(P1.Fe);
  106.             Fe = Matrix.M_Mul( P1.T1,Fe);
  107.             F.Matran1[2 * i , 0] += Fe.Matran1[0, 0];
  108.             F.Matran1[2 * i +1, 0] += Fe.Matran1[1, 0];
  109.             F.Matran1[2 * k  , 0] += Fe.Matran1[2, 0];
  110.             F.Matran1[2 * k +1, 0] += Fe.Matran1[3, 0];
  111.             return F;
  112.         }
  113.  
  114. public static PHANTU TakeUeFromU(PHANTU P1, Matrix U) {
  115.             //Lay Ue ra tu U
  116.             int i = P1.i.Ten1;
  117.             int k = P1.k.Ten1;
  118.             Matrix Ue = Matrix.Copy(P1.Ue);
  119.             Ue.Matran1[0, 0] = U.Matran1[2 * i , 0];
  120.             Ue.Matran1[1, 0] = U.Matran1[2 * i + 1 , 0];
  121.             Ue.Matran1[2, 0] = U.Matran1[2 * k , 0];
  122.             Ue.Matran1[3, 0] = U.Matran1[2 * k + 1 , 0];
  123.  
  124.             Matrix TT = Matrix.Trans(P1.T1);
  125.             Ue = Matrix.M_Mul(TT, Ue);
  126.  
  127.             P1.Ue = Ue;
  128.             return P1;
  129.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement