当前位置: 首页 > wzjs >正文

北京建设工程交易服务中心网站seo推广优化服务

北京建设工程交易服务中心网站,seo推广优化服务,wordpress加入购物,四川省建设工程信息网安全监督代码已上传:计算机控制系统PID参数整定法资源-CSDN文库 1背景 为了模拟PID参数整定,把教材上的案例进行分析。 1题目 单位闭环传递函数,开环传函G(s)1/((s1)(s2)), Ts0.1s, PID调整器输出后,接零阶保持器ZOH。 2 代码 PID含积…

代码已上传:计算机控制系统PID参数整定法资源-CSDN文库

1背景

为了模拟PID参数整定,把教材上的案例进行分析。

1题目

单位闭环传递函数,开环传函G(s)=1/((s+1)(s+2)), Ts=0.1s, PID调整器输出后,接零阶保持器ZOH。

2 代码 

PID含积分环节TI/s,

PID控制器 C(s)=Kp+sKi​+Kd⋅s 是一个非因果模型,因为它的分子(Kd⋅s)的阶数高于分母(1)的阶数。因此,不能直接使用 "zoh"、"foh" 或 "impulse" 方法来转换PID控制器。

具体编码:

注意PID的参数可以逐步添加。

% 定义闭环传递函数 G(s)
s = tf('s'); % 定义传递函数变量s
G = 1 / ((s + 1) * (s + 2)); % 给定的闭环传递函数% 定义PID控制器
% PID控制器的传递函数为:C(s) = Kp + Ki/s + Kd*s
%----这里可调整,从进行PID参数整定-------------
Kp = 5; % 比例增益
% Ki = 0.1; % 积分增益
% Kd = 0.01; % 微分增益
C = Kp + Ki / s + Kd * s; % PID控制器传递函数% 将连续时间系统转换为离散时间系统
Ts = 0.1; % 采样时间
% PID 不能用c2d函数,可用 双线性变换.PID控制器 C(s)=Kp+ 
%s Ki +Kd⋅s 是一个非因果模型,因为它的分子(Kd⋅s)的阶数高于分母(1)的阶数。
Gz = c2d(G, Ts, 'zoh'); % 使用零阶保持(ZOH)方法进行转换
% Cz = c2d(C, Ts, 'zoh'); % 使用零阶保持(ZOH)方法进行转换Cz = c2d(C, Ts, 'tustin');% 双线性离散% 闭环系统
Tz = feedback(Cz * Gz, 1); % 闭环传递函数,单位反馈
% 仿真时间
t = 0:Ts:10; % 仿真时间从0到10秒,步长为采样时间Ts% 仿真阶跃响应
figure;
step(Tz, t); % 绘制离散时间系统的阶跃响应
title('阶跃响应');
xlabel('时间/秒');
ylabel('响应');
grid on;

3临界比例整定过程(未达到最优)

3.1 KI=KD=0,逐步增大P

KP=32 基本等副振荡。Tr=1.1s

3.2 查表

控制度=1.2, 进行PI查表

T=0.05*Tr=0.05*1.1=0.055s.

KP=0.49*32=16

KI=0.91*1.1=1s

代入PI参数

效果并不好, 稳态误差太大,说明积分效果不好。加大ki

稳态误差没有了。增加D

3.2 查表,加入D

KD=0.47s

 

没有达到最好的效果。

4 用AI来寻优

以下是基于Ziegler-Nichols方法调整PID参数的步骤:

1. 确定临界增益(Ku)和临界周期(Pu)

  1. 将积分增益(Ki)和微分增益(Kd)设置为0,仅使用比例增益(Kp)。

  2. 逐步增加Kp,直到系统的输出开始出现持续振荡。

  3. 记录此时的比例增益值,称为临界增益(Ku),以及振荡的周期,称为临界周期(Pu)。

2. 根据Ziegler-Nichols公式计算PID参数

