永磁同步直线电机驱动控制原理与matlab建模仿真

simpleFOC移植
稚晖君讲解

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比较好一点,模糊输出系数就不要调了

逆变器

这个把svpwm也给讲了
在这里插入图片描述
在这里插入图片描述

仿真分析

这部分暂时不写了,等论文发表了再写,先贴几张图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
定位精度这块的检测,仿真不好搞,因为有用到主机的神经网络对反馈系数进行了整定(比如通过激光干涉仪检测到的定位精度,应该也就是每次从运动到停止都会产生一个误差,根据这个误差就可以反推滞后了多少,从而可以根据神经网络),且自己搭建得直线电机模型无法表达出负载扰动,齿槽力,纹波力等。

问题解决

1、出现上下波动特别的大,还一直在波动。

  • 将powergui设置成离散。在设置之前需要:工具栏里有个齿轮形状的设置按键。里面有个Solver,把求解器设置成离散的。最后也需要将PID改成离散形式
    在这里插入图片描述
    在这里插入图片描述
    最后当更改了还是不行的话,就先改成discrete,等外面的改完时间再把他改为auto,这样就不会出现很多错误了
    在这里插入图片描述
    在这里插入图片描述
    2、怎么编辑scope中的图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 22
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
现代永磁同步电机控制原理是通过对电机的电流和转矩进行控制,实现电机的高效运行和精确控制永磁同步电机的转矩与电流成正比,因此控制电流可以实现对电机转矩的控制。而控制电机的电流则需要根据电机模型和控制策略来确定。 在永磁同步电机控制中,通常采用矢量控制方法。在这种方法中,电机的电流被分解为两个独立的分量:一个是磁轴分量,用来控制电机磁场的强度和位置;另一个是气隙磁通分量,用来控制电机的转矩。通过分别控制这两个分量,可以实现对电机的精确控制Matlab是一种常用的数学建模仿真软件,可以用于永磁同步电机控制系统建模仿真Matlab提供了丰富的工具和函数,可以快速建立永磁同步电机的数学模型,并进行系统的仿真和性能评估。在仿真中,可以对不同的控制策略和参数进行调试和优化,以得到最佳的电机控制效果。 要下载Matlab进行永磁同步电机仿真,可以访问MathWorks官方网站,并根据自己的需求选择合适的版本进行下载。Matlab通常提供免费的试用版,也有付费的完整版和专业版可供选择。在安装完成后,可以根据Matlab官方提供的教程和文档,学习如何使用Matlab进行永磁同步电机控制系统建模仿真。 总之,现代永磁同步电机控制原理是通过控制电机的电流和转矩来实现高效运行和精确控制Matlab是一种常用的数学建模仿真软件,可以用于永磁同步电机控制系统建模仿真

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

成草

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

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

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

打赏作者

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

抵扣说明:

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

余额充值