主要内容

使用SYTUNE定向现场导向的控制器

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

磁场定向控制

在该示例中,使用Simscape™电气™组件在Simulink®中建模了用于永磁同步机(PMSM)的面向现场控制(FOC)。金宝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轴馈送以控制扭矩。对于PMSM的D轴的命令为零,因为转子通量用用于这种类型的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.结构。通过设置开关信号来连接恒定电压指令块切换结构。

switchInalue.Openloopd = 1;switchInalue.Openloopq = 1;Ctrlinivalues.VoltAged = -0.1;ctrlinivalues.voltageq = 3.465;

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

signalBuilder(SignalBuilderPath,“activegroup”1);op = findop (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;pmsm.rotorvelocityinit = 150;

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

IO = GetLinio(MDL);

定义输入的SINESTREAM信号1010,000RAD / S具有固定采样时间4E-6S,即电流控制回路的采样时间sampleTime。CurrentControl.Sinestream信号幅度是0.25这个数量级确保装置在饱和极限内被适当地激发。如果激励幅值过大或过小,频响估计结果就会不准确。

在= 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.

从频率响应估计结果获得状态空间线性系统模型。使用选项设置为党卫军功能,将用于此迭代参数估计的数值搜索方法设置为Levenberg-Marquardt最小二乘搜索。估计具有四个州的状态模型和一段时间4E-6秒。此步骤需要系统识别工具箱™软件。

optssest = ssestoptions('SearchMethod''lm');optssest.regularization.lambda = 0.1;sys_singletune = ssest(estsys,4,“t”,sampletime.currentControl,Optssest);

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

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

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

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

sum_speed = sumblk('speed_e = speed_ref  -  speed');sum_id = sumblk ('Id = Id');sum_iq = sumblk('Iq = 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。跟踪(“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],OPT);
FINE:SOFT = 1.01,硬= -INF,迭代= 73一些闭环磁点略微稳定(衰减率近1E-07)最终:软= 1.01,硬= -INF,迭代= 87最终:SOFT = 1.01,硬= -Inf,迭代= 59一些闭环磁极略微稳定(衰减率接近1E-07)最终:软= 1.01,硬= -INF,迭代= 66一些闭环杆略微稳定(近衰减率1E-07)FOLE:SOFT = 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控制器块切换并为永磁同步电动机模型设定合适的初始条件。

switchInalue.openloopq = 0;switchInalue.OpenLoopd = 0;Ctrlinivalues.Currentdic = 0;Ctrlinivalues.VoltAgated = 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)

也可以看看

相关的话题