debug speed control algorithm #7
This commit is contained in:
parent
4e8698069b
commit
da03e7b0ea
2 changed files with 39 additions and 31 deletions
|
@ -17,8 +17,6 @@ variable_control_step_U_1: str = "control_step_U_1"
|
||||||
variable_control_step_rpm_1: str = "control_step_rpm_1"
|
variable_control_step_rpm_1: str = "control_step_rpm_1"
|
||||||
variable_control_step_U_2: str = "control_step_U_2"
|
variable_control_step_U_2: str = "control_step_U_2"
|
||||||
variable_control_step_rpm_2: str = "control_step_rpm_2"
|
variable_control_step_rpm_2: str = "control_step_rpm_2"
|
||||||
variable_control_step_U_3: str = "control_step_U_3"
|
|
||||||
variable_control_step_rpm_3: str = "control_step_rpm_3"
|
|
||||||
|
|
||||||
#init variables in variables system
|
#init variables in variables system
|
||||||
if get_variable(variable_actual_rpm) == None:
|
if get_variable(variable_actual_rpm) == None:
|
||||||
|
@ -40,22 +38,16 @@ if get_variable(variable_control_step_rpm) == None:
|
||||||
set_variable(variable_control_step_rpm, 200, True)
|
set_variable(variable_control_step_rpm, 200, True)
|
||||||
|
|
||||||
if get_variable(variable_control_step_U_1) == None:
|
if get_variable(variable_control_step_U_1) == None:
|
||||||
set_variable(variable_control_step_U_1, 0.003, True)
|
set_variable(variable_control_step_U_1, 0.01, True)
|
||||||
|
|
||||||
if get_variable(variable_control_step_rpm_1) == None:
|
if get_variable(variable_control_step_rpm_1) == None:
|
||||||
set_variable(variable_control_step_rpm_1, 80, True)
|
set_variable(variable_control_step_rpm_1, 100, True)
|
||||||
|
|
||||||
if get_variable(variable_control_step_U_2) == None:
|
if get_variable(variable_control_step_U_2) == None:
|
||||||
set_variable(variable_control_step_U_2, 0.0005, True)
|
set_variable(variable_control_step_U_2, 0.001, True)
|
||||||
|
|
||||||
if get_variable(variable_control_step_rpm_2) == None:
|
if get_variable(variable_control_step_rpm_2) == None:
|
||||||
set_variable(variable_control_step_rpm_2, 20, True)
|
set_variable(variable_control_step_rpm_2, 5, True)
|
||||||
|
|
||||||
if get_variable(variable_control_step_U_3) == None:
|
|
||||||
set_variable(variable_control_step_U_3, 0.0001, True)
|
|
||||||
|
|
||||||
if get_variable(variable_control_step_rpm_3) == None:
|
|
||||||
set_variable(variable_control_step_rpm_3, 1, True)
|
|
||||||
|
|
||||||
if get_variable(variable_control_stack) == None:
|
if get_variable(variable_control_stack) == None:
|
||||||
set_variable(variable_control_stack, 0, True)
|
set_variable(variable_control_stack, 0, True)
|
||||||
|
@ -69,10 +61,12 @@ def set_output(value: float):
|
||||||
if value < float(get_variable(variable_max_U)):
|
if value < float(get_variable(variable_max_U)):
|
||||||
set_0_10_out(stack=int(get_variable(variable_control_stack)), channel=int(get_variable(variable_control_channel)), value=value)
|
set_0_10_out(stack=int(get_variable(variable_control_stack)), channel=int(get_variable(variable_control_channel)), value=value)
|
||||||
|
|
||||||
|
def printer(text):
|
||||||
|
if True:
|
||||||
|
print(text)
|
||||||
|
|
||||||
#control RPM
|
#control RPM
|
||||||
def rpm_control():
|
def rpm_control():
|
||||||
print("control_RPM")
|
|
||||||
actual_rpm = float(get_variable(variable_actual_rpm))
|
actual_rpm = float(get_variable(variable_actual_rpm))
|
||||||
requested_rpm = float(get_variable(variable_requested_rpm))
|
requested_rpm = float(get_variable(variable_requested_rpm))
|
||||||
actual_set_U = read_0_10_out(stack=int(get_variable(variable_control_stack)), channel=int(get_variable(variable_control_channel)))
|
actual_set_U = read_0_10_out(stack=int(get_variable(variable_control_stack)), channel=int(get_variable(variable_control_channel)))
|
||||||
|
@ -89,22 +83,40 @@ def rpm_control():
|
||||||
return
|
return
|
||||||
|
|
||||||
#algorithm for RPM control
|
#algorithm for RPM control
|
||||||
if (requested_rpm - float(get_variable(variable_control_step_rpm_3))) < actual_rpm or actual_rpm < (requested_rpm + float(get_variable(variable_control_step_rpm_3))):
|
if (requested_rpm - float(get_variable(variable_control_step_rpm))) > actual_rpm:
|
||||||
if requested_rpm < actual_rpm:
|
set_output(actual_set_U + float(variable_control_step_U))
|
||||||
set_output(actual_set_U - float(get_variable(variable_control_step_U_3)))
|
printer("(requested_rpm - float(get_variable(variable_control_step_rpm))) > actual_rpm")
|
||||||
elif requested_rpm > actual_rpm:
|
|
||||||
set_output(actual_set_U + float(get_variable(variable_control_step_U_3)))
|
|
||||||
print("control_4")
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if (requested_rpm - float(get_variable(variable_control_step_rpm_2))) < actual_rpm or actual_rpm < (requested_rpm + float(get_variable(variable_control_step_rpm_2))):
|
elif (requested_rpm + float(get_variable(variable_control_step_rpm))) < actual_rpm:
|
||||||
if requested_rpm < actual_rpm:
|
set_output(actual_set_U - float(variable_control_step_U))
|
||||||
set_output(actual_set_U - float(get_variable(variable_control_step_U_2)))
|
printer("(requested_rpm + float(get_variable(variable_control_step_rpm))) < actual_rpm")
|
||||||
elif requested_rpm > actual_rpm:
|
|
||||||
set_output(actual_set_U + float(get_variable(variable_control_step_U_2)))
|
|
||||||
print("control_3")
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if (requested_rpm - float(get_variable(variable_control_step_rpm_1))) > actual_rpm:
|
||||||
|
set_output(actual_set_U + float(variable_control_step_U_1))
|
||||||
|
printer("(requested_rpm - float(get_variable(variable_control_step_rpm_1))) > actual_rpm")
|
||||||
|
return
|
||||||
|
|
||||||
|
elif (requested_rpm + float(get_variable(variable_control_step_rpm_1))) < actual_rpm:
|
||||||
|
set_output(actual_set_U - float(variable_control_step_U_1))
|
||||||
|
printer("(requested_rpm + float(get_variable(variable_control_step_rpm_1))) < actual_rpm")
|
||||||
|
return
|
||||||
|
|
||||||
|
if (requested_rpm - float(get_variable(variable_control_step_rpm_2))) > actual_rpm:
|
||||||
|
set_output(actual_set_U + float(variable_control_step_U_2))
|
||||||
|
printer("(requested_rpm - float(get_variable(variable_control_step_rpm_2))) > actual_rpm")
|
||||||
|
return
|
||||||
|
|
||||||
|
elif (requested_rpm + float(get_variable(variable_control_step_rpm_2))) < actual_rpm:
|
||||||
|
set_output(actual_set_U - float(variable_control_step_U_2))
|
||||||
|
printer("(requested_rpm + float(get_variable(variable_control_step_rpm_2))) < actual_rpm")
|
||||||
|
return
|
||||||
|
|
||||||
|
print("empty_run")
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
if (requested_rpm - float(get_variable(variable_control_step_rpm_1))) < actual_rpm or actual_rpm < (requested_rpm + float(get_variable(variable_control_step_rpm_1))):
|
if (requested_rpm - float(get_variable(variable_control_step_rpm_1))) < actual_rpm or actual_rpm < (requested_rpm + float(get_variable(variable_control_step_rpm_1))):
|
||||||
if requested_rpm < actual_rpm:
|
if requested_rpm < actual_rpm:
|
||||||
set_output(actual_set_U - float(get_variable(variable_control_step_U_1)))
|
set_output(actual_set_U - float(get_variable(variable_control_step_U_1)))
|
||||||
|
@ -120,8 +132,7 @@ def rpm_control():
|
||||||
set_output(actual_set_U + float(get_variable(variable_control_step_U)))
|
set_output(actual_set_U + float(get_variable(variable_control_step_U)))
|
||||||
print("control_1")
|
print("control_1")
|
||||||
return
|
return
|
||||||
|
"""
|
||||||
print("empty_run")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,6 @@ from src.variables.service import get_variable, set_variable
|
||||||
from gpiozero import Button
|
from gpiozero import Button
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
#from scripts.speed_controller import rpm_control
|
|
||||||
|
|
||||||
pulses_per_rotation = 4
|
pulses_per_rotation = 4
|
||||||
reader = Button(4, pull_up=False, bounce_time=0.0005)
|
reader = Button(4, pull_up=False, bounce_time=0.0005)
|
||||||
set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False)
|
set_variable("speed_reader_last_impulse_time", datetime.datetime.now(), False)
|
||||||
|
@ -23,7 +21,6 @@ def event():
|
||||||
|
|
||||||
set_variable("actual_rpm", round(actual_rpm, 1), False)
|
set_variable("actual_rpm", round(actual_rpm, 1), False)
|
||||||
print(round(actual_rpm, 1))
|
print(round(actual_rpm, 1))
|
||||||
# rpm_control()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue