用的是《MATLAB智能算法30个案例分析》中的程序

1.文件名为PSO_PID.m

function z = PSO_PID(x)

assignin('base','Kp',x(1));                   % 粒子群依次赋值给Kp                                            这部分运行结果> PSO_PID

assignin('base','Ki',x(2));                     % 粒子群依次赋值给Ki                                                                     Error using PSO_PID (line 2)

assignin('base','Kd',x(3));                   % 粒子群依次赋值给Kd                                                                      Not enough input arguments.

[ y_out] = sim('PID_Model', [0, 20]); % 使用命令行运行控制系统模块

z = y_out(end, 1);                            % 返回性能指标

2.文件名为Optm1_PSO_PID.m

%% 清空环境clearclc

%% 参数设置w = 0.6;      % 惯性因子c1 = 2;       % 加速常数c2 = 2;       % 加速常数

Dim = 3;            % 维数SwarmSize = 100;    % 粒子群规模ObjFun = @PSO_PID;  % 待优化函数句柄

MaxIter = 100;      % 最大迭代次数  MinFit = 0.1;       % 最小适应值

Vmax = 1;Vmin = -1;Ub = [300 300 300];Lb = [0 0 0];

%% 粒子群初始化    Range = ones(SwarmSize,1)*(Ub-Lb);    Swarm = rand(SwarmSize,Dim).*Range + ones(SwarmSize,1)*Lb ;     % 初始化粒子群    VStep = rand(SwarmSize,Dim)*(Vmax-Vmin) + Vmin ;                % 初始化速度    fSwarm = zeros(SwarmSize,1);for i=1:SwarmSize    fSwarm(i,:) = feval(ObjFun,Swarm(i,:));                         % 粒子群的适应值end

%% 个体极值和群体极值[bestf bestindex]=min(fSwarm);zbest=Swarm(bestindex,:);   % 全局最佳gbest=Swarm;                % 个体最佳fgbest=fSwarm;              % 个体最佳适应值fzbest=bestf;               % 全局最佳适应值

%% 迭代寻优iter = 0;y_fitness = zeros(1,MaxIter);   % 预先产生4个空矩阵K_p = zeros(1,MaxIter);         K_i = zeros(1,MaxIter);K_d = zeros(1,MaxIter);while( (iter < MaxIter) && (fzbest > MinFit) )    for j=1:SwarmSize        % 速度更新        VStep(j,:) = w*VStep(j,:) + c1*rand*(gbest(j,:) - Swarm(j,:)) + c2*rand*(zbest - Swarm(j,:));        if VStep(j,:)>Vmax, VStep(j,:)=Vmax; end        if VStep(j,:)Ub(k), Swarm(j,k)=Ub(k); end            if Swarm(j,k)

figure(2)      % 绘制PID控制器参数变化曲线plot(K_p)hold onplot(K_i,'k','LineWidth',3)plot(K_d,'--r')title('Kp、Ki、Kd 优化曲线','fontsize',18);xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18);set(gca,'Fontsize',18);legend('Kp','Ki','Kd',1);

2014-4-12 22:10 上传

仿真模型 文件名为PID_Model

