Simulink电机控制代码生成:PI控制器参数整定的总结

目录

PI控制器的参数整定方法

方法一:

方法二:

方法对比

总结


看过很多论文,对PI参数的整定方法五花八门,还有PI参数整定的口诀,所谓口诀就是试凑法。除了试凑法,本文提供另外两种方法来整定PI参数,并互相验证两种方法的可行性。

PI控制器的参数整定方法

方法一:

反电动势项忽略得到DQ轴坐标系的电压方程:

 对上式进行拉普拉斯变换得到:

 得到电流环闭环传递函数:

这里把反馈为单位负反馈,增益环节也是1。

 闭环传递函数零极点对消化简得到PI参数,其中为带宽系数

一般设计PI控制器参数或者其他控制器参数时需要考虑带宽的选取,一般带宽越高,响应越快但是相应稳态性能偏差,带宽越低响应越慢,相应的稳态性能就越好。设计控制器参数时根据系统定义需求进行调整即可。以上方法经常在很多参考文档里面遇到,而实际工程中带宽的设计都是基于经验和都尝试。

方法二:

参考之前的博文

永磁同步电机矢量控制电流环参数整定方法—-Matlab controlSystemDesigner的使用

方法对比

这里通过一个控制实例来更直观的感觉下PI控制的效果:

根据方法一,我们得到下面的代码:

pmsm = struct;
pmsm.RatedVoltage = 800.0;  %TBD
pmsm.PolePairs = 4;
pmsm.StatorPhaseResistance = single(0.00653); % RS
pmsm.InductanceLd = single(0.000118);         % Ld
pmsm.InductanceLq = single(0.000276);        % Lq
pmsm.FluxLinkage = single(0.0672346);           %Flux
pmsm.Jkm2=single(0.002);

%Set Inverter Parameters%
inverter = struct;
inverter.BusVoltage = 24.0;
inverter.BusVoltageMax = 36.0;
inverter.BusVoltageMin = 10.0;
inverter.CurrentMax = single(10);
inverter.PWM_frequency = 10000;     %20Khz
inverter.Ts=1/inverter.PWM_frequency; %Ts
inverter.Speed_PI_T =0.002;%s

currentloop = struct;
currentloop.wc = single(1500); %rad/s 电流环带宽
currentloop.kp_d = pmsm.InductanceLd * currentloop.wc;
currentloop.ki_d = currentloop.wc*pmsm.StatorPhaseResistance;
currentloop.kp_q = pmsm.InductanceLq * currentloop.wc;
currentloop.ki_q= pmsm.StatorPhaseResistance*currentloop.wc;

 这里根据电机的参数,设计带宽1500 rad/s 换算成频率238.7Hz。得到的PI参数如下:

 根据方法二的方法,把方法一得到的Q轴的PI参数代入到系统传递函数,得到以下代码:

s = tf('s');
Td=1/inverter.PWM_frequency;%+0.5/inverter.PWM_frequency
Giq=1/(pmsm.InductanceLq*s+pmsm.StatorPhaseResistance);
Giq_delay=tf([1],[pmsm.InductanceLq pmsm.StatorPhaseResistance],'inputdelay',Td);
%Giq_z=c2d(Giq_delay, inverter.Ts, 'zoh');
%Ciq
%Iq_numz = 0.66446*[1 -0.9973]
%Iq_denz = [1 -1] 
%Ciq = tf(Iq_numz,Iq_denz,inverter.Ts)
Kpq=0.4140;
Kiq=9.7950;
PI_q=Kpq+Kiq/s;

controlSystemDesigner(Giq_delay,PI_q,1,1);

 运行后:

可以看到,设计带宽正好是1500rad/s. 

 换成频率为单位:

和我们之前算的一样239,系统的相位裕量和增益裕量也足够,系统稳定。通过方法二设计的PI参数,就可以让我们设计一个控制系统时看得到更多的信息,而不是试凑一个带宽或者一组PI参数。

 增大带宽:

通过鼠标抓取曲线上下移动,或者调整零点位置都可以达到改变带宽的效果。

增大带宽可以看到相位裕量变小,增益裕量变小,从阶跃响应来看系统响应更快,但是由于裕量变小了,所以系统的稳定性变差了。具体是什么情况好,取决于系统需求。这里就解释了前面带宽越高,响应越快但是相应稳态性能偏差,带宽越低响应越慢,相应的稳态性能就越好。

总结

本文利用实例通过两种方法整定PI参数,并互相比较,总结出两种方法都可以整定出PI参数,但是方法二更加直观和合理。方法一存在一定的不确定性,比如当前设计的带宽是不是太高,太低。只能在实际中验证。方法二如果电机参数准确,可以更方便的看出电机PI参数是否会引起系统超调太大,是否稳定等信息。

物联沃分享整理
物联沃-IOTWORD物联网 » Simulink电机控制代码生成:PI控制器参数整定的总结

发表评论