永磁同步直线电机驱动控制原理---矢量控制
扫描二维码
随时随地手机看文章
1、用的是compare和five那个
2、FOC(field-oriented control)为磁场定向控制,又称为矢量控制(vectorcontrol),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM permanent-magnet synchronous motor)高效控制的最佳选择。FOC 可以精确地控制磁场大小与方向,使得电机转矩平稳、噪声小、效率高,并且具有高速的动态响应。目前已在很多应用上逐步替代传统的控制方式,在运动控制行业中备受瞩目。
3、FOC的优势
低转速下控制
由于控制原理的区别,无刷电调只能控制电机工作在高转速下,低速下很难控制;而FOC控制器则完全没有这个限制,不论在什么转速下都可以实现精确控制。
电机换向
同上面的理由,由于无感电调无法反馈转子位置,因此很难实现电机正反转的换向;而FOC驱动器的换向性能极其优秀,最高转速下正反转切换可以非常顺畅;此外FOC还可以以能量回收的形式进行刹车控制。
力矩控制(力矩和电流成正比)
普通电调都只能控制电机转速,而FOC可以进行电流(力矩)、速度、位置三个闭环控制。
噪音
FOC驱动器的噪音会比电调小很多,原因是普通电调采用方波驱动,而FOC是正弦波。
4、电调的优势:
兼容性
电调驱动不同的BLDC不需要进行参数整定,而FOC需要。
算法复杂度
电调的算法实现更简单,运算量少,很适合需要提高带宽的超高转速电机。
成本
电调的成本比FOC低很多。
5、控制过程
对电机三相电流进行采样得到:ia、ib、ic;
将 ia、ib、ic 经过 clarke 变换得到 iα、iβ;
将 iα、iβ 经过 park 变换得到 iq、id;
计算 iq、id 和其设定值 iq_Ref、id_Ref 的误差;
将上述误差输入到两个 PID(只用到 PI)控制器,得到输出的控制电压 Vq、Vd;
将 Vq、Vd 进行反 park 变换得到 Vα、Vβ;
将 Vα、Vβ 输入 SVPWM 模块进行调制,合成电压空间矢量,输出该时刻三个半桥的开关状态进而控制电机旋转;
循环上述步骤。
坐标变换
视频讲解
由于直接检测到的三相电流正弦的,因此控制极为不变,因此需要将其变换为一个常数,这样控制就方便了。首先将三相电流经过Clarke变换,变换到静止坐标系α、β上,这个就从三相变为了两相正弦了;再经过Park变换,这里要用到转动的角度,将静止坐标系变换到同步旋转坐标系了(同步旋转坐标系,就是建立在旋转体上的),此时起到驱动作用的只有q,如果我们想要保持驱动力恒定,那么仅需通过PID 控制q轴大小恒定,而d轴对驱动不起作用,只会起到发热作用,因此我们将d轴的大小控制为 0;这里我们再将所控制的值转换为静止坐标系的值,也就是反Park变换,因为SVPWM控制就需要用到反Park的值,也就是静止坐标系的值。
Clark变换
如果要平稳地驱动三相电机转动,我们就需要生成三个相位相差 120 度的正弦波,三相正弦波会合成一个矢量,这个矢量就会不停的旋转。我们要变换的就是这个矢量。
首先将这个矢量变换到α和β轴上,也就是Clark变换。
因为abc与α、β轴(静止坐标系)的夹角是固定的,因此变换矩阵都是常数。
合成到α、β轴上后有什么作用呢:
1)SVPWM中用来判断现在这个矢量在哪个扇区。
2)在SVPWM中用来计算V1/V2(也就是相邻的两个基矢量,基矢量就是110这种,也就是6个mos管哪个导通这种)导通的时间。因为就是通过导通时间来代表基矢量的长度,用来合成这个矢量。
Park变换
将静止坐标系(α、β),转换到旋转坐标系,即将 Clarke 变换后的 α—β 坐标系旋转θ度,其中θ为转子旋转的角度,旋转角度θ需通过编码器/霍尔传感器读取
我们直接控制的就是Id,Iq。其中,**Id(励磁电流分量)**设置为0,Iq设置为我们想要的,如果恒推力的话,q就是一直不变的。我们直接给定一个iq,然后与反馈回来的iq作差,传递给pid模块,然后给出输出,再反Park变换转换为αβ(这里需要角度值,因为iq就是一个大小,需要给定他的位置)给SVPWM,通过SVPWM控制mos管实现控制。
所以此时wt(也就是角度)的大小就非常重要了。也就是αβ值是一直在变的,但是为什么dq值是恒定的呢,也可以看做是因为乘以了角度的关系。可以看上面的park变换公式
至此坐标变换就都完成了,接下来就将变换好的dq轴进行PID控制后的值,进行反Park变换(因为SVPWM 算法的实现需要用到静止的 α—β 坐标系,所以当我们完成了控制信号的 PID 运算后,还需进行反 Park 变换。),输入到SVPWM
直线电机这个是我自己做的,PMLSM接口方面有点问题,问题是不知道怎么Simscape(物理系统)块和simulink(数字/数学)块不能直接兼容。
注意事项
如果我们使用上面坐标系自己搭建,那么永磁同步电机需要选择
而如果使用那么就是用的matlab自带的变换矩阵
SVPWM解析
参考1
正点视频解析
SVPWM算法的本质实际就是,就算三相逆变器的六个开关何时导通,何时切断。
原理
1、如果要平稳地驱动三相电机转动,我们就需要生成三个相位相差 120 度的正弦波,因此就诞生了SPWM,他是直接构造出旋转所需的正弦电压,但这种情况是没有反馈的,所产生的电流并不一定是我们所要的,不能准确的控制定子电流。
2、SVPWM依靠的是MOS管的开关顺序和开关时间以此来模拟出正弦电流。而SPWM不依赖开关顺序,三相独立调制。
3、矢量的合成:
使用的硬件为由六个开关器件组成的三个半桥所构成的三相全桥电路。
通过不同的开关顺序(当 = 1时,代表 A 相上桥臂导通,=0就是下桥臂),可以产生六个非零矢量,和000/111这样的两个零矢量。
利用上述的8个矢量,就可以合成360°内的任意矢量。
首先是将我们要合成的矢量,分解到离他最近的那两个基本矢量上,之后通过调节基本矢量的作用时间(作用时间就代表了基本矢量的大小),就可以合成这个矢量了。这个就是通过时间去合成所需矢量的原理,也就是实现电压波形近似于正弦波的原理。
上述的这个矢量,就是abc通过坐标变换转换到dq轴的iq,其中id一直让他保持为0,因为这个分量是我们不需要的,驱动电机转动只需要一个iq即可。
比如下面的110,就是abc电压就是1/3Udc 1/3Udc -2/3Udc合成的(分别在abc轴大小这样)合成后就是这个U6这个位置
1、扇区判断
1、这里的ab就是指α,β(经过第一个变换即clack变换后得到的)。当b>0,则A=0,这样的,根据α、β进行扇区的判别。
这个模块输出的就是第几个扇区
2、时间计算
计算T1、T2的时间,也就是相邻两个基本矢量的总的作用时间。比如V1和V2、V2和V3等。
∗ = ∗ + ∗ + ∗ 0
其中,为期望电压矢量;为开关周期;、、0分别为对应两个非零电压矢量、 和零电压矢量0在一个采样周期的作用时间;其中可表示0或7两个零矢量。上式的意义是,矢量在时间内所产生的积分效果值和、、0分别在时间、、0内产生的积分效果相加总和值相同。
下面计算出来的T1和T2是V1、V2作用的总时长
3、7断式时间分配
当 = 1时,代表 A 相上桥臂导通,=0的时候,代表A相下桥臂导通。
他这个需要保证的是每次只改变一个。
这个模块的作用就是分别计算,给Sa、Sb、Sc导通的具体时间
下面这个就是对时间进行更详细的分配,也就是每段V1(100),V2(110),V0(000/111)的时间进行分配。
4、载波调制
其他
总体框图
永磁同步直线电机模型的建立
根据下面数学公式建立的
电磁部分的建立
机械部分框图
整体框图
模糊PID 模块
matlab中的FuzzyLogic工具包可以帮助我们快速搭建模糊PID模块。通过使用该工具,我们仅需要对输入和输出量进行合理的取值,并制定相应的模糊控制规则,如下图所示,即可在simulink中实现模糊控制模块的搭建,从而实现良好的仿真效果。通过输入fuzzy唤出:
在simulink中搭建的模糊PID模块,可以看做是由模糊控制部分和PID控制部分组成,如下图所示,其中模糊控制部分的输入为变量E和变量的变化率EC,输出量则是△KP、△KI、△KD。
模糊PID模块的控制原理是,根据输入的误差和误差变化率,通过模糊控制的输出量与PID控制器的固定参数相加,作为PID控制器最终的参数,从而实现PID三个控制参数的整定,最终使整个系统实现达到稳定且性能优良的控制性能。
最后调系数的时候,用gain比较好一点,模糊输出系数就不要调了