sNavObject = simpleNav.SimpleNav()
sNavObject.ModelTag = "SimpleNavigation"
scSim.AddModelToTask(simTaskName, sNavObject)
# add RW power modules
rwPowerList = []
for c in range(numRW):
powerRW = ReactionWheelPower.ReactionWheelPower()
powerRW.ModelTag = scObject.ModelTag + "RWPower" + str(c)
powerRW.basePowerNeed = 5. # baseline power draw, Watts
powerRW.rwStateInMsg.subscribeTo(rwStateEffector.rwOutMsgs[c])
powerRW.mechToElecEfficiency = 0.5
scSim.AddModelToTask(simTaskName, powerRW)
rwPowerList.append(powerRW)
#
# setup the FSW algorithm tasks
#
# Create a simpleBattery and attach the sources/sinks to it
powerMonitor = simpleBattery.SimpleBattery()
powerMonitor.ModelTag = "powerMonitor"
dd = 0 # try to set battery charge to 0 !!!!!!!!!!!!!!!!!!
powerMonitor.storageCapacity = 300000 # W-s
powerMonitor.storedCharge_Init = powerMonitor.storageCapacity * 0.8 # 20% depletion
scSim.AddModelToTask(simTaskName, powerMonitor)
# connect RW power to the battery module
for c in range(numRW):
powerMonitor.addPowerNodeToModel(rwPowerList[c].nodePowerOutMsg)
# setup guidance module
attGuidanceConfig = hillPoint.hillPointConfig()
attGuidanceWrap = scSim.setModelDataWrap(attGuidanceConfig)
attGuidanceWrap.ModelTag = "hillPoint"
scSim.AddModelToTask(simTaskName, attGuidanceWrap, attGuidanceConfig)
# setup the attitude tracking error evaluation module
attErrorConfig = attTrackingError.attTrackingErrorConfig()
attErrorWrap = scSim.setModelDataWrap(attErrorConfig)
attErrorWrap.ModelTag = "attErrorInertial3D"
scSim.AddModelToTask(simTaskName, attErrorWrap, attErrorConfig)
# setup the MRP Feedback control module
mrpControlConfig = mrpFeedback.mrpFeedbackConfig()
mrpControlWrap = scSim.setModelDataWrap(mrpControlConfig)
mrpControlWrap.ModelTag = "MRP_Feedback"
scSim.AddModelToTask(simTaskName, mrpControlWrap, mrpControlConfig)