仿真电路建立及分析参数设置,参见记录8

仿真电路如下图:

上面的电路进行小信号分析仿真,得到仿真结果,如下:

现在我们就根据得到的伯德图,设计PI闭环控制器:

PI控制器是最常见的控制器,其传递函数为:

化简一下即为:

PI调节器 传递函数的伯德图如下:

特点:

转折频率对应相频特性中的-45°,相频特性中,左边的拐点是转折频率的1/10,右边的拐点是转折频率的10倍。

从上图可以看出,对于PI控制器,相角总是负值,即小于等于0°,所以总是将被控对象的传递函数的相角进行拉低,

下面用mathematica演示一下,PI控制器是如何影响整个回路的开环传递函数的?

在自动控制理论中,开环传递函数

C(s)就是需要设计的PI控制器,G(s)是被控对象,引入负反馈后,形成环路

开始进行设计:

首先我们将PLECS仿真电路的小信号分析结果的数据导出来,以便放在Mathematica中进行分析和计算:

仿真结果如下:

调出光标,将光标卡在我们关注的频率范围内:

然后将光标范围内的数据导出并进行并保存:

将导出后的数据导入到mathematica中,进行分析:

获取数据中的幅频数据:

获取数据中的相频数据:

绘制上面数据得到的幅频特性曲线和相频特性曲线:

可见上面的特性曲线是被控对象的幅频和相频特性曲线,现在我们要看一下加入PI调节器之后,整个环路的开环控制特性是怎么样变化的?

为了方便观察,我们在Mathematica中,使用Manipulate[]函数,进行绘制:

Manipulate[{LogLinearPlot[{20 Log[10, Abs[kp (t + s)/s]], 
       20 Log[10, Abs[kp (t + s)/s]] + amp[f], amp[f]} //. 
      s -> I 2 \[Pi] f // ComplexExpand // Evaluate, {f, 10, 10*^3}, 
   PlotRange -> {-50, 80}, PlotLegends -> {PI控制器, 环路增益, 被控对象}], 
  LogLinearPlot[{Arg[kp (t + s)/s] 180/\[Pi], 
       Arg[kp (t + s)/s] 180/\[Pi] + phase[f], phase[f], -180} //. 
      s -> I 2 \[Pi] f // ComplexExpand // Evaluate, {f, 10, 10*^3}, 
   PlotRange -> {-200, 50}, PlotLegends -> {PI控制器, 环路增益, 被控对象}]}, {kp,
   1*^-3, 1}, {t, 1*^2, 1*^4}]

通过调节不同的kp和t就可以观察到这两个值对系统的影响,

那么,kp和t应该选择哪个值,系统最好呢?

自动控制理论中,要使系统稳定,幅频特性中穿越0DB对应的频率点,对应到相频特性中的相角要大于-180°,并留有一定的相角裕度。

调节kp和t:

现在我们用上面的kp和t的值,在PLecs中验证一下系统是否稳定:

修改电路,为系统电路添加PI控制器:

PI控制器的传递函数:

所以在Plecs中,传递函数设置为:

因PI控制器的输出可能太大或太小,所以添加一个限幅模块,添加后如下:

设置限幅模块的参数:

设置Constant模块的参数:

设置仿真参数:

运行仿真,得到如下结果:

可以发现,输出结果稳定在24V。

现在模拟验证在输入电压发生变化时,输出电压是否稳定?

将输入电源改为受控电压源,,将电压由48V调整为96V,然后观察输出电压有什么变化

设置受控电压源的受控参数:

进行仿真,观察仿真结果:

控制信号自动调整,如下:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