计算机控制课程设计报告文档格式.doc
- 文档编号:13192554
- 上传时间:2022-10-08
- 格式:DOC
- 页数:14
- 大小:634.95KB
计算机控制课程设计报告文档格式.doc
《计算机控制课程设计报告文档格式.doc》由会员分享,可在线阅读,更多相关《计算机控制课程设计报告文档格式.doc(14页珍藏版)》请在冰豆网上搜索。
1)求广义对象的Z传递函数G(z);
2)根据控制系统的性能指标和其他约束条件,确定所需的闭环Z传递函数Ф(z);
3)求数字控制器的Z传递函数D(z);
4)根据D(z)求取控制算法的递推公式,设D(z)的一般形式:
得D(z)的计算机控制算法
2控制器的设计与仿真
2.1无波纹最小拍控制器的设计
2.1.1Z传递函数G(z)
按照离散化设计的步骤,先求得连同零阶保持器的广义对象脉冲传递函数为:
其在MATLAB环境下的描述语句如下:
G=zpk([],[0-1],10);
%传递函数
HG=c2d(G,1,'
zoh'
);
%带ZOH的离散化,采样周期为1s
程序运行结果如下:
Zero/pole/gain:
Zero/pole/gain:
10 3.6788(z+0.7183)
------- -----------------
s(s+1) (z-1)(z-0.3679)
与手算结果一致。
2.1.2闭环Z传递函数Ф(z)
闭环脉冲传递函数为:
误差脉冲传递函数为:
z=tf([10],[1],1);
phil=(1+0.593/z)*(1-1/z)^2;
%φe(z)
phi=1.407*(1+0.718/z)*(1-0.586/z)/z;
%φ(z)
Transferfunction:
Transferfunction:
z^3-1.407z^2-0.186z+0.5931.407z^2+0.1857z-0.592
-------------------------------------------------------------
z^3z^3
2.1.3Z传递函数D(z)
D=phi/(HG*phil);
%控制器D(z)
sys0=feedback(HG,1);
%未加控制器时的闭环传函
sys=feedback(HG*D,1);
%加控制器后的闭环传函
程序运行如下:
0.38246z^3(z+0.718)(z-0.586)(z-0.3679)(z-1)
------------------------------------------------
z^3(z+0.7183)(z+0.593)(z-1)^2
Samplingtime:
1
2.1.4数字控制器的差分方程形式
根据输出函数
可得差分方程形式
2.2Simulink仿真
在simulink环境下建立控制模型如图2-6所示:
图2-1
输入为单位速度输入,运行后,双击虚拟示波器查看输出
相应性能曲线如下所示:
1.离散化后斜坡输入
图2-2
2.e(k)波形图
图2-3
3.u(k)波形图
图2-4
4.离散化后输出
图2-5
5.未离散化后输出
图2-6
由仿真图可知控制器输出在3拍后达到恒定,同时系统输出不产生波纹
经MATLAB下的分析设计与SIMULINK下的模型仿真,我们认为当前设计完全符合最小拍无波纹系统的要求。
下面将具体讨论硬件电路的设计与程序算法。
3电路设计
3.1器件选择
由于本设计对单片机的要求不高,因此控制器选择传统的8051单片机即可满足要求,同时由于系统精度要求不高,可选用8位AD与DA。
模数转换芯片采用ADC0809,数模转换芯片采用DAC0832。
由于系统采用总线结构,需要锁存器74HC373。
ADC0809的时钟可由ALE二分频得到,需要D触发器74LS74,由于ADC0809的时钟所限,单片机晶振可选择为6MHz。
考虑到DAC0832为电流型DAC,故需要运放转换电路,选择运算放大器为LM324。
3.2电路设计
3.2.1总电路图
控制器电路原理图如下图所示:
图3-1
3.2.28051外围电路
由于本课程设计对单片机的性能不高,因此8051单片机完全可以满足此要求,同时51单片机也有着低廉的价格,不错的性能等诸多优点
8051的最小系统电路如下图所示
图3-2
3.2.3ADC0809模块
这里采用ADC0809芯片,此芯片时8位逐次逼近型A/D转换器,带8个模拟量输入通道,芯片内带通道地址译码器,输出带三态数据锁存器启动信号为脉冲启动方式,每一通道转换大约100µ
s。
ADC0809与单片机连接方式如下所示:
图3-3
3.2.4DAC0832模块外围电路
DAC0832带有数据输入寄存器,是总线兼容型,可直接与总线相连。
本电路中DA与单片机之间采用单缓冲接法,输出采用双极性输出。
DAC082的外围电路如下图所示:
图3-4
4流程图与程序
4.1流程图
算法流程图如图4-1所示:
图4-1
采样周期设定为1s,系统初始化后,由定时器计时,系统不断查询,若采样周期到,则启动AD采样,并根据前面计算所得公式计算D(z),最后输出控制量u(k)经DAC转换后输出。
4.2源程序代码
采用C语言编程,编译环境为wave6000。
现附含详细注释的源代码如下:
/*********************************
程序名称:
无波纹最小拍控制器
*****************************************/
#include<
reg51.h>
absacc.h>
math.h>
/*****************************************
宏定义
#defineucharunsignedchar
#defineuintunsignedint
#defineADC_7XBYTE[0x7ff0]//定义模数转换IO地址
#defineDAC_1XBYTE[0x7ff2]//定义D/A第一路的IO地
全局变量定义
sbitstr=P1^7;
//定义A/D启动信号
sbitDIN0=P1^0;
//声明同步信号
uintdatatime;
//声明变量,用于定时
uchardatat0_h,t0_l;
//用于存储定时器0的初值
intTK=100;
//声明采样周期变量,//采样周期=TK*10ms
intTC;
//TK的变量
floatKK0=0.382//系数kk0
floatKK1=-0.364//系数kk1
floatKK2=0.082;
//系数kk2
floatKK3=0;
//系数kk3
floatPP1=-0.407;
//系数pp1
floatPP2=-0.593;
//系数pp2
floatPP3=0;
//系数pp3
charUK;
//当前时刻的D/A输出
charEK;
//当前时刻的偏差
charUK_1,UK_2,UK_3,EK_1,EK_2,EK_3;
//前3次采样时刻的控制量和偏差
主函数
voidmain(void)
{
TMOD=0x01;
time=10;
//定时10ms
t0_h=(65536-500*time)/256;
//计算定时器0初值
t0_l=(65536-500*time)%256;
t0_l=t0_l+20;
//修正因初值重装而引起的定时误差
TH0=t0_h;
TL0=t0_l;
IT1=1;
//边沿触发中断
EX1=1;
//开外部中断1
ET0=1;
//开定时中断0
TR0=1;
//启动定时器
TC=1;
DAC_1=0x80;
//D/A清零
UK=UK_1=UK_2=UK_3=0;
EK=EK_1=EK_2=EK_3=0;
EA=1;
//开总中断
while
(1);
}
/**********************************************
函数名:
INT1
功能:
1号外部中断服务程序
参数:
无*
返回值:
无*
***********************************************/
voidint1()interrupt2using2
{floati,j;
DIN0=1;
//读取输入前,先输出高电平
if(DIN0)//判同步信号到否
{
UK=UK_1=UK_2=UK_3=0;
EK=E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机控制 课程设计 报告