diff --git a/src/AstroHelper.jl b/src/AstroHelper.jl index c024c71..fe1e731 100644 --- a/src/AstroHelper.jl +++ b/src/AstroHelper.jl @@ -1,4 +1,5 @@ module AstroHelper + using LinearAlgebra using DataFrames diff --git a/src/aeStructures.jl b/src/aeStructures.jl index 6dc928f..79e7e89 100644 --- a/src/aeStructures.jl +++ b/src/aeStructures.jl @@ -27,5 +27,35 @@ struct Section end -export Section +function bending_moment(s::Section, Mx, My) + s.data.σz = (My / s.Iyy) .* s.data.x + (Mx / s.Ixx) .* s.data.y + + s.data.σz +end + +function shear_stress(s::Section, Vx, Vy) + s.data.Δq = -(Vx / s.Iyy) * s.data.A .* s.data.x - (Vy / s.Ixx) * s.data.A .* s.data.y + + s.data.Δq +end + + +function shear_flow(s::Section) + if !("Δq" in names(s.data)) + error("Missing Δq from Section! Run shear_stress function.") + end + + q = s.data.Δq + + s.data.q = [q[1], q[1] + q[2], q[1] + q[2] + q[3], sum(q)] + s.data.q + +end + +function total_shear(s::Section, qo, thickness) + s.data.τ = (s.q + qo) ./ thickness + s.data.τ +end + +export Section \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 75a8836..53853bd 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,6 +1,6 @@ using Test -import AstroHelper: Quaternion, Section +import AstroHelper: Quaternion, Section,bending_moment, shear_stress, shear_flow, total_shear @testset "AeroHelper" begin @@ -23,8 +23,19 @@ import AstroHelper: Quaternion, Section @testset "Section" begin + tolerance = 1e-5 + complist(a, b) = abs(sum(a .- b)) < tolerance s = Section([2,1,0.5,0.5,0.75,0.75,2], [0,12,24,24,16,8,0], [0,0,0,6,7,8,9]) @test all([s.Ixx == 126.075 s.Iyy == 571.2 s.Ixy ≈ -28.2]) + s = Section([1, .5, .5, 1], [-10, 20, 20, -10], [-5, -4, 4, 5]) + @test all([s.Ixx == 66 s.Iyy == 600 s.Ixy == 0]) + + @test complist(bending_moment(s, -160000, -120000), [14121.2121 5696.9696 -13696.9696 -10121.2121]) + + @test complist(shear_stress(s, 600, 800), [70.6061 14.2424 -34.2424 -50.6061]) + + @test abs(shear_flow(s)[end]) < tolerance + end end \ No newline at end of file