使用SYSTUNE调整面向场控制器
的用法systune
命令,根据频率响应估计(FRE)结果调优永磁同步电机(PMSM)的场向控制(FOC)。
磁场定向控制
在本例中,使用Simscape™electric™组件在Simulink®中对永磁同步电机(PMSM)的场向控制(FOC)进行建模。
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);传奇(“原始控制器”,“速度参考”,“位置”,“东北”);网格在持有从
收集频率响应数据
要收集频率响应数据,请找到一个工作点,速度为150
Rad /sec,指定线性分析点,定义输入信号,估计频率响应。
断开原控制器,用VD和VQ命令模拟开环系统模型。为了达到操作点,指定VD的初始电压为-0.1 V, VQ的初始电压为3.465 VctrlIniValues
结构。恒压指令块通过设置开关信号连接switchIniValue
结构。
switchIniValue。openLoopD = 1;switchIniValue。openLoopQ = 1;ctrlIniValues。电压= -0.1;ctrlIniValues。voltageQ = 3.465;
捕获模拟快照3.
SEC作为频率响应估计的工作点。
signalbuilder (SignalBuilderPath“activegroup”1);op = findop (mdl 3);
以仿真快照工作点作为模型的初始条件。中更改模型初始值ctrlIniValues
使结构处于稳定状态。对于d轴电流控制器,当前ID为0
A.对于q轴电流控制器,电流IQ为0.1
A.对于外环速度控制器,参考电流为0.122
A,速度是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和VQ增加开环输入点。为ID, IQ和速度添加开环输出点。另外,在速度测量中增加一个环断分析点。
io = getlinio (mdl);
定义输入的正弦信号10
来10000年
的固定采样时间下的Rad /s4 e-6
S,即电流控制回路的采样时间sampleTime。CurrentControl
.正弦信号的大小为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.Lambda = 0.1;sys_singletune = ss (estsys 4“t”、sampleTime.CurrentControl选择);
为了调优PMSM FOC模型中的所有三个PI控制器,构造如下面的框图所示的控制系统。
定义三个可调的离散时间PID块及其I/ o,分别用于d轴电流控制、q轴电流控制和速度控制。这些离散时间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 - 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的,矢量量化的,“Id”,“智商”,“速度”};
最后,组装完整的控制系统,ST0
,使用这些组件。
ST0 =连接(sys_singletune、Cd、Cq Cspeed, sum_speed, sum_id, sum_iq,输入,输出,APs);
定义调优目标,包括跟踪和循环形状目标,以确保命令跟踪,以及获取目标,以防止饱和。对于速度控制器,将跟踪带宽设置为150
rad / s。这个带宽用于跟踪和循环形状的目标。另外,将DC误差设置为0.001
的最大稳态误差0.1
%。设置峰值误差为10
.对于d轴电流控制器,将跟踪带宽设置为2500
Rad /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”,矢量量化的, 50);MG3 = TuningGoal。获得(“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);
Final: Soft = 1.01, Hard = -Inf, Iterations = 73一些闭环极点边缘稳定(衰减率接近1e-07) Final: Soft = 1.01, Hard = -Inf, Iterations = 87 Final: Soft = 1.01, Hard = -Inf, Iterations = 59一些闭环极点边缘稳定(衰减率接近1e-07) Final: Soft = 1.01, Hard = -Inf, Iterations = 66一些闭环极点边缘稳定(衰减率接近1e-07)Soft = 1.01, Hard = -Inf,迭代= 61一些闭环极点是稍微稳定的(衰减率接近1e-07)最终:Soft = 1.01, Hard = -Inf,迭代= 60
找到解决方案后使用systune
,显示如何在调优模型中实现调优目标相约
.分别显示跟踪、循环形状和增益调优目标。下图中的虚线表示调优目标,实线表示调优控制器的结果。
图viewGoal([TR1,TR2],ST1)图viewGoal([LS1,LS2],ST1)图viewGoal([MG1,MG2,MG3],ST1)
验证调优目标后,从调优模型中提取控制器参数相约
.使用调优的PI控制器参数更新PI控制器块的工作空间参数。
Cd = getBlockValue(相约,“Cd”);Cq = getBlockValue(相约,“Cq”);Cspeed = getBlockValue(相约,“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 paramcurrentcontrolliq = 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。电压= 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.05
S,然后到200
在rad /秒0.8
s.将模拟结果保存到logsout_tuned_oneside
MAT-file,SystunedSpeed.mat
.
signalbuilder (SignalBuilderPath“activegroup”2);sim (mdl);logsout_tuned_oneside = logsout;保存(“SystunedSpeed”,“logsout_tuned_oneside”,“添加”)
配置模型以使用双面速度命令信号并模拟模型。显示模型的速度响应的双边速度命令从0
rad /年代150
在rad /秒0.05
S,在0.5
S,然后回到0
在rad /秒0.8
s.将模拟结果保存到logsout_tuned_twoside
MAT-file,SystunedSpeed.mat
.
signalbuilder (SignalBuilderPath“activegroup”3);sim (mdl);logsout_tuned_twoside = logsout;保存(“SystunedSpeed”,“logsout_tuned_twoside”,“添加”)
比较现有控制器增益和调谐结果之间的电机速度响应。速度响应在一秒钟的模拟中并排显示。速度响应更接近于步进命令。对PI控制器进行调优后,稳态误差也减小systune
.
scdfocmotorSystunePlotSpeed
调整后的控制器,电机响应改善,更快的瞬态响应和更小的稳态误差下的两种类型的速度命令。
bdclose (mdl)