根据Ziegler-Nichols方法,PID参数可以通过以下公式计算:

  • 比例增益(Kp):Kp=0.6×Ku

  • 积分增益(Ki):Ki=2×Kp/Pu

  • 微分增益(Kd):Kd=Kp×Pu/8

示例

假设通过实验,你发现系统的临界增益(Ku)为2.5,临界周期(Pu)为1.5秒。(测试应该为KU=32,PU=1.1,我无法在推荐的参数获得结果)

根据上述公式,可以计算出PID参数:

  • Kp=0.6×2.5=1.5

  • Ki=2×1.5/1.5=2.0

  • Kd=1.5×1.5/8=0.28125

他们没有使用ZOH。。

% 定义闭环传递函数 G(s)
s = tf('s'); % 定义传递函数变量s
G = 1 / ((s + 1) * (s + 2)); % 给定的闭环传递函数% 定义PID控制器
Kp = 1.5; % 比例增益
Ki = 2.0; % 积分增益
Kd = 0.28125; % 微分增益
C = Kp + Ki / s + Kd * s; % PID控制器传递函数% 闭环系统
T = feedback(C * G, 1); % 闭环传递函数,假设单位反馈% 仿真时间
t = 0:0.01:10; % 仿真时间从0到10秒,步长为0.01秒% 仿真阶跃响应
figure;
step(T, t); % 绘制闭环系统的阶跃响应
title(strcat('阶跃响应 KP=', num2str(Kp),',Ki=',num2str(Ki),'Kd=',num2str(Kd) ));
xlabel('时间 (秒)');
ylabel('响应');
grid on;

5 上pidtune工具包

pidtune 是 MATLAB 中用于自动调整 PID 控制器参数的工具,其工作原理基于系统模型的分析,通过优化算法平衡控制系统的性能和鲁棒性。以下是 pidtune 的工作原理及使用方法的详细说明:

pidtune 的工作原理

  1. 系统模型分析

    • pidtune 首先需要一个线性时不变(LTI)模型,如传递函数(tf)或状态空间(ss)模型。

    • 它通过分析系统的开环特性(如增益、相位、零点和极点)来确定合适的 PID 参数。

  2. 性能与鲁棒性平衡

    • pidtune 通过优化算法自动调整 PID 参数,以实现快速响应(性能)和足够的稳定裕度(鲁棒性)。

    • 用户可以通过指定目标带宽(wc)或相位裕度等参数,进一步调整控制系统的性能。

  3. 控制器类型选择

    • pidtune 支持多种控制器类型,包括 PI、PD、PID、PIDF(带微分滤波器)以及两自由度(2-DOF)PID 控制器。

    • 用户可以根据系统需求选择合适的控制器类型。

  4. 交互式调整

    • 在 MATLAB 的 Live Editor 中,pidtune 提供了交互式调参功能,用户可以实时调整控制器性能,并生成相应的 MATLAB 代码

使用 pidtune 的基本步骤

  1. 定义系统模型

    • 使用 tfss 创建系统的传递函数或状态空间模型。

    matlab复制

    sys = tf([1], [1, 3, 2]); % 示例传递函数
  2. 调用 pidtune

    • 指定控制器类型(如 'PI''PID' 等),pidtune 将返回优化后的 PID 参数。

    matlab复制

    [C, info] = pidtune(sys, 'PID'); % 自动调整 PID 参数
  3. 分析结果

    • 返回的 C 是优化后的 PID 控制器对象,info 包含闭环稳定性、带宽和相位裕度等信息。

    matlab复制

    disp(C); % 显示 PID 参数
    disp(info); % 显示性能和鲁棒性信息
  4. 高级选项

    • 用户可以通过 pidtuneOptions 设置更多选项,如目标带宽、相位裕度等。

    matlab复制

    opts = pidtuneOptions('CrossoverFrequency', 1.5, 'PhaseMargin', 60);
    C = pidtune(sys, 'PID', opts);
  5. 验证性能

    • 使用 stepbode 函数验证闭环系统的阶跃响应或频率响应。

                step(feedback(C * sys, 1));

代码

