SWaP-C Models API¶
Size, Weight, Power, and Cost models.
Overview¶
Classes¶
PowerModel
¶
Power consumption calculator for phased array systems.
Computes DC power, RF power, and prime power based on architecture parameters and efficiency factors.
Power Equations
RF_power = n_elements * tx_power_per_elem DC_power = RF_power / pa_efficiency Prime_power = DC_power * (1 + overhead_factor)
| ATTRIBUTE | DESCRIPTION |
|---|---|
name |
Model block name for identification
TYPE:
|
overhead_factor |
Additional power overhead (cooling, control, etc.)
|
Initialize power model.
| PARAMETER | DESCRIPTION |
|---|---|
overhead_factor
|
Fraction of DC power for overhead (default 20%)
TYPE:
|
Source code in src/phased_array_systems/models/swapc/power.py
evaluate
¶
evaluate(arch: Architecture, scenario: Scenario, context: dict[str, Any]) -> MetricsDict
Evaluate power metrics.
| PARAMETER | DESCRIPTION |
|---|---|
arch
|
Architecture configuration
TYPE:
|
scenario
|
Scenario (may influence duty cycle)
TYPE:
|
context
|
Additional context (unused)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
MetricsDict
|
Dictionary with power metrics: - rf_power_w: Total RF output power (W) - dc_power_w: DC power consumption (W) - prime_power_w: Prime/wall power (W) - pa_efficiency: Power amplifier efficiency - n_elements: Number of array elements |
Source code in src/phased_array_systems/models/swapc/power.py
CostModel
¶
Parametric cost model for phased array systems.
Computes recurring and non-recurring costs based on array size and cost parameters.
Cost Equations
Recurring_cost = n_elements * cost_per_element Total_cost = Recurring_cost + NRE + Integration
| ATTRIBUTE | DESCRIPTION |
|---|---|
name |
Model block name for identification
TYPE:
|
evaluate
¶
evaluate(arch: Architecture, scenario: Scenario, context: dict[str, Any]) -> MetricsDict
Evaluate cost metrics.
| PARAMETER | DESCRIPTION |
|---|---|
arch
|
Architecture configuration
TYPE:
|
scenario
|
Scenario (unused for basic cost model)
TYPE:
|
context
|
Additional context (unused)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
MetricsDict
|
Dictionary with cost metrics: - recurring_cost_usd: Element-based recurring cost (USD) - nre_usd: Non-recurring engineering cost (USD) - integration_cost_usd: System integration cost (USD) - total_cost_usd: Total system cost (USD) - cost_per_element_usd: Cost per element (USD) - n_elements: Number of elements |
Source code in src/phased_array_systems/models/swapc/cost.py
Functions¶
compute_thermal_load
¶
compute_thermal_load(dc_power_w: float, rf_power_w: float, additional_dissipation_w: float = 0.0) -> dict[str, float]
Compute thermal dissipation for heat management.
| PARAMETER | DESCRIPTION |
|---|---|
dc_power_w
|
Total DC power consumption (W)
TYPE:
|
rf_power_w
|
RF power radiated (W)
TYPE:
|
additional_dissipation_w
|
Other heat sources (W)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
dict[str, float]
|
Dictionary with thermal metrics: - heat_dissipation_w: Total heat to remove (W) - rf_efficiency: Fraction of DC converted to RF |
Source code in src/phased_array_systems/models/swapc/power.py
compute_cost_per_watt
¶
Compute cost per Watt of RF power.
| PARAMETER | DESCRIPTION |
|---|---|
total_cost_usd
|
Total system cost (USD)
TYPE:
|
rf_power_w
|
RF output power (W)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
float
|
Cost per Watt (USD/W) |
Source code in src/phased_array_systems/models/swapc/cost.py
compute_cost_per_db
¶
Compute cost per dBW of EIRP.
Useful for comparing cost-effectiveness of different architectures.
| PARAMETER | DESCRIPTION |
|---|---|
total_cost_usd
|
Total system cost (USD)
TYPE:
|
eirp_dbw
|
Effective Isotropic Radiated Power (dBW)
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
float
|
Cost per dBW (USD/dBW) |
Source code in src/phased_array_systems/models/swapc/cost.py
Output Metrics¶
Power Metrics¶
| Metric | Units | Description |
|---|---|---|
rf_power_w |
W | Total RF power (all elements) |
dc_power_w |
W | DC power (RF / PA efficiency) |
prime_power_w |
W | Total prime power |
Cost Metrics¶
| Metric | Units | Description |
|---|---|---|
recurring_cost_usd |
USD | Element cost × count |
nre_cost_usd |
USD | Non-recurring engineering |
integration_cost_usd |
USD | System integration |
cost_usd |
USD | Total cost |
Usage Examples¶
Power Calculation¶
from phased_array_systems.models.swapc import PowerModel
# Using PowerModel
model = PowerModel()
metrics = model.evaluate(arch, scenario, context={})
print(f"Prime Power: {metrics['prime_power_w']:.0f} W")
print(f"RF Power: {metrics['rf_power_w']:.0f} W")
print(f"DC Power: {metrics['dc_power_w']:.0f} W")
Cost Calculation¶
from phased_array_systems.models.swapc import CostModel
# Using CostModel
model = CostModel()
metrics = model.evaluate(arch, scenario, context={})
print(f"Total Cost: ${metrics['cost_usd']:,.0f}")
print(f"Recurring: ${metrics['recurring_cost_usd']:,.0f}")
print(f"NRE: ${metrics['nre_cost_usd']:,.0f}")
Cost Analysis Utilities¶
from phased_array_systems.models.swapc.cost import compute_cost_per_watt, compute_cost_per_db
# Cost efficiency metrics
cost_per_watt = compute_cost_per_watt(total_cost_usd=50000, rf_power_w=100)
cost_per_db = compute_cost_per_db(total_cost_usd=50000, eirp_dbw=45)
print(f"Cost per Watt: ${cost_per_watt:.0f}/W")
print(f"Cost per dB EIRP: ${cost_per_db:.0f}/dB")
Power Equations¶
RF Power¶
DC Power¶
Prime Power¶
Prime power includes additional overhead (typically DC power plus auxiliaries):
Cost Equations¶
Recurring Cost¶
Total Cost¶
Trade-offs¶
Power vs. Array Size¶
# Power scales linearly with element count
# For constant EIRP, larger arrays need less power per element
# 8x8 at 1W each: P = 64W RF
# 16x16 at 0.25W each: P = 64W RF, but 6dB more gain from aperture
Cost vs. Performance¶
# Cost scaling factors:
# - Element count: linear
# - Power per element: typically superlinear
# - Frequency: higher frequency = higher cost per element
See Also¶
- Architecture API - CostConfig definition
- User Guide: Trade Studies