Source code for fswPlotter

import matplotlib.pyplot as plt
from Basilisk.utilities import macros
from plotter import Plotter


[docs]class FSWPlotter(Plotter): """ Class for plotting results of a FSW simulation run """ def __init__(self, time_scale=macros.NANO2MIN, add_titles=True, plots_path=None, name="fsw"): super(FSWPlotter, self).__init__(time_scale, add_titles, name) self.plots_path = plots_path self.save_plots = False if self.plots_path: self.save_plots = True plt.rcParams['figure.figsize'] = 4.6, 3.2 plt.rcParams.update({'font.size': 9}) def save_plot(self, plot_name): plt.savefig(self.plots_path + "/" + plot_name + ".pdf", bbox_inches='tight', pad_inches=0) print('Saving Figure: %s' % (self.plots_path + "/" + plot_name + ".pdf", )) # Guidance: attitude reference def plot_sigmaRN(self, sigmaRN): fig = self.create_figure('sigmaRN') self.plot_sigma(sigmaRN) if self.save_plots: self.save_plot(plot_name=fig.name) return def plot_omegaRN_N(self, omega_RN_N): fig = self.create_figure('omega_RN_N') self.plot_omega(omega_RN_N) if self.save_plots: self.save_plot(plot_name=fig.name) return # Guidance: attitude tracking error def plot_sigmaBR(self, sigmaBR): fig = self.create_figure('sigmaBR') self.plot_sigma(sigmaBR) if self.save_plots: self.save_plot(plot_name=fig.name) return def plot_omegaBR_B(self, omega_BR_B): fig = self.create_figure('omega_BR_B') self.plot_omega(omega_BR_B) if self.save_plots: self.save_plot(plot_name=fig.name) return def plot_ref_attitude(self, sigma_RN, omega_RN_N): self.plot_sigmaRN(sigma_RN) self.plot_omegaRN_N(omega_RN_N) def plot_track_error(self, sigma_BR, omega_BR_B): self.plot_sigmaBR(sigma_BR) self.plot_omegaBR_B(omega_BR_B) def plot_rw_control(self, Lr, u_wheels): self.plot_control_Lr(Lr) self.plot_wheelTorques_u(u_wheels) # Controls: rw control torques def plot_control_Lr(self, Lr): fig = self.create_figure('Lr') self.plot3components(Lr) plt.legend(['$L_1$', '$L_2$', '$L_3$']) plt.ylabel('Control Torque, N$\cdot$m') if self.save_plots: self.save_plot(plot_name=fig.name) return def plot_wheelTorques_u(self, u_wheels): fig = self.create_figure('u_wheels') self.plot4components(u_wheels) plt.ylabel('Wheel Torques, N$\cdot$m') plt.legend(['$u_{1}$', '$u_{2}$', '$u_{3}$', '$u_{4}$']) if self.save_plots: self.save_plot(plot_name=fig.name) return