求一段VB编写的增量式PID控制程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一段VB编写的增量式PID控制程序相关的知识,希望对你有一定的参考价值。

参考技术A #include
#include
"global_varible.h"
/****************************************************************************
*
模块名:
pid
*
描述:
pid调节子程序
*
采用pid-pd算法。在偏差绝对值大于△e时,用pd算法,以改善动态品质。
*
当偏差绝对值小于△e时,用pid算法,提高稳定精度。
*
pidout=kp*e(t)+ki*[e(t)+e(t-1)+...+e(1)]+kd*[e(t)-e(t-1)]
*============================================================================
*
入口:

*
出口:

*
改变:
pid_t_run=加热时间控制
*****************************************************************************/
void
pid_math(void)

signed
long
ee1;
//偏差一阶
//signed
long
ee2;
//偏差二阶
signed
long
d_out;
//积分输出
if(!flag_pid_t_ok)
return;
flag_pid_t_ok=0;
temp_set=3700;
//温度控制设定值37.00度
pid_e0
=
temp_set-temp_now;
//本次偏差
ee1
=
pid_e0-pid_e1;
//计算一阶偏差
//ee2
=
pid_e0-2*pid_e1+pid_e2;
//计算二阶偏差
if(ee1
>
500)
//一阶偏差的限制范围
ee1
=
500;
if(ee1
<
-500)
ee1
=
-500;
pid_e_sum
+=
pid_e0;
//偏差之和
if(pid_e_sum
>
200)
//积分最多累计的温差
pid_e_sum
=
200;
if(pid_e_sum
<
-200)
pid_e_sum
=
-200;
pid_out
=
pid_kp*pid_e0+pid_kd*ee1;
//计算pid比例和微分输出
if(abs(pid_e0)
<
200)
//如果温度相差小于1.5度则计入pid积分输出

if(abs(pid_e0)
>
100)
//如果温度相差大于1度时积分累计限制

if(pid_e_sum
>
100)
pid_e_sum
=
100;
if(pid_e_sum
<
-100)
pid_e_sum
=
-100;

d_out
=
pid_ki*pid_e_sum;
//积分输出
if(pid_e0
<
-5)
//当前温度高于设定温度0.5度时积分累计限制

if(pid_e_sum
>
150)
pid_e_sum
=
150;
if(pid_e_sum
>
0)
//当前温度高于设定温度0.5度时削弱积分正输出
d_out
>>=
1;

pid_out
+=
d_out;
//pid比例,积分和微分输出

else
pid_e_sum=0;
pid_out/=100;
//恢复被pid_out系数放大的倍数
if(pid_out
>
200)
pid_out=200;
if(pid_out<0)
pid_out=0;
if(pid_e0
>
300)
//当前温度比设定温度低3度则全速加热
pid_out=200;
if(pid_e0
<
-20)
//当前温度高于设定温度0.2度则关闭加热
pid_out=0;
hot_t_run=pid_out;
//加热时间控制输出
pid_e2
=
pid_e1;
//保存上次偏差
pid_e1
=
pid_e0;
//保存当前偏差

////////////////////////////////////////////////////////////void
pid_math()
end.

求一段运用matlab把俩个声音文件混合成一个文件的程序!我只会编写一小段声音读取和播放的程序。混合就不会

非常简单,不用大量下载——“录音机”法

只要你有电脑,和一个非常普通的(免费?)声音格式转换器就行了。
我自己摸索出来的!

不是一前一后哦,是完全重合~~
————
电脑左下角“开始”——“所有程序”——“附件”——“娱乐”——“录音机”;
打开录音机后,“编辑”(按钮是Alt+E)——“与文件混音”
(可以多次选择的,放心。注意声音格式必须是WAV——这个时候就用上“转换器”了)

声音选择完毕后,可以点击录音机的黑色实心三角形,试听效果。(录音机上有“效果”,可以调整声音的大小、速度)
具体想要的效果,请自己操作吧~

最后,——“文件”——“另存为”
————
转换器我推荐狸窝和格式工厂,都是免费的(WAV格式也有“不同种类”,请试试哪个适合你的电脑的录音机。)

多加点分吧?我的方法应该对你有帮助呢?追问

方法很好,可是我的前提是用matlab编写程序来实现。你提供的方法跟我毕业设计一丁点关系都没有啊~不过还是谢谢你这么晚帮助我给个good行么~

追答

呵呵,请随意。祝你好运啊~

参考技术A 两个声音文件相加可以吗 你试试追问

老师说:可以。可是不会编写相加的程序。编完的程序都读不出混合声音~~

追答

我没做过声音处理 只是有个相加的想法,两个文件相加 一些关键特征要先保持一致吧 比如两个波形的采样率 还有是否在一个周期内 多询问一下其他人吧

以上是关于求一段VB编写的增量式PID控制程序的主要内容,如果未能解决你的问题,请参考以下文章

PID控制的增量型公式是啥?

增量式pid和位置式pid相比各有啥优缺点

增量式pid积分截断效应是怎么回事

增量式PID控制代码的实现

PID增量形公式

matlab小车运动轨迹增量式PID控制