【电力电子在电力系统中的应用】1 具有输出限幅的离散系统的PID控制器

【仅供参考

【2023.02西南交大电力电子在电力系统中的应用】

目录

[0 仿真要求](#0 仿真要求)

[1 PID控制器的设计与封装](#1 PID控制器的设计与封装)

[1.1 搭建仿真电路](#1.1 搭建仿真电路)

[1.2 对PID控制器部分封装为subsystem模块](#1.2 对PID控制器部分封装为subsystem模块)

[1.3 创建Mask模块](#1.3 创建Mask模块)

[2 PID控制器的参数选择](#2 PID控制器的参数选择)

[2.1 Kp参数的调节](#2.1 Kp参数的调节)

[2.2 Ki参数的调节](#2.2 Ki参数的调节)

[2.3 Kd参数的调节](#2.3 Kd参数的调节)


0 仿真要求

1、针对极点0,-0.5的被控系统,设计具有输出限幅离散系统的PID控制器,并封装成参数可设置的模块,可设置Kp、Ki、Kd、输出限幅最大、最小值等参数。

2、验证PID在以下系统(替换Subsystem)的阶跃输出。

1 PID控制器的设计与封装

1.1 搭建仿真电路

其中:

  1. 将三个Gain模块的数值分别用参数Ki、Kp、Kd代替,便于后续封装成subsystem、创造Mask模块后,对模块属性进行设置;
  2. 在Ki对应的Gain模块后串上一个Discrete-Time Integrator(离散时间积分)模块;
  3. 在Kd对应的Gain模块后串上一个Discrete Derivative(离散系统微分)模块;
  4. 用Add模块将比例、积分、微分三条线路进行加和;
  5. 在Add模块后串联一个Saturation模块,对输出进行限幅;

将Saturation模块中Upper limit、Lower limit的数值分别用参数Max和Min代替,以便于后续创造Mask模块后,对模块属性进行设置。

1.2 对PID控制器部分封装为subsystem模块

得到下图所示电路:

1.3 创建Mask模块

对各参数进行编辑如下:

得到参数可设置的模块如下(可设置Kp、Ki、Kd、输出限幅最大、最小值等参数):

2 PID控制器的参数选择

2.1 Kp参数的调节

先将Ki、Kd清零,不进行限幅。如右图,当Kp选为0.05时(图中黄线所示),达到稳态时间偏长;Kp选为0.14时(图中蓝线所示),反应速度提升,但产生过冲。

2.2 Ki参数的调节

Ki在有外力作用和系统误差时用以消除偏差、提高精度。调大Ki也可增加响应速度,但同时也会产生过冲、过大会产生振荡。此处调节Ki参数效果不甚明显,故取一较小数值0.000001。

2.3 Kd参数的调节

Kd用以抑制过冲和振荡。Kd过小系统会产生过冲,过大则会减慢响应速度。如右图,当Kd选为0.01时(图中黄线所示),产生些许过冲;Kp选为0.14时(图中蓝线所示),差不多为预期所需。

综上所述,所得参数如图:

使用PID控制(黄线)和不使用PID控制(蓝线)时输出波形如图:

相关推荐
我爱C编程1 小时前
基于DNN深度神经网络的OFDM+QPSK信号检测与误码率matlab仿真
matlab·dnn·深度神经网络·ofdm+qpsk·信号检测
小熊科研路(同名GZH)1 小时前
【Matlab高端绘图SCI绘图模板】第05期 绘制高阶折线图
开发语言·matlab·信息可视化
阑梦清川17 小时前
simulink入门学习02---基本算法
算法·simulink
小熊科研路(同名GZH)21 小时前
【Matlab高端绘图SCI绘图模板】第003期 绘制面积填充图
开发语言·matlab
磁悬浮青蛙呱呱呱1 天前
30个整数映射到1个字节,查表法实现小范围内常数时间素性判定
数据结构·matlab·c#·位图·素性测试
jk_1012 天前
MATLAB中insertAfter函数用法
开发语言·matlab
matlabgoodboy2 天前
代码编写java代做matlab程序代编Python接单c++代写web系统设计
java·python·matlab
chen4930722 天前
matlab实现数据极坐标显示
matlab
Evand J2 天前
matlab绘图——彩色螺旋图
开发语言·matlab·信息可视化
wenxin-2 天前
NS3网络模拟器中如何利用Gnuplot工具像MATLAB一样绘制各类图形?
开发语言·matlab·画图·ns3·lr-wpan