<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Haikal Fouzi</title>
 <link href="http://haikalfouzi.com/atom.xml" rel="self"/>
 <link href="http://haikalfouzi.com/"/>
 <updated>2026-05-23T13:31:19+00:00</updated>
 <id>http://haikalfouzi.com</id>
 <author>
   <name>Haikal Fouzi</name>
   <email></email>
 </author>

 
 <entry>
   <title>Automation with Home Assistant</title>
   <link href="http://haikalfouzi.com/2024/01/14/Automation-with-Home-Assistant.html"/>
   <updated>2024-01-14T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2024/01/14/Automation with Home Assistant</id>
   <content type="html">
&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/home-assistant/Home_Assistant_logo_(2023).png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/home-assistant/Home_Assistant_logo_(2023).png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;TBD&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Cubesat Momentum Exchange using Reaction Wheels</title>
   <link href="http://haikalfouzi.com/2021/03/12/Cubesat-gyroscope.html"/>
   <updated>2021-03-12T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2021/03/12/Cubesat gyroscope</id>
   <content type="html">
&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/cube/cubli_v1.jpeg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/cube/cubli_v1.jpeg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;TBD.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>CFD & FEA Analysis of Falcon 9 Grid Fin During Reentry Stage</title>
   <link href="http://haikalfouzi.com/2021/01/21/CFD-&-FEA-Analysis-of-Falcon-9-Grid-Fin-During-Reentry-Stage.html"/>
   <updated>2021-01-21T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2021/01/21/CFD & FEA Analysis of Falcon 9 Grid Fin During Reentry Stage</id>
   <content type="html">
&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/gridfin/gridfin_animation.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/gridfin/gridfin_animation.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Grid Fin Animation&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/gridfin/gridfin_animation2.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/gridfin/gridfin_animation2.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Grid Fin Movement During Reentry Stage&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/gridfin/top.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/gridfin/top.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/gridfin/SpaceX_Falcon_9_Grid_Fin_v1.stl&quot; type=&quot;model/stl&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (model/stl). &lt;a href=&quot;/media/gridfin/SpaceX_Falcon_9_Grid_Fin_v1.stl&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;CAD model&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;TBD.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Convex & Optimal Rocket Landing Guidance Control</title>
   <link href="http://haikalfouzi.com/2021/01/03/Convex-&-Optimal-Rocket-Landing-Guidance-Control.html"/>
   <updated>2021-01-03T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2021/01/03/Convex & Optimal Rocket Landing Guidance Control</id>
   <content type="html">
&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/failed%20landing.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/landing/failed%20landing.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;From this&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/falcon%20b1052%20&amp;amp;%20b1053%20landing.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/landing/falcon%20b1052%20&amp;amp;%20b1053%20landing.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;To this&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h1 id=&quot;overview&quot;&gt;Overview&lt;/h1&gt;

&lt;p&gt;The goal of this study is to solve complex planetary soft landing problem with a defined set of states and control constraint. The real-time generation of fuel-optimal paths to a prescribed location on a planet’s surface is a challenging problem due to constraints on the fuel, control inputs and the states. This study also introduce a convexification of the control constraints that is proven to be lossless; this is required due to existence of nonconvex constraints on the control input magnitude at nonzero lower bound and a nonconvex constraint on its direction. Lossless convexification allows us to implement the algorithm on an autonomous real-time systems with powerful modern interior point method (IPM) solvers.&lt;/p&gt;

&lt;p&gt;The trajectory optimization problems are nontrivial due to nonconvex control constraints and will be formulated as a finite-dimensional second-order cone program (SOCP) where it could be solve iteratively.&lt;/p&gt;

&lt;h3 id=&quot;partial-list-of-notations&quot;&gt;Partial List of Notations&lt;/h3&gt;

&lt;p&gt;$r$ = position&lt;/p&gt;

&lt;p&gt;$T$ = Thrust vector (N)&lt;/p&gt;

&lt;p&gt;$g$ = Gravity vector of planet (\(m/s^{2}\))&lt;/p&gt;

&lt;p&gt;$m(t)$ = Mass of vehicle&lt;/p&gt;

&lt;p&gt;$\alpha$ = Constant describing mass consumption rate&lt;/p&gt;

&lt;p&gt;$T_1$ = Lower Thrust Bound&lt;/p&gt;

&lt;p&gt;$T_2$ = Upper Thrust Bound&lt;/p&gt;

&lt;p&gt;$\rho_1$ = Lower Thrust Bound&lt;/p&gt;

&lt;p&gt;$\rho_2$ = Upper Thrust Bound&lt;/p&gt;

&lt;p&gt;$m_{wet}$ = Total mass of vehicle including propellant&lt;/p&gt;

&lt;p&gt;$t_f$ = Length of finite time&lt;/p&gt;

&lt;p&gt;$x$ = Augmented state vector defined as $[r, \dot r]^T$&lt;/p&gt;

&lt;p&gt;$r_z(t)$ = Vertical position&lt;/p&gt;

&lt;p&gt;$r_x(t)$ = Downrange position&lt;/p&gt;

&lt;p&gt;$\Theta_{alt}$ = Glideslope constraint&lt;/p&gt;

&lt;p&gt;$S_j, v_j, a_j$ = Matrices, vectors, and scalars defining convex state constraints&lt;/p&gt;

&lt;p&gt;$I_{sp}$ = Specific impulse of the rocket engine&lt;/p&gt;

&lt;p&gt;$u$ = Control acceleration put on by the thrusters&lt;/p&gt;

&lt;p&gt;$\Gamma$ = Slack variable required for convexification&lt;/p&gt;

&lt;p&gt;$log$ = Natural logarithm&lt;/p&gt;

&lt;p&gt;$\vert \vert x \vert \vert$ = Euclidian 2-norm of vector x&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Soft landing is the final phase of a planetary EDL (entry, descent, and landing) and it’s also referred to as the powered descent landing stage. In the powered descent stage, the vehicle is guided as close as possible to a prescribed location on the planet’s surface by using thrusters that provide the control authority. This phase concludes when the vehicle lands with zero velocity relative to the surface.&lt;/p&gt;

&lt;p&gt;With the atmospheric qualities of the planet being stochastic, the position in which the descent phase must begin is uncertain. Thus, we would focus on the algorithm which maximize the divert capability of the craft by minimizing fuel consumption from initial condition to the terminal state.&lt;/p&gt;

&lt;p&gt;The convex optimization is required because it allows real-time onboard implementation and has guaranteed convergence properties with deterministic criteria. The convex optimization framework will be posed as a finite-dimensional second-order cone program (SOCP) problem, as SOCP have low complexity and can be solved in polynomial time.&lt;/p&gt;

&lt;h2 id=&quot;planetary-landing-with-thrust-pointing-constraints&quot;&gt;Planetary Landing with Thrust Pointing Constraints&lt;/h2&gt;

&lt;p&gt;The planetary soft landing problem searches for the thrust (control) profile $T_c$  and an accompanying translational state trajectory $x$ which guide a lander from an initial position $r_0$ and velocity $\dot r_0$ to a state of rest at prescribed target location on the planet while minimizing the fuel consumption.&lt;/p&gt;

&lt;p&gt;When the target point is unreachable from a given initial state, a precision landing problem (or minimum landing error problem) is considered instead, with the objective to first find the closest reachable surface location to the target and second to obtain the minimum fuel state trajectory to that closest point.&lt;/p&gt;

&lt;p&gt;We will solve our system in two dimensions (x,z), and the position and velocity vectors will be the size of $\Bbb R^2$. We assumed everything is in the surface fixed frame, thus the translational dynamics of the system are given as:&lt;/p&gt;

\[\begin{eqnarray}\ddot r(t) = g + \frac{T_c(t)}{m(t)}\\\dot m(t) = -\alpha \vert \vert T_c(t) \vert \vert \end{eqnarray}\]

&lt;p&gt;where $\ddot r(t) \in \Bbb R^2$ is acceleration of the vehicle, $g$ is the gravitional acceleration vector of the planet, $T_c(t)$ is the thrust vector, $m(t)$ is the mass of the vehicle, and $\alpha$ is a positive constant describing the fuel consumption rate.&lt;/p&gt;

