当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

基于单片机AT89c51的数字PID控制直流电机PWM调速系统C语言程序

更新:12-23 整理:39baobao.com
字体:

[09年自考“高级语言程序设计”模拟题]20. main()函数可以带两个形参,一般分为argc和ar,其中ar可以定义为( ) A. int ar; B. char * ar[]; C. char ar[]; D. char ** ar[]; 第二部分 非选择题(80分) 二、填空题 (本大题共10小...+阅读

首先弄清楚PID是一种控制算法!!! 1,“如果用单片机恒温可以使温度到达预定值就停止加热,低了就加热,用一个温度传感器反馈,这样算是一个自动控制吗”你这是控制系统,但是效果会非常差,尤其是对于温度控制这种大惯性系统,达到预定值就停止加热,但是由于惯性,温度肯定会继续上升,电炉烧水的时候,水开了,断电之后水还要沸腾一定时间的(沸腾是很消耗能量的,由此可见如果是加热的话温度上升更严重,你也可以自己用温度计试试看);“低了就加热”是同样的道理。如果系统对控制精度有要求,你这样做肯定达不到要求。PID是一种控制算法,相对于其他控制算法来说算是最简单的了。PID能够做到在温度快要达到设定值的时候降低加热功率,让温度上升速度变慢,最终稳定在设定值。如果用你的直接控制,温度会在设定值上下振荡,永远不会停在设定值。 2,一般的控制系统都需要加反馈,以构成闭环控制系统,相对的还有开环控制系统。开环控制系统,举个例子,就是你加热的时候事先计算好大约需要多少热量,然后考虑一下环境影响,计算出加热时间,然后控制加热系统按照你这个时间加热。你觉得这样的系统能够稳定工作吗?环境稍稍有变动就挂了!开环控制系统的特点就是很容易受到环境的影响;闭环控制系统就稳定很多,你用1L水可用,2L水也行,500W电能用,1000W电炉也能用,这就是闭环的优点。 因此,大多数的控制系统都是闭环的,开环很少单独使用,即使用到了也是有闭环的。开环其实也是有优点的,开环在控制系统里面叫做前馈(跟反馈对应的),比如你的系统里面电源电压上升了,加热速度肯定会变快,如果你对电源电压采样,将采样的结果输入到闭环里面,对闭环做一个轻微的修正,控制的精度会更好,这就是开环的优势,它是超前的,能够预知结果(根据地源电压提高就能知道需要降低输出功率了)。 说完这些,你应该明白了,反馈是必需的(前馈也可以要,但是不是必需的),PID不能被取代(除非你用其它更复杂的控制算法)。

本文地址:https://www.39baobao.com/show/29_13386.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言程序设计基础数组问题一. 输入不超过100个整数,然后按从小到大的次序输出。#define M 10 main() {int a[M],i,j,t; printf("请输入数据:"); for(i=0;i<M;i++) scanf("%d",&a[i]); for(i=0;i<M-1;i++) for(...

C语言程序设计数组题原发布者:爱笑的涂鸦哥 第4章数组4.1内容概述本章主要介绍了数值数组和字符数组的定义、初始化、元素引用和数组数据的输入与输出,字符数组实现字符串、字符串函数的实现与调...

汇编语言程序设计1、X,Y, W为字节类型的数,求Z=((W-X)*10+5)/(X+Y) DSeg Segment x db 38h y db 20h w db 30h z dw ? ten db 10 DSeg ends CSeg Segment para public 'CODE' Assume cs:CSeg,...

汇编语言程序设计求助!.model small.stack.data ARRAY DW 1,2,-1,3,4,-2,-3,4,5,-6 P_ARY dw 10 dup(0) N_ARY dw 10 dup(0) msg0 db "P_ARY:$" msg1 db "N_ARY:$" _enter db 0ah,0dh,24h.code .start...

汇编语言程序设计高分帮设计MAIND SEGMENT NUM DB 30 DUP(?) MAX DB ? MIN DB ? MESG1 DB 'MAX:$' MESG2 DB 'MIN:$' MAIND ENDS MAINC SEGMENT MAIN PROC FAR ASSUME CS:MAINC,DS:MAIND START: PUSH D...