# aFOC **Repository Path**: colin__lam/a-foc ## Basic Information - **Project Name**: aFOC - **Description**: FOC GD32F30x - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2025-07-09 - **Last Updated**: 2025-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # aFOC #### 介绍 直流无刷电机 FOC GD32F303CCT6 ## Clake 变换 $$ \begin{bmatrix} U_{\alpha}\\ U_{\beta} \end{bmatrix}= \begin{bmatrix} 1 & 0 & 0\\ 0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2} \end{bmatrix} \begin{bmatrix} U_A\\ U_b\\ U_C \end{bmatrix} \tag{1} $$ ## Park 变换 $$ \begin{bmatrix} U_{d}\\ U_{q} \end{bmatrix}= \begin{bmatrix} \cos{\theta} & \sin{\theta}\\ -\sin{\theta} & \cos{\theta} \end{bmatrix} \begin{bmatrix} U_{\alpha}\\ U_{\beta}\\ \end{bmatrix} \tag{2} $$ ## SVPWM 变换 ## PID 控制 时域公式 $$ u_{persat}(t)=u_p(t)+u_i(t)+u_d(t) \tag{3} $$ $$ \begin{cases} u_p(t)=K_pe(t)\\ u_i(t)=\frac{Kp}{Ti}\int_{0}^{t}e(\varsigma)d\varsigma + K_c(u(t)-u_{persat}(t))\\ u_d(t)=K_pT_d\frac{de(t)}{dt} \end{cases} \tag{4} $$ 时域公式离散化 $$ u_{persat}(k)=u_p(k)+u_i(k)+u_d(k) \tag{5} $$ $$ \begin{cases} u_p(k)=K_pe(k)\\ u_i(k)=u_i(k-1)+K_p\frac{T}{T_i}e(k)+K_c(u(k)-u_{persat}(k))\\ u_d(t)=K_p\frac{T_d}{T}(e(k)-e(k-1)) \end{cases} \tag{6} $$ 定义 $K_i=\frac{T}{T_i}$ 和 $K_d=\frac{T}{T_d}$,则上式可以简化为 $$ \begin{cases} u_p(k)=K_pe(k)\\ u_i(k)=u_i(k-1)+K_iu_p(k)+K_c(u(k)-u_{persat}(k))\\ u_d(t)=K_d(u_p(k)-u_p(k-1)) \end{cases} \tag{7} $$ ## SPI通讯 ## CAN 通讯 500Kbps 波特率 ## ADC 采样 #### 双电阻与三电阻采样 #### 单电阻采样 ## TIMER PWM 输出 三相互补带死区输出