当前位置: 首页 > wzjs >正文

只做水果的网站企业员工培训课程

只做水果的网站,企业员工培训课程,阿里巴巴logo高清,id怎么转wordpress文章目录 为什么要多环程序主函数内环外环 双环PID调参内环Kp调法Ki调法 外环Kp 以一定速度到达指定位置封装 为什么要多环 单环只能单一控制速度或者位置,如果想要同时控制多个量如速度,位置,角度,就需要多个PID 速度环一般PI…

文章目录

  • 为什么要多环
  • 程序
    • 主函数
    • 内环
    • 外环
  • 双环PID调参
    • 内环
    • Kp调法
      • Ki调法
    • 外环
      • Kp
  • 以一定速度到达指定位置
  • 封装

为什么要多环

单环只能单一控制速度或者位置,如果想要同时控制多个量如速度,位置,角度,就需要多个PID在这里插入图片描述

  • 速度环一般PI控制,位置环一般PD

程序

主函数

/*定义内环变量*/
float InnerTarget, InnerActual, InnerOut;
float InnerKp =, InnerKi =, InnerKd =;
float InnerError0, InnerError1, InnerErrorInt;/*定义外环变量*/
float OuterTarget, OuterActual, OuterOut;
float OuterKp =, OuterKi =, OuterKd =;
float OuterError0, OuterError1, OuterErrorInt;int main(void)
{Timer_Init();while (1){/*用户在此处根据需求写入外环PID控制器的目标值*/OuterTarget = 用户指定的一个值;}
}

内环

void TIM2_IRQHandler(void)
{static uint64_t Count1, Count2;if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET){Count1 ++;if (Count1 >= 内环调控时间){Count1 = 0;/*内环每隔时间T1,程序执行到这里一次*//*执行内环PID控制*/InnerActual = 读取内环实际值();InnerError1 = InnerError0;InnerError0 = InnerTarget - InnerActual;InnerErrorInt += InnerError0;InnerOut = InnerKp * InnerError0+ InnerKi * InnerErrorInt+ InnerKd * (InnerError0 - InnerError1);if (InnerOut > 上限) {InnerOut = 上限;}if (InnerOut < 下限) {InnerOut = 下限;}/*内环PID的输出值作用于执行器*/输出至被控对象(InnerOut);}}
}

外环

外环调控周期要大于等于内环,具体周期给多少,要不断尝试

Count2 ++;
if (Count2 >= 外环调控时间)
{Count2 = 0;/*外环每隔时间T2,程序执行到这里一次*//*执行外环PID控制*/OuterActual = 读取外环实际值();OuterError1 = OuterError0;OuterError0 = OuterTarget - OuterActual;OuterErrorInt += OuterError0;OuterOut = OuterKp * OuterError0+ OuterKi * OuterErrorInt+ OuterKd * (OuterError0 - OuterError1);if (OuterOut > 上限) {OuterOut = 上限;}if (OuterOut < 下限) {OuterOut = 下限;}/*外环PID的输出值作用于内环PID的目标值*/InnerTarget = OuterOut;
}
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);

双环PID调参

  • 参数越大,响应越快,但会出现抖动;参数越小,响应越慢,但更加平滑,需要自己取舍
  • 同时调节内环和外环是不可行的
  • 因为内环可以独立工作,我们要先调内环(要把外环给注释调),内环调好了,在内环的基础上调节外环

内环

Kp调法

  • 先让出现抖动,再减小使抖动消失

Ki调法

  • 与Kp类似
  • 先让出现抖动,再减小使抖动消失

外环

Kp

外环Kp不用怕超调,直接调到抖动再减小,用Kd减少超调

以一定速度到达指定位置

不能使innertarget=目标速度
正确做法是更改限幅,速度要小限幅就小

封装

typedef struct {float Target;float Actual;float Out;float Kp;float Ki;float Kd;float Error0;float Error1;float ErrorInt;float OutMax;float OutMin;
} PID_t;

初始化赋值方法

   PID_t Inner = {.Kp = 0.3,.Ki = 0.3,.Kd = 0,.OutMax = 100,.OutMin = -100};
```c
void PID_Update(PID_t *p)
{p->Error1 = p->Error0;p->Error0 = p->Target - p->Actual;if (p->Ki != 0){p->ErrorInt += p->Error0;}else{p->ErrorInt = 0;}p->Out = p->Kp * p->Error0+ p->Ki * p->ErrorInt+ p->Kd * (p->Error0 - p->Error1);if (p->Out > p->OutMax) {p->Out = p->OutMax;}if (p->Out < p->OutMin) {p->Out = p->OutMin;}
}

http://www.dtcms.com/wzjs/61738.html

相关文章:

  • 网站建设技术有哪些网络营销需要学什么
  • 个人主页网站制作教程搜索引擎seo如何优化
  • 课程网站建设的目的意义网站怎么营销推广
  • 宿迁市住房和城乡建设局老网站在百度上做广告推广要多少钱
  • 政务网站建设要求seo系统是什么意思
  • 网页响应式seo技术培训岳阳
  • 东莞网站建设托管搜索引擎推广文案
  • 成都的建站公司seo排名分析
  • 网站制作与网站建设pdf合肥品牌seo
  • 岳阳网站建设googleplay
  • 企业网站建设的实验报告自制网站教程
  • 做网站很火的APP河北网站推广公司
  • 查询网站空间商海淀区seo多少钱
  • 德阳百度网站建设网址搜索域名查询
  • 建设厅网站官网怎么关闭seo综合查询
  • 海宁市建设局官方网站6有没有推广app的平台
  • 建设一个网站需要什么技术人员微信朋友圈广告投放价格表
  • 色弱做网站网站流量数据分析
  • 郑州上街网站建设公司自己可以做网站推广吗
  • 图书翻页的动画 做网站启动用短视频营销推广策略
  • 企业网站备案资料样本推广app赚佣金平台有哪些
  • 论文收录网站有哪些长沙网站制作关键词推广
  • 商河县做网站公司网站推广优化是什么意思
  • 局政府网站建设管理制度狠抓措施落实
  • 给企业做网站推广好么?相关搜索优化软件
  • 焦作网站开发西安网站seo
  • 湖南seo优化排名优化大师百科
  • wordpress缓存失败石家庄seo结算
  • 南宁哪个公司做网站建设海外独立站
  • 做网站如何防止被抄袭谷歌google play官网下载