You are on page 1of 4

question2-me232

April 1, 2024

[ ]: import numpy as np
import matplotlib.pyplot as plt
import math

[ ]: import sympy as sp

theta=90*(math.pi/180)
rho=32.7304*(math.pi/180)
sigma=45*(math.pi/180)
psi=149.9837*(math.pi/180)
delta=74.14*(math.pi/180)
alpha = sp.Symbol('alpha')
v=sp.Symbol('v')

beta_arr=[]
alpha_arr=[]
v_arr=[]
for i in range (7):
beta=i*15*(math.pi/180)

f1=sp.Eq(sp.cos(theta+beta)+1.5*sp.cos(rho+alpha)-1.5*sp.cos(psi+v)-1.5*sp.
↪cos(sigma+0.5*beta)-1.5,0)
f2=sp.Eq(sp.sin(theta+beta)+1.5*sp.sin(rho+alpha)-1.5*sp.sin(psi+v)-1.5*sp.
↪sin(sigma+0.5*beta),0)

solution = sp.solve((f1, f2), (alpha,v))

beta_arr.append((beta)
alpha_arr.append(solution[1][0])
v_arr.append(solution[1][1])

[ ]: beta_dot=1
v_dot = sp.Symbol('v_dot')
alpha_dot=sp.Symbol('alpha_dot')
v_dot_arr=[]
alpha_dot_arr=[]
for i in range (7):
beta=i*15*(math.pi/180)

1
f1=sp.Eq(-sp.sin(theta+beta)-1.5*sp.sin(rho+alpha_arr[i])*alpha_dot+1.5*sp.
↪sin(psi+v_arr[i])*v_dot+0.5*1.5*sp.sin(sigma+0.5*beta),0)
f2=sp.Eq(sp.cos(theta+beta)+1.5*sp.cos(rho+alpha_arr[i])*alpha_dot-1.5*sp.
↪cos(psi+v_arr[i])*v_dot-0.5*1.5*sp.cos(sigma+0.5*beta),0)

solution1 = sp.solve((f1, f2), (v_dot,alpha_dot))


print(solution1)

v_dot_arr.append(solution1[v_dot])
alpha_dot_arr.append(solution1[alpha_dot])

{v_dot: 0.511321279001714, alpha_dot: -0.106025215387903}


{v_dot: 0.573446591965971, alpha_dot: -0.0648307737227892}
{v_dot: 0.611410851412308, alpha_dot: -0.0146366578639197}
{v_dot: 0.614305281337420, alpha_dot: 0.0580620552251469}
{v_dot: 0.554892575073203, alpha_dot: 0.183442132793103}
{v_dot: 0.407587099684660, alpha_dot: 0.389997155148272}
{v_dot: 0.244568869458047, alpha_dot: 0.608372307012541}

[ ]: v_dot2 = sp.Symbol('v_dot2')
alpha_dot2=sp.Symbol('alpha_dot2')
v_dot2_arr=[]
alpha_dot2_arr=[]
for i in range (7):
beta=i*15*(math.pi/180)

f1=sp.Eq(-1.5*sp.sin(rho+alpha_arr[i])*alpha_dot2+1.5*sp.
↪sin(psi+v_arr[i])*v_dot2,sp.cos(theta+beta)+0.1*sp.sin(theta+beta)-0.25*1.
↪5*sp.cos(sigma+0.5*beta)-0.05*1.5*sp.sin(sigma+0.5*beta)+1.5*sp.

↪cos(rho+alpha_arr[i])*alpha_dot_arr[i]*alpha_dot_arr[i]+1.5*sp.

↪cos(psi+v_arr[i])*v_dot_arr[i]*v_dot_arr[i])

f2=sp.Eq(1.5*sp.cos(rho+alpha_arr[i])*alpha_dot2-1.5*sp.
↪cos(psi+v_arr[i])*v_dot2,sp.sin(theta+beta)-0.1*sp.cos(theta+beta)-0.25*1.

↪5*sp.sin(sigma+0.5*beta)+0.05*1.5*sp.cos(sigma+0.5*beta)+1.5*sp.

↪sin(rho+alpha_arr[i])*alpha_dot_arr[i]*alpha_dot_arr[i]+1.5*sp.

↪sin(psi+v_arr[i])*v_dot_arr[i]*v_dot_arr[i])

solution1 = sp.solve((f1, f2), (alpha_dot2,v_dot2))

v_dot2_arr.append(solution1[v_dot2])
alpha_dot2_arr.append(solution1[alpha_dot2])

[ ]: X=[]
Y=[]
for i in range(7):
X.append(1*math.cos(theta+beta_arr[i])+1*math.cos(rho+delta+alpha_arr[i]))
Y.append(1*math.sin(theta+beta_arr[i])+1*math.sin(rho+delta+alpha_arr[i]))
X

2
[ ]: [-0.29020804686394364,
-0.9189059001723847,
0.7297327559447853,
-1.113977796885384,
0.012908762310590127,
0.026449234413184586,
-1.3747831113227178]

[ ]: Y

[ ]: [1.9569635779565568,
0.20355885606056467,
1.1203165070723535,
1.4900975726852164,
0.004035295674038708,
1.8541883431995765,
0.42876410642085644]

[ ]: from sympy.vector import CoordSys3D


from sympy import symbols, solve

[ ]: N = CoordSys3D('N')

[ ]: for i in range(7):
W1 = 1*math.cos(theta+beta_arr[i]) * N.i + 1*math.sin(theta+beta_arr[i])* N.
↪j

L1 = 1*math.cos(rho+delta+alpha_arr[i]) * N.i + 1*math.


↪sin(rho+delta+alpha_arr[i])* N.j

omega1=N.k
omega2=(alpha_dot_arr[i])*N.k
vel=omega1.cross(W1)+omega2.cross(L1)
print(vel)

(-0.898537730528778)*N.i + 0.0307693706760523*N.j
0.822135946173841*N.i + (-0.632873123490414)*N.j
(-0.140111486171277)*N.i + 0.991812256252584*N.j
(-0.581338842048116)*N.i + (-0.866178157463694)*N.j
0.776960068743069*N.i + 0.251263521559205*N.j
(-1.28539907573471)*N.i + 0.246863026957995*N.j
(-0.0853701720142137)*N.i + (-1.18649382398165)*N.j

[ ]: for i in range(7):
W1 = 1*math.cos(theta+beta_arr[i]) * N.i + 1*math.sin(theta+beta_arr[i])* N.
↪j

L1 = 1*math.cos(rho+delta+alpha_arr[i]) * N.i + 1*math.


↪sin(rho+delta+alpha_arr[i])* N.j

omega1=N.k

3
omega2=(alpha_dot_arr[i])*N.k
alpha1=0.1*N.k
alpha2=(alpha_dot2_arr[i])*N.k
acc=alpha1.cross(W1)+alpha2.cross(L1)+omega1.cross(omega1.cross(W1))+omega2.
↪cross(omega2.cross(L1))

print(acc)

(-0.791065313572969)*N.i + (-1.22131883185955)*N.j
(-0.219851873090401)*N.i + 0.426456972750723*N.j
(-2.26063040554167)*N.i + (-0.391803232417067)*N.j
(-0.822514005708695)*N.i + (-1.05588840695549)*N.j
(-2.09154892790855)*N.i + 0.373342668424391*N.j
(-2.04333370115846)*N.i + (-1.65192207268304)*N.j
0.218014199014638*N.i + (-0.458652706693584)*N.j

You might also like