小猫爪:PMSM之FOC控制06-电流环

本文介绍了如何在PMSM电机驱动的FOC控制系统中加入电流环,包括PID参数设置、理论计算和实际效果展示。通过仿真模型展示了电流闭环后的改善与圆润度提升。

小猫爪:PMSM之FOC控制06-电流环

1 前言

  在前面的章节中,我们已经成功让电机开环转起来了,接下来的事情就是加入电流环,实现电流闭环,这个非常简单,开始吧。

2 加入电流环

  加入电流环后,仿真就变成这样了:
在这里插入图片描述
  foc_control:
在这里插入图片描述
  非常简单,这其中最重要的问题就是PID参数的整定,关于参数的整定有多重要就不多说了,那么对于一个FOC控制系统中的电流环来说,怎么设置合适的PID参数呢?答案非常简单,瞎调呗,嘿嘿嘿。对于电流环,一般只要PI控制器就够了,下面给出一般情况下的PI参数:

·KpKi
Id环 α L d \alpha L_d αLd α R s \alpha R_s αRs
Iq环 α L q \alpha L_q αLq α R s \alpha R_s αRs

  其中:
   R s R_s Rs为三相内阻;
   L d L_d Ld为d轴等效电感;
   L d L_d Ld为q轴等效电感;
   α = 2 π / τ \alpha =2\pi /\tau α=2π/τ τ = m i n { L d R s , L q R s } \tau=min\lbrace\frac{ L_d}{R_s}, \frac{ L_q}{R_s}\rbrace τ=min{RsLd,RsLq}

  如果你想知道这是怎么算出来,去研究一下Id到Ud以及Iq到Uq的传递函数就明白了。当然这只能计算出大概的值,最好的参数是慢慢细细的调出来的,PID是一门玄学,全靠经验值拉满。

3 电流环的效果

  三相电流:
在这里插入图片描述
  可以看出三相电流相比较开环时,变得比较圆润一点。再看看Id和Iq:
在这里插入图片描述
  可以看到Id和Iq与设置的值3,0相等了,这就说明电流环起作用了,接下来将算法移植到MCU中,看看操作实际的电机效果怎么样,三相电流如下:
在这里插入图片描述
  Id和Iq如下:
在这里插入图片描述
  与仿真的结果一致,电流环加入成功,电流更加圆润,Id和Iq与设置的相等。最后附上本节的simulink仿真模型:
FOC_Control_CurrentLoop.7z

END

### 原理 FOC(Field Oriented Control)即磁场定向控制,其核心原理是通过坐标变换将三相交流电机的定子电流矢量分解为产生磁场的励磁分量和产生转矩的转矩分量,并分别对这两个分量进行独立控制,从而实现对电机转矩的精确控制。 以三相永磁同步电机(PMSM)为例,在三相静止坐标系(abc 坐标系)下,电机的定子电流和电压是随时间变化的交流量,分析和控制较为复杂。通过克拉克变换(Clarke Transformation)将三相静止坐标系下的电流 $i_a$、$i_b$、$i_c$ 转换到两相静止坐标系(αβ 坐标系)下的电流 $i_α$、$i_β$。其变换公式如下: \[ \begin{bmatrix} i_{\alpha}\\ i_{\beta} \end{bmatrix} = \sqrt{\frac{2}{3}} \begin{bmatrix} 1 & -\frac{1}{2} & -\frac{1}{2}\\ 0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2} \end{bmatrix} \begin{bmatrix} i_{a}\\ i_{b}\\ i_{c} \end{bmatrix} \] 再通过帕克变换(Park Transformation)将两相静止坐标系下的电流 $i_α$、$i_β$ 转换到两相旋转坐标系(dq 坐标系)下的电流 $i_d$、$i_q$。其中,$i_d$ 为励磁电流分量,$i_q$ 为转矩电流分量。帕克变换公式为: \[ \begin{bmatrix} i_{d}\\ i_{q} \end{bmatrix} = \begin{bmatrix} \cos\theta & \sin\theta\\ -\sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} i_{\alpha}\\ i_{\beta} \end{bmatrix} \] 其中,$\theta$ 为转子磁链的位置角。 在 dq 坐标系下,电机的数学模型得到简化,可以分别对 $i_d$ 和 $i_q$ 进行独立控制,从而实现对电机磁场和转矩的精确控制控制完成后,再通过反帕克变换和反克拉克变换将控制量转换回三相静止坐标系,用于驱动电机的逆变器。 ### 应用 - **工业自动化**:在工业机器人、数控机床等设备中,FOC 控制可以实现电机的高精度、高动态响应控制,提高设备的加工精度和生产效率。例如,工业机器人的关节驱动电机采用 FOC 控制,能够精确控制机器人的运动轨迹和姿态,完成复杂的操作任务。 - **电动汽车**:电动汽车的驱动电机需要具备高效、高功率密度和宽调速范围等特点。FOC 控制可以根据车辆的行驶工况实时调整电机的转矩和转速,提高电动汽车的动力性能和续航里程。同时,FOC 控制还可以实现电机的能量回收,进一步提高能源利用效率。 - **家电产品**:在空调、冰箱、洗衣机等家电产品中,FOC 控制可以提高电机的运行效率,降低噪音和振动,提升产品的性能和用户体验。例如,采用 FOC 控制的空调压缩机可以根据室内温度的变化精确调节压缩机的转速,实现节能运行。 ### 实现方法 - **硬件实现**:FOC 控制的硬件主要包括电机、逆变器、传感器和控制器等部分。电机通常采用三相永磁同步电机或异步电机;逆变器用于将直流电转换为三相交流电,驱动电机运行;传感器用于检测电机的电流、转速和位置等信号,常用的传感器有电流传感器、编码器和旋转变压器等;控制器是 FOC 控制的核心,通常采用数字信号处理器(DSP)、微控制器(MCU)或现场可编程门阵列(FPGA)等芯片,实现坐标变换、电流控制和速度控制等算法。 - **软件实现**:FOC 控制的软件实现主要包括坐标变换、电流控制、速度控制和位置控制等算法。以下是一个基于 Python 和 PyTorch 实现的简单 FOC 控制示例代码: ```python import torch # 克拉克变换 def clarke_transform(i_a, i_b, i_c): i_alpha = torch.sqrt(2/3) * (i_a - 0.5 * i_b - 0.5 * i_c) i_beta = torch.sqrt(2/3) * (torch.sqrt(3)/2 * i_b - torch.sqrt(3)/2 * i_c) return i_alpha, i_beta # 帕克变换 def park_transform(i_alpha, i_beta, theta): i_d = i_alpha * torch.cos(theta) + i_beta * torch.sin(theta) i_q = -i_alpha * torch.sin(theta) + i_beta * torch.cos(theta) return i_d, i_q # 示例输入 i_a = torch.tensor(1.0) i_b = torch.tensor(0.5) i_c = torch.tensor(-1.5) theta = torch.tensor(0.5) # 坐标变换 i_alpha, i_beta = clarke_transform(i_a, i_b, i_c) i_d, i_q = park_transform(i_alpha, i_beta, theta) print(f"i_d: {i_d.item()}, i_q: {i_q.item()}") ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猫爪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值