主要内容

使用SYSTUNE优化矢量控制器

这个例子展示了如何使用systune命令来调整磁场定向控制(FOC)永磁同步电机(永磁同步电动机)基于频率响应估计)的结果。

磁场定向控制

在这个例子中,磁场定向控制(FOC)永磁同步电机(永磁同步电动机)建模仿真软件®使用Simscape™电气™组件。万博1manbetx

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

定向控制控制三相定子电流矢量。船是基于预测,将三相时间和speed-dependent系统转换成二坐标定常系统。这些转换是克拉克变换,公园转换和各自的反变换。这些转换是实现为块内Controller_Algorithm子系统。

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

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

  • 准确的瞬态和稳态管理

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

Controller_Algorithm子系统包含所有三个PI控制器。和PI控制器调节电机的速度。两个内循环PI控制器分别控制d-axis和q-axis电流。外环PI控制器的命令直接提要q-axis控制转矩。的命令d-axis永磁同步电动机是零,因为转子磁通与永久磁铁是固定的这种类型的交流电动机。

调优控制器之前,检查速度反应与原来的控制器,并保存MAT-file仿真结果,SystunedSpeed.mat。现有的速度PI控制器获得P = 0.08655, = 0.1997。当前PI控制器都有收益的P = 1 = 200。

scdfocmotorSystuneOriginalResponse

情节与原控制器响应速度。故事情节表现出稳态误差和相对缓慢的瞬态行为。您可以调整控制器,实现更好的性能。

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

收集频率响应数据

收集频率响应数据,找到一个操作点的速度150年rad /秒,指定线性分析点,定义输入信号,并估计频率响应。

断开原控制器,和模拟VD的开环系统模型和矢量量化的命令。达到操作点,为VD指定的初始电压-0.1 V和3.465 V VQ使用ctrlIniValues结构。恒压命令块的连接通过设置开关信号switchIniValue结构。

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

捕获一个模拟快照3证交会作为频率响应的操作点估计。

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

使用模拟快照操作点作为模型的初始条件。改变模型的初始值ctrlIniValues在这个稳态结构。d-axis电流控制器,当前ID0a . q-axis电流控制器当前的智商0.1a .和速度控制器的参考电流0.122和速度150年rad / s。永磁同步电动机的植物,设置转子速度永磁同步电动机结构150年rad / s。

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

频率响应线性分析点添加到模型估计。添加开环输入点VD和矢量量化。开环输出点添加到ID、智商和速度。此外,添加一个循环破坏分析点的速度测量。

io = getlinio (mdl);

定义输入sinestream信号1010000年rad / s固定样本的时间4 e-6年代,即样品的电流控制回路sampleTime.CurrentControl。sinestream信号大小0.25诉这个级确保工厂正常兴奋在饱和极限。如果激励幅度太大或太小,它产生不准确的频率响应估计结果。

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

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

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

优化控制系统使用systune

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

选择= ssestOptions (“SearchMethod”,“lm”);optssest.Regularization。λ= 0.1;sys_singletune = ss (estsys 4“t”、sampleTime.CurrentControl选择);

为了优化这三个PI控制器的永磁同步电动机船模型,构造一个控制系统如下框图所示。

定义三个可调离散PID块和I / o d-axis电流控制,q-axis电流控制和速度控制。这些离散PID控制器的样品时间必须是一致的,这是当前控制回路样本时间相同。确保更好的近似速度控制器比原来的慢控制器,设置为每个PID控制器离散积分公式“梯形”

Cd = tunablePID (“Cd”,“π”,sampleTime.CurrentControl);Cd.IFormula =“梯形”;Cd.u =“Id_e”;Cd.y =Vd的;Cq = tunablePID (“Cq”,“π”,sampleTime.CurrentControl);Cq。IFormula =“梯形”;Cq。u =“Iq_e”;Cq。y =矢量量化的;Cspeed = tunablePID (“Cspeed”,“π”,sampleTime.CurrentControl);Cspeed。IFormula =“梯形”;Cspeed。u =“speed_e”;Cspeed。y =“Iq_ref”;

创建三个加法连接内部和外部反馈循环。

sum_speed = sumblk (“speed_e = speed_ref -速度”);sum_id = sumblk (“Id_e = Id_ref - Id”);sum_iq = sumblk (“Iq_e = Iq_ref -智商”);

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

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

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

