nuttx-apps/examples/foc/Kconfig
raiden00pl 2fb79db8b4 examples/foc: replace the requested velocity input with a more general setpoint input.
This is the inital step to support torque/velocity/position control
2021-10-30 13:50:56 -05:00

256 lines
5.6 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menuconfig EXAMPLES_FOC
tristate "FOC motor controller example"
depends on MOTOR_FOC
depends on INDUSTRY_FOC
---help---
Enable the FOC motor controller example.
At the moment, this example implements a simple open-loop velocity controller.
if EXAMPLES_FOC
config EXAMPLES_FOC_DEVPATH
string "FOC device path prefix"
default "/dev/foc"
---help---
The default path to the FOC device without the device minor number.
Default: /dev/foc
config EXAMPLES_FOC_FLOAT_INST
int "FOC float instances"
depends on INDUSTRY_FOC_FLOAT
default 0
config EXAMPLES_FOC_FIXED16_INST
int "FOC fixed16 instances"
depends on INDUSTRY_FOC_FIXED16
default 0
config EXAMPLES_FOC_CONTROL_PRIO
int "FOC control thread priority"
default 255
config EXAMPLES_FOC_CONTROL_STACKSIZE
int "FOC control thread stack size"
default 4096
config EXAMPLES_FOC_VERBOSE
int "Enable verbose print for app"
default 1
range 0 2
config EXAMPLES_FOC_PWM_FREQ
int "FOC PWM frequency"
default 10000
---help---
Select the FOC PWM switching frequency
config EXAMPLES_FOC_NOTIFIER_FREQ
int "FOC notifier frequency"
default EXAMPLES_FOC_PWM_FREQ
---help---
Select the FOC notifier frequency
config EXAMPLES_FOC_IPHASE_ADC
int "FOC phase current scale [x100000]"
default 0
---help---
This parameter is used to get real currents from ADC RAW values
config EXAMPLES_FOC_STATE_PRINT_FREQ
int "FOC example data printer frequency"
default 0
depends on INDUSTRY_FOC_HANDLER_PRINT
---help---
Set 0 to disable FOC data print
config EXAMPLES_FOC_STATE_USE_MODEL_PMSM
bool "FOC uses PMSM model"
depends on INDUSTRY_FOC_MODEL_PMSM
default n
---help---
Use PMSM model instead of real hardware
choice
prompt "FOC sensored or sensorless configuration"
default EXAMPLES_FOC_SENSORLESS
config EXAMPLES_FOC_SENSORLESS
bool "FOC example sensorless configuration"
config EXAMPLES_FOC_SENSORED
bool "FOC example sensored configuration"
endchoice #
config EXAMPLES_FOC_HAVE_OPENLOOP
bool "FOC example have open-loop controller"
select INDUSTRY_FOC_ANGLE_OPENLOOP
default y if EXAMPLES_FOC_SENSORLESS
default n
menu "FOC user input"
config EXAMPLES_FOC_HAVE_ADC
bool
default n
choice
prompt "FOC VBUS source"
default EXAMPLES_FOC_VBUS_CONST
config EXAMPLES_FOC_VBUS_CONST
bool "Use hardcoded constant VBUS value"
config EXAMPLES_FOC_VBUS_ADC
bool "Use VBUS provided by ADC interface"
depends on ADC
select EXAMPLES_FOC_HAVE_ADC
endchoice # FOC VBUS interface
if EXAMPLES_FOC_VBUS_CONST
config EXAMPLES_FOC_VBUS_CONST_VALUE
int "FOC VBUS constant value"
default 12000
endif # EXAMPLES_FOC_VBUS_CONST
if EXAMPLES_FOC_HAVE_ADC
config EXAMPLES_FOC_ADC_DEVPATH
string "FOC ADC interface path"
default "/dev/adc0"
config EXAMPLES_FOC_ADC_VREF
int "FOC ADC reference votlage [x1000]"
default 0
config EXAMPLES_FOC_ADC_MAX
int "FOC ADC aux maximum sample value"
default 0
endif # EXAMPLES_FOC_HAVE_ADC
if EXAMPLES_FOC_VBUS_ADC
config EXAMPLES_FOC_VBUS_SCALE
int "FOC VBUS SCALE scale [x1000]"
default 0
endif # EXAMPLES_FOC_VBUS_ADC
choice
prompt "FOC setpoint source"
default EXAMPLES_FOC_SETPOINT_CONST
config EXAMPLES_FOC_SETPOINT_CONST
bool "Use hardcoded constant setpiont value"
config EXAMPLES_FOC_SETPOINT_ADC
bool "Use ADC to control setpoint"
select EXAMPLES_FOC_HAVE_ADC
endchoice # FOC setpoint interface
if EXAMPLES_FOC_SETPOINT_CONST
config EXAMPLES_FOC_SETPOINT_CONST_VALUE
int "FOC hardoced setpoint value"
default 0
endif # EXAMPLES_FOC_SETPOINT_CONST
if EXAMPLES_FOC_SETPOINT_ADC
config EXAMPLES_FOC_SETPOINT_ADC_MAX
int "FOC maximum setpoint from ADC [x1000]"
default 0
endif # EXAMPLES_FOC_SETPOINT_ADC
config EXAMPLES_FOC_TIME_DEFAULT
int "FOC run time default (sec)"
default 10
config EXAMPLES_FOC_STATE_INIT
int "FOC motor controller state init"
default 1
range 1 4
---help---
1 - motor FREE (no current)
2 - motor STOP (active break)
3 - motor moves in CW direction
4 - motor moves in CCW direction
config EXAMPLES_FOC_HAVE_BUTTON
bool "FOC button support"
default n
---help---
The button is used to change the motor controller state
if EXAMPLES_FOC_HAVE_BUTTON
config EXAMPLES_FOC_BUTTON_DEVPATH
string "FOC button device path"
default "/dev/buttons"
depends on INPUT_BUTTONS
endif
endmenu # FOC user input
menu "FOC controller parameters"
config EXAMPLES_FOC_OPMODE
int "FOC operation mode"
default 2
range 1 3
---help---
1 - IDLE mode
2 - voltage open-loop velocity controller (default)
3 - current open-loop velocity controller
config EXAMPLES_FOC_OPENLOOP_Q
int "FOC open-loop Vq/Iq setting [x1000]"
default 200
depends on EXAMPLES_FOC_HAVE_OPENLOOP
config EXAMPLES_FOC_IDQ_KP
int "FOC PI controller Kp gain [x1000]"
default 0
---help---
It is set to 0 by default and must be properly configured by the user!
The vaule of Kp and Ki depends on the controlled motor parameters.
For more instructions see README.md for this example.
config EXAMPLES_FOC_IDQ_KI
int "FOC PI controller Ki gain [x1000]"
default 0
---help---
It is set to 0 by default and must be properly configured by the user!
The vaule of Kp and Ki depends on the controlled motor parameters.
For more instructions see README.md for this example.
config EXAMPLES_FOC_RAMP_THR
int "FOC velocity ramp threshold [x1000]"
default 0
config EXAMPLES_FOC_RAMP_ACC
int "FOC velocity ramp acc [x1000]"
default 0
config EXAMPLES_FOC_RAMP_DEC
int "FOC velocity ramp acc [x1000]"
default 0
endmenu # FOC controller parameters
endif # EXAMPLES_FOC