systems_parameters
adh.wbs.systems.systems_parameters
¤
Vehicle Systems module for aircraft system modeling.
This module provides Pydantic models for representing various aspects of aircraft systems, including functional blocks, data signals, physical characteristics, and system attributes.
Classes:
-
CoolingRequirements–Cooling requirements for the system.
-
DataSignal–Represents a data signal in the system.
-
FluidFlowCharacteristics–Represents the flow characteristics of a working fluid in the system.
-
FunctionalBlock–Represents a functional block in the system diagram.
-
PhysicalCharacteristics–Physical characteristics of the system.
-
PowerRequirements–Power requirements for the system.
-
SignalDirection–Enumeration of signal directions.
-
SignalType–Enumeration of signal types.
-
SystemAttributes–Attributes specific to an aircraft system.
-
SystemRecord–Represents an aircraft system record.
CoolingRequirements
pydantic-model
¤
Bases: BaseModel
Cooling requirements for the system.
Attributes:
-
method(str) –Cooling method (e.g., "Air", "Liquid", "Conduction").
-
heat_dissipation(float) –Heat dissipation in watts.
-
max_operating_temperature(float) –Maximum operating temperature in Celsius.
Show JSON schema:
{
"description": "Cooling requirements for the system.\n\nAttributes:\n method (str): Cooling method (e.g., \"Air\", \"Liquid\", \"Conduction\").\n heat_dissipation (float): Heat dissipation in watts.\n max_operating_temperature (float): Maximum operating temperature in Celsius.",
"properties": {
"method": {
"maxLength": 50,
"minLength": 1,
"title": "Method",
"type": "string"
},
"heat_dissipation": {
"minimum": 0,
"title": "Heat Dissipation",
"type": "number"
},
"max_operating_temperature": {
"title": "Max Operating Temperature",
"type": "number"
}
},
"required": [
"method",
"heat_dissipation",
"max_operating_temperature"
],
"title": "CoolingRequirements",
"type": "object"
}
Fields:
DataSignal
pydantic-model
¤
Bases: BaseModel
Represents a data signal in the system.
Attributes:
-
name(str) –Name of the signal.
-
type(SignalType) –Type of the signal.
-
direction(SignalDirection) –Direction of the signal.
-
source(str) –Source of the signal (system or component ID).
-
destination(str) –Destination of the signal (system or component ID).
-
description(str) –Brief description of the signal.
Show JSON schema:
{
"$defs": {
"SignalDirection": {
"description": "Enumeration of signal directions.",
"enum": [
"Input",
"Output",
"Bidirectional"
],
"title": "SignalDirection",
"type": "string"
},
"SignalType": {
"description": "Enumeration of signal types.",
"enum": [
"Analog",
"Digital",
"Discrete",
"Serial"
],
"title": "SignalType",
"type": "string"
}
},
"description": "Represents a data signal in the system.\n\nAttributes:\n name (str): Name of the signal.\n type (SignalType): Type of the signal.\n direction (SignalDirection): Direction of the signal.\n source (str): Source of the signal (system or component ID).\n destination (str): Destination of the signal (system or component ID).\n description (str): Brief description of the signal.",
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"type": {
"$ref": "#/$defs/SignalType"
},
"direction": {
"$ref": "#/$defs/SignalDirection"
},
"source": {
"maxLength": 50,
"minLength": 1,
"title": "Source",
"type": "string"
},
"destination": {
"maxLength": 50,
"minLength": 1,
"title": "Destination",
"type": "string"
},
"description": {
"maxLength": 500,
"minLength": 1,
"title": "Description",
"type": "string"
}
},
"required": [
"name",
"type",
"direction",
"source",
"destination",
"description"
],
"title": "DataSignal",
"type": "object"
}
Fields:
-
name(str) -
type(SignalType) -
direction(SignalDirection) -
source(str) -
destination(str) -
description(str)
FluidFlowCharacteristics
pydantic-model
¤
Bases: BaseModel
Represents the flow characteristics of a working fluid in the system.
Attributes:
-
fluid_type(str) –Type of fluid (e.g., "Hydraulic Oil", "Fuel", "Coolant").
-
flow_rate(float) –Nominal flow rate in liters per minute.
-
max_pressure(float) –Maximum operating pressure in pascals.
-
min_pressure(float) –Minimum operating pressure in pascals.
-
temperature_range(Tuple[float, float]) –Operating temperature range in Celsius (min, max).
-
viscosity(float) –Kinematic viscosity in centistokes at operating temperature.
-
density(float) –Fluid density in kg/m³ at operating temperature.
Show JSON schema:
{
"description": "Represents the flow characteristics of a working fluid in the system.\n\nAttributes:\n fluid_type (str): Type of fluid (e.g., \"Hydraulic Oil\", \"Fuel\", \"Coolant\").\n flow_rate (float): Nominal flow rate in liters per minute.\n max_pressure (float): Maximum operating pressure in pascals.\n min_pressure (float): Minimum operating pressure in pascals.\n temperature_range (Tuple[float, float]): Operating temperature range in Celsius (min, max).\n viscosity (float): Kinematic viscosity in centistokes at operating temperature.\n density (float): Fluid density in kg/m\u00b3 at operating temperature.",
"properties": {
"fluid_type": {
"maxLength": 50,
"minLength": 1,
"title": "Fluid Type",
"type": "string"
},
"flow_rate": {
"exclusiveMinimum": 0,
"title": "Flow Rate",
"type": "number"
},
"max_pressure": {
"exclusiveMinimum": 0,
"title": "Max Pressure",
"type": "number"
},
"min_pressure": {
"minimum": 0,
"title": "Min Pressure",
"type": "number"
},
"temperature_range": {
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Temperature Range",
"type": "array"
},
"viscosity": {
"exclusiveMinimum": 0,
"title": "Viscosity",
"type": "number"
},
"density": {
"exclusiveMinimum": 0,
"title": "Density",
"type": "number"
}
},
"required": [
"fluid_type",
"flow_rate",
"max_pressure",
"min_pressure",
"temperature_range",
"viscosity",
"density"
],
"title": "FluidFlowCharacteristics",
"type": "object"
}
Fields:
-
fluid_type(str) -
flow_rate(float) -
max_pressure(float) -
min_pressure(float) -
temperature_range(tuple[float, float]) -
viscosity(float) -
density(float)
Validators:
-
validate_temperature_range→temperature_range
validate_temperature_range
pydantic-validator
¤
Validate that the minimum temperature is less than the maximum temperature.
Source code in src/adh/wbs/systems/systems_parameters.py
128 129 130 131 132 133 134 135 136 | |
FunctionalBlock
pydantic-model
¤
Bases: BaseModel
Represents a functional block in the system diagram.
Attributes:
-
block_id(str) –Unique identifier for the block.
-
name(str) –Name of the functional block.
-
description(str) –Brief description of the block's function.
-
inputs(List[str]) –List of input signal names.
-
outputs(List[str]) –List of output signal names.
Show JSON schema:
{
"description": "Represents a functional block in the system diagram.\n\nAttributes:\n block_id (str): Unique identifier for the block.\n name (str): Name of the functional block.\n description (str): Brief description of the block's function.\n inputs (List[str]): List of input signal names.\n outputs (List[str]): List of output signal names.",
"properties": {
"block_id": {
"maxLength": 50,
"minLength": 1,
"title": "Block Id",
"type": "string"
},
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"description": {
"maxLength": 500,
"minLength": 1,
"title": "Description",
"type": "string"
},
"inputs": {
"items": {
"type": "string"
},
"title": "Inputs",
"type": "array"
},
"outputs": {
"items": {
"type": "string"
},
"title": "Outputs",
"type": "array"
}
},
"required": [
"block_id",
"name",
"description"
],
"title": "FunctionalBlock",
"type": "object"
}
Fields:
PhysicalCharacteristics
pydantic-model
¤
Bases: BaseModel
Physical characteristics of the system.
Attributes:
-
weight(float) –Weight in kilograms.
-
dimensions(Dict[str, float]) –Dimensions in meters (length, width, height).
-
volume(float) –Volume in cubic meters.
-
center_of_gravity(Dict[str, float]) –Center of gravity coordinates (x, y, z) in meters.
Show JSON schema:
{
"description": "Physical characteristics of the system.\n\nAttributes:\n weight (float): Weight in kilograms.\n dimensions (Dict[str, float]): Dimensions in meters (length, width, height).\n volume (float): Volume in cubic meters.\n center_of_gravity (Dict[str, float]): Center of gravity coordinates (x, y, z) in meters.",
"properties": {
"weight": {
"exclusiveMinimum": 0,
"title": "Weight",
"type": "number"
},
"dimensions": {
"additionalProperties": {
"type": "number"
},
"maxProperties": 3,
"minProperties": 3,
"title": "Dimensions",
"type": "object"
},
"volume": {
"exclusiveMinimum": 0,
"title": "Volume",
"type": "number"
},
"center_of_gravity": {
"additionalProperties": {
"type": "number"
},
"maxProperties": 3,
"minProperties": 3,
"title": "Center Of Gravity",
"type": "object"
}
},
"required": [
"weight",
"dimensions",
"volume",
"center_of_gravity"
],
"title": "PhysicalCharacteristics",
"type": "object"
}
Fields:
Validators:
-
validate_dimensions→dimensions -
validate_cog→center_of_gravity
validate_cog
pydantic-validator
¤
Validate that center of gravity includes x, y, and z coordinates.
Source code in src/adh/wbs/systems/systems_parameters.py
95 96 97 98 99 100 101 102 103 | |
validate_dimensions
pydantic-validator
¤
Validate that dimensions include length, width, and height.
Source code in src/adh/wbs/systems/systems_parameters.py
87 88 89 90 91 92 93 | |
PowerRequirements
pydantic-model
¤
Bases: BaseModel
Power requirements for the system.
Attributes:
-
voltage(float) –Required voltage in volts.
-
current(float) –Required current in amperes.
-
frequency(Optional[float]) –Required frequency in Hz, if applicable.
-
power_type(str) –Type of power (e.g., "AC", "DC").
-
peak_power(float) –Peak power consumption in watts.
-
average_power(float) –Average power consumption in watts.
Show JSON schema:
{
"description": "Power requirements for the system.\n\nAttributes:\n voltage (float): Required voltage in volts.\n current (float): Required current in amperes.\n frequency (Optional[float]): Required frequency in Hz, if applicable.\n power_type (str): Type of power (e.g., \"AC\", \"DC\").\n peak_power (float): Peak power consumption in watts.\n average_power (float): Average power consumption in watts.",
"properties": {
"voltage": {
"exclusiveMinimum": 0,
"title": "Voltage",
"type": "number"
},
"current": {
"exclusiveMinimum": 0,
"title": "Current",
"type": "number"
},
"frequency": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Frequency"
},
"power_type": {
"maxLength": 20,
"minLength": 1,
"title": "Power Type",
"type": "string"
},
"peak_power": {
"exclusiveMinimum": 0,
"title": "Peak Power",
"type": "number"
},
"average_power": {
"exclusiveMinimum": 0,
"title": "Average Power",
"type": "number"
}
},
"required": [
"voltage",
"current",
"power_type",
"peak_power",
"average_power"
],
"title": "PowerRequirements",
"type": "object"
}
Fields:
-
voltage(float) -
current(float) -
frequency(Optional[float]) -
power_type(str) -
peak_power(float) -
average_power(float)
SystemAttributes
pydantic-model
¤
Bases: BaseModel
Attributes specific to an aircraft system.
Attributes:
-
functional_blocks(List[FunctionalBlock]) –List of functional blocks in the system.
-
data_signals(List[DataSignal]) –List of data signals in the system.
-
physical_characteristics(PhysicalCharacteristics) –Physical characteristics of the system.
-
cooling_requirements(CoolingRequirements) –Cooling requirements for the system.
-
power_requirements(PowerRequirements) –Power requirements for the system.
-
fluid_flow(Optional[FluidFlowCharacteristics]) –Fluid flow characteristics, if applicable.
Show JSON schema:
{
"$defs": {
"CoolingRequirements": {
"description": "Cooling requirements for the system.\n\nAttributes:\n method (str): Cooling method (e.g., \"Air\", \"Liquid\", \"Conduction\").\n heat_dissipation (float): Heat dissipation in watts.\n max_operating_temperature (float): Maximum operating temperature in Celsius.",
"properties": {
"method": {
"maxLength": 50,
"minLength": 1,
"title": "Method",
"type": "string"
},
"heat_dissipation": {
"minimum": 0,
"title": "Heat Dissipation",
"type": "number"
},
"max_operating_temperature": {
"title": "Max Operating Temperature",
"type": "number"
}
},
"required": [
"method",
"heat_dissipation",
"max_operating_temperature"
],
"title": "CoolingRequirements",
"type": "object"
},
"DataSignal": {
"description": "Represents a data signal in the system.\n\nAttributes:\n name (str): Name of the signal.\n type (SignalType): Type of the signal.\n direction (SignalDirection): Direction of the signal.\n source (str): Source of the signal (system or component ID).\n destination (str): Destination of the signal (system or component ID).\n description (str): Brief description of the signal.",
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"type": {
"$ref": "#/$defs/SignalType"
},
"direction": {
"$ref": "#/$defs/SignalDirection"
},
"source": {
"maxLength": 50,
"minLength": 1,
"title": "Source",
"type": "string"
},
"destination": {
"maxLength": 50,
"minLength": 1,
"title": "Destination",
"type": "string"
},
"description": {
"maxLength": 500,
"minLength": 1,
"title": "Description",
"type": "string"
}
},
"required": [
"name",
"type",
"direction",
"source",
"destination",
"description"
],
"title": "DataSignal",
"type": "object"
},
"FluidFlowCharacteristics": {
"description": "Represents the flow characteristics of a working fluid in the system.\n\nAttributes:\n fluid_type (str): Type of fluid (e.g., \"Hydraulic Oil\", \"Fuel\", \"Coolant\").\n flow_rate (float): Nominal flow rate in liters per minute.\n max_pressure (float): Maximum operating pressure in pascals.\n min_pressure (float): Minimum operating pressure in pascals.\n temperature_range (Tuple[float, float]): Operating temperature range in Celsius (min, max).\n viscosity (float): Kinematic viscosity in centistokes at operating temperature.\n density (float): Fluid density in kg/m\u00b3 at operating temperature.",
"properties": {
"fluid_type": {
"maxLength": 50,
"minLength": 1,
"title": "Fluid Type",
"type": "string"
},
"flow_rate": {
"exclusiveMinimum": 0,
"title": "Flow Rate",
"type": "number"
},
"max_pressure": {
"exclusiveMinimum": 0,
"title": "Max Pressure",
"type": "number"
},
"min_pressure": {
"minimum": 0,
"title": "Min Pressure",
"type": "number"
},
"temperature_range": {
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Temperature Range",
"type": "array"
},
"viscosity": {
"exclusiveMinimum": 0,
"title": "Viscosity",
"type": "number"
},
"density": {
"exclusiveMinimum": 0,
"title": "Density",
"type": "number"
}
},
"required": [
"fluid_type",
"flow_rate",
"max_pressure",
"min_pressure",
"temperature_range",
"viscosity",
"density"
],
"title": "FluidFlowCharacteristics",
"type": "object"
},
"FunctionalBlock": {
"description": "Represents a functional block in the system diagram.\n\nAttributes:\n block_id (str): Unique identifier for the block.\n name (str): Name of the functional block.\n description (str): Brief description of the block's function.\n inputs (List[str]): List of input signal names.\n outputs (List[str]): List of output signal names.",
"properties": {
"block_id": {
"maxLength": 50,
"minLength": 1,
"title": "Block Id",
"type": "string"
},
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"description": {
"maxLength": 500,
"minLength": 1,
"title": "Description",
"type": "string"
},
"inputs": {
"items": {
"type": "string"
},
"title": "Inputs",
"type": "array"
},
"outputs": {
"items": {
"type": "string"
},
"title": "Outputs",
"type": "array"
}
},
"required": [
"block_id",
"name",
"description"
],
"title": "FunctionalBlock",
"type": "object"
},
"PhysicalCharacteristics": {
"description": "Physical characteristics of the system.\n\nAttributes:\n weight (float): Weight in kilograms.\n dimensions (Dict[str, float]): Dimensions in meters (length, width, height).\n volume (float): Volume in cubic meters.\n center_of_gravity (Dict[str, float]): Center of gravity coordinates (x, y, z) in meters.",
"properties": {
"weight": {
"exclusiveMinimum": 0,
"title": "Weight",
"type": "number"
},
"dimensions": {
"additionalProperties": {
"type": "number"
},
"maxProperties": 3,
"minProperties": 3,
"title": "Dimensions",
"type": "object"
},
"volume": {
"exclusiveMinimum": 0,
"title": "Volume",
"type": "number"
},
"center_of_gravity": {
"additionalProperties": {
"type": "number"
},
"maxProperties": 3,
"minProperties": 3,
"title": "Center Of Gravity",
"type": "object"
}
},
"required": [
"weight",
"dimensions",
"volume",
"center_of_gravity"
],
"title": "PhysicalCharacteristics",
"type": "object"
},
"PowerRequirements": {
"description": "Power requirements for the system.\n\nAttributes:\n voltage (float): Required voltage in volts.\n current (float): Required current in amperes.\n frequency (Optional[float]): Required frequency in Hz, if applicable.\n power_type (str): Type of power (e.g., \"AC\", \"DC\").\n peak_power (float): Peak power consumption in watts.\n average_power (float): Average power consumption in watts.",
"properties": {
"voltage": {
"exclusiveMinimum": 0,
"title": "Voltage",
"type": "number"
},
"current": {
"exclusiveMinimum": 0,
"title": "Current",
"type": "number"
},
"frequency": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Frequency"
},
"power_type": {
"maxLength": 20,
"minLength": 1,
"title": "Power Type",
"type": "string"
},
"peak_power": {
"exclusiveMinimum": 0,
"title": "Peak Power",
"type": "number"
},
"average_power": {
"exclusiveMinimum": 0,
"title": "Average Power",
"type": "number"
}
},
"required": [
"voltage",
"current",
"power_type",
"peak_power",
"average_power"
],
"title": "PowerRequirements",
"type": "object"
},
"SignalDirection": {
"description": "Enumeration of signal directions.",
"enum": [
"Input",
"Output",
"Bidirectional"
],
"title": "SignalDirection",
"type": "string"
},
"SignalType": {
"description": "Enumeration of signal types.",
"enum": [
"Analog",
"Digital",
"Discrete",
"Serial"
],
"title": "SignalType",
"type": "string"
}
},
"description": "Attributes specific to an aircraft system.\n\nAttributes:\n functional_blocks (List[FunctionalBlock]): List of functional blocks in the system.\n data_signals (List[DataSignal]): List of data signals in the system.\n physical_characteristics (PhysicalCharacteristics): Physical characteristics of the system.\n cooling_requirements (CoolingRequirements): Cooling requirements for the system.\n power_requirements (PowerRequirements): Power requirements for the system.\n fluid_flow (Optional[FluidFlowCharacteristics]): Fluid flow characteristics, if applicable.",
"properties": {
"functional_blocks": {
"items": {
"$ref": "#/$defs/FunctionalBlock"
},
"title": "Functional Blocks",
"type": "array"
},
"data_signals": {
"items": {
"$ref": "#/$defs/DataSignal"
},
"title": "Data Signals",
"type": "array"
},
"physical_characteristics": {
"$ref": "#/$defs/PhysicalCharacteristics"
},
"cooling_requirements": {
"$ref": "#/$defs/CoolingRequirements"
},
"power_requirements": {
"$ref": "#/$defs/PowerRequirements"
},
"fluid_flow": {
"anyOf": [
{
"$ref": "#/$defs/FluidFlowCharacteristics"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"functional_blocks",
"data_signals",
"physical_characteristics",
"cooling_requirements",
"power_requirements"
],
"title": "SystemAttributes",
"type": "object"
}
Fields:
-
functional_blocks(list[FunctionalBlock]) -
data_signals(list[DataSignal]) -
physical_characteristics(PhysicalCharacteristics) -
cooling_requirements(CoolingRequirements) -
power_requirements(PowerRequirements) -
fluid_flow(Optional[FluidFlowCharacteristics])
SystemRecord
pydantic-model
¤
Bases: BaseModel
Represents an aircraft system record.
Attributes:
-
wbs_id(str) –Work Breakdown Structure ID.
-
mil_std_881f_reference(str) –Reference to MIL-STD-881F.
-
name(str) –Name of the system.
-
type(Literal['System']) –Type of the item (always "System" for this class).
-
attributes(SystemAttributes) –Specific attributes of the system.
-
components(List[str]) –List of component WBS IDs that make up this system.
Show JSON schema:
{
"$defs": {
"CoolingRequirements": {
"description": "Cooling requirements for the system.\n\nAttributes:\n method (str): Cooling method (e.g., \"Air\", \"Liquid\", \"Conduction\").\n heat_dissipation (float): Heat dissipation in watts.\n max_operating_temperature (float): Maximum operating temperature in Celsius.",
"properties": {
"method": {
"maxLength": 50,
"minLength": 1,
"title": "Method",
"type": "string"
},
"heat_dissipation": {
"minimum": 0,
"title": "Heat Dissipation",
"type": "number"
},
"max_operating_temperature": {
"title": "Max Operating Temperature",
"type": "number"
}
},
"required": [
"method",
"heat_dissipation",
"max_operating_temperature"
],
"title": "CoolingRequirements",
"type": "object"
},
"DataSignal": {
"description": "Represents a data signal in the system.\n\nAttributes:\n name (str): Name of the signal.\n type (SignalType): Type of the signal.\n direction (SignalDirection): Direction of the signal.\n source (str): Source of the signal (system or component ID).\n destination (str): Destination of the signal (system or component ID).\n description (str): Brief description of the signal.",
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"type": {
"$ref": "#/$defs/SignalType"
},
"direction": {
"$ref": "#/$defs/SignalDirection"
},
"source": {
"maxLength": 50,
"minLength": 1,
"title": "Source",
"type": "string"
},
"destination": {
"maxLength": 50,
"minLength": 1,
"title": "Destination",
"type": "string"
},
"description": {
"maxLength": 500,
"minLength": 1,
"title": "Description",
"type": "string"
}
},
"required": [
"name",
"type",
"direction",
"source",
"destination",
"description"
],
"title": "DataSignal",
"type": "object"
},
"FluidFlowCharacteristics": {
"description": "Represents the flow characteristics of a working fluid in the system.\n\nAttributes:\n fluid_type (str): Type of fluid (e.g., \"Hydraulic Oil\", \"Fuel\", \"Coolant\").\n flow_rate (float): Nominal flow rate in liters per minute.\n max_pressure (float): Maximum operating pressure in pascals.\n min_pressure (float): Minimum operating pressure in pascals.\n temperature_range (Tuple[float, float]): Operating temperature range in Celsius (min, max).\n viscosity (float): Kinematic viscosity in centistokes at operating temperature.\n density (float): Fluid density in kg/m\u00b3 at operating temperature.",
"properties": {
"fluid_type": {
"maxLength": 50,
"minLength": 1,
"title": "Fluid Type",
"type": "string"
},
"flow_rate": {
"exclusiveMinimum": 0,
"title": "Flow Rate",
"type": "number"
},
"max_pressure": {
"exclusiveMinimum": 0,
"title": "Max Pressure",
"type": "number"
},
"min_pressure": {
"minimum": 0,
"title": "Min Pressure",
"type": "number"
},
"temperature_range": {
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
],
"title": "Temperature Range",
"type": "array"
},
"viscosity": {
"exclusiveMinimum": 0,
"title": "Viscosity",
"type": "number"
},
"density": {
"exclusiveMinimum": 0,
"title": "Density",
"type": "number"
}
},
"required": [
"fluid_type",
"flow_rate",
"max_pressure",
"min_pressure",
"temperature_range",
"viscosity",
"density"
],
"title": "FluidFlowCharacteristics",
"type": "object"
},
"FunctionalBlock": {
"description": "Represents a functional block in the system diagram.\n\nAttributes:\n block_id (str): Unique identifier for the block.\n name (str): Name of the functional block.\n description (str): Brief description of the block's function.\n inputs (List[str]): List of input signal names.\n outputs (List[str]): List of output signal names.",
"properties": {
"block_id": {
"maxLength": 50,
"minLength": 1,
"title": "Block Id",
"type": "string"
},
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"description": {
"maxLength": 500,
"minLength": 1,
"title": "Description",
"type": "string"
},
"inputs": {
"items": {
"type": "string"
},
"title": "Inputs",
"type": "array"
},
"outputs": {
"items": {
"type": "string"
},
"title": "Outputs",
"type": "array"
}
},
"required": [
"block_id",
"name",
"description"
],
"title": "FunctionalBlock",
"type": "object"
},
"PhysicalCharacteristics": {
"description": "Physical characteristics of the system.\n\nAttributes:\n weight (float): Weight in kilograms.\n dimensions (Dict[str, float]): Dimensions in meters (length, width, height).\n volume (float): Volume in cubic meters.\n center_of_gravity (Dict[str, float]): Center of gravity coordinates (x, y, z) in meters.",
"properties": {
"weight": {
"exclusiveMinimum": 0,
"title": "Weight",
"type": "number"
},
"dimensions": {
"additionalProperties": {
"type": "number"
},
"maxProperties": 3,
"minProperties": 3,
"title": "Dimensions",
"type": "object"
},
"volume": {
"exclusiveMinimum": 0,
"title": "Volume",
"type": "number"
},
"center_of_gravity": {
"additionalProperties": {
"type": "number"
},
"maxProperties": 3,
"minProperties": 3,
"title": "Center Of Gravity",
"type": "object"
}
},
"required": [
"weight",
"dimensions",
"volume",
"center_of_gravity"
],
"title": "PhysicalCharacteristics",
"type": "object"
},
"PowerRequirements": {
"description": "Power requirements for the system.\n\nAttributes:\n voltage (float): Required voltage in volts.\n current (float): Required current in amperes.\n frequency (Optional[float]): Required frequency in Hz, if applicable.\n power_type (str): Type of power (e.g., \"AC\", \"DC\").\n peak_power (float): Peak power consumption in watts.\n average_power (float): Average power consumption in watts.",
"properties": {
"voltage": {
"exclusiveMinimum": 0,
"title": "Voltage",
"type": "number"
},
"current": {
"exclusiveMinimum": 0,
"title": "Current",
"type": "number"
},
"frequency": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Frequency"
},
"power_type": {
"maxLength": 20,
"minLength": 1,
"title": "Power Type",
"type": "string"
},
"peak_power": {
"exclusiveMinimum": 0,
"title": "Peak Power",
"type": "number"
},
"average_power": {
"exclusiveMinimum": 0,
"title": "Average Power",
"type": "number"
}
},
"required": [
"voltage",
"current",
"power_type",
"peak_power",
"average_power"
],
"title": "PowerRequirements",
"type": "object"
},
"SignalDirection": {
"description": "Enumeration of signal directions.",
"enum": [
"Input",
"Output",
"Bidirectional"
],
"title": "SignalDirection",
"type": "string"
},
"SignalType": {
"description": "Enumeration of signal types.",
"enum": [
"Analog",
"Digital",
"Discrete",
"Serial"
],
"title": "SignalType",
"type": "string"
},
"SystemAttributes": {
"description": "Attributes specific to an aircraft system.\n\nAttributes:\n functional_blocks (List[FunctionalBlock]): List of functional blocks in the system.\n data_signals (List[DataSignal]): List of data signals in the system.\n physical_characteristics (PhysicalCharacteristics): Physical characteristics of the system.\n cooling_requirements (CoolingRequirements): Cooling requirements for the system.\n power_requirements (PowerRequirements): Power requirements for the system.\n fluid_flow (Optional[FluidFlowCharacteristics]): Fluid flow characteristics, if applicable.",
"properties": {
"functional_blocks": {
"items": {
"$ref": "#/$defs/FunctionalBlock"
},
"title": "Functional Blocks",
"type": "array"
},
"data_signals": {
"items": {
"$ref": "#/$defs/DataSignal"
},
"title": "Data Signals",
"type": "array"
},
"physical_characteristics": {
"$ref": "#/$defs/PhysicalCharacteristics"
},
"cooling_requirements": {
"$ref": "#/$defs/CoolingRequirements"
},
"power_requirements": {
"$ref": "#/$defs/PowerRequirements"
},
"fluid_flow": {
"anyOf": [
{
"$ref": "#/$defs/FluidFlowCharacteristics"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"functional_blocks",
"data_signals",
"physical_characteristics",
"cooling_requirements",
"power_requirements"
],
"title": "SystemAttributes",
"type": "object"
}
},
"description": "Represents an aircraft system record.\n\nAttributes:\n wbs_id (str): Work Breakdown Structure ID.\n mil_std_881f_reference (str): Reference to MIL-STD-881F.\n name (str): Name of the system.\n type (Literal[\"System\"]): Type of the item (always \"System\" for this class).\n attributes (SystemAttributes): Specific attributes of the system.\n components (List[str]): List of component WBS IDs that make up this system.",
"properties": {
"wbs_id": {
"maxLength": 20,
"minLength": 1,
"title": "Wbs Id",
"type": "string"
},
"mil_std_881f_reference": {
"maxLength": 20,
"minLength": 1,
"title": "Mil Std 881F Reference",
"type": "string"
},
"name": {
"maxLength": 100,
"minLength": 1,
"title": "Name",
"type": "string"
},
"type": {
"const": "System",
"default": "System",
"title": "Type",
"type": "string"
},
"attributes": {
"$ref": "#/$defs/SystemAttributes"
},
"components": {
"items": {
"type": "string"
},
"minItems": 1,
"title": "Components",
"type": "array"
}
},
"required": [
"wbs_id",
"mil_std_881f_reference",
"name",
"attributes",
"components"
],
"title": "SystemRecord",
"type": "object"
}
Fields:
-
wbs_id(str) -
mil_std_881f_reference(str) -
name(str) -
type(Literal['System']) -
attributes(SystemAttributes) -
components(list[str])
Validators:
-
type_must_be_system→type
type_must_be_system
pydantic-validator
¤
Validate that the type is always 'System'.
Source code in src/adh/wbs/systems/systems_parameters.py
216 217 218 219 220 221 222 | |