&lt;p&gt;For $nth$ identical thrusters with nominal thrust level $T$ and specific impulse $I_{sp}$, we can denote the thrust vector and fuel consumption rate as follow:&lt;/p&gt;

\[\begin{eqnarray}T_c = (nT\cos \phi)e\\\alpha = (I_{sp}g\cos \phi)^{-1}\end{eqnarray}\]

&lt;p&gt;But for simplicity, we’ll assume vehicle with one engine and cantilever angle $\phi$ of 0 degrees.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/glideslope%20constraint.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/glideslope%20constraint.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Glide Slope Constraint&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The main state constraints are the glide slope constraint on the position vector and an upper bound constraint on the velocity vector magnitude.&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;The glide slope constraint is described in figure above and is imposed to ensure that the lander stays at a safe distance from the ground until it reaches its target.&lt;/li&gt;
  &lt;li&gt;Three control constraint of the thrust vector $T$
    &lt;ul&gt;
      &lt;li&gt;The convex upper bound on thrust; upper bound on velocity is needed to avoid supersonic velocities for planets with atmosphere, where the control thrusters can become unreliable.&lt;/li&gt;
      &lt;li&gt;The nonconvex lower bound on thrust; lower bound on velocity is due to the engine thrust cannot be continuously throttled down to 0&lt;/li&gt;
      &lt;li&gt;Thrust pointing constraint; this constraint is ignored as per our simplification where only one engine is used in the vehicle.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;glide-slope-constraint&quot;&gt;Glide Slope Constraint&lt;/h3&gt;
&lt;p&gt;When landing on a planetary body without global positioning, terrain relative navigation is used to restrict the altitude of the vehicle to avoid vehicle crashing to the unknown terrain.&lt;/p&gt;

\[\begin{equation}\Theta_{alt} = \arctan \frac{r_z(t)}{r_x(t)}\end{equation}\]

&lt;p&gt;Additionally, it is assumed that constraints take the following &lt;a href=&quot;https://mathworld.wolfram.com/AffineFunction.html&quot;&gt;affine form&lt;/a&gt;:&lt;/p&gt;

\[\begin{equation}\vert \vert S_j x(t) - v_j \vert \vert + c^T_j x(t) + a_j \leq 0\end{equation}\]

&lt;p&gt;where $S_j \in \Bbb R^4$, $n_j \leq 4$, $v_j \in \Bbb R^n_j$, $a_j \in \Bbb R$. Similarly, we can express the glide slope constraint like&lt;/p&gt;

\[\begin{equation}\vert \vert Sx \vert \vert + c^T_j x \leq 0\end{equation}\]

&lt;p&gt;where&lt;/p&gt;

\[\begin{eqnarray}S=\begin{bmatrix}1 &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\\0 &amp;amp; 1 &amp;amp; 0 &amp;amp; 0\end{bmatrix}\\ c =\begin{bmatrix}-\tan\Theta_{alt} &amp;amp; 0 &amp;amp; 0 &amp;amp; 0\end{bmatrix}^T\end{eqnarray}\]

&lt;h3 id=&quot;thrust-control-constraints&quot;&gt;Thrust Control Constraints&lt;/h3&gt;
&lt;p&gt;Control constraints (upper bound and lower bound) on thrust can be expressed as below:&lt;/p&gt;

\[\begin{equation}0 \lt T_1 \lt T(t) \lt T_2, \forall t \in [0,t_f]\end{equation}\]

\[\begin{equation}\rho_1 \leq \vert \vert T(t) \vert \vert \leq \rho_2\end{equation}\]

\[\begin{equation}\rho_2 \gt \rho_1 \gt 0\end{equation}\]

&lt;p&gt;The final time is denote as $t_f$.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/control%20constraints.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/control%20constraints.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Three Control Constraints - (b) &amp;amp; (c) constraints are ignored since we only utilized one engine per vehicle&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Initial conditions are provided as below:&lt;/p&gt;

&lt;p&gt;$m(0)=m_{wet}$ - Total mass of the vehicle including structure, avionics, non-consummables, and fuel.&lt;/p&gt;

&lt;p&gt;$x(0)=x_0$&lt;/p&gt;

&lt;p&gt;$x(t_f)=0$&lt;/p&gt;

&lt;p&gt;$x=[r, \dot r]^T$ - Constructed state of the vehicle&lt;/p&gt;

&lt;p&gt;$r_z(t) &amp;gt; 0$ - Vehicle cannot travel through the ground&lt;/p&gt;

&lt;h4 id=&quot;problem-1---nonconvex-minimum-fuel-problem-thrust-constraint&quot;&gt;Problem 1 - Nonconvex Minimum Fuel Problem (thrust constraint)&lt;/h4&gt;
&lt;p&gt;Nonconvex minimum fuel problem can be summarized with the following set of equations:&lt;/p&gt;

\[\begin{equation}\max_{t_f,T}m(t_f) = \min_{t_f,T}\int_0^{t_f} \vert \vert T(t) \vert \vert dt \end{equation}\]

&lt;p&gt;Subject to:
\(\begin{eqnarray}\ddot r(t) = g + \frac{T_c(t)}{m(t)}\\\dot m(t) = -\alpha \vert \vert T_c(t) \vert \vert \end{eqnarray}\)&lt;/p&gt;

\[\begin{eqnarray}\rho_1 \leq \vert \vert T(t) \vert \vert \leq \rho_2\\r_z(t) \leq 0\end{eqnarray}\]

\[\begin{equation}\vert \vert S_j x(t) - v_j \vert \vert + c^T_j x(t) + a_j \leq 0, j=1,...,n_s\end{equation}\]

\[\begin{equation}m(0)=m_{wet},r(0)=r_0,\dot r(0)=\dot {r_0},r(t_f)=\dot r(t_f)=0\end{equation}\]

&lt;h4 id=&quot;problem-2---convexification-of-problem-1&quot;&gt;Problem 2 - Convexification of Problem 1&lt;/h4&gt;

\[\begin{equation}\min_{t_f,T,\Gamma}\int_0^{t_f} \vert \vert \Gamma(t) \vert \vert dt \end{equation}\]

&lt;p&gt;Subject to:
\(\begin{eqnarray}\ddot r(t) = g + \frac{T_c(t)}{m(t)}\\\dot m(t) = -\alpha \vert \vert T_c(t) \vert \vert \\
\vert \vert T(t) \vert \vert \leq \Gamma (t)\\
\rho_1 \leq \vert \vert \Gamma (t) \vert \vert \leq \rho_2\\r_z(t) \leq 0\\
\vert \vert S_j x(t) - v_j \vert \vert + c^T_j x(t) + a_j \leq 0, j=1,...,n_s\\
m(0)=m_{wet},r(0)=r_0,\dot r(0)=\dot {r_0},r(t_f)=\dot r(t_f)=0\end{eqnarray}\)&lt;/p&gt;

&lt;p&gt;$\Gamma$ was introduced as a slack variable and replaces $\vert \vert T \vert \vert$ with an additional constraint $\vert \vert T(t) \vert \vert \leq \Gamma (t)$. According to this &lt;a href=&quot;https://www.researchgate.net/publication/257426699_Lossless_Convexification_of_Nonconvex_Control_Bound_and_Pointing_Constraints_in_the_Soft_Landing_Optimal_Control_Problem&quot;&gt;paper&lt;/a&gt;, the optimal solution to Problem 2 is also a feasible solution of Problem 1. This is done using the Hamiltonian of Problem 2 and using necessary conditions for optimality, pointwise maximum principle, and the transversality condition.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/nonconvex%20to%20convex.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/nonconvex%20to%20convex.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Problem 1 to Problem 2 Convexification of the Thrust Constraint&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;change-of-variables&quot;&gt;Change of Variables&lt;/h3&gt;

&lt;p&gt;Before we proceed expanding Problem 2, a change of variables is needed to allow for a much cleaner numerical algorithm. We’ll set&lt;/p&gt;

