基于代码生成技术的单相锁相环控制策略研究
2021-07-09娄晓琪
娄晓琪
(石家庄铁路职业技术学院 河北石家庄 050000)
1 引言
传统的代码开发模式主要采用人工手写代码的方式,存在着需求分析错误、项目前期开发投入大、开发周期长手写代码良莠不齐等缺点,限制了复杂控制系统开发效率和准确度的提升。
基于Simulink 模型设计的开发模式能够有效降低嵌入式系统的开发门槛,通过Simulink/Stateflow建立系统模型,利用RTW-EC 自动生成可优移植的产品级C 代码,并根据特定的配置自动生成系统应用程序,同时全流程的快速开发工具链为系统开发提供了有力的工具。在开发控制系统时,能够减少对于底层代码的关注,从而将更多地精力集中于模型的建立以及优化上,缩短系统开发时间。
本文针对单相电力锁相环的相位跟踪算法,在Matlab/Simulink 软件中搭建系统模型,利用基于模型设计的方法成嵌入式代码,通过DSP28335[3]开发平台实现DAC 正弦及相位的信号的输出,验证了自动代生成技术能够高效可靠地实现控制算法的设计与验证。
2 单相电力锁相环的仿真建模
电网电压的相位检测法主要分为以下几种[4]:硬件电路过零法、基于基波傅里叶变换计算相位法、基于三相dq 变换的锁相环方法、基于单相dq 变换的锁相环方法等,由于单相锁相环能够避免过多引入硬件、且在不对称工况下也能够正产运行,因此采用单相锁相环的控制策略。
对单相锁相的原理进行分析。设电网电压为:
ω0为电网角频率,,Φ0为电网电压相位,ε0为电网检测误差分量及谐波。
假设生成的信号为:
ω1 为跟踪信号角频率,Φ1 为跟踪信号相位。将(1)及(2)式相乘得到:
由公式(4)可知,其中共有三项分量,第一分量是100Hz 的正弦波动分量,第二分量是直流分量,第三是高频谐波引起的干扰。将相乘结果送入到平均值滤波器滤去2 倍频分量及谐波分量。当系统处于稳态时刻:
图1 单相锁相环原理图
将相位差与参考值0 做差后送入PI 控制器进行相位跟踪。其基本调节过程为,若跟踪信号相位滞后输入电网电压信号,则数字PI 调节器增大输出ω值,最终使跟踪信号相位赶上电网相位。当跟踪信号相位超前电网电压信号相位,则数字PID 调节器输出ω值,最终使跟踪信号相位赶上电网相位。当系统调踪信号和电网相位相等。
基于模型设计的方法实现单相电力锁相环的检测算法首先在Simulink 软件搭建仿真模型,将输入信号设置为正弦函数,相位输出信号通过余弦函数与输入信号相乘,仿真模型如图2。
图2 单相锁相环仿真模型
仿真结果如图3 所示,为便于观测将系统信号放大两倍,将锁相环输出相位与系统电压放置于同一坐标系,分析波形可以得出结论:单相锁相环能够准确地跟踪正弦信号相位,实现锁相功能。
图3 系统电压及输出相位波形图
3 单相锁相环自动代码生成及验证
在Matlab/Simulink 中搭建代码生成模型。其中ADC 模块系统为Simulink 硬件支持包自带的ADC采样模块,主要作用为采集外部带有直流偏置的正弦信号,并将采样信号传递至交流信号提取模块中,设置ADC 采样时间为5e-5s,利用软件查询方式(software 方式)进行采样,采样通道设置为ADCA0 通道,将采集数据类型设置为single。
图4 Simulink 单相锁相环代码自动成模型
由于ADC 采样值为正值,参与锁相环计算的正弦波为正负变化的正弦波,因此需要将直流量转换为交流量进行计算。将ADC 采样信号缩小后引入活动平均值滤波器[5]。Simulink 滤波器模型如图5。设置采样周期为5e-5s,假设二倍频分量为周期为0.01s,得到一周波的延时d=400 拍。
图5 Simulink 滑动滤波器模型
为消除鉴相器产生的二倍频分量,将输入信号积分后延迟与原信号相即可消除二倍频分量。设置采样周期为5e-5s,假设二倍频分量为周期为0.01s,得到一周波的延时d=200 拍。
利用SPI 串口输出数据至TLV5620 数模转换芯片,利用数字示波器观测系统电压及计算相位信息。
在自动生成的CCS 文件中添加添加驱动代码:①在board.c 文件中添加代码,将与TLV5620DAC芯片相连接的复用GPIO 配置为SPI 数据输出口。②在adc.c 文件中进行spi 波特率等配置。③在生成的Simulink 同名.c 文件中的step 子函数中添加DAC 输出函数。输出信息主要有相位值及至以及相位的正弦函数。
示波器输出如图6,CH1 通道为系统电压,CH2 通道为单相锁相环相位的正弦值DAC 输出。输出正弦值与系统电压波形频率相同,锁相环能够准确跟踪系统相位。
图6 DAC 系统电压及相位信息输出
将相位信息的正弦值导出为CSV 格式,并利用MATLAB/Simulink 进行FFT 分析,结果如图7,正弦输出为50Hz 基频分量叠加直流分量,THD 为4.93%,验证了输出相位正弦波的DAC 信号具有较低的畸变率及较高的平滑度。
图7 DAC 相位输出FFT 分析
4 结论
仿真及实验表明,基于MATLAB 自动生成代码的方式能够极大的加快嵌入式控制系统的开发进程,为电力电子控制系统的快速开发及算法验证提供了有利的工具。