基于模糊控制的Simulink仿真详解

基于模糊控制的Simulink仿真详解

Simulink的介绍

Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。 Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。
SIMULINK模块库按功能进行分类,包括以下8类子库:
Continuous(连续模块)
Discrete(离散模块)
Function&Tables(函数和平台模块)
Math(数学模块)
Nonlinear(非线性模块)
Signals&Systems(信号和系统模块)
Sinks(接收器模块)
Sources(输入源模块)
连续模块(Continuous) continuous.mdl
Integrator:输入信号积分
Derivative:输入信号微分
State-Space:线性状态空间系统模型
Transfer-Fcn:线性传递函数模型
Zero-Pole:以零极点表示的传递函数模型
Memory:存储上一时刻的状态值
Transport Delay:输入信号延时一个固定时间再输出
Variable Transport Delay:输入信号延时一个可变时间再输出
离散模块(Discrete) discrete.mdl
Discrete-time Integrator:离散时间积分器
Discrete Filter:IIR与FIR滤波器
Discrete State-Space:离散状态空间系统模型
Discrete Transfer-Fcn:离散传递函数模型
Discrete Zero-Pole:以零极点表示的离散传递函数模型
First-Order Hold:一阶采样和保持器
Zero-Order Hold:零阶采样和保持器
Unit Delay:一个采样周期的延时
Function&Tables(函数和平台模块) function.mdl
Fcn:用用户自定义的函数(表达式)进行运算
MATLAB Fcn:利用matlab的现有函数进行运算
S-Function:调用自编的S函数的程序进行运算
Look-Up Table:建立输入信号的查询表(线性峰值匹配)
Look-Up Table(2-D):建立两个输入信号的查询表(线性峰值匹配)
Math(数学模块) math.mdl
Sum:加减运算
Product:乘运算
Dot Product:点乘运算
Gain:比例增益运算
Math Function:包括指数函数、对数函数、求平方、开根号等常用数学函数
Trigonometric Function:三角函数,包括正弦、余弦、正切等
MinMax:最值运算
Abs:取绝对值
Sign:符号函数
Logical Operator:逻辑运算
Relational Operator:关系运算
Complex to Magnitude-Angle:由复数输入转为幅值和相角输出
Magnitude-Angle to Complex:由幅值和相角输入合成复数输出
Complex to Real-Imag:由复数输入转为实部和虚部输出
Real-Imag to Complex:由实部和虚部输入合成复数输出
Nonlinear(非线性模块) nonlinear.mdl
Saturation:饱和输出,让输出超过某一值时能够饱和。
Relay:滞环比较器,限制输出值在某一范围内变化。
Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。
Manual Switch:手动选择开关
Signal&Systems(信号和系统模块) sigsys.mdl
In1:输入端。
Out1:输出端。
Mux:将多个单一输入转化为一个复合输出。
Demux:将一个复合输入转化为多个单一输出。
Ground:连接到没有连接到的输入端。
Terminator:连接到没有连接到的输出端。
SubSystem:建立新的封装(Mask)功能模块
Sinks(接收器模块) sinks.mdl
Scope:示波器。
XY Graph:显示二维图形。
To Workspace:将输出写入MATLAB的工作空间。
To File(.mat):将输出写入数据文件。
Sources(输入源模块) sources.mdl
Constant:常数信号。
Clock:时钟信号。
From Workspace:来自MATLAB的工作空间。
From File(.mat):来自数据文件。
Pulse Generator:脉冲发生器。
Repeating Sequence:重复信号。
Signal Generator:信号发生器,可以产生正弦、方波、锯齿波及随意波。
Sine Wave:正弦波信号。
Step:阶跃波信号。
Ramp: 斜坡信号。

Simulink界面

打开MATLAB,点击图中Simulink标识进入界面
基于模糊控制的Simulink仿真详解_第1张图片基于模糊控制的Simulink仿真详解_第2张图片选择第一个,新建一个Simulink
基于模糊控制的Simulink仿真详解_第3张图片

建立Simulink

根据如图所示要求建立相应的Simulink
基于模糊控制的Simulink仿真详解_第4张图片
1.根据图中所示找到对应的图标
方法一:直接查找
基于模糊控制的Simulink仿真详解_第5张图片

方法二:在搜索框输入名称进行查找
基于模糊控制的Simulink仿真详解_第6张图片2.设置参数
将对应图标拖动到命令框后,双击该图标根据图中数据设置参数
如Mux的参数设置如下
基于模糊控制的Simulink仿真详解_第7张图片

Simulink的详解

根据图中信息可知我们建立的是一个双输入单输出的模糊控制系统。
首先是建立设立一个位置指令,其取正弦信号即
基于模糊控制的Simulink仿真详解_第8张图片
然后将该信号通过一个SUM器分为两部分信号
基于模糊控制的Simulink仿真详解_第9张图片
两部分信号中有一部分通过求导处理再与另一部分信号进行混合
基于模糊控制的Simulink仿真详解_第10张图片
进行模糊化和模糊控制算法
基于模糊控制的Simulink仿真详解_第11张图片
设置被控对象
基于模糊控制的Simulink仿真详解_第12张图片
设置输出变量y。
基于模糊控制的Simulink仿真详解_第13张图片

我们将仿真时间设置为3s,然后利用Clock进行链接仿真
clock中的时间就是按照仿真时间变化的,所以clock发出的是变量值,而且是递增的。
基于模糊控制的Simulink仿真详解_第14张图片
将仿真结果保存在t中。
基于模糊控制的Simulink仿真详解_第15张图片
最终当Clock中数字为3时完成仿真。
基于模糊控制的Simulink仿真详解_第16张图片

你可能感兴趣的:(matlab,人工智能,控制器)