engine thr mehr respektieren

This commit is contained in:
itsrubberduck
2026-02-20 23:55:45 +01:00
parent 34df91188d
commit b83ccf2c7c
6 changed files with 52 additions and 34 deletions

View File

@@ -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

View File

@@ -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,

View File

@@ -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' },
],