🏋️ 무게 모드 체계

앱 → BLE → FW 전수 매핑 · v3.1 · 2026-03-21 (진동 모드 kg 직접 설정)

🛡️ 공통 안전 체인 (모든 모드)

F 계산
모드별
IqLimit
앱 설정
Slew Rate
앱 설정
MaxWeight
Flash/50kg
MaxCurrent
30A
안전장치FW 변수기본값BLE paramId앱 설정
IqLimit NEWIqLimit0 (OFF)0x40 (×100)0~30A 슬라이더
Slew RateSlewRate_kgPerSec50 kg/s0x2010~200 슬라이더
MaxWeightWP_Machine.MaxWeightFlash or 50kg변경 불가
MaxCurrentWP_Machine.MaxCurrent30A변경 불가

📦 기존 모드 (0~2)

0
일정 부하Constant
설정 무게 그대로 일정하게 유지. 모드 전용 파라미터 없음.
F_Load = TargetWeight × OnOffScale
1
신장성Negative
이완(내리는) 구간에서 추가 부하
앱 변수BLEFW 변수
이완 강도ECC_LEVEL (0x62)F_EccSet
F_Load = (TargetWeight + FeccTemp) × OnOffScale // FeccTemp: 방향에 따라 0 ↔ F_EccSet 사이 점진 변화
2
밴드Band
위치에 비례하는 탄성 저항. 모드 전용 파라미터 없음.
Iq_Temp = F_idle + (F_Load - F_idle) × (Pos - H_LoSoft) / (RangeHi - H_LoSoft) // LoSoft → RangeHi 구간 선형 보간

⚡ 신규 모드 (3~5)

3
등속성Isokinetic
목표 속도까지는 일정 부하, 초과 시 벽처럼 저항 급증 — "더 빨리 당겨도 소용없게" 만드는 속도 제한 모드
앱 변수BLE paramIdFW 변수기본값범위
목표 속도0x10Iso_Vtarget200 mm/s100~600
제동 게인0x11 (×100)Iso_Kgain5.02.0~8.0
|v| ≤ Vtarget: F_Load = TargetWeight × OnOffScale |v| > Vtarget: F_Load = TargetWeight × (1 + Kgain × (|v|-Vtarget)/Vtarget) × OnOffScale

체험 프리셋

🐌 Slow
Vtarget 150mm/s · Kgain 5.0
🚶 Normal
Vtarget 300mm/s · Kgain 5.0
🏃 Fast
Vtarget 500mm/s · Kgain 3.0

⚡ 등속성 시뮬레이터

Vtarget = 목표 속도 — 이 속도로 수렴시키는 게 목표
Kgain = 적분 게인 — 높을수록 빠르게 수렴 (기울기 = 반응 속도)
━ 파란선 = 상승(사람이 당김): 오른쪽(빠름)→부하↑, 왼쪽(느림)→부하↓
╌ 빨간선 = 하강(모터가 당김): 방향 반전
초록 영역 = ±5% 데드밴드 — 적분 동결 (진동 방지)
4
유체저항Hydraulic
속도에 비례하는 유체 저항 — 빠를수록 무거움. 하강(놓을 때)은 최소 텐션만 유지.

핵심 수식 (v3.2)

F = Fmin + (W - Fmin) × (v / Vmax)n where Fmin = W × minR (고정) → Vmax에서 설정무게 W 도달, 그 이상 W 고정

설정 변수 (3개)

변수의미BLE기본값범위
W 부하최대 부하 (kg)SET_WEIGHT1~59
Vmax 최대부하 속도이 속도에서 W kg 도달0x01 or 0x02300 mm/s100~800
n 급격함1=선형, 2=급격, 0.5=완만0x03 (×100)1.00.5~2.0

숨김 변수 (고정)

변수역할BLE기본값
minR정지 시 최소 텐션 비율0x04 (×100)0.10 (10%)

방향별 동작

상승 (v > 0): F = Fmin + (W - Fmin) × (v / Vmax)n 하강 (v < 0): F = Fmin (최소 텐션만, 안전)

체험 프리셋

🌬️ Air
n=2.0 · Vref 300
💧 Water
n=1.5 · Vref 300
🫗 Oil
n=1.0 · Vref 300
🍯 Honey
n=0.7 · Vref 300

📊 유체저항 모드 시뮬레이터

고급 설정 (minR, Vmax, SlewRate)
● F (당김, v>0) ── W (설정 무게) ── Fmin (최소 텐션) ■ Vmax cap

5
진동Vibration
v3.1
주기적 부하 진동 — 기본 무게(평균) 중심으로 ±진폭kg 진동. 진폭은 kg 직접 설정 + 비율 안전 상한.

파라미터 정의

