commit
This commit is contained in:
24
mag_lev_coil.py
Normal file
24
mag_lev_coil.py
Normal file
@@ -0,0 +1,24 @@
|
||||
# The following was generated by AI - see [17]
|
||||
class MagLevCoil:
|
||||
def __init__(self, r_resistance, l_inductance, source_voltage, maxCurrent):
|
||||
self.R = r_resistance
|
||||
self.L = l_inductance
|
||||
self.current = 0.0
|
||||
self.Vs = source_voltage
|
||||
self.Imax = maxCurrent
|
||||
|
||||
def update(self, pwm_duty_cycle, dt):
|
||||
"""
|
||||
Simulates the coil circuit and force generation.
|
||||
pwm_duty_cycle: -1.0 to 1.0
|
||||
"""
|
||||
# Simple First-order RL circuit approximation
|
||||
# V_in = Duty * V_source
|
||||
voltage = pwm_duty_cycle * self.Vs
|
||||
|
||||
# di/dt = (V - I*R) / L
|
||||
di = (voltage - self.current * self.R) / self.L
|
||||
self.current += di * dt
|
||||
self.current = min(max(-self.Imax, self.current), self.Imax)
|
||||
|
||||
return self.current
|
||||
Reference in New Issue
Block a user