一、STM32G4 电流环闭环
1 电流环闭环
- 电流环框图
PID控制
- 时域和拉普拉斯域的传递函数
- PID:
P比例部分,I积分部分,D微分部分
直观的描述出当前误差,过去误差和误差的变化趋势
一般只使用PI控制
2 电流环闭环建模
基于上章SVPWM模型,我们可以得到电机的输出三相电流,得到电机的三相电流后我们可以通过Clark变换将其转换为alpha及beta轴电流;
使用BusSelector模块将电流总线输出为三相电流,并使用Goto模块及From模型,将电机输出的三相电流参数输入到Clark变换模块;
得到alpha和beta轴电流后,再经过Park变换转换为实际dq轴电流:
电流环的目的就是将实际的dq轴电流变成我们期望的dq轴电流,故我们在期望的dq轴电流和实际的dq轴电流之间增加PI控制器;使用constant模块设置我们期望dq轴电流,PID模块用作PI控制器,Kp和Ki参数配置外部输人:通常期望的d轴电流值都为 0;
- 新建idq_Controller子模块
- 新建idq_Controller子模块
PI控制器的输出就是dq轴的电压经过anti_Park变换就得到了SVPWM模块的输入alpha和beta轴电压;
电流环的模型框架基本搭建完成,接下来确定我们的控制参数;电流环的PI参数可以按照以下公式计算,其中α为电流环的带宽可以选择100左右;
{ K p d = α L d K i d = α R K p q = α L q K i q = α R \begin{cases} K_{pd} = \alpha L_d \\ K_{id} = \alpha R \\ K_{pq} = \alpha L_q \\ K_{iq} = \alpha R \end{cases} ⎩ ⎨ ⎧Kpd=αLdKid=αRKpq=αLqKiq=αR在数据字典中建立CurrKp以及CurrKi参数,并输入PI控制器;
设置PI控制器的输入dq轴电压阈值为90%;
将刚才所建立的算法部分选中并生成子系统,命名为currloop;
连接外部模块并增加Rate Transition模块,确保输入数据相同速率,其中theta角度来自电机的输出机械角度,要把他转化为电角度;
点击仿真按钮,观察三相电流输出;
如上图,可以看到三相电流为完美的正弦波,但是电流赋值不是我们期望的q轴电流大小,设定的iq_ref是2;这是因为电机的输出转矩与负载不匹配,如果想让我们输出的电流复制达到我们设计的参考值,可以增加负载;