mirror of
https://github.com/OpenSquawk/OpenSquawk
synced 2026-08-09 02:56:02 +08:00
engine thr mehr respektieren
This commit is contained in:
@@ -38,6 +38,7 @@ const DRAG_COEFFICIENT = 0.03
|
||||
const MASS = 150000
|
||||
const GRAVITY = 32.174
|
||||
const KT_TO_FPS = 1.68781
|
||||
const SPEED_PITCH_COUPLING = 0.5
|
||||
|
||||
const INITIAL_SPEED = 220
|
||||
const INITIAL_ALTITUDE = 5000
|
||||
@@ -130,8 +131,9 @@ export function useAirbusFBW() {
|
||||
|
||||
// --- Speed ---
|
||||
const speedFps2 = state.speed * KT_TO_FPS
|
||||
const pitchRad = state.pitch * Math.PI / 180
|
||||
const drag = DRAG_COEFFICIENT * speedFps2 * speedFps2
|
||||
const climbPenalty = Math.sin(state.pitch * Math.PI / 180) * MASS * GRAVITY * 0.3
|
||||
const climbPenalty = Math.sin(pitchRad) * MASS * GRAVITY * SPEED_PITCH_COUPLING
|
||||
const netForce = thrust - drag - climbPenalty
|
||||
const acceleration = netForce / MASS
|
||||
const speedDelta = (acceleration / KT_TO_FPS) * dt
|
||||
|
||||
@@ -100,6 +100,11 @@ export function useFlightLabSync() {
|
||||
send({ type: 'join-session', code: code.toUpperCase(), role: joinRole })
|
||||
}
|
||||
|
||||
async function joinGlobalSession(joinRole: FlightLabRole = 'participant', scenarioId = 'learn-pfd') {
|
||||
await connect()
|
||||
send({ type: 'join-session', role: joinRole, scenarioId })
|
||||
}
|
||||
|
||||
/** Subscribe this session to receive telemetry for the given userId */
|
||||
function subscribeTelemetry(userId: string) {
|
||||
send({ type: 'subscribe-telemetry', userId })
|
||||
@@ -145,6 +150,7 @@ export function useFlightLabSync() {
|
||||
remoteState,
|
||||
createSession,
|
||||
joinSession,
|
||||
joinGlobalSession,
|
||||
subscribeTelemetry,
|
||||
sendParticipantAction,
|
||||
sendInstructorCommand,
|
||||
|
||||
@@ -75,13 +75,13 @@ const phases: LearnPfdPhase[] = [
|
||||
// --- Phase 6: Speed Intro ---
|
||||
{
|
||||
id: 'speed_intro',
|
||||
atcMessage: 'Links erscheint jetzt das Speed Tape. Das zeigt dir wie schnell du fliegst, in Knoten. Schieb den Schubhebel nach vorne — und schau was mit der Geschwindigkeit passiert.',
|
||||
atcMessage: 'Links erscheint jetzt das Speed Tape. Das zeigt dir wie schnell du fliegst, in Knoten. Schieb den Schubhebel auf etwa siebzig Prozent nach vorne — und schau was mit der Geschwindigkeit passiert.',
|
||||
explanation: 'Das Speed Tape zeigt die angezeigte Fluggeschwindigkeit (IAS) in Knoten.',
|
||||
visibleElements: ['attitude', 'speedTape'],
|
||||
layoutMode: 'split',
|
||||
interactionGoal: { parameter: 'speed', target: 280, tolerance: 30, holdMs: 2000 },
|
||||
goalTimeoutMs: 20000,
|
||||
goalHint: 'Schieb den Schubhebel weiter nach vorne. Die Zahl auf dem Speed Tape sollte steigen.',
|
||||
goalHint: 'Schieb den Schubhebel bis ungefähr siebzig Prozent. Die Zahl auf dem Speed Tape sollte steigen.',
|
||||
buttons: [
|
||||
{ id: 'skip_speed', label: 'Weiter', icon: 'mdi-arrow-right', next: 'alt_intro', type: 'primary' },
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user