\[\begin{eqnarray}\sigma = \frac{\Gamma}{m}\\
u = \frac{T}{m}\end{eqnarray}\]

&lt;p&gt;and thus changing the translational dynamics of the system
\(\begin{eqnarray}\ddot r(t) = g + u(t)\\
\frac{\dot m(t)}{m} = -\alpha \sigma (t)\\
\therefore m(t)=m_0exp[-\alpha \int_0^{t_f} \sigma (t)dt] \end{eqnarray}\)&lt;/p&gt;

&lt;p&gt;Therefore, we must minimize the integral term in the last mass dynamical equations. The original constraints follow that
\(\begin{eqnarray}\vert \vert u(t) \vert \vert \leq \sigma (t), \forall t \in [0,t_f]\\
\frac{\rho_1}{m(t)} \leq \sigma (t) \leq \frac{\rho_2}{m(t)}, \forall t \in [0,t_f]\end{eqnarray}\)&lt;/p&gt;

&lt;p&gt;This inequality now describes a convex set. However, when we consider $m$ by itself to be variable of the problem, these inequalities become bilinear and do not define a convex region. We’ll now introduce $z$ to resolve this issue and convexify these inequalities. Let’s define $z = log m$, and then the mass depletion rate now becomes $\dot z(t) = -\alpha \sigma (t)$. The inequalities now become&lt;/p&gt;

\[\begin{equation}\rho_1 exp(-z(t)) \leq \sigma (t) \leq \rho_2 exp(-z(t)), \forall t \in [0,t_f] \label{inequality_1} \end{equation}\]

&lt;p&gt;The left side of the inequality in eqn.\ref{inequality_1} defines a convex feasible region, but the right part doesn’t. We’ll use Taylor expansion of the exponential to achieve second-order cone and linear approximation to be used in our problem. The first part of eqn.\ref{inequality_1} can be approximate by the first three terms of the series, or second-order cone:&lt;/p&gt;

\[\begin{equation}\rho_1 exp(-z_0)[1-(z-z_0)+\frac{(z-z_0)^2}{2}] \leq \sigma \end{equation}\]

&lt;p&gt;Where $z_0$ is a given constant. The right side of eqn.\ref{inequality_1} can be linear or the first two terms of the Taylor expansion. Therefore&lt;/p&gt;

\[\begin{eqnarray}\sigma \leq \rho_2 exp(-z_0)[1-(z-z_0)]\\
\mu_1 = \rho_1 exp(-z_0)=\frac{\rho_1}{exp(z_0)}, \mu_2 = \rho_2 exp(-z_0)=\frac{\rho_2}{exp(z_0)}\end{eqnarray}\]

&lt;p&gt;We now have a second order cone formulation where $z_0(t) = log(m_{wet}-\alpha \rho_2 t)$ where $z_0(t)$ serves as a lower bound on $z(t)$ at each time. We must now ensure that $z(t)$ is constrained properly with&lt;/p&gt;

\[\begin{eqnarray}log(m_{wet}-\alpha \rho_2 t) \leq z(t) \leq log(m_{wet}-\alpha \rho_1 t)\end{eqnarray}\]

&lt;h4 id=&quot;problem-3---simplification-with-glide-slope-constraint&quot;&gt;Problem 3 - Simplification with Glide Slope Constraint&lt;/h4&gt;

\[\begin{eqnarray}\min_{t_f,u,\sigma} \int_0^{t_f} \sigma (t)dt\end{eqnarray}\]

&lt;p&gt;Subject to:
\(\begin{eqnarray}\ddot r(t) = g + u(t)\\\dot z(t)=-\alpha \sigma (t)\\
\vert \vert u(t) \vert \vert \leq \sigma (t)\\
u_1(t)[1-(z-z_0)+\frac{(z-z_0)^2}{2}] \leq \sigma \leq u_2(t)[1-(z-z_0)]\\
log(m_{wet}-\alpha \rho_2 t) \leq z(t) \leq log(m_{wet}-\alpha \rho_1 t)\\
\vert \vert r_x(t) \vert \vert \leq \beta r_z(t)\\
m(0)=m_{wet},r(0)=r_0,\dot r(0)=\dot {r_0},r(t_f)=\dot r(t_f)=0\end{eqnarray}\)&lt;/p&gt;

&lt;p&gt;We have replaced the general affine constraint form with the glide sloep constraint; where $\beta$ is the defined slope.&lt;/p&gt;

&lt;h4 id=&quot;problem-4---discretization-of-problem-3-into-piecewise-linear-function&quot;&gt;Problem 4 - Discretization of Problem 3 into Piecewise Linear Function.&lt;/h4&gt;

&lt;p&gt;For $\Delta t \gt 0$, and for each instance $t_k = k \Delta t,\forall k = 0,…,N$, we replace the continuous time with&lt;/p&gt;

\[\begin{eqnarray}u(t) = u_k + (u_{k+1}-u_k)t\\\sigma (t) = \sigma_k + (\sigma_{k+1} - \sigma_k)t\end{eqnarray}\]

&lt;p&gt;where
\(\begin{equation}t=\frac{t-t_k}{\Delta t},\forall t \in [t_k,t_{k+1}),k=0,...,N-1 \end{equation}\)&lt;/p&gt;

&lt;p&gt;Thus
\(\begin{equation}\min_{u_0,...,u_N,\sigma_0,...,\sigma_N} -z_n\end{equation}\)&lt;/p&gt;

&lt;p&gt;Subject to: for $k=0,…,N$
\(\begin{eqnarray}r_{k+1}=r_k + \frac{\Delta t}{2}(\dot r_k + \dot r_{k+1})+\frac{\Delta t^2}{12}(u_{k+1}-u_k)\\
\dot r_{k+1} = \dot r_k + \frac{\Delta t}{2}(u_k + u_{k+1})-g\Delta t\\
z_{k+1}=z_k-\frac{\alpha \Delta t}{2}(\sigma_k + \sigma_{k+1})\\
\vert \vert u_k \vert \vert \leq \sigma_k\\
u_{1,k}(t)[1-(z_k-z_{0,k})+\frac{(z_k-z_{0,k})^2}{2}] \leq \sigma \leq u_{2,k}(t)[1-(z_k-z_{0,k})]\\
log(m_{wet}-\alpha \rho_2 k \Delta t) \leq z_k \leq log(m_{wet}-\alpha \rho_1 k \Delta t)\\
\vert \vert r_x(t) \vert \vert \leq \beta r_z(t)\\
m(0)=m_{wet},r(0)=r_0,\dot r(0)=\dot {r_0},r(t_f)=\dot r(t_f)=0\\
z_0=log(m_{wet}),N\Delta t=t_f\end{eqnarray}\)&lt;/p&gt;

&lt;p&gt;We now have general lossless-convexified algorithm and can use vehicle parameters to generate trajectories.&lt;/p&gt;

&lt;h3 id=&quot;matlab-simulation&quot;&gt;MATLAB Simulation&lt;/h3&gt;
&lt;script src=&quot;https://gist.github.com/135af2f037f83fb20e9ac6b051ef05ee.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;Above are the vehicle initial parameters and conditions set up through MATLAB. The specific impulse $I_{sp}$ was chosen to reflect an &lt;a href=&quot;http://www.astronautix.com/l/loxalcohol.html&quot;&gt;ethanol liquid oxygen (LOX) rocket engine performance&lt;/a&gt;. For this simulation, we’ll use open source solver &lt;a href=&quot;http://cvxr.com/cvx/doc/intro.html#what-is-cvx&quot;&gt;CVX&lt;/a&gt; &lt;a href=&quot;https://github.com/sqlp/sedumi&quot;&gt;SeDuMi&lt;/a&gt; to solve our SOCP problem. Discretized problem 4 equations and constraints are formulated in MATLAB as per below&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/da8194a80bc9451fba23771d0a91a09b.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;The trajectory in figure below shows how the vehicle overshot the target during the entry phase and how it works its way back towards the landing site. Keep in mind that the $t_f$ in this situation is static at 100 seconds and is not necessarily globally optimal.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/trajectory.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/trajectory.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/trajectorygif.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/landing/trajectorygif.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/vehicle_descent.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/landing/vehicle_descent.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/trajectory%20with%20glide%20slope%20constraint.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/trajectory%20with%20glide%20slope%20constraint.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Trajectory with Glide Slope Constraint&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/thrust.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/thrust.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/position.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/position.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/landing/mass.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/landing/mass.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>FEA Analysis on Rocketdyne F-1 Rocket Engine - Flanged Nozzle Bolt</title>
   <link href="http://haikalfouzi.com/2020/12/14/Rocketdyne-F1-FEA.html"/>
   <updated>2020-12-14T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2020/12/14/Rocketdyne-F1-FEA</id>
   <content type="html">&lt;h1 id=&quot;overview&quot;&gt;Overview&lt;/h1&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/f1-rocket-engine.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/f1-rocket-engine.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Rocketdyne F-1 Rocket Engine - First Stage&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/ViNcBQ8cDA0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;

