Altmetrics
Downloads
142
Views
118
Comments
0
A peer-reviewed article of this preprint also exists.
This version is not peer-reviewed
Submitted:
31 December 2023
Posted:
03 January 2024
You are already at the latest version
Variable/acronym | Definition | Variable/acronym | Definition |
Centerline unit vector | Appendage stiffness | ||
Control torque | Flexible masses and inertias | ||
Main body inertia mass moment | Flexible inertia mass moment | ||
Main body rotation angle | Translation & rotation angles |
Variable/acronym | Definition | Variable/acronym | Definition |
Centerline unit vector | Appendage stiffness | ||
Control torque | Flexible masses and inertias | ||
Main body inertia mass moment | Flexible inertia mass moment | ||
Main body rotation angle | Translation & rotation angles |
Variable/acronym | Definition |
, | Externally applied force & torque expressed in inertial coordinates |
, | Externally applied force & torque expressed in non-inertial coordinates |
, | Body’s mass & mass moment of inertia |
Resulting accelerations expressed in inertial coordinates | |
, | Angular velocity and acceleration vectors |
; | Translational velocity and acceleration vectors |
Flexible member stiffnesses | |
Assembled matrices of masses and stiffnesses |
W2 | θ2 | W3 | θ3 | W4 | θ4 | W5 | θ5 | U6 | θ6 | u7 | θ7 | u8 | θ8 | |
W2 | 958.8179 | 0.0000 | -479.409 | 59.9261 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
θ2 | 0.0000 | 19.9754 | -59.9261 | 4.9938 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
W3 | -479.409 | -59.926 | 958.8179 | 0.0000 | -479.409 | 59.9261 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
θ3 | 59.9261 | 4.9938 | 0.0000 | 19.9754 | -59.9261 | 4.9938 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
W4 | 0 | 0 | -479.409 | -59.926 | 958.8179 | 0.0000 | -479.409 | 59.9261 | 0 | 0 | 0 | 0 | 0 | 0 |
θ4 | 0 | 0 | 59.9261 | 4.9938 | 0.0000 | 19.9754 | -59.9261 | 4.9938 | 0 | 0 | 0 | 0 | 0 | 0 |
W5 | 0 | 0 | 0 | 0 | -479.409 | -59.926 | 479.409 | -59.926 | 0 | 0 | 0 | 0 | 0 | 0 |
θ5 | 0 | 0 | 0 | 0 | 59.9261 | 4.9938 | -59.9261 | 19.9754 | -59.9261 | 4.9938 | 0 | 0 | 0 | 0 |
U6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -59.926 | 958.8179 | 0.0000 | -479.409 | 59.9261 | 0 | 0 |
θ6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4.9938 | 0.0000 | 19.9754 | -59.9261 | 4.9938 | 0 | 0 |
U7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -479.409 | -59.926 | 958.8179 | 0.0000 | -479.409 | 59.9261 |
θ7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 59.9261 | 4.9938 | 0.0000 | 19.9754 | -59.9261 | 4.9938 |
U8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -479.409 | -59.926 | 479.4089 | -59.926 |
θ8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 59.9261 | 4.9938 | -59.9261 | 9.9877 |
Mass | W2 | θ2 | W3 | θ3 | W4 | θ4 | W5 | θ5 | U6 | θ6 | u7 | θ7 | u8 | θ8 |
W2 | 0.4761 | 0.0000 | 0.0037 | -0.0002 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
θ2 | 0.0000 | 0.0000 | 0.0002 | -0.0001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
W3 | 0.0037 | 0.0002 | 4.76E-01 | 0.0000 | 0.0037 | -0.0002 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
θ3 | -0.0002 | -0.0001 | 0.0000 | 0.0000 | 0.0002 | -0.0001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
W4 | 0 | 0 | 0.0037 | 0.0002 | 0.4761 | 0.0000 | 0.0037 | -0.0002 | 0 | 0 | 0 | 0 | 0 | 0 |
θ4 | 0 | 0 | -0.0002 | -0.0001 | 0.0000 | 0.0000 | 0.0002 | -0.0001 | 0 | 0 | 0 | 0 | 0 | 0 |
W5 | 0 | 0 | 0 | 0 | 0.0037 | 0.0002 | 2.63E+00 | -0.0004 | 0 | 0 | 0 | 0 | 0 | 0 |
θ5 | 0 | 0 | 0 | 0 | -0.0002 | -0.0001 | -0.0004 | 0.0000 | 0.0002 | -0.0001 | 0 | 0 | 0 | 0 |
U6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0002 | 4.76E-01 | 0.0000 | 0.0037 | -0.0002 | 0 | 0 |
θ6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0001 | 0.00E+00 | 0.0000 | 0.0002 | -0.0001 | 0 | 0 |
U7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0037 | 0.0002 | 0.4761 | 0.0000 | 0.0037 | -0.0002 |
θ7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0002 | -0.0001 | 0.0000 | 0.0000 | 0.0002 | -0.0001 |
U8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0037 | 0.0002 | 4.66E-01 | -0.0004 |
θ8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0002 | -0.0001 | -0.0004 | 0.0000 |
1809.5 | 1415.5 | 1042.2 | 774.3 | 596.8 |
478.8 | 410.9 | 54.9 | 43.7 | 30.9 |
15.8 | 10.2 | 0.7 | 2.1 |
-1 | 3 | 2 | 0 | -3 | -5 | 3 | 1501 | 383 | 1037 | 443 | -692 | 181 | 240 |
-1097 | 3080 | 4481 | 4992 | 4505 | 3173 | -1154 | -4544 | -136 | 2388 | 2221 | 4049 | 1395 | 1669 |
-1 | 1 | -3 | -7 | -5 | 1 | -2 | -1569 | -215 | 204 | 667 | 1425 | -670 | -712 |
-2158 | 4857 | 3958 | 28 | -3814 | -4883 | 2208 | -943 | -2040 | -7064 | -867 | 912 | -2460 | -1864 |
-1 | -1 | -5 | 0 | 7 | 3 | 2 | 1296 | -125 | -1076 | 125 | 995 | -1385 | -1057 |
-3111 | 4495 | -1058 | -4992 | -1185 | 4481 | -3142 | 5806 | 2118 | 368 | -2572 | 4061 | -3204 | -683 |
0 | 0 | 0 | 1 | 1 | -1 | 1 | -99 | 30 | 113 | -105 | 248 | 2247 | 954 |
-3902 | 2199 | -4861 | -47 | 4875 | -2071 | 3937 | -4288 | -3426 | 4504 | 1878 | 4753 | -3652 | 1689 |
0 | -3 | 4 | 0 | -6 | 6 | 1 | 536 | -918 | 135 | 898 | 754 | -946 | 736 |
-4493 | -1062 | -3138 | 4985 | -3062 | -1232 | -4519 | 815 | 2292 | -2423 | 3091 | 891 | -3893 | 3998 |
0 | 2 | 5 | -7 | 7 | -4 | 0 | -294 | 753 | 446 | 880 | 410 | -1936 | 1905 |
-4872 | -3903 | 2129 | 75 | -2232 | 3920 | 4832 | -2471 | 3385 | -210 | -3658 | 3392 | -4013 | 5178 |
-1 | -2 | 2 | -3 | 4 | -5 | -6 | 90 | -261 | 192 | -699 | -732 | -2945 | 3254 |
-5031 | -5052 | 5012 | -5030 | 5062 | -4984 | -4965 | 3580 | -7823 | 3941 | -7649 | -5153 | -4046 | 5502 |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
7 | 0 | 0.099 | -1.064 | -3.382 | -0.736 | -26.635 | 0 | 1.392E-04 | -5.066E-04 | -3.298E-04 | -4.662E-05 | -8.609E-04 |
8 | 0 | -0.659 | 1.642 | 5.218 | 1.136 | 41.100 | 0 | -9.264E-04 | 7.817E-04 | 5.088E-04 | 7.194E-05 | 1.328E-03 |
9 | 0 | 0.188 | -6.435 | -6.433 | -1.401 | -50.670 | 0 | 2.649E-04 | -3.064E-03 | -6.273E-04 | -8.869E-05 | -1.638E-03 |
10 | 0 | 0.025 | -0.270 | -106.024 | -0.187 | -6.755 | 0 | 3.531E-05 | -1.285E-04 | -1.034E-02 | -1.182E-05 | -2.183E-04 |
11 | 0 | 0.002 | -0.025 | -0.079 | -249.447 | -0.620 | 0 | 3.241E-06 | -1.179E-05 | -7.677E-06 | -1.579E-02 | -2.004E-05 |
12 | 0 | 0.022 | -0.233 | -0.742 | -0.162 | -962.998 | 0 | 3.055E-05 | -1.112E-04 | -7.237E-05 | -1.023E-05 | -3.113E-02 |
clear all; close all; clc; | |||||||
%This block of code establishes the properties of each beam element a=0.0254; b=0.0016; L=0.25; E=72*10^9; I=a*b^3/12; Li=[12 6*L -12 6*L;6*L 4*L^2 -6*L 2*L^2;-12 -6*L 12 -6*L;6*L 2*L^2 -6*L 4*L^2]; k_beam=E*I/L^3*[Li]; | |||||||
rho_beam=2.8*10^3; A_beam=a*b; mb=rho_beam*A_beam; |
%Beam density kg/m^3 %Beam cross sectional area %Beam mass per unit length |
||||||
%This block creates the empty stiffness matrix [k] k=zeros(14,14); | |||||||
% This block fills in the stiffness matrix components | |||||||
% Row 1 components start at index=1 k(1,1)=k_beam(3,3)+k_beam(1,1); k(1,2)=k_beam(3,4)+k_beam(1,2); k(1,3)=k_beam(1,3); k(1,4)=k_beam(1,4); |
% Row 2 components start at index=15 k(2,1)=k_beam(4,3)+k_beam(2,1); k(2,2)=k_beam(4,4)+k_beam(2,2); k(2,3)=k_beam(2,3); k(2,4)=k_beam(2,4); |
||||||
% Row 3 components start at index=29 k(3,1)=k_beam(3,1); k(3,2)=k_beam(3,2); k(3,3)=k_beam(3,3)+k_beam(1,1); k(3,4)=k_beam(3,4)+k_beam(1,2); k(3,5)=k_beam(1,3); k(3,6)=k_beam(1,4); |
% Row 4 components start at index=43 k(4,1)=k_beam(4,1); k(4,2)=k_beam(4,2); k(4,3)=k_beam(4,3)+k_beam(2,1); k(4,4)=k_beam(4,4)+k_beam(2,2); k(4,5)=k_beam(2,3); k(4,6)=k_beam(2,4); |
||||||
% Row 5 components start at index=59 k(5,3)=k_beam(3,1); k(5,4)=k_beam(3,2); k(5,5)=k_beam(3,3)+k_beam(1,1); k(5,6)=k_beam(3,4)+k_beam(1,2); k(5,7)=k_beam(1,3); k(5,8)=k_beam(1,4); |
% Row 6 components start at index=73 k(6,3)=k_beam(4,1); k(6,4)=k_beam(4,2); k(6,5)=k_beam(4,3)+k_beam(2,1); k(6,6)=k_beam(4,4)+k_beam(2,2); k(6,7)=k_beam(2,3); k(6,8)=k_beam(2,4); |
||||||
% Row 7 components start at index=89 k(7,5)=k_beam(3,1); k(7,6)=k_beam(3,2); k(7,7)=k_beam(3,3); k(7,8)=k_beam(3,4); |
% Row 8 components start at index=103 k(8,5)=k_beam(4,1); k(8,6)=k_beam(4,2); k(8,7)=k_beam(4,3); k(8,8)=k_beam(4,4)+k_beam(2,2); k(8,9)=k_beam(2,3); k(8,10)=k_beam(2,4); |
||||||
% Row 9 components start at index=120 k(8,10)=k_beam(2,4); k(9,9)=k_beam(3,3)+k_beam(1,1); k(9,10)=k_beam(3,4)+k_beam(1,2); k(9,11)=k_beam(1,3); k(9,12)=k_beam(1,4); |
% Row 10 components start at index=134 k(10,8)=k_beam(4,2); k(10,9)=k_beam(4,3)+k_beam(2,1); k(10,10)=k_beam(4,4)+k_beam(2,2); k(10,11)=k_beam(2,3); k(10,12)=k_beam(2,4); |
||||||
% Row 11 components start at index=149 k(11,9)=k_beam(3,1); k(11,10)=k_beam(3,2); k(11,11)=k_beam(3,3)+k_beam(1,1); k(11,12)=k_beam(3,4)+k_beam(1,2); k(11,13)=k_beam(1,3); k(11,14)=k_beam(1,4); |
% Row 12 components start at index=163 k(12,9)=k_beam(4,1); k(12,10)=k_beam(4,2); k(12,11)=k_beam(4,3)+k_beam(2,1); k(12,12)=k_beam(4,4)+k_beam(2,2); k(12,13)=k_beam(2,3); k(12,14)=k_beam(2,4); |
||||||
% Row 13 components start at index=179 k(13,11)=k_beam(3,1); k(13,12)=k_beam(3,2); k(13,13)=k_beam(3,3); k(13,14)=k_beam(3,4); |
% Row 14 components start at index=193 k(14,11)=k_beam(4,1); k(14,12)=k_beam(4,2); k(14,13)=k_beam(4,3); k(14,14)=k_beam(4,4); |
||||||
%Display stiffness matrix to check k=k; | |||||||
%END STIFFNESS MATRIX. START MASS MATRIX | |||||||
%Assemble individual beam inertia matrix | |||||||
I_beam=ones(1,8); I_beam=[I_beam.*I]; I_beam(1)=0; |
%Creates empty matrix of I's for eight node points %Fill in matrix values with beam inertia %First node point inertia = 0 |
||||||
%This block of code creates the individual beam mass matrix "m_beam" mi=[156 22*L 54 -13*L;22*L 4*L^2 13*L -3*L^2;54 13*L 156 -22*L;-13*L -3*L^2 -22*L 4*L^2]; m_beam=mb*L/420*mi; | |||||||
%This block of code establishes the value of each point mass (mp) %and the system point mass matrix (M) | |||||||
mp=0.455; | %Point masses, M | ||||||
M=[0 mp mp mp 2*mp mp mp mp]; | %Matrix of 8 point masses (0 First point mass) | ||||||
%Creates a 14x14 empty mass matrix [m] m=zeros(14,14); | |||||||
%Fill in the system mass matrix components | |||||||
% Row 1 components start at index=1 m(1,1)=m_beam(3,3)+m_beam(1,1)+M(2); m(1,2)=m_beam(3,4)+m_beam(1,2); m(1,3)=m_beam(1,3); m(1,4)=m_beam(1,4); |
% Row 2 components start at index=15 m(2,1)=m_beam(4,3)+m_beam(2,1); m(2,2)=m_beam(4,4)+m_beam(2,2); m(2,3)=m_beam(2,3); m(2,4)=m_beam(2,4); |
||||||
% Row 3 components start at index=29 m(3,1)=m_beam(3,1); m(3,2)=m_beam(3,2); m(3,3)=m_beam(3,3)+m_beam(1,1)+M(3); m(3,4)=m_beam(3,4)+m_beam(1,2); m(3,5)=m_beam(1,3); m(3,6)=m_beam(1,4) |
% Row 4 components start at index=43 m(4,1)=m_beam(4,1); m(4,2)=m_beam(4,2); m(4,3)=m_beam(4,3)+m_beam(2,1); m(4,4)=m_beam(4,4)+m_beam(2,2); m(4,5)=m_beam(2,3); m(4,6)=m_beam(2,4); |
||||||
% Row 5 components start at index=59 m(5,3)=m_beam(3,1); m(5,4)=m_beam(3,2); m(5,5)=m_beam(3,3)+m_beam(1,1)+M(4); m(5,6)=m_beam(3,4)+m_beam(1,2); m(5,7)=m_beam(1,3); m(5,8)=m_beam(1,4); |
% Row 6 components start at index=73 m(6,3)=m_beam(4,1); m(6,4)=m_beam(4,2); m(6,5)=m_beam(4,3)+m_beam(2,1); m(6,6)=m_beam(4,4)+m_beam(2,2); m(6,7)=m_beam(2,3); m(6,8)=m_beam(2,4); |
||||||
% Row 7 components start at index=89 m(7,5)=m_beam(3,1); m(7,6)=m_beam(3,2); m(7,7)=m_beam(3,3)+3*mb+M(5)+M(6)+M(7)+M(8); m(7,8)=m_beam(3,4); | |||||||
% Row 8 components start at index=103 m(8,5)=m_beam(4,1); m(8,6)=m_beam(4,2); m(8,7)=m_beam(4,3); m(8,8)=m_beam(4,4)+m_beam(2,2); m(8,9)=m_beam(2,3); m(8,10)=m_beam(2,4); |
% Row 9 components start at index=120 m(9,8)=m_beam(3,2); m(9,9)=m_beam(3,3)+m_beam(1,1)+M(6); m(9,10)=m_beam(3,4)+m_beam(1,2); m(9,11)=m_beam(1,3); m(9,12)=m_beam(1,4); |
||||||
% Row 10 components start at index=134 m(10,8)=m_beam(4,2); m(10,9)=m_beam(4,3)+m_beam(2,1); m(10,10)=m_beam(4,4)+m_beam(2,2); m(10,11)=m_beam(2,3); m(10,12)=m_beam(2,4); |
% Row 11 components start at index=149 m(11,9)=m_beam(3,1); m(11,10)=m_beam(3,2); m(11,11)=m_beam(3,3)+m_beam(1,1)+M(7); m(11,12)=m_beam(3,4)+m_beam(1,2); m(11,13)=m_beam(1,3); m(11,14)=m_beam(1,4); |
||||||
% Row 12 components start at index=163 m(12,9)=m_beam(4,1); m(12,10)=m_beam(4,2); m(12,11)=m_beam(4,3)+m_beam(2,1); m(12,12)=m_beam(4,4)+m_beam(2,2); m(12,13)=m_beam(2,3); m(12,14)=m_beam(2,4); | |||||||
% Row 13 components start at index=179 m(13,11)=m_beam(3,1); m(13,12)=m_beam(3,2); m(13,13)=m_beam(3,3)+M(8); m(13,14)=m_beam(3,4); |
% Row 14 components start at index=193 m(14,11)=m_beam(4,1); m(14,12)=m_beam(4,2); m(14,13)=m_beam(4,3); m(14,14)=m_beam(4,4); |
||||||
%Display the system mass matrix to check m=m; | |||||||
%Calculate the natural frequencies and normal modes [NormalModes,EigenValues]=eig(inv(m)*k); NaturalFrequencies=diag(EigenValues^0.5); ModeShapes=NormalModes; | |||||||
%Check Orthogonality like Homework 1 confirm diagonal matrix of 1's %to satisfy equation 24 on slide 17 OrthoMass=NormalModes'*m*NormalModes; OrthoStiff=NormalModes'*k*NormalModes; StiffCheck=OrthoStiff/EigenValues; Equation24_OrthoCheck=diag(diag(StiffCheck/OrthoMass)); | |||||||
%Spacecraft Radius to be used designating rigid modal coordinate R=0.381; | |||||||
FeeE=NormalModes; | %Designate Elastic mode shapes array FeeE | ||||||
Omega=NaturalFrequencies; | %Designate variable name 'Omega' as natural frequencies | ||||||
%Designate Rigid modal coordinate FeeR FeeR=[R+L 1 R+L*2 1 R+L*3 1 R+L*4 1 -L 1 -L*2 1 -L*3 1]; | |||||||
Di=FeeE'*m*diag(FeeR); | %Calculate Rigid-Elastic Coupling Coefficient | ||||||
DiCheck=det(Di); | %Confirm Di is singular...det(Di=0) | ||||||
Z=0.0005; Izz=14; |
|||||||
w=diag(NaturalFrequencies); | %Generate a diagonal matrix of natural frequency | ||||||
Iw=0.0912; | |||||||
Td=0; Tc=0.1; T=Td+Tc; |
%Disturbance Torque %Control Torque is Iw*qddot_wheel %Total Torque is sum of disturbance and control torques |
||||||
%Start State Space Development | |||||||
NatFreq = diag(EigenValues).^0.5; | |||||||
r = 0.381; | %Radius of the wheel (large rigid body) | ||||||
freqs = sqrt(EigenValues); % NatFreq = EigenValues(1:5,1:5); freqs = freqs(1:5,1:5); | |||||||
zeta = 0.0005; | %Given damping ratio for all modes | ||||||
Izz = 14; | |||||||
phi_E = NormalModes(1:14,1:5); phi_R = [r+L,1,r+2*L,1,r+3*L,1,r+4*L,1,-L,1,-2*L,1,-3*L,1]'; | |||||||
M_II = m; Di = [phi_E'*M_II*phi_R]; M_state = [Izz Di'; Di eye(5)]; | |||||||
C_damp = [zeros(6,6)]; C_damp(2:6,2:6) = 2*zeta*freqs; K=[zeros(6,6)]; K(2:6,2:6) = NatFreq; | |||||||
A = [zeros(6),eye(6,6); -inv(M_state)*K, -inv(M_state)*C_damp]; Bprime = [1;0;0;0;0;0]; B = [0 0 0 0 0 0 (inv(M_state)*Bprime)']'; C = zeros(12,12); C(1,1)=1; D = zeros(12,1); | |||||||
[Gnum,Gden] = ss2tf(A,B,C,D); G1 = tf(Gnum(1,:),Gden) | |||||||
NUM=[1.998e-015 0.1268 0.007582 166.9 5.591 4.718e004 771 3.412e006 1.218e004 1.576e007 1.475e004 7.11e006]; DEN=[1 0.06125 1326 46.15 3.781e005 6683 2.808e007 1.388e005 1.813e008 2.065e005 9.954e007 0 0]; | |||||||
G=tf(NUM,DEN); | |||||||
%Put PID controller Transfer function into workspace It=14; Z=0.516931; Bandwidth=4; wn=Bandwidth; T=10/Z/wn; Kd=2*Z*wn*It+It/T; Kp=wn^2+2*Z*wn/T; Ki=wn^2/T; PID=tf([Kd Kp Ki],[0 1 0]); | |||||||
%DESIGN FILTERS TO SMOOTH OUT MODE 1 %Design Bandpass filter for w = 10^-0.1478 = 0.711541 Hz wz=0.711541;Zz=0.1;wp=wz;Zp=0.0005; BP1=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); PID_BP1=PID*BP1; | |||||||
%Design Notch filter for w = 10^-0.109 = 0.778037 Hz wz=0.778037;Zz=0.0005;wp=wz;Zp=0.1; Notch1=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); Mode_1=PID*BP1*Notch1; | |||||||
%DESIGN FILTERS TO SMOOTH OUT MODE 2 %Design Bandpass filter for w = 10^0.3223 wz=10^0.3223;Zz=0.1;wp=wz;Zp=0.0005; BP2=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); | |||||||
%Design Notch filter for w = 10^0.405 wz=10^0.405;Zz=0.0006;wp=wz;Zp=0.1; Notch2=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); Mode_2=Mode_1*BP2*Notch2; | |||||||
%Design Lead filter for wz~1, wp~3 %wz=1;Zz=1;wp=3;Zp=1; %Lead=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); %Mode_2=Mode_2*Lead; | |||||||
%DESIGN FILTERS TO SMOOTH OUT MODE 3 %Design Bandpass filter for w = 10^1.0110 wz=10^1.0110;Zz=0.1;wp=wz;Zp=0.0005; BP3=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); | |||||||
%Design Notch filter for w = 10^1.0128 wz=10^1.0128;Zz=0.0005;wp=wz;Zp=0.1; Notch3=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); Mode_3=Mode_2*BP3*Notch3; | |||||||
%DESIGN FILTERS TO SMOOTH OUT MODE 4 %Design Bandpass filter for w = 10^1.49035 wz=10^1.49035;Zz=0.1;wp=wz;Zp=0.0005; BP4=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); | |||||||
%Design Notch filter for w = 10^1.492 wz=10^1.492;Zz=0.0005;wp=wz;Zp=0.1; Notch4=tf([1/wz^2 2*Zz/wz 1],[1/wp^2 2*Zp/wp 1]); Mode_4=Mode_3*BP4*Notch4; | |||||||
%CALCULATE SYSTEM NATURAL FREQUENCIES [NaturalFrequencies,Damping,EigenValue]=damp(G); NaturalFrequencies=NaturalFrequencies; | |||||||
[mag1,phase1,wout1] = bode(G); Mag1=20*log10(mag1(:)); Phase1=phase1(:); [mag2,phase2,wout2] = bode(G*PID); Mag2=20*log10(mag2(:)); Phase2=phase2(:); [mag3,phase3,wout3] = bode(G*PID*BP1); Mag3=20*log10(mag3(:)); Phase3=phase3(:); [mag4,phase4,wout4] = bode(G*PID*BP1*Notch1); Mag4=20*log10(mag4(:)); Phase4=phase4(:); [mag5,phase5,wout5] = bode(G*PID*BP1*Notch1*BP2); Mag5=20*log10(mag5(:)); Phase5=phase5(:); [mag6,phase6,wout6] = bode(G*PID*BP1*Notch1*BP2*Notch2); Mag6=20*log10(mag6(:)); Phase6=phase6(:); [mag7,phase7,wout7] = bode(G*PID*BP1*Notch1*BP2*Notch2*BP3); Mag7=20*log10(mag7(:)); Phase7=phase7(:); [mag8,phase8,wout8] = bode(G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3); Mag8=20*log10(mag8(:)); Phase8=phase8(:); [mag9,phase9,wout9] = bode(G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3*BP4); Mag9=20*log10(mag9(:)); Phase9=phase9(:); [mag10,phase10,wout10] = bode(G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3*BP4*Notch4); Mag10=20*log10(mag10(:)); Phase10=phase10(:); figure(1); hold on; semilogx(wout1,Mag1,'--','LineWidth',1); semilogx(wout2,Mag2,'LineWidth',1); semilogx(wout3,Mag3,'--','LineWidth',3); semilogx(wout4,Mag4,':','LineWidth',2); hold off; grid on; axis([0.5,40, -100, 150 ]); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); legend('Flexible space robot','PID','PID + Bandpass','PID + Notch + Bandpass') figure(2); hold on; set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); semilogx(wout1,Phase1,'--','LineWidth',1); semilogx(wout2,Phase2,'LineWidth',1); semilogx(wout3,Phase3,'--','LineWidth',3); semilogx(wout4,Phase4,':','LineWidth',2); hold off; grid on; figure(3); hold on; semilogx(wout2,Mag2,'--','LineWidth',1); semilogx(wout4,Mag4,'LineWidth',1); semilogx(wout5,Mag5,'--','LineWidth',3); semilogx(wout6,Mag6,':','LineWidth',2); hold off; grid on; axis([0.5,40, -100, 150 ]); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); legend('PID controlled Flexible space robot','PID+Mode 1','PID + Mode 1 + Bandpass','PID + Mode 1 + Notch + Bandpass') figure(4); hold on; set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); semilogx(wout2,Phase2,'--','LineWidth',1); semilogx(wout4,Phase4,'LineWidth',1); semilogx(wout5,Phase5,'--','LineWidth',3); semilogx(wout6,Phase6,':','LineWidth',2); hold off; grid on; figure(5); hold on; semilogx(wout2,Mag2,'--','LineWidth',1); semilogx(wout4,Mag4,'LineWidth',1); semilogx(wout6,Mag6,'--','LineWidth',3); semilogx(wout7,Mag7,':','LineWidth',2); semilogx(wout8,Mag8,':','LineWidth',2); hold off; grid on; axis([0.5,40, -100, 150 ]); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); legend('PID controlled Flexible space robot','PID + Mode 1','PID + Mode 2','PID + Mode 1 + Mode 2 + Bandpass','PID + Mode 1 + Mode 2 + Bandpass + Notch') figure(6); hold on; set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); semilogx(wout2,Phase2,'--','LineWidth',1); semilogx(wout4,Phase4,'LineWidth',1); semilogx(wout6,Phase6,'--','LineWidth',3); semilogx(wout7,Phase7,':','LineWidth',2); semilogx(wout8,Phase8,':','LineWidth',2); hold off; grid on; figure(7); hold on; semilogx(wout2,Mag2,'--','LineWidth',1); semilogx(wout4,Mag4,'LineWidth',1); semilogx(wout6,Mag6,'--','LineWidth',3); semilogx(wout8,Mag8,':','LineWidth',2); semilogx(wout9,Mag9,':','LineWidth',2); semilogx(wout10,Mag10,':','LineWidth',2); hold off; grid on; axis([0.5,40, -100, 150 ]); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); legend('PID controlled Flexible space robot','PID + Mode 1','PID + Mode 2','PID + Mode 1 + Mode 2 + Mode 3','PID + Mode 1 + Mode 2 + Mode 3 + Bandpass + Notch') figure(8); hold on; set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); semilogx(wout2,Phase2,'--','LineWidth',1); semilogx(wout4,Phase4,'LineWidth',1); semilogx(wout6,Phase6,'--','LineWidth',3); semilogx(wout8,Phase8,':','LineWidth',2); semilogx(wout9,Phase9,':','LineWidth',2); semilogx(wout10,Phase10,':','LineWidth',2); hold off; grid on; sys1=G*PID/(1+G*PID); sys2=(G*PID*BP1/(1+G*PID*BP1)); sys3=(G*PID*BP1*Notch1/(1+G*PID*BP1*Notch1)); sys4=(G*PID*BP1*Notch1*BP2/(1+G*PID*BP1*Notch1*BP2)); sys5=(G*PID*BP1*Notch1*BP2*Notch2/(1+G*PID*BP1*Notch1*BP2*Notch2)); sys6=(G*PID*BP1*Notch1*BP2*Notch2*BP3/(1+G*PID*BP1*Notch1*BP2*Notch2*BP3)); sys7=(G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3/(1+G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3)); sys8=(G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3*BP4/(1+G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3*BP4)); sys9=(G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3*BP4*Notch4/(1+G*PID*BP1*Notch1*BP2*Notch2*BP3*Notch3*BP4*Notch4)); figure(9); step(sys1,sys2); legend('PID','PID + BP1');set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(10); step(sys1,sys3); legend('PID','PID + BP1+Notch1'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(11); step(sys1,sys4); legend('PID','PID + Mode 1 + BP2'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(12); step(sys1,sys5); legend('PID','PID + Mode 1 + BP2 + Notch 2'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(13); step(sys1,sys6); legend('PID','PID + Mode 1 + Mode 2 + BP3'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(14); step(sys1,sys7); legend('PID','PID + Mode 1 + Mode 2 + BP3 + Notch3'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(15); step(sys1,sys8); legend('PID','PID + Mode 1 + Mode 2 + Mode 3 + BP4'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); figure(16); step(sys1,sys9); legend('PID','PID + Mode 1 + Mode 2 + Mode 3 + BP4 + Notch4'); set(gca, 'FontSize',28, 'FontName','Palatino Linotype'); |
Variable/acronym | Definition |
Body principal moment of inertia with respect to Z-axis | |
Angular acceleration of the system rotation angle, | |
Rigid-elastic coupling term | |
Acceleration in generalized displacement coordinates | |
Reaction wheel principal moment of inertia with respect to C, Z axis | |
Angular acceleration of the reaction wheel rotation angle, | |
Control torque of the spacecraft reaction wheel | |
Disturbance torques |
Variable/ acronym |
Definition |
Imaginary component of transient response | |
Real component of transient response | |
Damping ratio of pole in denominator of equation (12) | |
Damping ratio of zero in numerator of equation (12) | |
Center frequency of filter placement | |
Center frequency of filter pole placement in denominator of equation (12) | |
Center frequency of filter zero placement in numerator of equation (12) | |
dB | Decibels |
Base–10 logarithm | |
Displacement or rotation expressed in Laplace domain | |
Control force or torque expressed in Laplace domain | |
Steady state gain | |
Maximum phase lead occurring at frequencies determined by & | |
Maximum gain occurring when |
Control methods 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Step trajectory, no feedforward, unfiltered | 0.27662 | 0.025967 | 0.29883 |
Bio–inspired whiplash trajectory, no feedforward, unfiltered | 1.0997 | –0.026376 | 0.2936 |
Time-delayed input-shaped trajectory, no feedforward, unfiltered | 1.0997 | –0.026376 | –0.27936 |
Single-sinusoid trajectory, no feedforward, unfiltered | 0.69228 | 0.00052658 | 0.025702 |
Control methods 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Step trajectory, rigid body optimal feedforward, unfiltered | 0.15916 | 0.030193 | 0.29752 |
Step trajectory, time-delay input-shape feedforward, unfiltered | 0.211539 | 0.026717 | 0.27847 |
Single-sinusoid trajectory, rigid body optimal feedforward, unfiltered | 294.3845 | 6.1359 | 3.9368 |
Single-sinusoid trajectory, time-delay input-shape feedforward, unfiltered | 0.61639 | –0.0014197 | 0.026812 |
Control methods 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Step trajectory, no feedforward, filtered feedback | 0.028957 | 0.026908 | 0.30033 |
Rigid body optimal trajectory, no feedforward, filtered feedback | 3.0251 | 0.0020571 | 0.040348 |
Bio–inspired whiplash, no feedforward, filtered feedback | 0.70804 | –0.023355 | 0.27816 |
Single sine trajectory, no feedforward, filtered feedback | 0.70804 | –0.023355 | 0.27816 |
Single sine trajectory, no feedforward, iterated feedback filtering 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Mode 1 bandpass filtered | 0.62207 | 0.00046139 | 0.018780 |
Mode 1 notch filtered | 0.89711 | 0.00046872 | 0.029906 |
Mode 1 Bandpass and notch filtered | 0.71577 | 0.00058161 | 0.020662 |
Single sine trajectory, no feedforward, iterated feedback filtering 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Mode 2 bandpass filtered | 0.47683 | 0.00026452 | 0.022876 |
Mode 2 notch filtered | 0.68856 | 0.00013103 | 0.023599 |
Mode 2 Bandpass and notch filtered | 0.41301 | 0.00016559 | 0.023188 |
Single sine trajectory, no feedforward, iterated feedback filtering 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Mode 3 bandpass filtered | 0.67211 | 0.00015387 | 0.023116 |
Mode 3 notch filtered | 0.68804 | 0.00025072 | 0.023377 |
Mode 3 Bandpass and notch filtered | 0.68986 | 0.00017818 | 0.023274 |
Single sine trajectory, no feedforward, iterated feedback filtering 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Mode 4 bandpass filtered | 0.65649 | 0.00075748 | 0.023116 |
Mode 4 notch filtered | 0.69137 | 0.00330010 | 0.023697 |
Mode 4 Bandpass and notch filtered | 0.68994 | 0.00094136 | 0.023266 |
Single sine trajectory, no feedforward, iterated feedback filtering 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Modes 1–4 bandpass filtered | 0.22672 | 0.0010466 | 0.017807 |
Modes 1–4 notch filtered | 0.90941 | 0.0038787 | 0.030924 |
Control methods 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Bio–inspired whiplash trajectory, no feedforward, unfiltered feedback | 1.0997 | –0.026376 | 0.2936 |
Bio–inspired whiplash, no feedforward, filtered feedback | 0.70804 | –0.023355 | 0.27816 |
Rigid body optimal trajectory, no feedforward, filtered feedback | 3.0251 | 0.0020571 | 0.040348 |
Time-delayed input-shaped trajectory, no feedforward, unfiltered | 1.0997 | –0.026376 | –0.27936 |
Step trajectory, no feedforward, unfiltered | 0.27662 | 0.025967 | 0.29883 |
Step trajectory, no feedforward, filtered feedback | 0.028957 | 0.026908 | 0.30033 |
Step trajectory, rigid body optimal feedforward, unfiltered | 0.15916 | 0.030193 | 0.29752 |
Single-sinusoid trajectory, no feedforward, unfiltered | 0.69228 | 0.00052658 | 0.025702 |
Single-sinusoid trajectory, time-delay input-shape feedforward, unfiltered | 0.61639 | –0.0014197 | 0.026812 |
Sinusoidal trajectories, no feedforward, mode 1 bandpass filtered | 0.62207 | 0.00046139 | 0.018780 |
Sinusoidal trajectories, no feedforward, mode 2 bandpass filtered | 0.47683 | 0.00026452 | 0.022876 |
Sinusoidal trajectories, no feedforward, mode 2 notch filtered | 0.68856 | 0.00013103 | 0.023599 |
Sinusoidal trajectories, no feedforward, mode 2 bandpass & notch filtered | 0.41301 | 0.00016559 | 0.023188 |
Sinusoidal trajectories, no feedforward, mode 3 bandpass filtered | 0.67211 | 0.00015387 | 0.023116 |
Sinusoidal trajectories, no feedforward, mode 4 bandpass filtered | 0.65649 | 0.00075748 | 0.023116 |
Sinusoidal trajectories, no feedforward, mode 1–4 bandpass filtered | 0.22672 | 0.0010466 | 0.017807 |
Average | 0.658023 | 0.007386 | 0.087848 |
Control methods 1 |
Control effort |
Tracking error mean |
Tracking error deviation |
Single-sinusoid trajectory, time-delay input-shape feedforward, unfiltered | -6% | -119% | -69% |
Step trajectory, rigid body optimal feedforward, unfiltered | -96% | 264% | 242% |
Sinusoidal trajectories, no feedforward, mode 1–4 bandpass filtered | -66% | -86% | -80% |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
Timothy Sands
,
2024
Timothy Sands
,
2022
Wenxin Li
et al.
,
2023
© 2024 MDPI (Basel, Switzerland) unless otherwise stated