主要内容

调场定向控制器使用SYSTUNE

此示例显示了如何使用Systune.命令对基于频率响应估计(FRE)结果的永磁同步电机(PMSM)磁场定向控制(FOC)进行调整。

磁场定向控制

在这个例子中,磁场定向控制(FOC)的永久磁铁同步机(PMSM)在使用的Simulink™的Simscape电气™组件建模。金宝app

mdl ='scdfocmotorsystune';open_system(mdl) SignalBuilderPath = [mdl,'/ system_inputs / signal_builder_experiments'];

面向现场的控制控制作为载体的3相定子电流。FOC基于投影,其将三相时间相关和速度相关的系统转换为双坐标时间不变系统。这些变换是Clarke转换,公园转换及其各自的逆变换。这些变换在Controller_algorithm子系统中实现为块。

使用FOC控制交流电机的优点包括:

  • 转矩和磁通分别直接控制

  • 准确的瞬态和稳态管理

  • 与直流电机相比类似的性能

该Controller_Algorithm子系统包含所有三个PI控制器。外环PI控制器调节电机的速度。两个内环PI控制器分别控制的d轴和q轴电流。从外环PI控制器的命令直接供给到q轴到控制转矩。为d轴的指令是零PMSM因为转子磁通上固定有对这种类型的AC电动机的永久磁铁。

整定控制器之前,检查与原来的控制器的速度响应和仿真结果保存到MAT文件,SystunedSpeed.mat。现有速度PI控制器具有P = 0.08655的增益,i = 0.1997。当前PI控制器均具有P = 1的增益和i = 200。

scdfocmotorsystuneoriginalresponse.

绘制与原始控制器的高速响应。该地块表现出稳态误差和相对缓慢的瞬态特性。您可以调整控制器,以实现更好的性能。

图绘制(logsout_original_oneside {2} . values);抓住情节(logsout_original_oneside {1} . values);传奇('原始控制器'“速度参考”“位置”'东南');网格抓住图绘图(logsout_original_twoside {2} .values);抓住情节(logsout_original_twoside {1} . values);传奇('原始控制器'“速度参考”“位置”'东北');网格抓住

收集频率响应数据

要收集频响数据,需要找到速度为的工作点150Rad /sec,指定线性分析点,定义输入信号,并估计频率响应。

断开原始控制器,并使用VD和VQ命令模拟开环系统模型。要到达操作点,请指定用于VD的-0.1V的初始电压和3.465 V使用VQCtrlinivalues.结构。恒定电压指令块是通过在设定开关信号连接切换结构。

switchIniValue.openLoopD = 1;switchIniValue.openLoopQ = 1;ctrlIniValues.voltageD = -0.1;ctrlIniValues.voltageQ = 3.465;

捕获的模拟快照3.SEC作为频率响应估计的工作点。

signalbuilder(SignalBuilderPath,“activegroup”,1);op = condop(mdl,3);

以仿真快照工作点作为模型的初始条件。中的模型初始值更改Ctrlinivalues.结构处于这种稳定状态。对于D轴电流控制器,当前ID是0.A.对于q轴电流控制器,当前IQ为0.1A.对于外环速度控制器,参考电流为0.122A和速度在于150rad / s。对于永磁同步电机装置,在PMSM.结构150rad / s。

set_param (mdl'loadInitialstate''在');set_param (mdl“InitialState”'getstatectruct(op)');ctrlIniValues.currentDIC = 0;ctrlIniValues。currentQIC = 0.1;ctrlIniValues。speedIC = 150;ctrlIniValues。speedCurrent = 0.122;永磁同步电动机。RotorVelocityInit = 150;

添加线性分析点到频率响应估计的模型。将开环输入点添加到VD和VQ。将开环输出点添加到ID,IQ和速度。此外,将环形断裂分析点添加到速度测量。

IO = getlinio(MDL);

定义从输入sinestream信号1010,000用的固定采样时间弧度/秒4E-6S,即电流控制回路的采样时间sampleTime。CurrentControl。该sinestream信号幅度0.25V.这种幅度确保工厂在饱和极限内恰当地激励。如果激励幅度要么过大或太小,它会产生不准确的频率响应估计结果。

在= frest.createfixedtssinestream(sampletime.currentcontrol,{10,1e4});in.plitude = 0.25;