matlab粒子加速器仿真,粒子群算法优化PID参数 仿真不出结果 程序如下相关推荐

  1. 粒子群算法优化PID参数实例

    粒子群优化算法(PSO)以及Matlab实现 1.粒子群算法 粒子群算法是一种智能优化算法.关于智能,个人理解,不过是在枚举法的基础上加上了一定的寻优机制.试想一下枚举法,假设问题的解空间很小,比如一 ...

  2. 回归预测 | MATLAB实现PSO-GCNN粒子群算法优化分组卷积神经网络的数据多输入单输出回归预测

    回归预测 | MATLAB实现PSO-GCNN粒子群算法优化分组卷积神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-GCNN粒子群算法优化分组卷积神经网络的数据多输入单 ...

  3. 回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出

    回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出 目录 回归预测 | MATLAB实现PSO-LSSVM粒子群算法优化最小二乘支持向量机多输入单输出 预测效 ...

  4. 粒子群算法优化PID,PSO,传递函数

    阅读前必看: 1.本代码基于MATLAB2018a版本,如果版本不同可能会报错. 2.如果运行时间过长,请观察迭代次数是否有变化. 3.此案例为原创案例,转载请注明出处. 4.如果此案例碰巧与您的研究 ...

  5. 基于入门级粒子群算法的PID参数整定(MATLAB2016b-simulink)(超详细01)

    PID算法作为工业或日常生活中常用的控制算法,想必大家都不陌生,依靠误差反馈来消除误差,关于PID的原理部分相比看这篇博客的同学应该都十分清楚,有不清楚的同学可以百度或知网搜索.PID算法的应用程度很 ...

  6. 《MATLAB智能算法30个案例》:第14章 基于粒子群算法的PID控制器优化设计

    <MATLAB智能算法30个案例>:第14章 基于粒子群算法的PID控制器优化设计 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例 ...

  7. 【PID优化】基于matlab粒子群算法优化BP神经网络PID控制【含Matlab源码 2022期】

    ⛄一.粒子群算法优化BP神经网络PID控制简介 BP神经网络PID控制算法 传统PID控制器作为一种线性控制器,具备结构,容易实现的优点,其基本原理是将系统的实际输出值和期望输出值之间的偏差按照比例. ...

  8. 【优化预测】粒子群算法优化BP神经网络预测温度matlab源码

    一.粒子群算法及RBF简介 1 粒子群算法简介 1.1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模 ...

  9. 【SVM回归预测】基于matlab粒子群算法优化SVM回归预测【含Matlab源码 1424期】

    ⛄一.粒子群算法简介 1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都 ...

最新文章

  1. 《learning ROS for robotics programming》
  2. JDBC进阶:调用数据库,将文件或其他字节文件存入数据库,再从数据库取出写回硬盘
  3. Python基础入门:*和**的使用教程
  4. oracle存储过程多分支怎样写,如何写一个分段提交的存储过程啊
  5. 资深前端开发工程师分享:关于前端学习路线的一些建议
  6. 数学之美系列 1.3w字精简版阅读笔记
  7. clover 配置文件详解(转载)
  8. 创建Excel,加柱状图
  9. stm32无感无刷电机驱动
  10. 阅读笔记:XModal-ID: Through-Wall Person Identification from Candidate Video Footage Using WiFi
  11. MAC 修改环境变量
  12. 2,uniapp功能之—扫码(条形码,二维码)点击扫码或者pda侧边按钮扫码
  13. Revit二次开发-根据名称获取标高
  14. 【unity】几个常用脚本
  15. sub( ,amp;) C语言,C语言与C++不同之函数定义
  16. QQ在线状态-可以与我直接QQ交流
  17. 潘粤明的《龙岭迷窟》到底怎么样?我用 Python 得出了一些结论!
  18. linux驱动系列学习之OLED(i2c接口)(八)
  19. FFmpeg用于flv/QSV格式转换(速度接近拷贝)
  20. Eclipse debug调试下按钮变灰

热门文章

  1. Java 版本、语言规范、API、JDK、IDE、Java 源程序编译、执行原理(跨平台性根本原因)、特殊字符用法、8 大数据类型小结
  2. dubbo服务提供与消费
  3. h5 nan_手把手教你将H5游戏打包成快游戏
  4. python期末项目书怎么写_自己写了一部书怎么出版
  5. java原子整数_多线程(四、原子类-AtomicInteger)
  6. 应理解计算机专业的学科特点,职业高中计算机专业测验试题编写的策略初探.doc...
  7. python连接mysql代码_Python3连接MySQL(pymysql)转账代码
  8. sql plus 表的总记录数是多少_直播回顾 | 亿级并发丝毫不虚,TDSQL-SQL引擎是如何炼成的...
  9. php如何加密图片,php实现图片加密解密,支持设置密码 (两年后版本!)
  10. 加工中心刻字宏程序_FANUC OI系列图书——车床、铣床及加工中心编程