光伏并网逆变电源(结项)
时间:10-02
整理:3721RD
点击:
说来话长,转眼间试用已经两个月了,但是讲个道理,中间回家过了个年(一个月),在家的CCS一直安装不成功,所以一直等到返校了才接着试用啊。中间又出了两个星期的差,简直爆炸。
我的板子用的是创龙的C6655板子,我自己拥有一个C6748的板子。其中的性能确实上升了一个档次,创龙的例程和相关的支持都十分丰富的。但是用的时间较短,,又立下了个Flag。所以我就在做我的毕设的过程中渐渐的摸索。我拟采用板子作为我的组串式光伏并网发电的主控制器。
我的设计大致分为两部分,分别是前级的DC-DC升压电路,和后级的DC-AC逆变并网电路两部分。并利用前级作为MPPT(最大功率点跟踪算法)和后级的并网双环PID控制算法。但是时间有限,所以我主要做了后级的并网逆变部分,我主要用了一个变压升压、一个全桥逆变和LCL滤波电路。
以上是我的整体思路的框图。
其中后级的升压电路是一个
基本已经调试完成了,前级比较棘手的有两个问题,分别是 1、震荡比较大
2、磁通偏磁的问题
由于是上个周写的这个报告,当时偏磁的问题比较严重,由于我的前级是一个DC-AC-DC的结构,利用变压器做一个交流升压处理,在前面我也用了PID控制来进行一个偏磁的处理,就基本解决了。
由于涉及毕业的问题,所以我的原理图在这里就不一一展示了哈,可以多交流噻。 重点的后级我准备先单环并网,我使用的spwm信号如图所示
对于电网端的反馈 我采用的是过零比较器搭建电路的方式的得到电网的实时相位信息,然后调节相关的输出spwm的相关占空比,得到其中的采样图 如下,
并且在没有并网的情况下,我已经成功的输出正弦波,
由于原来没有PID控制的经验,所以踩在巨人的肩膀上,我今天在网上找到了一个PID控制电机的相关的代码,并在它的基础上加以更改,准备明天再看看,估计还要好长时间才可以实现啊(我已经做好了开炸的准备)。
相关的控制思路:
代码在下边。
总结一下,我的使用总体来说是很短暂的,主要是时间比较紧迫,再加上本人的水平不高,所以熟悉了很长的时间,并且创龙的很多的例程在运行的时候都出现了一些的问题,虽然自己摸索着解决了很多,也学习了很多,但是还是浪费了一点时间。
本事准备用SYSBIOS的,但是其实还是不太明白,尤其是NDK方面,真的希望创龙可以出一些相关的视频。
板子现在还在手里,如果有机会的话,可能还会再做几篇分享,,谢谢。
最后很愉快能参加这次的试用活动,谢谢发烧友 谢谢创龙 谢谢各种工。
我的板子用的是创龙的C6655板子,我自己拥有一个C6748的板子。其中的性能确实上升了一个档次,创龙的例程和相关的支持都十分丰富的。但是用的时间较短,,又立下了个Flag。所以我就在做我的毕设的过程中渐渐的摸索。我拟采用板子作为我的组串式光伏并网发电的主控制器。
我的设计大致分为两部分,分别是前级的DC-DC升压电路,和后级的DC-AC逆变并网电路两部分。并利用前级作为MPPT(最大功率点跟踪算法)和后级的并网双环PID控制算法。但是时间有限,所以我主要做了后级的并网逆变部分,我主要用了一个变压升压、一个全桥逆变和LCL滤波电路。
以上是我的整体思路的框图。
其中后级的升压电路是一个
基本已经调试完成了,前级比较棘手的有两个问题,分别是 1、震荡比较大
2、磁通偏磁的问题
由于是上个周写的这个报告,当时偏磁的问题比较严重,由于我的前级是一个DC-AC-DC的结构,利用变压器做一个交流升压处理,在前面我也用了PID控制来进行一个偏磁的处理,就基本解决了。
由于涉及毕业的问题,所以我的原理图在这里就不一一展示了哈,可以多交流噻。 重点的后级我准备先单环并网,我使用的spwm信号如图所示
对于电网端的反馈 我采用的是过零比较器搭建电路的方式的得到电网的实时相位信息,然后调节相关的输出spwm的相关占空比,得到其中的采样图 如下,
并且在没有并网的情况下,我已经成功的输出正弦波,
由于原来没有PID控制的经验,所以踩在巨人的肩膀上,我今天在网上找到了一个PID控制电机的相关的代码,并在它的基础上加以更改,准备明天再看看,估计还要好长时间才可以实现啊(我已经做好了开炸的准备)。
相关的控制思路:
代码在下边。
- //装载初始参数
- void PID_init(struct _pid *Current)
- {
- Current->SetSpeed=0.0;
- Current->ActualSpeed=0.0;
- Current->err=0.0;
- Current->err_last=0.0;
- Current->voltage=0.0;
- Current->integral=0.0;
- Current->Kp=0.15;
- Current->Ki=80;
- Current->Kp=0.0;
- }
- //单步更新函数 输入为误差 输出为调制比
- //在PID调节过程中 误差小增大积分函数消除静差
- // 误差大减小积分函数防止饱和
- double PID_realize(struct _pid *Current,double It)
- {
- int index=0;
- Current->SetSpeed=It;
- Current->err=Current->SetSpeed-Current->ActualSpeed;
- if(abs(pid.err)>500)
- index=0;
- else
- index=1;
- Current->integral+=Current->err*index;
- Current->voltage=Current->Kp*Current->err+Current->Ki*Current->integral
- +Current->Kd*((Current->err*index)-Current->err_last);
- Current->err_last=index*Current->err;
- //pid.ActualSpeed=pid.voltage*1.0;
- return Current->voltage;
- }
- //此函数调用前必须调用 加载SIN值
- //加载 新的参数值 加载至PWM端
- double Iref(unsigned int i,double Iref,double Itest,double Ipower)
- {
- //对变量实时化
- if(i<=100)
- It=(double)G2*Flag00A[i]*Iref;
- else
- It=(double)G2*Flag00B[i]*Iref;
- pid.ActualSpeed=Itest; //ad读回来的是实时参数
- return (Ipower+PID_realize(&pid,It))/(double)450.0;//前馈控制 归一化处理
- }
总结一下,我的使用总体来说是很短暂的,主要是时间比较紧迫,再加上本人的水平不高,所以熟悉了很长的时间,并且创龙的很多的例程在运行的时候都出现了一些的问题,虽然自己摸索着解决了很多,也学习了很多,但是还是浪费了一点时间。
本事准备用SYSBIOS的,但是其实还是不太明白,尤其是NDK方面,真的希望创龙可以出一些相关的视频。
板子现在还在手里,如果有机会的话,可能还会再做几篇分享,,谢谢。
最后很愉快能参加这次的试用活动,谢谢发烧友 谢谢创龙 谢谢各种工。
看起来好像有点厉害哦!