Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Credit ian for bulk of code
- error_prior = 0
- local integral_prior = 0
- local kp = 0.01
- local ki = 0
- local kd = 1
- local bias = 0
- while true do
- sleep(0)
- setRps = 4000
- getRps = peripheral.wrap("left").fluidTank.coolFluid()
- error = setRps - getRps
- integral = integral_prior+error
- derivative = error-error_prior
- if integral*ki > 1 then
- integral = 1/ki
- end
- if integral*ki < -0.1 then
- integral = 0/ki
- end
- value_out = kp*error+ki*integral+kd*derivative+bias
- error_prior = error
- integral_prior = integral
- if value_out > 100 then value_out = 100 end
- if value_out < 0 then value_out = 0 end
- peripheral.wrap("left").setAllControlRodLevels(value_out)
- end
Add Comment
Please, Sign In to add comment