앱 UIBLE paramIdFW 변수기본값범위설명
기본 무게 (평균) SET_WEIGHT TargetWeight 1~59 kg 리모컨 무게 설정, 진동 중심값
진폭 (kg) 0x31 (×100) 변경 Vib_AmplitudeKg 3.0 kg 0.5~15 직접 kg 설정
비율 상한 (%) 0x32 (×100) 변경 Vib_MaxRatio 0.30 0.10~0.50 기본무게 대비 진폭 상한
주파수 (Hz) 0x30 (×100) Vib_Freq 20 Hz 10~100 진동 빠르기

FW 수식

// 진폭 계산: kg 직접 + 비율 안전 클램프 vibKg = Vib_AmplitudeKg maxByRatio = TargetWeight × Vib_MaxRatio if (vibKg > maxByRatio) vibKg = maxByRatio ← 안전 클램프 osc = sin(2π × Freq × t) F_Load = (TargetWeight + vibKg × osc) × OnOffScale // 이후 공통 체인: IqLimit → SlewRate → MaxWeight → MaxCurrent

동작 예시

기본무게진폭 설정MaxRatio실효 진폭부하 범위
20 kg5 kg30%5 kg (상한 6kg)15~25 kg
10 kg5 kg30%3 kg (클램프!)7~13 kg
40 kg5 kg30%5 kg (상한 12kg)35~45 kg
10 kg2 kg50%2 kg (상한 5kg)8~12 kg
50 kg10 kg30%10 kg (상한 15kg)40~60 kg
핵심 변경 (v3.0 → v3.1):
• 진폭을 % 대신 kg 직접 설정 — 직관적
• AbsMaxKg(절대 상한) → MaxRatio(비율 상한) — 기본무게에 따라 자동 스케일
• BLE paramId 동일 (0x31, 0x32), 해석만 변경

📊 진동 모드 시뮬레이터

이상 (제한 없음)
실제 (SlewRate 적용)
기본 무게
MaxRatio 클램프 영역
IqLimit 영역

🔍 엣지 케이스 분석

⚠️ 고무게 + 큰 진폭 + 고주파
50kg · 10kg · 30% · 60Hz
vibKg=10kg (상한15kg OK), SlewRate 심한 클리핑 → 삼각파
✅ 저무게에서 MaxRatio 클램프
10kg · 5kg · 30% · 25Hz
vibKg=5kg → 3kg 클램프 (10×30%), 안전
✅ 적당한 기본 설정
20kg · 2kg · 30% · 15Hz
필요 변화율=188kg/s > 50 → 약간 클리핑, 체감 진동 OK
✅ 작은 진폭 + 저주파 → 완전 사인파
20kg · 1kg · 30% · 10Hz
필요 변화율=63kg/s ≈ SlewRate → 거의 완전 사인파
⚠️ IqLimit 10A 적용
30kg · 5kg · 30% · 40Hz · IqLimit 10A
IqLimit가 상단 진폭을 잘라냄 → 비대칭 파형
✅ SlewRate 150으로 올린 경우
20kg · 3kg · 30% · 25Hz · SlewRate 150
필요 변화율=471kg/s > 150 → 아직 클리핑이지만 사인에 가까움
SlewRate vs 주파수 × 진폭 관계:
완전 사인파 조건: 2π × freq × vibKg ≤ SlewRate
→ SlewRate 50에서 vibKg=1kg이면 ~8Hz, vibKg=3kg이면 ~2.7Hz까지 완전 사인
진폭이 작으면 SlewRate를 덜 올려도 안전 — 실기 테스트로 적정값 탐색

📡 BLE 프로토콜 요약

파라미터 설정 (0xF5 서브코드 0x05)

// 앱 → FW [FF FF] [06] [F5] [05] [paramId] [val_H] [val_L] [CHK] // Hydraulic 0x01 Hydro_Vmax (mm/s) 0x03 Hydro_n (÷100) 0x02 Hydro_Vmax (mm/s) 0x04 Hydro_minRatio (÷100) // Isokinetic 0x10 Iso_Vtarget (mm/s) 0x11 Iso_Kgain (÷100) // 공통 안전 0x20 SlewRate (kg/s) 0x40 IqLimit (÷100 → A) NEW // Vibration (v3.1) 0x30 Vib_Freq (÷100 → Hz) 0x31 Vib_AmplitudeKg (÷100 → kg) 변경: %→kg 0x32 Vib_MaxRatio (÷100) 변경: AbsMaxKg→비율

⚠️ 체험 안전 제한

제한사유
Vib 주파수10~100 Hz10Hz 미만: 불규칙, 100Hz 초과: 모터 부담
Vib 진폭0.5~15 kg직접 kg 설정, MaxRatio로 이중 보호
Vib MaxRatio10~50%기본무게 대비 진폭 비율 상한
Iso K_gain2.0~8.010+ → 급정지 느낌
Iso v_target100~600 mm/s이하 → 거의 움직이지 못함
Hydro n0.5~2.03+ → 고속 시 부하 폭증
IqLimit0~30A0=OFF, 소프트 전류 상한
SlewRate10~200 kg/s토크 변화율 제한

WESPION · Roomfit · 2026-03-21