Implementacja funkcji sterowania silnikiem, w tym inicjalizacja, obliczanie prędkości oraz integracja z regulatorem PID i sterownikiem silnika Cytron. More...
#include <motor.h>
Functions | |
void | motor_init (motor_struct *motor, TIM_HandleTypeDef *encoder_tim) |
Inicjalizuje strukturę sterownika silnika. | |
void | motor_update_count (motor_struct *motor) |
Aktualizuje licznik impulsów enkodera. | |
void | motor_calculate_speed (motor_struct *motor) |
Oblicza aktualną prędkość obrotową silnika w RPM. | |
void | motor_set_RPM_speed (motor_struct *motor, int RPM_speed) |
Ustawia zadaną prędkość obrotową silnika w RPM. | |
void | motor_stop (motor_struct *motor) |
Zatrzymuje silnik. | |
Implementacja funkcji sterowania silnikiem, w tym inicjalizacja, obliczanie prędkości oraz integracja z regulatorem PID i sterownikiem silnika Cytron.
Created on: Jan 14, 2025 Author: Igor
void motor_calculate_speed | ( | motor_struct * | motor | ) |
Oblicza aktualną prędkość obrotową silnika w RPM.
Oblicza prędkość obrotową silnika w RPM i aktualizuje sygnał PWM sterujący silnikiem.
Na podstawie liczby impulsów odczytanych z enkodera i parametrów systemu (częstotliwości przerwań, rozdzielczości enkodera oraz przekładni) wylicza prędkość obrotową silnika. Wynik jest przekazywany do kontrolera PID, a wynik jego działania aktualizuje wartość sygnału PWM sterującego silnikiem.
motor | Wskaźnik do struktury motor_struct. |
void motor_init | ( | motor_struct * | motor, |
TIM_HandleTypeDef * | encoder_tim ) |
Inicjalizuje strukturę sterownika silnika.
Ustawia domyślne wartości parametrów struktury oraz inicjalizuje rozdzielczość enkodera na podstawie zdefiniowanych stałych.
motor | Wskaźnik do struktury motor_struct reprezentującej sterownik silnika. |
encoder_tim | Wskaźnik do uchwytu timera obsługującego enkoder. |
void motor_set_RPM_speed | ( | motor_struct * | motor, |
int | RPM_speed ) |
Ustawia zadaną prędkość obrotową silnika w RPM.
Jeżeli nowa prędkość różni się od bieżącej, resetuje stan kontrolera PID i zapisuje nową wartość zadanej prędkości.
motor | Wskaźnik do struktury motor_struct. |
RPM_speed | Zadana prędkość obrotowa w RPM. |
void motor_stop | ( | motor_struct * | motor | ) |
Zatrzymuje silnik.
Resetuje zadaną prędkość, zmierzoną prędkość oraz sygnał PWM do wartości początkowych. Ustawia prędkość PWM na 0.
motor | Wskaźnik do struktury motor_struct. |
void motor_update_count | ( | motor_struct * | motor | ) |
Aktualizuje licznik impulsów enkodera.
Zczytuje aktualną wartość z licznika timera obsługującego enkoder, zapisuje ją do struktury sterownika silnika, a następnie zeruje licznik timera.
motor | Wskaźnik do struktury motor_struct. |