Quasi-Static Compliance PINN Network
Wave 5.2 Phase 3 separates angularly periodic TE from a bounded quasi-static elastic contribution. The family provides learned differential-residual and hard equation-embedded formulations while preserving explicit signed torque, effective stiffness, direction intercept, elastic prediction, and periodic components.
The implementation is a bounded theory-validation surface. Fitted stiffness must not be treated as a uniquely identified reducer property without the campaign’s held-out and initialization-stability evidence.
Quasi-static compliance and elastic-offset PINNs for Wave 5.2 Phase 3.
- class scripts.models.quasi_static_compliance_pinn_network.QuasiStaticCompliancePinnNetwork(input_size, harmonic_index_list, condition_hidden_size, condition_latent_size, mean_hidden_size, output_size=1, formulation='C1', activation_name='Tanh', dropout_probability=0.0, use_layer_norm=False, minimum_stiffness_nm_per_deg=5000.0, maximum_stiffness_nm_per_deg=100000.0, initial_stiffness_nm_per_deg=27250.0, initial_forward_intercept_deg=-0.0217, initial_backward_intercept_deg=-0.0116, reference_temperature_deg_c=30.0, temperature_scale_deg_c=10.0, nonlinear_torque_scale_nm=400.0, maximum_nonlinear_amplitude_deg=0.02, torque_input_mode='nominal_magnitude')[source]
Bases:
ModulePredict TE through periodic and quasi-static mean components.
C0is the non-PINN learned-mean control.C1throughC3expose a learned mean surface and a differentiable compliance residual with respect to signed torque.C4andC5embed the elastic equation directly in the forward path. Every formulation uses an explicit condition-dependent Fourier branch whose continuous-cycle mean is zero.- Parameters:
input_size (int)
harmonic_index_list (list[int])
condition_hidden_size (list[int])
condition_latent_size (int)
mean_hidden_size (list[int])
output_size (int)
formulation (str)
activation_name (str)
dropout_probability (float)
use_layer_norm (bool)
minimum_stiffness_nm_per_deg (float)
maximum_stiffness_nm_per_deg (float)
initial_stiffness_nm_per_deg (float)
initial_forward_intercept_deg (float)
initial_backward_intercept_deg (float)
reference_temperature_deg_c (float)
temperature_scale_deg_c (float)
nonlinear_torque_scale_nm (float)
maximum_nonlinear_amplitude_deg (float)
torque_input_mode (str)
- SUPPORTED_FORMULATION_SET = {'C0', 'C1', 'C2', 'C3', 'C4', 'C5'}
- SOFT_RESIDUAL_FORMULATION_SET = {'C1', 'C2', 'C3'}
- HARD_EQUATION_FORMULATION_SET = {'C4', 'C5'}
- __init__(input_size, harmonic_index_list, condition_hidden_size, condition_latent_size, mean_hidden_size, output_size=1, formulation='C1', activation_name='Tanh', dropout_probability=0.0, use_layer_norm=False, minimum_stiffness_nm_per_deg=5000.0, maximum_stiffness_nm_per_deg=100000.0, initial_stiffness_nm_per_deg=27250.0, initial_forward_intercept_deg=-0.0217, initial_backward_intercept_deg=-0.0116, reference_temperature_deg_c=30.0, temperature_scale_deg_c=10.0, nonlinear_torque_scale_nm=400.0, maximum_nonlinear_amplitude_deg=0.02, torque_input_mode='nominal_magnitude')[source]
Initialize one Phase 3 compliance formulation.
- Parameters:
input_size (int) – Input width ordered as angle, speed, torque, temperature, and direction flag.
harmonic_index_list (list[int]) – Positive output orders in the periodic branch.
condition_hidden_size (list[int]) – Hidden widths of the condition encoder.
condition_latent_size (int) – Width of the causal condition embedding.
mean_hidden_size (list[int]) – Hidden widths of the learned mean surface.
output_size (int) – Scalar TE output count.
formulation (str) – One of
C0throughC5.activation_name (str) – Activation used by learned branches.
dropout_probability (float) – Hidden dropout probability.
use_layer_norm (bool) – Whether learned branches use layer normalization.
minimum_stiffness_nm_per_deg (float) – Strict lower stiffness bound.
maximum_stiffness_nm_per_deg (float) – Strict upper stiffness bound.
initial_stiffness_nm_per_deg (float) – Audit-backed initialization.
initial_forward_intercept_deg (float) – Forward zero-torque mean.
initial_backward_intercept_deg (float) – Backward zero-torque mean.
reference_temperature_deg_c (float) – Temperature-law reference.
temperature_scale_deg_c (float) – Temperature-law normalization scale.
nonlinear_torque_scale_nm (float) – Odd nonlinear compliance scale.
maximum_nonlinear_amplitude_deg (float) – Upper nonlinear amplitude bound.
torque_input_mode (str) –
nominal_magnitudeormeasured_signed.
- Return type:
None
- set_normalization_statistics(normalization_statistics)[source]
Copy training-only normalization statistics into model buffers.
- Parameters:
normalization_statistics (object)
- Return type:
None
- compute_signed_torque_tensor(input_tensor)[source]
Resolve measured-convention signed torque from causal inputs.
- Parameters:
input_tensor (Tensor)
- Return type:
Tensor
- compute_direction_weight_tensor(input_tensor)[source]
Return differentiable forward and backward selector weights.
- Parameters:
input_tensor (Tensor)
- Return type:
tuple[Tensor, Tensor]
- compute_effective_stiffness_tensor(input_tensor)[source]
Compute positive bounded stiffness for the active formulation.
- Parameters:
input_tensor (Tensor)
- Return type:
Tensor
- compute_direction_intercept_tensor(input_tensor)[source]
Select the explicit zero-torque intercept by direction.
- Parameters:
input_tensor (Tensor)
- Return type:
Tensor
- compute_nonlinear_amplitude_tensor(input_tensor)[source]
Select a nonnegative bounded nonlinear amplitude by direction.
- Parameters:
input_tensor (Tensor)
- Return type:
Tensor
- compute_target_compliance_derivative_tensor(input_tensor)[source]
Compute the positive derivative prescribed by the physical law.
- Parameters:
input_tensor (Tensor)
- Return type:
Tensor
- compute_hard_mean_prediction_deg(input_tensor)[source]
Evaluate the equation-embedded C4 or C5 physical mean.
- Parameters:
input_tensor (Tensor)
- Return type:
Tensor
- compute_auxiliary_output_dictionary(input_tensor, normalized_input_tensor)[source]
Expose the complete inspectable Phase 3 decomposition.
- Parameters:
input_tensor (Tensor)
normalized_input_tensor (Tensor)
- Return type:
dict[str, Tensor]
- compute_physics_residual_dictionary(input_tensor, normalized_input_tensor, maximum_collocation_points=256, maximum_boundary_conditions=16, target_mean_tensor=None, target_std_tensor=None)[source]
Compute target-free compliance, boundary, and periodic losses.
- Parameters:
input_tensor (Tensor)
normalized_input_tensor (Tensor)
maximum_collocation_points (int)
maximum_boundary_conditions (int)
target_mean_tensor (Tensor | None)
target_std_tensor (Tensor | None)
- Return type:
dict[str, Tensor]