% 定义系统传递函数
s = tf('s');
G = 1 / ((s + 1) * (s + 2));% 使用pidtune自动整定PID参数
[pid, info] = pidtune(G, 'PID');% 查看整定后的PID参数
disp('整定后的PID参数:');
disp(pid);% 绘制闭环阶跃响应
T = feedback(pid * G, 1);
step(T);
title('自动整定后的闭环阶跃响应');

6 GA算法

6.1. 遗传算法(GA)的基本原理

遗传算法是一种模拟生物进化过程的优化算法,通过选择、交叉和变异等操作,逐步逼近问题的最优解。其基本流程包括以下几个步骤:

  1. 初始化种群:随机生成一组初始解,每个解称为一个“个体”或“染色体”,通常用一组参数表示。

  2. 计算适应度:对每个个体计算其适应度(fitness),适应度函数通常根据问题的目标来评估个体的优劣。

  3. 选择操作:根据适应度选择优秀的个体,适应度高的个体有更大的概率被选中,用于生成下一代。

  4. 交叉操作:随机选择两个个体,通过某种方式交换部分基因,生成新的个体。

  5. 变异操作:对新生成的个体进行随机的小幅度变异,以增加种群的多样性,防止算法陷入局部最优。

  6. 终止条件判断:如果满足终止条件(如达到最大迭代次数或适应度达到预设阈值),则停止迭代,否则返回步骤2。

6.2. 遗传算法在PID参数优化中的应用

PID控制器的性能依赖于其三个参数:比例增益(Kp)、积分增益(Ki)和微分增益(Kd)。遗传算法可以通过优化这些参数来提高PID控制器的性能。

具体步骤如下:
  1. 初始化种群:随机生成一组PID参数(Kp、Ki、Kd),作为初始种群。

  2. 计算适应度:对每个个体(一组PID参数),构建PID控制器并计算闭环系统的性能指标(如超调量、调节时间、稳态误差等)。通常使用积分平方误差(ISE)或积分绝对误差(IAE)作为适应度函数。

  3. 选择操作:根据适应度选择优秀的个体,适应度高的个体有更大的概率被选中。

  4. 交叉操作:随机选择两个个体,交换部分参数值,生成新的个体。

  5. 变异操作:对新生成的个体进行随机的小幅度变异,例如随机调整Kp、Ki或Kd的值。

  6. 终止条件判断:如果满足终止条件(如达到最大迭代次数或适应度达到预设阈值),则停止迭代,输出最优的PID参数。

6.3 实现代码

% 清除变量和关闭所有图形窗口
clear; close all;% 定义被控对象 G(s)
s = tf('s');
G = 1 / ((s + 1) * (s + 2)); % 给定的被控对象传递函数% 定义目标函数(适应度函数)
objective = @(pid) optimizePID(pid, G);% 遗传算法优化PID参数
nvars = 3; % PID参数数量:Kp, Ki, Kd
lb = [0, 0, 0]; % 参数下界
ub = [10, 10, 10]; % 参数上界
options = optimoptions('ga', 'Display', 'iter', 'PopulationSize', 100, 'MaxGenerations', 100);% 运行遗传算法
[x, fval] = ga(objective, nvars, [], [], [], [], lb, ub, [], options);% 输出优化后的PID参数
Kp = x(1);
Ki = x(2);
Kd = x(3);
disp(['优化后的PID参数:Kp = ', num2str(Kp), ', Ki = ', num2str(Ki), ', Kd = ', num2str(Kd)]);% 构建PID控制器并验证闭环性能
C = pid(Kp, Ki, Kd); % 使用MATLAB的pid函数构建PID控制器
T = feedback(C * G, 1); % 闭环传递函数% 绘制阶跃响应
figure;
step(T);
title('优化后的闭环阶跃响应');
grid on;% 目标函数:优化PID参数
function cost = optimizePID(pid, G)% 在函数中重新定义传递函数变量ss = tf('s');Kp = pid(1);Ki = pid(2);Kd = pid(3);C = Kp + Ki / s + Kd * s; % 构建PID控制器传递函数T = feedback(C * G, 1); % 闭环传递函数% 获取阶跃响应的性能指标info = stepinfo(T);steadyStateValue = dcgain(T); % 计算稳态值cost = info.Overshoot + info.SettlingTime + abs(1 - steadyStateValue); % 最小化超调、调节时间和稳态误差
end

