你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

这个PID参数咋调试出来?

[复制链接]
bbxyliyang01 提问时间:2019-8-31 14:35 /
一个设定频率,一个测量频率,通过PID调节控制DAC寄存器的值,这个DAC12位的,执行机构通过这个电压改变频率,这个PID算法的各个参数怎么搞出来?
//extern int U_Set;
//extern u16 CCR1_Val;
/*====================================================================================================
PID Function
The PID (比例、积分、微分) function is used in mainly
control applications. PIDCalc performs one iteration of the PID
algorithm.
While the PID function works, main is just a dummy program showing
a typical usage.
=====================================================================================================*/
typedef struct PID {
float SetPoint; // 设定目标Desired value
float Proportion; // 比例常数Proportional Const
float Integral; // 积分常数Integral Const
float Derivative; // 微分常数Derivative Const
float LastError; // Error[-1]
float PrevError; // Error[-2]
float SumError; // Sums of Errors
} PID;
/*====================================================================================================/
PID计算部分
=====================================================================================================*/
PID   vPID={0,0.1,0.001,0.001,0,0,0};
float PIDCalc( PID *pp, float NextPoint )
{
float dError,
Error;
Error = pp->SetPoint - NextPoint; // 偏差
pp->SumError += Error; // 积分
dError = pp->LastError - pp->PrevError; // 当前微分
pp->PrevError = pp->LastError;
pp->LastError = Error;
    if(pp->SumError>900)  pp->SumError=900;
    else if(pp->SumError<-900)   pp->SumError=-900;
return (pp->Proportion * Error // 比例项
+ pp->Integral * pp->SumError // 积分项
+ pp->Derivative * dError // 微分项
);
}
float Vol(int vSet,int v3){
float vOut; // PID Response (Output)
float vIn; // PID Feedback (Input)
vPID.SetPoint = vSet; // Set PID Setpoint
vIn = (float)v3; // Read Input
vOut = PIDCalc ( &vPID,vIn ); // Perform PID Interation  
return vOut;
}
void mian()
{
while(1)
{
if(Flag_3S==1)
  {
   if(target-TIM_ExtCntFreq>=6||target-TIM_ExtCntFreq<=-6)
   {
        Pv=Vol(target,TIM_ExtCntFreq);// PID算法
        dac_value=dac_value+Pv/2.04;//DAC 寄存器调节
    DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);
   }
   led3=~led3;
   Flag_3S=0;
}
   
  }
}
收藏 评论10 发布时间:2019-8-31 14:35

举报

10个回答
哀歌与世无争 回答时间:2019-9-1 06:25:17
pid参数一般整定出来的,就是慢慢微调,找到满意的曲线。
pid参数整定方法很多,像先比例后积分,最后加微分。从大到小顺序查等等。
如果知道你要控制的目标模型,可以用matlab建模,用仿真的方式整定。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

bbxyliyang01 回答时间:2019-9-1 22:10:48
哀歌与世无争 发表于 2019-9-1 06:25
pid参数一般整定出来的,就是慢慢微调,找到满意的曲线。
pid参数整定方法很多,像先比例后积分,最后加微 ...


是这样的,我用两个STM32单片机,1号单片机STM32单片机发生频率F,2号单片机测量这个频率,通过设定目标频率,通过PID算法控制,控制DAC输出电压,1号单片机通过ADC测量这个电压值,发生800-1500HZ频率的,就是不知道PID算法执行OUT参数怎么设置?
radio2radio 回答时间:2019-9-1 22:20:50
bbxyliyang01 发表于 2019-9-1 22:10
是这样的,我用两个STM32单片机,1号单片机STM32单片机发生频率F,2号单片机测量这个频率,通过设定目标 ...

你的目的是干什么。有必要兜一个PID的大圈吗。
DavidTan 回答时间:2019-9-2 09:30:46
我猜楼主是想做一个信号发生器吧,呵呵
bbxyliyang01 回答时间:2019-9-2 10:45:59
radio2radio 发表于 2019-9-1 22:20
你的目的是干什么。有必要兜一个PID的大圈吗。

给一个设备做一个程序,设备在现场,我们每次都去现场测试,只能模拟下这个调节的流程,买程序这个也只需要把这个流程走通就行,他就是研究生的课题,现在1号单片机是没有的,是一个通过DAC改变输出电压,改变压电陶瓷的长度,进而调节激光器的频率。
bbxyliyang01 回答时间:2019-9-2 10:50:29
tgw860910 发表于 2019-9-2 09:30
我猜楼主是想做一个信号发生器吧,呵呵

主要不是做信号发生器,主要做PID调节两路频率,通过DAC改变电压给是一个通过DAC改变输出电压,改变压电陶瓷的长度,进而调节激光器的频率,使这个频率与设定的目标频率在一定的范围内,做一个这个PWM发生方波就是模拟现场这个设备。
STM1024 回答时间:2019-9-2 11:06:33
PID参数的调整只有大致的指导方向,合不合适,得看外部对响应的需求
radio2radio 回答时间:2019-9-2 19:41:54
bbxyliyang01 发表于 2019-9-2 10:45
给一个设备做一个程序,设备在现场,我们每次都去现场测试,只能模拟下这个调节的流程,买程序这个也只需 ...

那就是说,你不知道目标系统的响应情况,也就是不能用1号机模拟出目标系统的真实过程,也就是用1号机来调PID参数结果也是不怎么靠谱的。
忘掉1号机,去现场连接目标机进行参数调节。
bbxyliyang01 回答时间:2019-9-2 21:14:42
radio2radio 发表于 2019-9-2 19:41
那就是说,你不知道目标系统的响应情况,也就是不能用1号机模拟出目标系统的真实过程,也就是用1号机来调 ...

是的,他这个就是研究生的一个课题,做出来就接业了,没那么高的要求,其实我也想去现场搞一把,但他们仪器很精密,估计不给随便接吧,他们那太设备好像是清华大学给设计的。
Glenxu 回答时间:2019-10-14 09:16:09
过程控制,首先看你的过程特性,人后预估参数,最后试验整定。
可以给你个大概参数,但需要你给出系统特性:

采样周期、运算周期、系统相应增益、系统延迟或惯性。不准确也可以,但需要个描述。
有很多人是通过仿真或计算的,但一般误差在150%以内,人工预估误差在90%以内,一般人优化后在60%
专家或自整定在10-20%。真正做到完全最佳的是不存在的。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版