&lt;center&gt;Rocketdyne F-1 rocket engine in action during Saturn V launch on July 16, 1969 for Apollo lunar mission.&lt;/center&gt;

&lt;p&gt;The goal of this research is to analyze the bolted flange joint that connect the mid and lower parts of the F1 engine nozzle. The image below shows the simplified corresponding nozzle model in ANSYS (upper nozzle is excluded in this analysis). Analysis will be done using a &lt;a href=&quot;https://enterfea.com/difference-between-linear-and-nonlinear-fea/&quot;&gt;non-linear finite element model&lt;/a&gt; in ANSYS to assess the margin of safety of the flange bolts and determine the gaps that develop between the jointed parts when the assembly is loaded.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/SaturnF1EngineDiagram.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/SaturnF1EngineDiagram.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Saturn F1 Engine Diagram&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/model_expl.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/model_expl.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Overall Simplified ANSYS Model&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/spacecraft_assembly4.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/spacecraft_assembly4.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;200 Bolts Securing Middle and Lower Part of the Nozzle&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Below are the material properties that are going to be used for this analysis.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Parts&lt;/th&gt;
      &lt;th&gt;Material&lt;/th&gt;
      &lt;th&gt;Young’s Modulus (psi)&lt;/th&gt;
      &lt;th&gt;Poisson’s Ratio&lt;/th&gt;
      &lt;th&gt;Coefficient of Thermal Expansion (per deg. F)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Nozzle&lt;/td&gt;
      &lt;td&gt;300 Series Stainless Steel&lt;/td&gt;
      &lt;td&gt;29000000&lt;/td&gt;
      &lt;td&gt;0.27&lt;/td&gt;
      &lt;td&gt;0.00001&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Bolt and Nut&lt;/td&gt;
      &lt;td&gt;A-286 Steel&lt;/td&gt;
      &lt;td&gt;29000000&lt;/td&gt;
      &lt;td&gt;0.31&lt;/td&gt;
      &lt;td&gt;0.0000095&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The pressure due to the exhaust gas in the nozzle is calculated using 1D gas dynamics. It is assumed to vary linearly along the nozzle axis. The pressure at the exit (z=0)  is 12.17 psi and the pressure at the entrance to the mid-nozzle is 47.72 psi.&lt;/p&gt;

&lt;p&gt;The regeneration channels are omitted in the model. In exchange, a free body diagram is used to deduce the equivalent forces on the mid nozzle and lower nozzle (the upper nozzle is not modeled here). This force pair is modeled as two separate forces, each of 1000 lbf. The gas temperature is 700 F which causes thermal strain. The bolt is assumed to be pre-loaded to 50% of its breaking strength.&lt;/p&gt;

&lt;h2 id=&quot;essential-boundary-conditions--governing-equations&quot;&gt;Essential Boundary Conditions &amp;amp; Governing Equations&lt;/h2&gt;

&lt;p&gt;Boundary conditions and assumptions:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Frictionless support at the top surface of mid nozzle
    &lt;ul&gt;
      &lt;li&gt;Normal displacement = 0&lt;/li&gt;
      &lt;li&gt;Tangential traction (Shear) = 0&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Pressure due to propellant
    &lt;ul&gt;
      &lt;li&gt;Obey 1D gas dynamics&lt;/li&gt;
      &lt;li&gt;Varies in axial direction (z-axis)&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Force from regeneration channels
    &lt;ul&gt;
      &lt;li&gt;Pulls apart the mid and lower nozzles&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Governing equations are as follows:&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/governingequations.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/governingequations.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Differential Equations of Equilibrium&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/Straindisplacement.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/Straindisplacement.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Strain-Displacement Relations&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/matrixmodel.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/matrixmodel.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Constitutive Matrix Model&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h2 id=&quot;initial-calculationprediction&quot;&gt;Initial Calculation/Prediction&lt;/h2&gt;
&lt;h3 id=&quot;axial-reaction-of-thrust&quot;&gt;Axial Reaction of Thrust&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/axial.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/axial.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Based on the projected area of pressure in the mid &amp;amp; lower part of nozzle (shaded concentric circle), we can calculate the net force in the negative z-direction. That would be the net reaction force for the whole geometry, assuming that the top mid part of the nozzle is fixed to wall/support.&lt;/p&gt;

&lt;p&gt;The calculated projected area in the mid &amp;amp; lower part of nozzle is to be 9,699 \(in^2\), thus the net pressure force based on the average gas pressure at the entrance of mid nozzle and at the exit of lower nozzle is 290,970 \(lbf\).&lt;/p&gt;

&lt;p&gt;Our model is scale to 1:400, so the net pressure force of 1/400th of the model is 727 \(lbf\).&lt;/p&gt;

&lt;h3 id=&quot;hoop-stress-on-nozzle&quot;&gt;Hoop Stress on Nozzle&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/hoop%20stress.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/hoop%20stress.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;We can estimate the hoop stress or the stress in the circumferential direction of the nozzle. Based on the &lt;a href=&quot;https://en.wikipedia.org/wiki/Cylinder_stress#Hoop_stress&quot;&gt;pressure vessel theory&lt;/a&gt;, we can find the hoop stress is given as follow:&lt;/p&gt;

\[\begin{equation}\sigma_{\theta} = \frac{Pr}{t}\end{equation}\]

&lt;p&gt;where \(P\) is the pressure, \(r\) is the radius, and \(t\) is the wall thickness. Plugging in all the value and we’ll get estimated hoop stress for the nozzle.&lt;/p&gt;

\[\begin{equation}\sigma_{\theta} = \frac{12.17 psi * 69.5 in}{0.5 in} = 1692 in\label{hoop-stress}\end{equation}\]

&lt;h3 id=&quot;thermal-strain-of-the-nozzle&quot;&gt;Thermal Strain of the Nozzle&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/thermal%20strain.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/thermal%20strain.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The estimated deformation due to thermal stress can be calculated using the following thermal strain formula as shown below:&lt;/p&gt;

\[\begin{eqnarray}\frac{\delta l}{L} = \alpha\Delta T\\\frac{\delta l}{160 in} = (1e^{-5})(700 ℉ - 70 ℉) = 1.008 in\label{thermal_strain}\end{eqnarray}\]

&lt;h3 id=&quot;bolt-preload-deformation&quot;&gt;Bolt Preload Deformation&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt%20preload.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/bolt%20preload.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The bolt is pre-loaded with 50% of it’s ultimate tensile strength which is 9280\(lb\), so the load applied is 4640\(lb\), and on each side is 2320\(lb\).&lt;/p&gt;

\[\begin{eqnarray}\Delta l = \frac{FL}{EA}\\\Delta l = \frac{2320lbf * 0.5 in}{(2.9*10^{7}psi)*(3.8*10^{-2}in^2)} = 0.001 in\end{eqnarray}\]

&lt;h2 id=&quot;meshing&quot;&gt;Meshing&lt;/h2&gt;

