1.算法仿真效果
matlab2022a仿真结果如下:
2.算法涉及理论知识概要
A419Simulink是美国Mathworks公司推出的MATLAB中的一种可视化仿真工具。Simulink是一个模块图环境,用于多域仿真以及基于模型的设计。它支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。Simulink与MATLAB相集成,能够在Simulink 中将MATLAB算法融入模型,还能将仿真结果导出至 MATLAB 做进一步分析。Simulink应用领域包括汽车、航空、工业自动化、大型建模、复杂逻辑、物理逻辑,信号处理等方面。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
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: 斜坡信号。
MPPT控制器的全称是“最大功率点跟踪”(Maximum Power Point Tracking)太阳能控制器,是传统太阳能充放电控制器的升级换代产品。MPPT控制器能够实时侦测太阳能板的发电电压,并追踪最高电压电流值(VI),使系统以最大功率输出对蓄电池充电。应用于太阳能光伏系统中,协调太阳能电池板、蓄电池、负载的工作,是光伏系统的大脑。
最大功率点跟踪系统是一种通过调节电气模块的工作状态,使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中,可有效地解决常规电网不能覆盖的偏远地区及旅游地区的生活和工业用电,不产生环境污染。
目前,光伏阵列的最大功率点跟踪(MPPT)技术,国内外已有了一定的研究,发展出各种控制方法常,常用的有一下几种:恒电压跟踪法(ConstantVoltageTracking简称CVT)、干扰观察法(PerturbationAndObservationmethod简称P&O)、增量电导法(IncrementalConductancemethod简称INC)、基于梯度变步长的电导增量法等等。(这些算法只能用在无遮挡的条件下)
1)单峰值功率输出的MPPT的算法
目前,在无遮挡条件下,光伏阵列的最大功率点跟踪(MPPT)的控制方法常用的有以下几种:
l恒电压跟踪法(ConstantVoltageTracking简称CVT)
l干扰观察法(PerturbationAndObservationmethod简称P&O)
l增量电导法(IncrementalConductancemethod简称INC)
l基于梯度变步长的电导增量法,等等。
2)多峰值功率输出MPPT算法
普通的最大功率跟踪算法,如扰动观测发和电导增量法在一片云彩的遮挡下就有可能失效,不能实现真正意义的最大功率跟踪。
3.MATLAB核心程序