Skip to content

Commit

Permalink
Update energy supply system.
Browse files Browse the repository at this point in the history
  • Loading branch information
N-Jansen committed Nov 25, 2024
1 parent 33312b6 commit a2ec62a
Show file tree
Hide file tree
Showing 9 changed files with 100 additions and 128 deletions.
24 changes: 9 additions & 15 deletions Functions/EnergySupplySystem/Battery.sysml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package 'Energy Supply System' {
package 'ESS::Bat' {

import ScalarValues::*;
import RoboCleanRequirements::*;
import PortDef::*;
import Signals::*;
import Signals::BatterySignals::BatterySignal;
private import ScalarValues::*;
private import RoboCleanRequirements::*;
private import PortDef::*;
private import Signals::*;
private import Signals::BatterySignals::BatterySignal;

doc /*
=======================================================================
Expand All @@ -22,9 +22,10 @@ package 'Energy Supply System' {
// Ports
port requriedEnergy : PowerInOutPort; // input from charging station
port providedEnergy : PowerInOutPort; // output to other robot components

}

// The Energy supply system provides the electical energy for the robot vacuum cleaner



part def Accumulator {
Expand Down Expand Up @@ -63,12 +64,5 @@ package 'Energy Supply System' {
comment about BMS
/* BMS = Battery Management System */

part def Charger {
attribute power : Real;
attribute voltage : Real;

part def Plug;
part def Converter; // ACDC Converter
part def batConector;
}

}
22 changes: 12 additions & 10 deletions Functions/EnergySupplySystem/BatteryLevelComputer.sysml
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
package 'BatteryLevelComputer' {
package ESS_Processor {

import Signals::*;
import ScalarValues::*;
import ControllerSignals::*;
import Signals::BatterySignals::BatterySignal;
private import Signals::*;
private import ScalarValues::*;
private import ControllerSignals::*;
private import Signals::BatterySignals::BatterySignal;
private import RobotPortDefs::*;

/**
* This part takes a BatterySignal as input and translates it into a
* color to be shown by the LED of EnergySupplySystem
*/
part def BatteryLevelComputer {
// Ports
port batSig : BatterySignal; // in
port ledSig : LEDSignal; // out


// Ports
port energyDemand : ~EnergyDistributionCommand; // in
port chargeCmd : ChargeCommand; // out
port energyLevel : EnergyRegulation; // out

// Attributes
attribute batteryCapacity : Real = 1000;

// Behavior
// Realized through a StateChart which takes inputs from the incoming port
// and part attribute. Produces a return value to outgoing port ledSig.
exhibit state BatteryLevelComputerStates {
in ref batCap = batSig::curBatCapacity;
in ref maxBatCap = batteryCapacity; // 'this' would be nice
//out ref ledSig {color = computedColor;}
}
Expand Down
39 changes: 0 additions & 39 deletions Functions/EnergySupplySystem/CPU.sysml

This file was deleted.

7 changes: 5 additions & 2 deletions Functions/EnergySupplySystem/Charger.sysml
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package 'Energy Supply System' {
package ESS_Charge {

private import ScalarValues::*;
private import PortDef::*;
private import RobotPortDefs::*;

part def Charger {

attribute doCharge : Boolean;

port chargeCmd : ~ChargeCommand;

port statPlug : PowerInOutPort;
port batPlug : PowerInOutPort;
}
Expand Down
25 changes: 0 additions & 25 deletions Functions/EnergySupplySystem/DockingStation.sysml

This file was deleted.

54 changes: 39 additions & 15 deletions Functions/EnergySupplySystem/EnergySupply.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -8,36 +8,60 @@ package EnergySupply {

private import PortDef::*;
private import Signals::*;
private import DockingStation::*;
private import BatteryLevelComputer::*;
private import 'Energy Supply System'::*;
private import EnergySupplyProcessor::*;
private import BLI::LED;

private import ESS_Processor::*;
private import ESS_Bat::Battery;
private import ESS_Reg::*;
private import ESS_Charge::*;
private import Signals::BatterySignals::BatterySignal;
private import RobotPortDefs::*;


/* Part definitions */
// The Energy supply system provides the electical energy for the robot vacuum cleaner
part def EnergySupplySystem {
// Parts
part chr : Charger;
part bat : Battery;
part cpu : CPU;
part led : LED;
part cpu : BatteryLevelComputer;
part reg : VoltageRegulator;

// Ports
port sig : ~EnergyDistributionCommand; // in
port requiredEnergy : PowerInOutPort; // in
port providedEnergy : PowerInOutPort; // out



// Connections
/* interface : RequiredEnergyInterface connect
interface connect
src ::> requiredEnergy to
tgt ::> bat::requiredEnergy;*/
tgt ::> bat.requriedEnergy;

interface connect
src ::> sig to
tgt ::> cpu.energyDemand;

interface connect
src ::> reg.providedEnergy to
tgt ::> providedEnergy;

// connect sub-components
interface connect
src ::> cpu.chargeCmd to
tgt ::> chr.chargeCmd;

interface connect
src ::> cpu.energyLevel to
tgt ::> reg.tgtVoltage;

interface : PowerInterface connect
src ::> bat::providedEnergy to
tgt ::> cpu::requriedEnergy;
interface connect
src ::> chr.batPlug to
tgt ::> bat.requriedEnergy;

interface : PowerInterface connect
src ::> bat::providedEnergy to
tgt ::> led::requriedEnergy;
interface connect
src ::> bat.providedEnergy to
tgt ::> reg.batEnergy;

}

Expand Down
22 changes: 0 additions & 22 deletions Functions/EnergySupplySystem/LED.sysml

This file was deleted.

15 changes: 15 additions & 0 deletions Functions/EnergySupplySystem/VoltageRegulator.sysml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ESS_Reg {

private import PortDef::*;
private import RobotPortDefs::*;

part def VoltageRegulator {

// Ports
port tgtVoltage : ~EnergyRegulation;
port batEnergy : PowerInOutPort; // input from battery
port providedEnergy : PowerInOutPort; // output to other robot components

}

}
20 changes: 20 additions & 0 deletions Functions/Integration/Ports&Signals/RobotPortDefs.sysml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,24 @@ package RobotPortDefs {
}


// Ports for Energy Supply System

port def ChargeCommand {
out cmd : ChargeCmdLiterals;
}

enum def ChargeCmdLiterals {
START_CHARGING;
STOP_CHARGING;
}

port def EnergyRegulation {
out attribute volt : Real;
}

port def EnergyDistributionCommand {
// ToDo
}


}

0 comments on commit a2ec62a

Please sign in to comment.