&lt;p&gt;Meshes were set up using 2 different body sizing; 0.3 inches element size for the middle and lower part of the nozzle, and 0.075 inches element size for the bolt &amp;amp; nuts. Statistics of the following mesh setup are as follow:&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/tetrahedron-mesh.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/tetrahedron-mesh.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Tetrahedron Meshes Setup&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/tetrahedron-mesh-stat.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/tetrahedron-mesh-stat.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Meshes Statistics&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The number of nodes exceed the maximum number of nodes for ANSYS student, so we need to reduce the number using different meshes method; Hex dominant. Below are the meshes generated and it’s statistics:&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/hex-meshes.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/hex-meshes.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Hex Dominant Meshes Setup&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/hex-meshes-stat.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/hex-meshes-stat.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Meshes Statistics&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h2 id=&quot;boundary-conditions-setup&quot;&gt;Boundary Conditions Setup&lt;/h2&gt;
&lt;h3 id=&quot;applying-thermal-strain&quot;&gt;Applying Thermal Strain&lt;/h3&gt;

&lt;p&gt;Thermal strain was applied to all the part of the nozzle including the bolt and nuts using time steps series as follows:&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/thermal-strain-apply.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/thermal-strain-apply.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;applying-bolt-preload&quot;&gt;Applying Bolt Preload&lt;/h3&gt;

&lt;p&gt;Load bolt pretension was applied to the surface of the bolt thread as follows:&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt-pretension-load.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/bolt-pretension-load.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;applying-boundary-conditions&quot;&gt;Applying Boundary Conditions&lt;/h3&gt;

&lt;p&gt;Frictionless support was added to the top of middle nozzle.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/frictionless-support.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/frictionless-support.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;applying-pressure-load&quot;&gt;Applying Pressure Load&lt;/h3&gt;

&lt;p&gt;Pressure load due to expansion of hot gas due to combustion needs to be applied to surfaces that are exposed to the hot gas including the regeneration channel near to the bolt and nuts.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/pressure-load.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/pressure-load.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/pressure-load-time.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/pressure-load-time.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Pressure Load Time Step&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;applying-load-due-to-regeneration-channel&quot;&gt;Applying Load due to Regeneration Channel&lt;/h3&gt;

&lt;p&gt;Forces from the regeneration channel can be simulated by applying load in z-direction at the surface between the middle and lower part of the nozzle.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/force-regen-upper.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/force-regen-upper.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Simulated Regeneration Channel Load at Middle Nozzle&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/force-regen-lower.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/force-regen-lower.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Simulated Regeneration Channel Load at Lower Nozzle&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;contact-surfaces&quot;&gt;Contact Surfaces&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt-to-nut.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/bolt-to-nut.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Bolt to Nut&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/lower-mid-nozzle.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/lower-mid-nozzle.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Lower to Middle Nozzle&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt-mid-nozzle.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/bolt-mid-nozzle.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Middle Nozzle to Bolt&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt-lower-nozzle.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/bolt-lower-nozzle.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Lower Nozzle to Bolt&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt-contact.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/bolt-contact.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Bolt Contact&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h2 id=&quot;finite-element-analysis-result&quot;&gt;Finite Element Analysis Result&lt;/h2&gt;

&lt;h3 id=&quot;force-convergence&quot;&gt;Force Convergence&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/force-convergence.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/force-convergence.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Force Convergence Result - Solution Converged After 11th Iterations&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;total-deformation&quot;&gt;Total Deformation&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/total-deformation.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/total-deformation.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/total-deformation-stat.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/total-deformation-stat.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Minimum deformation occured at the fixed support of the middle nozzle, and maximum deformation of 1.0992 \(in\) happened at the lower nozzle. These results are inline with our initial calculation and prediction \eqref{thermal_strain}.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/total-deformation-zoom.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/f1-engine/total-deformation-zoom.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Deformation Around the Bolted Nozzle Flanged&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;hoop-stress&quot;&gt;Hoop Stress&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/normal-stress-lower.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/normal-stress-lower.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Normal Hoop Stress \(\sigma_{\theta}\) is around 1685 \(psi\) which is within ~1% range of our initial hoop stress calculation \eqref{hoop-stress}.&lt;/p&gt;

&lt;h3 id=&quot;equivalent-stress-on-bolt&quot;&gt;Equivalent Stress on Bolt&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/bolt-stress.gif&quot; type=&quot;image/gif&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/gif). &lt;a href=&quot;/media/f1-engine/bolt-stress.gif&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/eqv-stress-bolt.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/eqv-stress-bolt.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Equivalent Stress on Bolt&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;gap-between-middle-and-lower-nozzles&quot;&gt;Gap between Middle and Lower Nozzles&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/f1-engine/gap.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/f1-engine/gap.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Maximum and Minimum Gap Between Middle and Lower Nozzle&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>CFD & FEA Analysis of a 1.5 MW General Electric Wind Turbine (1.5xle)</title>
   <link href="http://haikalfouzi.com/2020/05/15/Wind-Turbine-CFD-&-FEA-Analysis.html"/>
   <updated>2020-05-15T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2020/05/15/Wind Turbine CFD & FEA Analysis</id>
   <content type="html">&lt;h1 id=&quot;overview&quot;&gt;Overview&lt;/h1&gt;

&lt;p&gt;This analysis covered the deformation due to aerodynamic loading of a wind turbine blade by performing a steady state one way fluid structure interaction (FSI). This analysis will use ANSYS Fluent to develop aerodynamic loading on the blade, the pressure loads on the blade, and the stresses and deformations that occurred on the blade.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/GEA14954C15-MW-Broch.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/GEA14954C15-MW-Broch.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/Screenshot%202021-05-30%20at%203.23.16%20PM.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/Screenshot%202021-05-30%20at%203.23.16%20PM.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;GE Wind Turbine Technical Data&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h2 id=&quot;wind-turbine-blade-profile&quot;&gt;Wind Turbine Blade Profile&lt;/h2&gt;

&lt;p&gt;The blade is 43.2 meters long and starts with a cylindrical shape at the root and then transitions to the airfoils S818, S825, and S826 for the root, body, and tip.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/Imported_pressure_2.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/Imported_pressure_2.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Turbine - Root View&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/blade%20render.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/blade%20render.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Turbine - ISO View&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/blade%20rende%20side%20viewr.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/blade%20rende%20side%20viewr.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Turbine - Front View&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;This blade also has pitch to vary as a function of radius, giving it a twist and the pitch angle at the blade tip is 4 degrees. The blade is made out of an orthotropic composite material, and it has varying thickness and spar inside of the blade for structural rigidity.&lt;/p&gt;

&lt;h2 id=&quot;case-setup&quot;&gt;Case Setup&lt;/h2&gt;

&lt;p&gt;Governing equations are as follows (continuity and Navier-Stokes equations):&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/Governing%20equation%20wind%20turbine.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/Governing%20equation%20wind%20turbine.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Governing Equations&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Operating conditions is using air at standard conditions:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Operating Conditions&lt;/th&gt;
      &lt;th&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Air Temperature&lt;/td&gt;
      &lt;td&gt;15 ℃&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Air Density&lt;/td&gt;
      &lt;td&gt;1.225 kg/m^3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Viscosity&lt;/td&gt;
      &lt;td&gt;1.7894e-05 kg/(ms)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Fluid Domains&lt;/th&gt;
      &lt;th&gt;Boundary Conditions&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Inlet&lt;/td&gt;
      &lt;td&gt;Velocity of 12 m/s with turbulent intensity of 5% and turbulent viscosity ratio of 10&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Outlet&lt;/td&gt;
      &lt;td&gt;Pressure of 1 atm&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Blade&lt;/td&gt;
      &lt;td&gt;No-slip&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Side Boundaries&lt;/td&gt;
      &lt;td&gt;Periodic&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/Boundary_Conditions3.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/Boundary_Conditions3.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Fluid Domain Boundary Conditions&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fluid%20domain%20mesh%20CFD.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fluid%20domain%20mesh%20CFD.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Fluid Domain Mesh&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fluid%20domain%20mesh%20CFD%20statistic.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fluid%20domain%20mesh%20CFD%20statistic.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Fluid Domain Mesh Statistic&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fluid%20domain%20mesh%20CFD%20metric.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fluid%20domain%20mesh%20CFD%20metric.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Fluid Domain Mesh Orthogonality Metric&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/skewness.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/skewness.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Fluid Domain Mesh Skewness Metric&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;From the fluid domain mesh metrics, we have around 370,494 elements. So the total number of unknowns and the algebraic equations ANSYS Fluent needs to solve is around 2.22 million (u, v, w, p, k, 𝜔 - 6 unknowns from governing equations). The skewness and orthogonality quality of the mesh are also in acceptable range.&lt;/p&gt;

