P6:构建了一个实现PWM控制的模型,可以在仿真中实时调整BLDC转速控制系统的 PI 控制器参数,并直接将参数应用到BLDC电机控制系统。
(1)目的:不需要计算出被控对象传递函数,直接自动调整参数并应用于仿真模型。
(2)方法:
1)采用P5中PWM控制降压转换器模型,并对PI控制器和电机参数做点修改,便于仿真。
2)Autotuning Speed子系统则是为了自动调整Speed controller参数。通过脚本文件编代码控制,star/stop,开始是要1,当1变为0的下降沿就会触发停止自动调整。
3)编写脚本,此处编写脚本是为了方便,也可以不编写脚本,自动调完参数,将参数的值手动输入到PI控制器也可以。
%% BLDC Motor Model
mdl = 'P6'; %模型为P6.slx
open_system(mdl) %打开模型
%%
Tsc = 1e-4; % Sample time for inner control loop [s]
%%
Kpw = 0.1; % Proportional gain for speed controller
Kiw = 15; % Integrator gain for speed controller
%%
open_system([mdl '/Nref'])%打开在这个模型的scope,查看波形
sim(mdl) %运行模型
%% Tune Inner-Loop PI Controller
set_param([mdl '/Tune Outer Speed Loop'],'Value','1')%将这个模块赋为 %1,就是Closed-Loop PID Autotuner选择了启动模式
%%
open_system([mdl '/Nref'])
sim(mdl)
%%
% Update the outer-loop PI controller with the new gains.
Kpw = ans.SpeedLoopGains(1);
Kiw = ans.SpeedLoopGains(2);
%% Improved Tracking Performance After Autotuning
set_param([mdl '/Tune Outer Speed Loop'],'Value','0')
%%
% The tuned gains result in better tracking of the test ramp signals.
open_system([mdl '/Nref'])
sim(mdl)
4)Speed controller参数为初始值时,仿真波形
5)在m文件中,运行set_param([mdl '/Tune Outer Speed Loop'],'Value','1'),选择了Autotuning Speed子系统运行,调参,参考转速为1500rpm。
6)将调整后的参数带入,停止自动调参,再运行。此处用脚本。
总之,实现了自动调参功能,应用于电机控制系统仿真。