遗传算法通过模拟生物进化过程,能够有效地优化PID控制器的参数。通过合理设计适应度函数和遗传操作,遗传算法可以在复杂的参数空间中找到最优解,从而显著提高PID控制器的性能


文章转载自:

http://Ji8mUwwe.wrbnh.cn
http://3Z4XGV1Z.wrbnh.cn
http://iez1J2jn.wrbnh.cn
http://Lvp7r5tt.wrbnh.cn
http://dKg2TgGC.wrbnh.cn
http://jUa2Zpon.wrbnh.cn
http://pIsggkXN.wrbnh.cn
http://hlzvGpm3.wrbnh.cn
http://MNLe1bKt.wrbnh.cn
http://96KBHIjm.wrbnh.cn
http://rN1ZcKD4.wrbnh.cn
http://vfKIYKK1.wrbnh.cn
http://R0XXgIuB.wrbnh.cn
http://X1jWSmgl.wrbnh.cn
http://DqPLW150.wrbnh.cn
http://YioRvVHX.wrbnh.cn
http://Hz5NyXFr.wrbnh.cn
http://BdcarBcX.wrbnh.cn
http://46BK2qYs.wrbnh.cn
http://NiZr4UJG.wrbnh.cn
http://H8Es11BV.wrbnh.cn
http://F1SUQfGk.wrbnh.cn
http://WjoCjO4W.wrbnh.cn
http://LCp1PdLl.wrbnh.cn
http://uxJaCTq1.wrbnh.cn
http://yGJU6Hw2.wrbnh.cn
http://FIareqn1.wrbnh.cn
http://ZwH6hngm.wrbnh.cn
http://n9HvfXoI.wrbnh.cn
http://VNpg0VRb.wrbnh.cn
http://www.dtcms.com/wzjs/684764.html

相关文章:

  • 网站搭建一般要山东省建设安全监督站的网站
  • 靓号网站开发网站建设公司厂
  • 秦皇岛抚宁区建设局网站wordpress 用户组
  • 响应式建设网站杭州做宠物网站的公司哪家好
  • 和建设银行类似的网站折800网站程序
  • 鞍山手机网站建设汽车门户网站建设
  • 网站优化+山东西安做网站公司那家好
  • 有没有在线做动图的网站游戏开发引擎
  • 做短视频网站全球新闻最新消息
  • 怎么整理网站龙岩有什么招聘本地网站
  • 制作公司网站应该考虑什么广州网站排名优化公司
  • 网站脑图怎么做盐城哪有做网站建设的
  • 国外的设计网站app吗西安网站设计师
  • 上海建智咨询培训网站网站什么时候备案
  • 美食网站设计的代码郑州专业网站建设公司
  • 查网站备案网络营销的未来6个发展趋势
  • 重庆网站建设百度推广wordpress 评论回复邮件通知插件
  • 网站开发一般需要多久青岛响应式网站开发
  • 黑河网站制作忘记密码wordpress
  • 我要做个网站建设路街道办事处门户网站
  • 网站备案在哪里审批项目从立项到施工的程序
  • 绍兴h5建站番禺建设网站系统
  • 如何建设一个生活服务网站做原型交互的网站工具
  • 毕业设计做网站答辩会问什么最近的新闻事件
  • 做平台网站怎么做ecetc商务网站建设工程师
  • 网站建设的技术可行性企业网站建设方案范文
  • 宁夏建设银行网站什么杭州seo公司
  • 重庆网站优化排名推广宿州哪有做网站的
  • 网站开发所需具备的基础h网站建设
  • 企业营销型网站的内容太原网站建设案例