&lt;p&gt;Skewness quality metrics&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Metrics&lt;/th&gt;
      &lt;th&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Outstanding&lt;/td&gt;
      &lt;td&gt;0-0.25&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Very Good&lt;/td&gt;
      &lt;td&gt;0.25-0.50&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Good&lt;/td&gt;
      &lt;td&gt;0.50-0.80&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Sufficient&lt;/td&gt;
      &lt;td&gt;0.80-0.95&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Bad&lt;/td&gt;
      &lt;td&gt;0.95-0.98&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Inappropriate&lt;/td&gt;
      &lt;td&gt;0.98-1.00&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Orthogonal quality metrics&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Metrics&lt;/th&gt;
      &lt;th&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Inappropriate&lt;/td&gt;
      &lt;td&gt;0-0.001&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Bad&lt;/td&gt;
      &lt;td&gt;0.001-0.15&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Sufficient&lt;/td&gt;
      &lt;td&gt;0.15-0.20&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Good&lt;/td&gt;
      &lt;td&gt;0.20-0.70&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Very Good&lt;/td&gt;
      &lt;td&gt;0.70-0.95&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Outstanding&lt;/td&gt;
      &lt;td&gt;0.95-1.00&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-mesh.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-mesh.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Blade Structure Mesh&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-mesh-statistic.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-mesh-statistic.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Blade Structure Mesh - Statistic&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-mesh-orthogonal.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-mesh-orthogonal.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Blade Structure Mesh - Orthogonality Quality&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-mesh-skewness.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-mesh-skewness.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Blade Structure Mesh - Skewness Quality&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Meshes quality for finite element analysis on the wind turbine blade are quite exceptional, where we have high orthogonality and low skewness. These will help the FEA solution to converge quickly with less iterations. The number of FEA unknowns that need to be solved by ANSYS Mechanical are 100 times lower when compared to the CFD analysis.&lt;/p&gt;

&lt;h2 id=&quot;computational-fluid-dynamics-result&quot;&gt;Computational Fluid Dynamics Result&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Mass Flow Rate&lt;/th&gt;
      &lt;th&gt;(kg/s)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;inlet&lt;/td&gt;
      &lt;td&gt;221216.84&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;inlet-top&lt;/td&gt;
      &lt;td&gt;664992.78&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;outlet&lt;/td&gt;
      &lt;td&gt;-886209.81&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Net Mass Flow Rate&lt;/td&gt;
      &lt;td&gt;-0.1850242&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Net mass flow rate is almost 0, and that’s one good indication that our model conserved its mass. The static pressure also has converged to a value between -7,000 to -8,000 Pa.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/FFF.1-2-01500.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/wind-blade-turbine/FFF.1-2-01500.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Surface Integral Static Pressure Convergence Plot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/FFF.1-2-01500-zoom.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/wind-blade-turbine/FFF.1-2-01500-zoom.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Zoom-in Plot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/residual-all.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/wind-blade-turbine/residual-all.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Residual Plot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;From the residual plot, the results are converged after 1400 iterations when the residual for 𝜔 falls under the residual criteria (&amp;lt;1e-06 for this analysis). Higher iterations could be done to achieve more accurate result, but it’s not the priority for this analysis.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/local_blade_velocity.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/local_blade_velocity.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Local Blade Velocity&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Local blade velocity increases with radius; the highest velocity recorded at the tip (98 m/s) and the lowest is near to the root of wind turbine blade (28 m/s).&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/velocity-streamline-wake.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/velocity-streamline-wake.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Velocity Streamlines Around The Wind Turbine&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Wake effects are pronounced behind the the turbine (clear acceleration of the flow around the wake - gradient color change from blue to yellow/orange).&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/pressure-contour-front.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/pressure-contour-front.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Turbine Blade Front Surface - Pressure Contour&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/pressure-contour-back.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/pressure-contour-back.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Turbine Blade Back Surface - Pressure Contour&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The pressure is lower at the back surface of the blade compared to the front surface of the blade. The pressure difference between the front and back surface created a lift force that’ll in turn helps turning the blade around the z-axis.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/plane-at-10m.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/plane-at-10m.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Y-Z Plane 10 Meters from root&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/pressure-contour-y-z-10.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/pressure-contour-y-z-10.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Y-Z Plane - Pressure Contour 10 Meters from root&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/velocity-vector-y-z-10.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/velocity-vector-y-z-10.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Y-Z Plane - Velocity Vector 10 Meters from root&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/static-pressure-center.bmp&quot; type=&quot;application/octet-stream&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (application/octet-stream). &lt;a href=&quot;/media/wind-blade-turbine/static-pressure-center.bmp&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Static Pressure at Axis of Rotation (Z-Axis)&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h2 id=&quot;wind-turbine-blade-structure&quot;&gt;Wind Turbine Blade Structure&lt;/h2&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/Parts.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/Parts.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Wind Turbine Blade Outer Surface and Spar&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The blade is composed of an outer surface and an inner spar. The thickness of the outside surface linearly decreases from 0.1 m at the root to 0.005 m at the tip. The spar has a similar thickness behavior with 0.1 m at its closest point to the root and 0.03 m at the tip.&lt;/p&gt;

&lt;p&gt;Surface Profile&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;X (m)&lt;/th&gt;
      &lt;th&gt;Thickness (m)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;-1&lt;/td&gt;
      &lt;td&gt;0.1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;-44.2&lt;/td&gt;
      &lt;td&gt;0.005&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Spar Profile&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;X (m)&lt;/th&gt;
      &lt;th&gt;Thickness (m)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;-3&lt;/td&gt;
      &lt;td&gt;0.1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;-44.2&lt;/td&gt;
      &lt;td&gt;0.03&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/homogonized%20orthotropic%20material.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/homogonized%20orthotropic%20material.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Material Properties&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Wind turbine blades are now made of composite materials to reduce the weight of these massive machines. These values are representative of composite properties found in real wind turbine blades.&lt;/p&gt;

&lt;h2 id=&quot;finite-element-analysis-fea-result&quot;&gt;Finite Element Analysis (FEA) Result&lt;/h2&gt;

&lt;p&gt;Total deformation of wind turbine blade.&lt;/p&gt;
&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/t4m-t7xGukI&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;

&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/7aBuRs0CC94&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;

&lt;p&gt;Maximum deformation occured at the tip of the wind turbin blade with magnitude of 38 cm, which correlate with the high pressure load at the wind blade tip during CFD analysis. Actual wind turbine do deform this way.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-equiv-stress-front.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-equiv-stress-front.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Equivalent Stress on Wind Turbine Blade - Front&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-equiv-stress-back.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-equiv-stress-back.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Equivalent Stress on Wind Turbine Blade - Back&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-force-reaction.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-force-reaction.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Force Reaction at the root&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-force-reaction-result.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-force-reaction-result.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Force Reaction at the root - Result&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;Almost all of the force reaction is in the x-direction. This is caused by the centripetal acceleration acting on this blade.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-moment.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-moment.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Moment Reaction at the root&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/wind-blade-turbine/fea-moment-result.PNG&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/wind-blade-turbine/fea-moment-result.PNG&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Moment Reaction at the root - Result&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>Rocker Bogie Robot — Building an autonomous search and rescue robot</title>
   <link href="http://haikalfouzi.com/2018/06/18/Rocker-Bogie-Robot.html"/>
   <updated>2018-06-18T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2018/06/18/Rocker Bogie Robot</id>
   <content type="html">&lt;h1 id=&quot;abstract&quot;&gt;Abstract&lt;/h1&gt;

