FOC中的Clark变换一步步推导+Simulink仿真+仿真工程

本人水平有限,难免会有纰漏,如果发现哪里不对,望大家指出

1:理论推导

1-1:目的:将复杂的三相系统(在abc坐标系中)解耦成可以独立控制的两相系统,从而降低控制的复杂度。

1-2:推导过程:利用三角函数来实现三相坐标系(abc)到两相正交坐标系(αβ)

image.png
网上大多是用矩阵推导的,对新手可能不太好理解,下面我将用正交分解的方法推导

已知三相系统中的三相电流(Ia Ib Ic是幅值一样,频率一样,相位互差120度),且根据基尔霍夫电流定律,流入流出节点的电流代数和为0,Ia + Ib + Ic = 0

对于α轴,规定α为正方向,la与α轴重合,Ib,Ic与α轴负方向的夹角为60°,投影到上面的分量就是 Ib * cos60°Ic * cos60°。所以Iα = Ia - cos60° * (Ic + Ib)

对于β轴,以为Ia与β轴垂直(cos90°),所以在β轴不存在Ia的分量。只有Ib * cos30° 和** Ic * cos30°**,那个Iβ = cos30° * (Ib - Ic)

经过上面的操作 *Iα = Ia - 1/2 * (Ic + Ib) Iβ = sqrt(3) / 2 (Ib - Ic)

又因为 Ia + Ib + Ic = 0 所以将Ic = -(Ia + Ib带入得到)

Iα = 3 / 2 * Ia Iβ = sqrt(3) /2 * (Ia + 2 * Ib)

因为是基于等幅值的变换 所以 Iα 和 Iβ 要乘以一个系数 2/3。这个系数会在SVPWM中乘回来,不会对控制有什么影响,乘以这个系数是为了确保变换前后信号的幅值不变。
乘2/3后 :Iα = Ia Iβ = sqrt(3) /3 * (Ia + 2Ib)
以上就是Clark变换的理论部分,接下来simulink仿真!!!!

2:Simulink模型搭建

2-1:添加信号源

在simulink添加 Sine wave 具体信号源设置如下 ,要保持幅值(1A),频率一致(50HZ),且相位互差120°
image.png
添加个Scope模块查看产生的三相电流
image.png
发出来的三相波形如上,验证了 幅值(1A),频率一致(50HZ),且相位互差120°的三相电流。

2-2:公式编写 + 验证

在simulink添加 MATLAB Function1 模块 双击 MATLAB Function1进入编辑器
image.png

function [I_alpha , I_beta] = fcn(Ia , Ib , Ic)
I_alpha = (Ia - 1/2 * (Ic + Ib)) * 2/3;
I_beta =  sqrt(3)/2 * (Ib - Ic)* 2/3;

image.png
仿真后的波形就从最开始的三相变为两相,变换后的波形幅值和频率不变,相位互差90°。

如果把2/3这个系数去掉:

function [I_alpha , I_beta] = fcn(Ia , Ib , Ic)
I_alpha = (Ia - 1/2 * (Ic + Ib));
I_beta =  sqrt(3)/2 * (Ib - Ic);

image.png
去掉系数后,经过Clark变换后的波形幅值就会变为原来的1.5倍,变换前后幅值发送了变化,就不是等幅值变化了。

这里clark变换的公式用了Ia Ib Ic三个变量

function [I_alpha , I_beta] = fcn(Ia , Ib , Ic)
I_alpha = (Ia - 1/2 * (Ic + Ib)) * 2/3;
I_beta =  sqrt(3)/2 * (Ib - Ic)* 2/3;

当然也可以采用上面推导的,都是一样的,就是把Ic = -(Ia + Ib)带入做抵消了

function [I_alpha , I_beta] = fcn(Ia , Ib)
I_alpha =  Ia;
I_beta = sqrt(3) /3  * (Ia + 2*Ib);

image.png

至此,已经将Clark变换的推导和仿真验证完。

3:simulink工程
通过百度网盘分享的文件:clark.zip
链接:https://pan.baidu.com/s/1T0UJqrr9zMmU0iNpyyPRLA
提取码:lina

### 如何在Simulink中实现FOC磁场定向控制建模 #### 1. Simulink中的FOC基本框架 在Simulink环境中构建永磁同步电机(PMSM)的磁场定向控制(FOC)模型时,通常需要遵循以下模块化设计思路。首先,建立完整的电机数学模型并将其转换至dq坐标系下进行分析和控制[^1]。其次,在控制系统的设计过程中引入双PI控制器来分别处理速度环路与电流环路,以确保系统的稳定性及精度需求得到满足[^2]。 #### 2. dq坐标系下的解耦控制 为了有效实施FOC算法,需利用Clark变换和Park变换完成三相静止坐标系向两相同步旋转坐标系的数据映射过程。这一环节对于分离定子绕组上的直轴(d-axis)分量与交轴(q-axis)分量至关重要,使得可以单独调整这两个维度上的电流值从而优化整体性能表现[^3]。 #### 3. 双PI控制器配置 针对所提出的双闭环结构——即外层的速度反馈回路配合内嵌式的id/iq电流调节机制——可通过设置适当的比例系数Kp与积分增益Ki参数达成理想效果。具体而言,这些数值的选择应综合考虑实际硬件条件如采样频率fsample等因素的影响,并借助MATLAB内置工具箱功能辅助调试直至收敛于最佳状态点附近运行区间内。 #### 4. SVPWM调制技术应用 空间矢量脉宽调制(Space Vector Pulse Width Modulation,SVPWM)作为现代电力电子装置中最常用的逆变器开关模式之一被广泛采纳用于生成PWM信号波形供给驱动级电路元件操作指令序列;其优势在于能够提高直流母线利用率的同时减少谐波失真程度进而提升整套设备的工作效能水平。 ```matlab % MATLAB/Simulink代码片段展示SVPWM核心逻辑计算部分 function sv_pwm = generate_svpwm(v_ref, v_dc) % 输入变量定义 alpha = atan2(v_ref(2),v_ref(1)); % 计算参考电压角度 mag = sqrt(sum(v_ref.^2))/v_dc; % 归一化的幅值 T0 = zeros(size(alpha)); Ta = max([mag.*cos(alpha),T0]); % A相占空比 Tb = max([-mag.*sin(alpha)+Ta,T0]); % B相占空比修正项 Tc = 1-Ta-Tb; % C相占空比由其余两者决定 sv_pwm = [Ta; Tb; Tc]; % 输出最终结果给后续处理单元使用 end ``` #### 5. 整体仿真流程概述 最后一步便是将上述各个独立组件按照既定顺序组装起来形成一个连贯的整体架构图示例说明如下所示: - **输入端口**: 接收来自外部传感器采集的实际转速测量数据ωm以及期望设定的目标值ωref; - **前馈补偿网络**: 对原始误差δ=|ωref−ωm|施加必要的预处理措施以便更好地适应下游运算要求; - **速度PID调控器**: 执行初步校正动作产生中间过渡产物i*q_ref*代表理想的电磁驱动力大小指示符; - **限幅处理器**: 防止超出物理极限范围可能引发的安全隐患问题发生概率降至最低限度以内; - **电流内环PI管理器**: 结合实时监测获取到的具体情况进一步细化微调方案直到完全吻合预期标准为止; - **反变换恢复原状**: 经过一系列复杂的数理推导还原成适配传统功率器件规格形式呈现出来供实物平台验证测试之用。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值