估计指定稳态操作点处的频率响应人事处中,使用线性分析点IO.输入信号。在完成频率响应估计之后,修改在所得模型的输入和输出信道名称,并绘制频率响应。

estsys = frestimate (mdl, op, io);estsys。InputName = {Vd的'VQ'};Estsys.outputName = {'ID'“智商”“速度”};BODE(Estsys,'。'

调谐控制系统中的应用Systune.

从频率响应估计结果获得状态空间线性系统模型。使用选项设置为党卫军功能,设置用于该迭代参数估计作为列文伯格 - 马夸尔特最小二乘查询的数值搜索方法。估计与这四种状态的状态空间模型和一段4E-6秒。此步骤需要系统识别工具箱™软件。

optssest = ssestoptions('SearchMethod''lm');optssest.regularization.lambda = 0.1;sys_singletune = ssest(estsys,4,'ts',sampleTime.CurrentControl,optssest);

为了调整PMSM Foc模型中的所有三个PI控制器,构造一个控制系统,如下框图所示。

为D轴电流控制,Q轴电流控制和速度控制定义三个可调谐的离散时间PID块及其I / O.这些离散时间PID控制器的采样时间必须是一致的,这与当前控制环采样时间相同。与原始较慢的控制器相比,确保更好的控制器更好的控制器近似,将每个PID控制器设置为离散集成器公式'梯形'

CD =调谐(“Cd”'pi', sampleTime.CurrentControl);Cd.IFormula ='梯形';Cd.u ='id_e';Cd.y =Vd的;cq =调谐化('cq''pi', sampleTime.CurrentControl);Cq。IFormula ='梯形';Cq.u ='IQ_E';Cq。y ='VQ';Cspeed = tunablePID (“Cspeed”'pi', sampleTime.CurrentControl);Cspeed。IFormula ='梯形';Cspeed。u ='speed_e';Cspeed.y ='iq_ref'

为内部和外部反馈回路创建三个求和节点。

sum_speed = sumblk('speed_e = speed_ref  -  speed');sum_id = sumblk('id_e = id_ref  -  id');sum_iq = sumblk ('iq_e = iq_ref  -  iq');

定义输入,输出,以及用于控制器整定分析点。

输入= {“Id_ref”'speed_ref'};输出= {'ID'“智商”“速度”};APS = {'iq_ref'Vd的'VQ''ID'“智商”“速度”};

最后,组装完整的控制系统,ST0,使用这些组件。

st0 = connect(sys_singletune,cd,cq,cspeed,sum_speed,sum_id,sum_iq,输入,输出,aps);

定义调优目标,包括跟踪和循环形状目标,以确保命令跟踪,以及获取目标,以防止饱和。速度控制器的跟踪带宽设置为150rad / s。这个带宽用于跟踪和环路形状目标。另外,将DC错误设置为0.001来反映的最大稳态误差0.1%。设置峰值错误10。对于D轴电流控制器,请将跟踪带宽设置为2500Rad / S,比外环速度控制器快得多。为防止饱和控制器,指定目标以限制所有三个控制器的增益。

TR1 = TuningGoal。跟踪('speed_ref'“速度”,2 / 150,0.001,10);tr2 = tuninggoal.tracking(“Id_ref”'ID',2/2500);ls1 = tuninggoal.loopshape('ID', 2500);LS2 = TuningGoal。LoopShape (“速度”, 150);MG1 = TuningGoal。获得('speed_ref''iq_ref'2);MG2 = TuningGoal。获得('speed_ref''VQ',50);mg3 = tuninggoal.gain(“Id_ref”Vd的20);

调使用这三种PI​​控制器Systune.基于所构建模型的所有调优目标ST0。增加查找符合所有设计要求的参数值的可能性,设置选项Systune.运行五个额外优化从五个随机生成的参数值开始。

选择= systuneOptions(“RandomStart”5);RNG(2)[ST1,fSoft] = systune(ST0,[TR1,TR2,LS1,LS2,MG1,MG2,MG3],优化);
最后:软= 1.01,硬= -Inf,迭代= 73一些闭环极点是临界稳定(接近1E-07衰变率)最后:软= 1.01,硬= -Inf,迭代= 87最终:软= 1.01,硬= -Inf,迭代= 59一些闭环极点是临界稳定(接近1E-07衰变率)最后:软= 1.01,硬= -Inf,迭代= 66一些闭环极点是临界稳定(衰减率接近1E-07)最后:软= 1.01,硬= -Inf,迭代= 61一些闭环极点是临界稳定(接近1E-07衰变率)最后:软= 1.01,硬= -Inf,迭代= 60

找到解决方案后使用Systune.,展示了调优模型中如何实现调优目标相约。分别显示了跟踪,环形状,和增益调整的目标。在以下附图中,虚线表示调谐的目标和实线是调谐控制器的结果。

图viewGoal([LS1,LS2],ST1)图viewGoal([MG1,MG2,MG3],ST1)

验证调整目标后,从调谐模型中提取控制器参数相约。使用调谐PI控制器参数更新PI控制器块的工作区参数。

CD = GetBlockValue(ST1,“Cd”);cq = getblockValue(st1,'cq');cspeed = getblockValue(ST1,“Cspeed”);

d轴电流PI控制器具有调谐增益:

paramCurrentControlPD = Cd.Kp paramCurrentControlID = Cd.Ki
paramcurrentcontrolpd = 2.8898 paramcurrentcontrolid = 2.6370e + 03

q轴电流PI控制器具有调谐增益:

paramCurrentControlPQ = Cq.Kp paramCurrentControlIQ = Cq.Ki
paramCurrentControlPQ = 1.4964 paramCurrentControlIQ = 679.7979

速度PI控制器已调整增益:

paramvelocitycontroltunep = cspeed.kp paramvelocitycontroltunei = cspeed.ki
paramVelocityControlTuneP = 0.3713 paramVelocityControlTuneI = 0.0179

调优后所有三个控制器一起使用Systune.时,控制器增益与原始值有显著差异。速度控制回路中的PID控制器有不同的采样时间,为0.001第二。调优后的结果使用不同的采样时间4E-6第二,但是控制器增益是相同的。为了确保控制器的性能是具有不同的采样时间相同,则PID控制器的积分器的离散格式为“梯形”在这个例子中。

验证调谐器

使用调优控制器增益检查性能。首先,将模型初始化为零初始条件Ctrlinivalues.。通过在设定开关信号连接PID控制器块切换并为永磁同步电动机模型设定合适的初始条件。

switchIniValue.openLoopQ = 0;switchIniValue.openLoopD = 0;ctrlIniValues.currentDIC = 0;ctrlIniValues.voltageD = 0;ctrlIniValues.currentQIC = 0;ctrlIniValues.voltageQ = 0;ctrlIniValues.speedIC = 0;ctrlIniValues.speedCurrent = 0;pmsm.RotorVelocityInit = 0;set_param (mdl'loadInitialstate''离开'

配置模型中使用的单侧的速度指令信号和模拟模型。表明该模型,以从上升单面速度指令的速度响应0.rad /年代150在rad /秒0.05S,然后到200在rad /秒0.8s。保存模拟结果logsout_tuned_oneside.在垫子文件中,SystunedSpeed.mat

signalbuilder(SignalBuilderPath,“activegroup”2);sim (mdl);logsout_tuned_oneside = logsout;保存(“SystunedSpeed”“logsout_tuned_oneside”'-附加'

配置为使用一个双面的速度指令信号的模型和仿真模型。表明该模型,以从上升双面速度指令的速度响应0.rad /年代150在rad /秒0.05S,逆转方向0.5然后回到0.在rad /秒0.8s。保存模拟结果logsout_tuned_twoside.在垫子文件中,SystunedSpeed.mat

signalbuilder(SignalBuilderPath,“activegroup”3);sim (mdl);logsout_tuned_twoside = logsout;保存(“SystunedSpeed”'logsout_tuned_twoside''-附加'

比较现有控制器增益与调整结果之间的电机速度响应。速度响应在一秒钟的模拟中并排显示。speed响应更接近于step命令。对PI控制器进行调优后,系统的稳态误差减小Systune.

scdfocmotorSystunePlotSpeed

在调整控制器之后,电机响应在两种类型的速度命令下提高了更快的瞬态响应和较小的稳态误差。

bdclose (mdl)

也可以看看

相关的话题