&lt;p&gt;Collapse buildings and fires are a common risk faced by first responders in the world, and there are constant attempts to improve the safety and efficiency in search and rescue operations. This project aims to research and build an autonomous search and rescue vehicle capable of operating semi-autonomously in a one-story building under normal climatic conditions, assuming there is no fire as well. This system must also be able to be controlled manually if necessary. The search and rescue system must also be able to accurately identify people and animals, and relay its findings to its operators. To meet all the requirements detailed in this report, an unmanned ground vehicle (UGV) modeled as a rocker-bogie was designed. Using a combination of ultrasonic, infrared camera, regular camera and a LIDAR sensor, semi-autonomy would be achievable. The UGV will use a combination of a 2D map created with the LIDAR sensor, and odometry using wheel encoders to relay locations of victims to its operators. The infrared camera and regular camera would be used. The proposed design was made to be as inexpensive, versatile, and reliable as possible. The design chosen would be based of the rocker-bogie ground vehicle design and modified to meet the requirements of the challenge. This report details the design, project timeline, and management, work completed, and the proposed work to be completed.&lt;/p&gt;

&lt;h1 id=&quot;design-description&quot;&gt;Design Description&lt;/h1&gt;
&lt;h2 id=&quot;concept&quot;&gt;Concept&lt;/h2&gt;

&lt;p&gt;Before settling on the unmanned rocker bogie, the team brainstormed on multiple ideas to meet the requirements detailed in 3.1 of Senior Design Search and Rescue guidelines and requirements. These were generally ground based and aerial solutions for the search and rescue system. The three main concepts were a ground based tank like vehicle, a combination of a drone and a ground vehicle, a drone, and the rocker bogie concept. The systems using drones would use beacon based low-energy bluetooth local tracking systems to search the space, while the ground based vehicles utilized the LIDAR system to search. After consulting with the project advisor, the hybrid system (drone and ground vehicle) and drone system were dropped as they added a substantial degree of complexity, without a significant improvement in functionality in comparison to the ground based robots. Hence the ground based systems were chosen to be the likely solutions for the project. With further research the rocker bogie was chosen for its lightweight and versatile suspension system as compared to the tank like ground vehicle.&lt;/p&gt;

&lt;h2 id=&quot;concept-evaluation&quot;&gt;Concept Evaluation&lt;/h2&gt;

&lt;p&gt;To evaluate the options for the project, a decision matrix using points was used. The decision matrix compares a rocker bogie design, a drone using a beacon based local positioning system (LPS) and a combination of ground and air based systems to reach a decision on the optimal strategy for the project. As seen in the decision matrix titled “Decision Matrix” in the appendix, the best solution is the ground based rocker bogie, which beat out a combination of the rocker bogie and a drone, because of costs, and the unmanned aerial vehicle due to the added complexity of unmanned flight and maneuverability.&lt;/p&gt;

&lt;h3 id=&quot;sensor-system-comparison&quot;&gt;Sensor System Comparison&lt;/h3&gt;

&lt;p&gt;Decision matrix for sensors and CPU comparison.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/1d0010c2a00ed426cb01b6cca42c3c25.js&quot;&gt; &lt;/script&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image19.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image19.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Sensors connection map&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h2 id=&quot;detail-design&quot;&gt;Detail Design&lt;/h2&gt;
&lt;h3 id=&quot;chassis&quot;&gt;Chassis&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image6.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image6.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Isometric view of Rocker Bogie Robot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The chassis of this robot will use the rocker-bogie system as its structural build. The rocker-bogie suspension has become a proven mobility application known for its superior vehicle stability and obstacle-climbing capability. This mechanism allows climbing over high obstacles while keeping all six wheels in contact with the ground. In a rocker-bogie system, the left and right sides of the robot move independently. This allows the robot to transverse on uneven terrains which are possible in a collapsed building setting. The dimensions of this robot is designed to overcome the 1 feet obstacle that will be present in the obstacle.
For the Winter term, the chassis was constructed using PVC Schedule 80 pipe materials. Mainly this material is used for pressure applications and has a thicker wall than schedule 40 pipes. This material is highly durable and easy to install compared to PVC and ABS Foam Core pipes. The weight of this material is 0.41 lb/ft. By calculating the total weight of all the structural parts of the robot, the estimated weight of this chassis is 4.305 lb. For the front chassis, it has two PVC pipes of length 10 inches each angled at 90 degrees. This length will provide a clearance of 14 inches for the front legs to go pass the obstacle.&lt;/p&gt;

&lt;p&gt;As the team progress to the Spring term, flaws were present in using pipes as the chassis. The chassis fails to maintain structural symmetry as usage progresses. Taking comments from the faculty by the end of the winter term, the structure of the rocker bogie appears to be wobbly and not symmetrical. The rocker bogie is then constructed using C-Channel steels. Low cost is still maintained as steel is the most common and least expensive metal. The C-Channels are consumer off the shelf parts bought from VEX Robotics. The material is light and sturdy and has holes pre-drilled every 0.5” which allows for easy construction of the body and its components. The wheels have a diameter of 4” which is 3D-printed.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image26.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image26.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Side view of Rocker Bogie Robot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image23.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image23.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Front view of Rocker Bogie Robot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image14.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/rocker-bogie-robot/image14.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Final assembly&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image24.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/rocker-bogie-robot/image24.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Final assembly - side view&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;h3 id=&quot;motor&quot;&gt;Motor&lt;/h3&gt;

&lt;p&gt;The 6 legs of the rocker-bogie each have a 12V DC 30RPM Mini Gearbox Electric Motor. Each motor will produce a torque of roughly 0.88 ft-lb which should be more than capable of powering the 0.3 lbs, 4.92 in wide off-road tires connected to it. Considering that the motor has a stall torque of 1 ft-lb and 500mA this should be more than enough to guarantee smooth transportation of our vehicle and any added load. The effectiveness of the rocker-bogie comes from the design of the differential and as such each leg must be capable of moving independently, swiftly and powerfully. As a result the lightweight nature of the motor is very important and at 0.3625 lbs per motor our robot will not be burdened by the presence of 6 motors. In order to successfully hurdle obstacles, the two front and rear wheels will specifically have individual steering dc servomotors. In addition to hurdling obstacles, this will also grant the rocker-bogie the ability to swerve, curve and arch around obstacles. These obstacles will differ in sizes and so the shaft size of 6mm, couple with a relatively small diameter of 37 mm would mean that the motor would not interfere with the robots suspension system or risk coming into contact with an obstacle whilst hurdling objects.&lt;/p&gt;

&lt;h3 id=&quot;autonomous-system-control&quot;&gt;Autonomous System Control&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image1.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image1.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image4.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/rocker-bogie-robot/image4.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image20.jpg&quot; type=&quot;image/jpeg&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/jpeg). &lt;a href=&quot;/media/rocker-bogie-robot/image20.jpg&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Sensor placement and assembly&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The robot was designed to run autonomously for two separate modes, the obstacle avoidance mode and the lifesign search mode. This will allow the rocker-bogie search and rescue robot to carry out mission task without the need for supervision. The operator of the robot will have the ability to activate the autonomous mode through remote connection available in the Raspberry Pi 3. In the autonomous mode, the robot will use a combination of 3 ultrasonic sensors, and LIDAR sensor to navigate the space and avoid obstacles. All the 3 ultrasonic sensors are mounted at the front of the robot where one sensor is in the center, and the remaining of sensors are mounted near the center ultrasonic sensor with 45° orientation. The advantages of the ultrasonic sensors setup are the ability to detect obstacle at wider range of view for the robot, and the data from each sensors can be used to calculate angle needed for the robot to avoid an obstacle. For example, when the robot is within 8 inches in front of an obstacle, the robot will stop and begin the process to avoid the obstacle. The data from each ultrasonic sensors will be used to compare and decide the movement direction of the robot. If the left ultrasonic sensor shows greater reading of the distance than the center and right ultrasonic sensors, the robot will move 45° to the left, and vice versa. The LIDAR sensor will allow the operator to see the 360° view of environment in real time as the robot navigate through the site.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image33.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image33.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Basic obstacle avoidance logic&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The lifesign search mode will utilize 1 thermal camera that is mounted in the same location as the front ultrasonic sensor. The thermal camera that is going to be used in this robot able to measure temperatures ranging from 0℃ to 80℃ (32℉ to 176℉). The capability of the thermal camera to measure such a huge range in temperature allows the robot to differentiate the source of heat from human body and the environment. The Raspberry Pi 3 used in this robot will produce a real time infrared video (8x8 pixels) in the remote desktop that will assists the operator to locate the victim. Since the thermal camera is in the same view as the front ultrasonic sensor, the robot will keep moving forward until the thermal camera read temperature near to the human body temperature in its field of view (37℃ or 98.6℉). Once the thermal camera have a human body temperature reading, the robot will align itself towards the source of heat to find the victim.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image32.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image32.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Lifesign search mode&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/qTE23JQNEgY&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;

