主要内容

使用SYSTUNE调谐场定向控制器

方法的使用systune命令,根据频响估计(FRE)结果,对永磁同步电机(PMSM)的磁场定向控制(FOC)进行调优。

磁场定向控制

在本例中,使用Simscape™Electrical™组件在Simulink®中对永磁同步电机(PMSM)的面向场控制(FOC)进行建模。金宝app

mdl =“scdfocmotorSystune”;open_system(mdl) SignalBuilderPath = [mdl,“/ System_Inputs / Signal_Builder_Experiments”];

磁场定向控制将三相定子电流作为矢量控制。FOC是基于投影的,它将一个三相时变和速度相关的系统转换为一个两坐标定常系统。这些变换是Clarke变换,Park变换,以及它们各自的逆变换。这些转换在Controller_Algorithm子系统中作为块实现。

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

  • 转矩和磁链直接和分开控制

  • 精确的瞬态和稳态管理

  • 与直流电动机性能相似

Controller_Algorithm子系统包含所有三个PI控制器。外环PI控制器调节电机转速。两个内环PI控制器分别控制d轴和q轴电流。外环PI控制器的命令直接馈送到q轴以控制转矩。对于永磁同步电动机,d轴的命令为零,因为转子磁链是固定的,对于这种类型的交流电动机。

在调优控制器之前,检查原始控制器的速度响应,并将模拟结果保存到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.1 V,对VQ指定初始电压为3.465 VctrlIniValues结构。恒压命令块通过设置开关信号连接switchIniValue结构。

switchIniValue。openLoopD = 1;switchIniValue。openLoopQ = 1;ctrlIniValues。voltage = -0.1;ctrlIniValues。voltageQ = 3.465;

捕获仿真快照3.SEC作为频响估计的工作点。

signalbuilder (SignalBuilderPath“activegroup”1);Op = findop(mdl,3);

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

set_param (mdl“LoadInitialState”“上”);set_param (mdl“InitialState”“getstatestruct (op) ');ctrlIniValues。currentDIC = 0;ctrlIniValues。currentQIC = 0.1;ctrlIniValues。speeddic = 150;ctrlIniValues。speedCurrent = 0.122;永磁同步电动机。RotorVelocityInit = 150;

在模型中加入线性分析点进行频响估计。在VD和VQ上增加开环输入点。为ID、IQ和速度添加开环输出点。此外,在速度测量中添加环路中断分析点。

IO = getlinio(mdl);

定义输入正弦信号1010000年Rad /s具有固定的采样时间4 e-6S,即电流控制回路的采样时间sampleTime。CurrentControl.正弦信号幅值为0.25V.此量级确保在饱和极限内适当地激发植物。如果激励幅值过大或过小,则会产生不准确的频响估计结果。

in = frest.createFixedTsSinestream(sampleTime.CurrentControl,{10,1e4});在。振幅= 0.25;

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

Estsys = fretimate (mdl,op,io,in);estsys。InputName = {Vd的矢量量化的};estsys。OutputName = {“Id”“智商”“速度”};波德(estsys“。”

调优控制系统使用systune

由频响估计结果得到状态空间线性系统模型。属性的选项集党卫军函数中,将用于迭代参数估计的数值搜索方法设置为Levenberg-Marquardt最小二乘搜索。估计具有四个状态和周期的状态空间模型4 e-6秒。这一步需要系统识别工具箱™软件。

optssest = ssestOptions(“SearchMethod”“lm”);optsset . regulalizing . lambda = 0.1;Sys_singletune = ssest(estsys,4,“t”、sampleTime.CurrentControl选择);

为了在PMSM FOC模型中对所有三个PI控制器进行调优,构建如下框图所示的控制系统。

定义三个可调的离散PID块及其I/ o,分别用于d轴电流控制、q轴电流控制和速度控制。这些离散PID控制器的采样时间必须一致,与当前控制回路的采样时间相同。为了确保更快的控制器与原来较慢的控制器相比有更好的近似,将每个PID控制器的离散积分公式设置为“梯形”

Cd =可调谐pid (“Cd”“π”, sampleTime.CurrentControl);Cd.IFormula =“梯形”;Cd.u =“Id_e”;Cd.y =Vd的;Cq =可调谐pid (“Cq”“π”, sampleTime.CurrentControl);Cq。IFormula =“梯形”;Cq。u =“Iq_e”;Cq。y =矢量量化的;Cspeed =可调谐pid (“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_e = Id_ref - Id');Sum_iq = sumblk('Iq_e = Iq_ref - Iq');

定义控制器调优的输入、输出和分析点。

输入= {“Id_ref”“speed_ref”};输出= {“Id”“智商”“速度”};ap = {“Iq_ref”Vd的矢量量化的“Id”“智商”“速度”};

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

ST0 = connect(sys_singletune,Cd,Cq,Cspeed,sum_speed,sum_id,sum_iq,输入,输出,ap);

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

TR1 =调谐目标。跟踪(“speed_ref”“速度”, 2/150, 0.001, 10);TR2 =调优目标。跟踪(“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”矢量量化的, 50);MG3 = TuningGoal。获得(“Id_ref”Vd的, 20);

使用调优所有三个PI控制器systune所有调优目标都基于所构造的模型ST0.若要增加找到满足所有设计要求的参数值的可能性,请将选项设置为systune从5个随机生成的参数值开始运行5个额外的优化。

opt = systuneOptions(“RandomStart”5);rng(2) [ST1,fSoft] = systune(ST0,[TR1,TR2,LS1,LS2,MG1,MG2,MG3],opt);
最终:软= 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([TR1,TR2],ST1)图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第二。调整后的结果使用了不同的采样时间4 e-6第二,但控制器增益是相同的。为了保证不同采样时间下控制器性能相同,本例中PID控制器的离散积分器格式为“梯形”。

验证调优控制器

使用调谐控制器增益检查性能。首先,使用将模型初始化为零初始条件ctrlIniValues.通过设置开关信号,连接PID控制器块switchIniValue并对PMSM装置模型设置适当的初始条件。

switchIniValue。openLoopQ = 0;switchIniValue。openLoopD = 0;ctrlIniValues。currentDIC = 0;ctrlIniValues。voltage = 0;ctrlIniValues。currentQIC = 0;ctrlIniValues。电压eq = 0;ctrlIniValues。speeddic = 0;ctrlIniValues。speedCurrent = 0; pmsm.RotorVelocityInit = 0; set_param(mdl,“LoadInitialState”“关闭”

将模型配置为使用单向速度命令信号并模拟该模型。显示模型的速度响应的单方面速度命令,从0rad /年代150在rad /秒0.05S,然后到200在rad /秒0.8s.将模拟结果保存至logsout_tuned_oneside在mat文件中,SystunedSpeed.mat

signalbuilder (SignalBuilderPath“activegroup”2);sim (mdl);Logsout_tuned_oneside = logsout;保存(“SystunedSpeed”“logsout_tuned_oneside”“添加”

配置模型以使用双面速度命令信号并模拟模型。显示模型的速度响应的双面速度命令,从0rad /年代150在rad /秒0.05S,在0.5S,然后回到0在rad /秒0.8s.将模拟结果保存至logsout_tuned_twoside在mat文件中,SystunedSpeed.mat

signalbuilder (SignalBuilderPath“activegroup”3);sim (mdl);Logsout_tuned_twoside = logsout;保存(“SystunedSpeed”“logsout_tuned_twoside”“添加”

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

scdfocmotorSystunePlotSpeed

调整控制器后,电机响应在两种速度命令下都有更快的瞬态响应和更小的稳态误差。

bdclose (mdl)

另请参阅

相关的话题