Slight change to the way we do PID in SCT files
This commit is contained in:
@ -288,14 +288,14 @@ proc ::scobj::hiden_xcs::pid_flow {tc_root sp pv} {
|
||||
set p_value [expr {[sct pid_pvalue] * [sct pid_error]}]
|
||||
set d_value [expr {[sct pid_dvalue] * (${pv} - [sct oldval])}]
|
||||
sct pid_deriv [sct pid_error]
|
||||
sct pid_integ [expr {[sct pid_integ] + [sct pid_error]}]
|
||||
sct pid_integ [expr {[sct pid_integ] + [sct pid_error] * [sct pid_ivalue]}]
|
||||
if { [sct pid_integ] > [sct pid_imax] } {
|
||||
sct pid_integ [sct pid_imax]
|
||||
}
|
||||
if { [sct pid_integ] < -[sct pid_imax] } {
|
||||
sct pid_integ -[sct pid_imax]
|
||||
}
|
||||
set i_value [expr {[sct pid_ivalue] * [sct pid_integ]}]
|
||||
set i_value [sct pid_integ]
|
||||
set pid [expr {${p_value} + ${i_value} + ${d_value}}]
|
||||
# pid_flow hook code starts
|
||||
if { ![hval ${tc_root}/auto] } {
|
||||
@ -327,14 +327,14 @@ proc ::scobj::hiden_xcs::pid_humidity {tc_root sp pv} {
|
||||
set p_value [expr {[sct pid_pvalue] * [sct pid_error]}]
|
||||
set d_value [expr {[sct pid_dvalue] * (${pv} - [sct oldval])}]
|
||||
sct pid_deriv [sct pid_error]
|
||||
sct pid_integ [expr {[sct pid_integ] + [sct pid_error]}]
|
||||
sct pid_integ [expr {[sct pid_integ] + [sct pid_error] * [sct pid_ivalue]}]
|
||||
if { [sct pid_integ] > [sct pid_imax] } {
|
||||
sct pid_integ [sct pid_imax]
|
||||
}
|
||||
if { [sct pid_integ] < -[sct pid_imax] } {
|
||||
sct pid_integ -[sct pid_imax]
|
||||
}
|
||||
set i_value [expr {[sct pid_ivalue] * [sct pid_integ]}]
|
||||
set i_value [sct pid_integ]
|
||||
set pid [expr {${p_value} + ${i_value} + ${d_value}}]
|
||||
# pid_humidity hook code starts
|
||||
if { ![hval ${tc_root}/auto] } {
|
||||
@ -1333,8 +1333,8 @@ proc add_hiden_xcs {name ip_address tcp_port id} {
|
||||
::scobj::hiden_xcs::add_driver ${name} "environment" ${simulation_flag} ${ip_address} ${tcp_port} ${id}
|
||||
}
|
||||
|
||||
clientput "file evaluation of sct_hiden_xcs.tcl"
|
||||
::scobj::hiden_xcs::sics_log 9 "file evaluation of sct_hiden_xcs.tcl"
|
||||
clientput "file evaluation of hiden_xcs_sct.tcl"
|
||||
::scobj::hiden_xcs::sics_log 9 "file evaluation of hiden_xcs_sct.tcl"
|
||||
|
||||
proc ::scobj::hiden_xcs::read_config {} {
|
||||
set catch_status [ catch {
|
||||
|
@ -1372,14 +1372,14 @@ def put_pid_function(MyDriver, func):
|
||||
txt += [' set p_value [expr {[sct pid_pvalue] * [sct pid_error]}]']
|
||||
txt += [' set d_value [expr {[sct pid_dvalue] * (${pv} - [sct oldval])}]']
|
||||
txt += [' sct pid_deriv [sct pid_error]']
|
||||
txt += [' sct pid_integ [expr {[sct pid_integ] + [sct pid_error]}]']
|
||||
txt += [' sct pid_integ [expr {[sct pid_integ] + [sct pid_error] * [sct pid_ivalue]}]']
|
||||
txt += [' if { [sct pid_integ] > [sct pid_imax] } {']
|
||||
txt += [' sct pid_integ [sct pid_imax]']
|
||||
txt += [' }']
|
||||
txt += [' if { [sct pid_integ] < -[sct pid_imax] } {']
|
||||
txt += [' sct pid_integ -[sct pid_imax]']
|
||||
txt += [' }']
|
||||
txt += [' set i_value [expr {[sct pid_ivalue] * [sct pid_integ]}]']
|
||||
txt += [' set i_value [sct pid_integ]']
|
||||
txt += [' set pid [expr {${p_value} + ${i_value} + ${d_value}}]']
|
||||
if func in MyDriver['Funcs'] and len(MyDriver['Funcs'][func]['text']) > 0:
|
||||
txt += ['# %s hook code starts' % func]
|
||||
|
Reference in New Issue
Block a user