&lt;h3 id=&quot;manual-system-control&quot;&gt;Manual System Control&lt;/h3&gt;

&lt;p&gt;For the manual system control, a standard camera will also be mounted at the center along with the thermal camera and the front ultrasonic sensor. Type of camera that is going to be used is the Raspberry Pi Camera Module with a wide angle lens for better field of view. The operator of the robot will control the robot through wifi connection from a remote computer. A standard directional pad on the keyboard and GUI buttons will be used to control the robot’s movement. The operator will have the camera view, infrared video feed, simultaneous localization and mapping (SLAM) and sound output from microphone attached to the Raspberry Pi 3 to help locate the victims manually.&lt;/p&gt;

&lt;h3 id=&quot;environment-mapping-system&quot;&gt;Environment Mapping System&lt;/h3&gt;

&lt;p&gt;LIDAR sensor also serves another purpose in the rocker-bogie search and rescue system; which is to generate the map of the environment during the search and rescue process. To execute this idea, the team is going to utilize technique called simultaneous localization and mapping (SLAM). The LIDAR sensor used for the construction of the rocker-bogie robot system is salvaged from an old robotic vacuum; a Neato XV-11. The sensor is capable of recording 360° distance with interval of 4° for each measurement. The live data from the LIDAR sensor is then converted into a map with the help from an open source package for SLAM developed by Prof. Simon D. Levy from Washington &amp;amp; Lee University. Due to incompatibility of Robot Operating System (ROS) with the Raspbian Stretch OS on the Raspberry Pi 3, all programming for the environment mapping system has to be written in Python. The basis of SLAM process is by using laser scan to extract the current position of the robot at certain time. Whenever the robot moves, the odometry changes and the comparison between the previous laser scan data and the new one will determine the position and orientation of the robot in the workspace.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image27.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image27.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;SLAM using onboard LIDAR sensor&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/dGK0_Ku4cWg&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;

&lt;h3 id=&quot;operators-user-interface-oui&quot;&gt;Operator’s User Interface (OUI)&lt;/h3&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image21.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image21.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The user interface for the operator was designed entirely using Python to allow ease of use and to provide enough information for the operator to carry out search and rescue activity. The robot can be started easily by turning on the switch on the power source of the robot, then the operating system will boot up normally and all the necessary information will show up automatically on the operator’s device.&lt;/p&gt;

&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/rocker-bogie-robot/image31.png&quot; type=&quot;image/png&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (image/png). &lt;a href=&quot;/media/rocker-bogie-robot/image31.png&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      
        &lt;figcaption class=&quot;caption&quot;&gt;Available commands for the robot&lt;/figcaption&gt;
      
    &lt;/figure&gt;
  &lt;/p&gt;

&lt;p&gt;The operator can easily switch between manual mode and autonomous mode using the OUI buttons. When the manual mode is activated, the robot can be controlled using keyboard by using “W,A,S,D” buttons to maneuver the robot or it can be controlled using the onscreen button. The SLAM, camera, and thermal view will be updated automatically at rate 1 ms to avoid cpu thermal throttle on the Raspberry Pi 3. Autonomous mode will utilize the ultrasonic sensors and the thermal sensor to execute the Obstacle Avoidance System and the Lifesign Search Mode. When the robot is in the autonomous mode, the operator can check for the status of the robot on the terminal display. The robot is equipped with 2 kill switches that will stop the robot activity and ensure the safety of the robot during the operation. 1 kill switch is located on the power source of the robot, and 1 remote kill switch is in the Operator’s User Interface (OUI).&lt;/p&gt;

&lt;h3 id=&quot;budget&quot;&gt;Budget&lt;/h3&gt;

&lt;p&gt;For the project funding was provided by the Drexel Mechanical Engineering and Mechanics Department. The budget used so far for the project is only 29% from the total of USD 2,500 given. The amount used were for purchasing the structural parts , programmable parts and the parts pertaining to the motoring system. An estimate of the total cost of the project would be around a USD 1,000 at most. This projection is based on the fact that almost USD 2,000 was still available as of week 8. With week 8 being scheduled to be a period of assembly on our timeline. This meant that barring any unforeseen issues that may occur during testing all required parts had been purchased and delivered. Any more costs that may occur during the spring quarter would certainly be in the form of testing or perhaps replacement of a power source or some other easily replaceable component of our robot. The spending to date is summarized in the table “Project Budget” below.&lt;/p&gt;

&lt;script src=&quot;https://gist.github.com/c69e218f1badba9109b7969e3c21b923.js&quot;&gt; &lt;/script&gt;

&lt;h3 id=&quot;additional-testing-videos&quot;&gt;Additional Testing Videos&lt;/h3&gt;

&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/GKP_l6HY60w&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;

&lt;div class=&quot;iframe&quot;&gt;
  &lt;center&gt;&lt;iframe class=&quot;video&quot; src=&quot;https://www.youtube.com/embed/QWzuthb7Wuc&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;
  &lt;/iframe&gt;&lt;/center&gt;
&lt;/div&gt;
</content>
 </entry>
 
 <entry>
   <title>Soil Sample Underwater Robot</title>
   <link href="http://haikalfouzi.com/2018/03/21/Soil-Sample-Underwater-Robot.html"/>
   <updated>2018-03-21T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2018/03/21/Soil Sample Underwater Robot</id>
   <content type="html">
&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/soil-sample-underwater-robot/Final%20Report.pdf&quot; type=&quot;application/pdf&quot; width=&quot;100%&quot; height=&quot;600&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (application/pdf). &lt;a href=&quot;/media/soil-sample-underwater-robot/Final%20Report.pdf&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      &lt;p&gt;PDF file: &lt;a href=&quot;/media/soil-sample-underwater-robot/Final%20Report.pdf&quot;&gt;Download PDF (application/pdf)&lt;/a&gt;&lt;/p&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Aircraft Design and Performance Project</title>
   <link href="http://haikalfouzi.com/2016/12/03/Aircraft-Design-and-Performance-Project.html"/>
   <updated>2016-12-03T00:00:00+00:00</updated>
   <id>http://haikalfouzi.com/2016/12/03/Aircraft Design and Performance Project</id>
   <content type="html">
&lt;p&gt;
    &lt;figure style=&quot;margin:0; text-align:center&quot;&gt;
        &lt;object data=&quot;/media/aircraft-design/Mem_425_finalversion.pdf&quot; type=&quot;application/pdf&quot; width=&quot;100%&quot; height=&quot;600&quot;&gt;
          &lt;p&gt;Error: This browser cannot display the file (application/pdf). &lt;a href=&quot;/media/aircraft-design/Mem_425_finalversion.pdf&quot;&gt;Download file.&lt;/a&gt;&lt;/p&gt;
        &lt;/object&gt;
      
      &lt;p&gt;PDF file: &lt;a href=&quot;/media/aircraft-design/Mem_425_finalversion.pdf&quot;&gt;Download PDF (application/pdf)&lt;/a&gt;&lt;/p&gt;
      
      
    &lt;/figure&gt;
  &lt;/p&gt;

</content>
 </entry>
 

</feed>
