module gearbox(shaft1,shaft2); inout shaft1,shaft2; rotational_omega shaft1,shaft2; parameter real radius1 =1 from (0:inf), inertia1=1m from [0:inf), radius2 =1 from (0:inf), inertia2=1m from [0:inf); analog begin // Calculate angular velocity of shaft1 from angular velocity of shaft2. Omega(shaft1) <+ Omega(shaft2)*radius2/radius1; // Calculate shaft2 torque from shaft1 torque and angular acceleration. Tau(shaft2) <+ inertia2*ddt(Omega(shaft2)); Tau(shaft2) <+ (Tau(shaft1) - inertia1*ddt(Omega(shaft1))) *(radius2/radius1); end endmodule