ST0 =连接(sys_singletune、Cd、Cq Cspeed, sum_speed, sum_id, sum_iq,输入,输出,APs);

定义优化目标,包括跟踪和环形状的目标,确保命令跟踪,防止饱和度以及获得目标。速度控制器,设置跟踪带宽150年rad / s。这个带宽用于跟踪和循环形状的目标。此外,设置直流误差0.001反映的最大稳态误差0.1%。设置最大错误10。d-axis电流控制器,设置跟踪带宽2500年rad / s,比和更快的速度控制器。为了防止饱和控制器,指定目标约束三个控制器的收益。

TR1 = TuningGoal.Tracking (“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.Gain (“speed_ref”,“Iq_ref”2);MG2 = TuningGoal.Gain (“speed_ref”,矢量量化的,50);MG3 = TuningGoal.Gain (“Id_ref”,Vd的,20);

调整所有三个PI控制器使用systune与所有基于构造模型的优化目标ST0。增加的可能性发现参数值,满足所有的设计要求,设置选项systune运行五个额外的优化从五个随机生成的参数值。

选择= systuneOptions (“RandomStart”5);rng(2)[相约,fSoft] = systune (ST0, (TR1、TR2 LS1, LS2, MG1, MG2, MG3],选择);
最后:软= 1.01,=无穷,迭代= 73一些闭环极点略微稳定(衰变率接近1 e-07)最后:软= 1.01,=无穷,最后迭代= 87:软= 1.01,=无穷,迭代= 59略微有些闭环极点稳定(衰变率接近1 e-07)最后:软= 1.01,=无穷,迭代= 66一些闭环极点略微稳定(衰变率接近1 e-07)最后:软= 1.01,=无穷,迭代= 61一些闭环极点略微稳定(衰变率接近1 e-07)最后:软= 1.01,=无穷,迭代= 60

使用后找到一个解决方案systune显示,调优的目标是如何在优化模型相约。显示跟踪回路的形状,并分别获得优化的目标。虚线下面的数字代表优化目标和实线的结果调整控制器。

图viewGoal ([TR1 TR2],相约)图viewGoal ([LS1 LS2],相约)图viewGoal (MG1、MG2的MG3,相约)

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

Cd = getBlockValue(相约,“Cd”);Cq = getBlockValue(相约,“Cq”);Cspeed = getBlockValue(相约,“Cspeed”);

d-axis电流PI控制器调整收益:

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

q-axis电流PI控制器调整收益:

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

PI速度控制器调整收益:

paramVelocityControlTuneP = Cspeed。Kp paramVelocityControlTuneI = Cspeed.Ki
paramVelocityControlTuneP paramVelocityControlTuneI = 0.0179 = 0.3713

调优后所有三个控制器一起使用systune,控制器增益显著不同于原来的值。速度控制回路的PID控制器有不同的样本,这是0.001第二。调优结果使用一种不同的样本的时间4 e-6第二,但控制器收益是相同的。以确保控制器性能一致,不同的样本,PID控制器的离散积分格式的“梯形”这个例子。

验证优化控制器

检查使用调整控制器的性能收益。首先,初始化模型的零初始条件使用ctrlIniValues。PID控制器连接块通过设置开关的信号switchIniValue并设置合适的永磁同步电动机植物模型的初始条件。

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

配置模型使用一个片面的速度指令信号和模拟模型。显示的速度响应模型从片面的速度命令0rad /年代150年在rad /秒0.05年代,然后200年在rad /秒0.8年代,保存仿真结果logsout_tuned_onesideMAT-file,SystunedSpeed.mat

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

配置模型使用一个双边速度指令信号和模拟模型。显示的速度响应模型从两面速度命令0rad /年代150年在rad /秒0.05年代,逆转方向0.5然后回0在rad /秒0.8年代,保存仿真结果logsout_tuned_twosideMAT-file,SystunedSpeed.mat

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

比较现有控制器之间的电动机转速响应收益和调整的结果。速度响应并排在一秒钟的模拟显示。反应速度更接近一步命令。PI控制器后的稳态误差也减少调谐systune

scdfocmotorSystunePlotSpeed

优化后的控制器,电机响应改善瞬态响应快和较小的稳态误差在两种类型的速度命令。

bdclose (mdl)

另请参阅

相关的话题