PID regulator v 1.0
 
Loading...
Searching...
No Matches
motor.c File Reference

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.
 

Detailed Description

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

Function Documentation

◆ motor_calculate_speed()

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.

Parameters
motorWskaźnik do struktury motor_struct.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ motor_init()

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.

Parameters
motorWskaźnik do struktury motor_struct reprezentującej sterownik silnika.
encoder_timWskaźnik do uchwytu timera obsługującego enkoder.
Here is the caller graph for this function:

◆ motor_set_RPM_speed()

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.

Parameters
motorWskaźnik do struktury motor_struct.
RPM_speedZadana prędkość obrotowa w RPM.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ motor_stop()

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.

Parameters
motorWskaźnik do struktury motor_struct.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ motor_update_count()

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.

Parameters
motorWskaźnik do struktury motor_struct.
Here is the caller graph for this function: