第 22卷
Vol-22
第 4期
No.4
电子设 计 工程
Electronic Design Engineering
2014年 2月
Feb.2014
基于 S函数的BP神经
控制 器及 Simulink
网 络 PID
仿真
杨 艺 .虎 恩 典
(北 方民族 大学 电气信 息 工程学院 ,宁夏 银川 750021)
摘要 :BP网络在 人 工神 经 网络 中应用最为广 泛 ,文中给 出基 于 MATLAB语言 的 BP神 经网 络 PID控 制器的 S函数实
现 ,在 此基 础上 建立 BP神经 网络 PID控制 器 的 Simulink仿 真模型 ,最 后给 出 了该仿真模 型 应 用在 非线性对 象 中的
仿 真 结 果。
关键 词 :S函数 ;BP神 经 网络 ;PID控制 器 ;Simulink仿 真
中图分类 号 :TN9l5 文献 标识码 :A 文章 编号 :1674—6236(2014)04—0029—03
Simulink simulation Of BP neural network PII)controller based on S-function
YANG Yi,HU En-dian
(Sochool ofElectrical and Information Engineering,Beifang Universityfor Nationlities,Yinchuan 750021,China)
Abstract:BP network is widely applied in the artificial neural network.In this paper,S-function of BP neural network PID
controller based on MATLAB language is presented.Also the Simulink simulation model of BP neural network PID controller
has been set.Finally,the result of the simulation mode which is applied to nonlinear object has been given.
Key words:S-function;BP neural network;PID controller;Simulink simulation
S函数是 Simulink中 的高级 功能模 块 ,Simulink是 运行
在 MATLAB环境下用 于建模 、仿 真和 分析 动态系 统的 软件
包口】。当 系统采用一 些特殊的控制规 律 (如 不能直接 用传 递函
数加 以描述 )时 ,若直接使用 Simulink进 行仿真 ,由于没 有现
成的 功能模块可 用 ,通 常都要编写大 量复杂 而烦琐 的源 程序
进行 仿 真 ,这样 一来 编程 复 杂 ,工作 量较 大 ,故 需 引入 S函
数 。S函数的本质是对动 态系统行为 模式 的一 种描述 ,因此对
于一 些结构庞 大 、算法 复杂 、而且参 数变化的系统 ,无疑 S函
数具 有非常大的 优势[21。
用 MATLAB中 的各 种 函数 和语 言 编写 M 文 件 ,从 而
形 成 特定 功能 的 S函数 『31。只 要 所研 究 的系 统 模 型 能 够 由
MATLAB语 言加 以描述 .就 可构造 出相应 的 S函数 ,于 是借
助 Simulink 中 的 S 函 数 功 能 模 块 来 实 现 MA rLAB 与
Simulink之 间的联 系 .这样处 理可充分 发挥 MATLAB编程灵
活及 Simulink简单直 观的优势 。
1 S函数 的 编 写格 式
S函 数的基本格 式如下Il】:
function[sys,x0,str,ts】=函数 名(t,X,U,flag)
其 中,t为仿真时 间 。对应连续 系统 t连 续 ,而离 散系 统则
t为 一 系列 的采样 点 ;x为 系统的状态 变量 ,包 括连续和离散
状态 ,若没有状 态变量 ,则 NumStates=0;U为输 入矢 量 ,sys为
系统 输 出 ,不 同调用 函数下 sys表示 的含 义不 同 ;xO为系统
状态 变量初值 ;str为保 留参 数而且 始终是 空集 ;ts为采样 时
间;flag为 仿真流程控制标 志变量 ,用于控制程 序 的调用顺序
和过 程。表 l所示 为 flag对应的调用 函数及功能 描述。
表1 Flag ̄ 的调用 函数 及功能 描述
Tab.1 Flag the calling function and function ofthe
corresponding description
在编 写 S函数 时 ,必须清楚知道 系统在不 同时刻所 需要
的信 息。例如 系统有 多少个状 态变量 、输入变量 以及 输 出变
量等 。其 中哪些是连续变 量 .哪 些又是离散变量 ,以及这 些变
量的 初始条件 等 信息。这些信息可在 S函数中设置 flag=0获
取 。若系统是连续 变量 ,则要根 据条件得到状态 变量的导数 ,
可令 flag=l得 到 :若是离 散 变量 ,则 必须 确 定采 样时 间 以及
下一 个 离 散状 态 ,这通 过 flag=2得到 ;最后 令 flag=3可 获 取
系统 的输 出。
由此 可见 .可 以利 用 Simulink模块 库 或 编写 S函数 ,画
收稿 日期 :2013—04—24 稿件 编号 :201304 289
作者 简 介 :杨 艺(1972一 ),女 ,宁夏 银川人 ,硕 士 ,高级工 程师 。研 究方 向 :计 算机控制技 术,实践教 学管理 。
-
29-