1. 用PID控制算法控制离散变化的对象时,如何确定采样频率,采样率是越高越好,还是怎样
采样频率理论上是越高越好,但实际应用中要能够实现才行。
采样频率确定首先考虑离散系统的稳定性。
2. 阐述ID3算法处理连续型变量必须离散化的原因
使用所有没有使用的属性并计算与之相关的样本熵值
选取其中熵值最小的属性,生成包含该属性的节点
D3算法对数据的要求:
1) 所有属性必须为离散量;
2) 所有的训练例的所有属性必须有一个明确的值;
3) 相同的因素必须得到相同的结论且训练例必须唯一。
3. 离散的pid是什么的两种算法基本形式
一般的方法(第一图)和增量法(第二图) ,网上很多介绍这个的文章,随便搜一下就很多
4. mpc算法为什么用增量
因为在预测时域内的状态量和输出量都可以通过系统当前的状态量和控制时域内的控制增量计算得到
5. FLUENT中的求解器、算法和离散方法
求解器:
FLUENT中求解器的选择在如下图所示界面中设置:
6. pid算法公式的增量形式是什么
PID的增量型公式:
PID=Uk+KP*【E(k)-E(k-1)】+KI*E(k)+KD*【E(k)-2E(k-1)+E(k-2)】
PID算法具体分两种:一种是位置式的 ,一种是增量式的。
位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而明显没有必要。而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。换句话说,通过增量PID算法,每次输出是PWM要增加多少或者减小多少,而不是PWM的实际值。所以明白增量式PID就行了。
PID控制原理:
本系统通过摆杆(辊)反馈的位置信号实现同步控制。收线控制采用实时计算的实际卷径值,通过卷径的变化修正PID前馈量,可以使整个系统准确、稳定运行。
PID系统特点:
1、主驱动电机速度可以通过电位器来控制,把S350设置为SVC开环矢量控制,将模拟输出端子FM设定为运行频率,从而给定收卷用变频器的主速度。
2、收卷用S350变频器的主速度来自放卷(主驱动)的模拟输出端口。摆杆电位器模拟量
信号通过CI通道作为PID的反馈量。S350的频率源采用主频率Ⅵ和辅助频率源PID叠加的方式。通过调整运行过程PID参数,可以获得稳定的收放卷效果。
3、本系统启用逻辑控制和卷径计算功能,能使系统在任意卷径下平稳启动,同时两组PID参数可确保生产全程摆杆控制效果稳定。
7. 遗传算法怎么处理离散变量
网络求解01背包问题就可以了。直接进行二进制编码,然后解码也是二进制。如果其他的离散问题,可以网络遗传算法求解TSP问题。程序网上很多
8. 关于循环和循环嵌套的问题
第一个问题:if在循环体内,则每次循环都会执行,但只有符合if条件的,才会执行if语句中包含的内容。
第二个问题:外循环执行a次,内循环每当外循环执行1次就执行b次,所以一共执行a*b次,你说的没有错。
第三个问题:这里你问了很多,我一个一个回答吧。
1、用i=N-1;i>0;i--是可以的,但你要改里面所有的循环,因为这个排序算法逻辑是先找出最大的一个数和第一个数交换,再从第二个数开始找出最大的一个数和它交换,如果用i=N-1;i>0;i--,你就要改变算法,找出最小的一个数和最后一个交换,再找出最小的数和倒数第二个交换……
2、if(i!=k)是每次循环都执行的,只有发现更大的数(k值发生变化)后才会执行交换语句。
3、并不是每次都执行交换位置的,你对这个算法理解不太清楚,可能你的编程老师没有讲解清楚吧,另外这个程序也有个问题,k其实是没有用的,你把程序改成下面的就好理解多了:
int i,j,temp;
int a[N]; //一开始所有要排序的数存储在数组a里
for(i=0;i<N-1;i++) //从第一个数开始循环到最后一个数
{
for(j=i+1;j<N;j++) //对每一个数,和其后的所有数进行比较(因为前面的数通过排序已经是最大的数了,不用比较)
{
if(a[i]>a[j]) //如果发现一个数a[j]比当前数a[i]更大
{
temp=a[i];
a[i]=a[j];
a[j]=temp; //通过临时变量temp实现a[i]和a[j]的交换
}
}
}
这样你应该对这个算法更理解了吧?它是依次找出数组中第一大、第二大、……、第N大的数,来和数组的第一个、第二个、……、第N个数交换,最终完成排序。这个算法可以实现排序功能,但性能不如冒泡排序法。
嵌套的流程图?我画个给你。这里没办法帖图,你看链接吧。
http://211.157.108.18/t.gif
9. 增量算法与分治算法各是什么含义
算法步骤:
1 :从左上角起,给棋盘编号(1,1),(1,2)(8,8),计为集合qp。tracks记录走过的每个点. (可以想象为坐标(x,y))
2:设起点为(1,1),记为 当前位置 cp,
3:搜索所有可走的下一步,根据“马行日”的走步规则,可行的点的坐标是x坐标加减1,y坐标加减2,
或是x加减2,y加减1; (例如起点(1,1),可计算出(1+1,1+2),(1+1,1-2),(1-1,1+2),(1-1,1-2),(1+2,1+1),(1+2,1-1),(1-2,1+1),(1-2,1-1) 共8个点), 如果没有搜到可行点,程序结束。
4:判断计算出的点是否在棋盘内,即是否在集合qp中;判断点是否已经走过,即是否在集合tracts中,不在才是合法的点。(在上面的举例起点(1,1),则合法的下一步是(2,3)和 (3,2))
5:将前一步的位置记录到集合tracts中,即tracts.add(cp);选择一个可行点,cp=所选择点的坐标。
6:如果tracts里的点个数等于63,退出程序,否则回到步骤3继续执行。