用80C196KC单片机实现太阳跟踪
0 引 言
聚光式太阳集热器尽管必须精确地跟踪太阳,以确保好的效果,但仍然比普通的平面太阳集热装置有着明显的优势,特别是中温和高温应用。
各种型式的装置,从简单到复杂,应用于太阳跟踪,主要可以分成两大类,即机械系统和电控系统。电控系统一般说来有较高的稳定性和跟踪精度。电控系统又可以进一步分为两大类:
1)用光学传感器作为反馈的模拟控制系统;
2)计算机根据数学公式计算太阳位置进行跟踪,并通过光学传感器作为反馈的数字系统。
根据传感器工作的模拟系统适应性较差,在多云天气会盲目跟踪云层边沿的亮斑,造成能源的浪费和机械的额外磨损。
数字系统一般被认为具有较高的精度和较好的适应性,但是系统复杂而昂贵。
如果适当地对系统的计算对象进行简化,就可以用成本较低的单片机代替昂贵的可编程控制 器或者微型机实现数字化的跟踪控制系统。从而大大降低系统的成本,同时保留数字系统特有的灵活性和精确度。
1 系统描述
本文所述系统的跟踪策略是根据日期和时间控制聚光器的运动,并利用光学传感器调整聚光器的初始位置,在运行中对聚光器的位置进行校正。
如图1所示,系统由6个部分组成,分别是时钟、单片机、驱动机构、编码器、聚光镜和传感器。系统的核心部件是80C196KC单片机。
单片机利用时钟提供的日期和时间,计算出聚光镜的预期位置,与编码器提供的当前位置比较,输出控制信号。驱动装置根据单片机提供的信号转动聚光镜,同时通过编码器将运行速度或位置增量反馈到单片机,形成闭环控制系统。
由于当前位置是由增量式计算得到的,若当前位置的计算出现偏差,则不能够由反馈得到校正,从而形成累积位置偏差。为此,必须通过传感器监视聚光镜的位置是否与太阳偏离,当偏离时启动一个校正程序,达到消除当前位置误差的作用。
光学传感器A和B随聚光器一起运动,为单片机提供太阳辐射信息。传感器A采用文献[1]提到的金字塔形布置的光电池组,4块光电池分成两组,分别提供方位角和高度角的偏差信号,当聚光器轴线指向太阳时,输出零信号;偏离时,信号随偏离的角度以及太阳直射辐射强度的增加而增加(图2)。传感器B由一块接受全天辐射的光电池和一块遮挡直射辐射的光电池组成,提供太阳直射辐射强度信号,信号随直射辐射强度值的增加而增加(图3)。传感器A和B选用的所有光电池应尽量保持一致。
1)判断天空直射辐射的强度,在直射辐射较弱时不启动校正程序,从而避免多云天气的盲目跟踪;
2)通过简单的修正运算,降低甚至消除环境(太阳辐射、温度等)对偏差信号的影响,使修正后 的偏差信号在偏差角度相同时,能够较为一致。
2 控制系统
6位单片机80C196KC具有较强的运算能力,通过编制程序可以完成浮点数的基本运算。由于太阳在天空的位置可以由纬度、日期和时间完全确定,因此利用这些信息可以达到精确跟踪 的目的。控制系统框图如图4所示。
如前所述,系统采用单片机计算出的太阳方位作为聚光镜位置期望值输入,驱动装置的输出作为反馈构成闭环系统。为了达到稳定性和精确度的要求,分别采用了PD调节器和补偿通道。
由于太阳运行位置的变化基本上属于斜坡输入,仅采用比例微分调节器时,闭环系统存在稳态误差ess=1/K。增大系统的K值可以减小稳态误差,但过大的K值会使系统的无阻尼自然频率接近或大于单片机的采样频率,使系统失去稳定性。积分项虽然可以消除系统的稳态误差,但一定条件下可能导致系统的稳定性变差。
令Z(s)=1,则原系统的特征方程不变,因而稳定性不发生变化。令上式右端分子的零阶和一阶项的系数为零,则斜坡输入的稳态误差为零。
设L(s)=L0+L1 s,代入上式右端分子,可得:
由于补偿通道消除了系统的静态误差。主通道不再需要安排积分环节消除稳态误差,成为比例微分控制,有利于系统的稳定性。对于不同的被控对象,可以选用不同的L1、k1和Td值,使系统的稳定性和动态特性得到保证。这种参数的调整非常简便,体现了数字控制的优越性。
对图4虚框中的传递函数离散化时,可以将微分项用后向差分代替,算法非常简单。采用足够小的采样周期时,可以保证离散化后的系统不会失去稳定性。单片机采用12MHz晶振时,定时器1溢出的周期约为87ms,具有50多万个状态周期[4],足以完成简单的计算任务,而太阳在这样短时间内的位置移动可以忽略不计。因此用定时器1溢出的周期作为采样周期有以下优点:
1)可以满足计算任务。对于试验系统的时效分析表明,控制计算所用的机时不及总机时的15%;
2)当选取系统总增益K,使闭环系统的无阻尼自然频
- 视频跟踪算法在Davinci SOC上的实现与优化(10-06)
- 无线动物识别和跟踪管理系统的设计(02-14)
- 基于DSP的光伏电池最大功率点跟踪系统(04-20)
- 基于多DSP和FPGA的实时双模视频跟踪装置设计(07-19)
- 实时操作系统VxWorks在跟踪雷达系统中的应用(04-16)
- 嵌入式Linux Kernel错误跟踪技术(10-24)