xiwangyangguang 发表于 2012-5-10 09:11:17

请教控制算法

   
    DiffNick = MesswertNick - (StickNick - GPS_Nick);        // 当前值-期望值
    if(IntegralFaktor) SummeNick += IntegralNick * IntegralFaktor - (StickNick - GPS_Nick); // I-Anteil bei Winkelregelung
    elseSummeNick += DiffNick; // I-Anteil bei HH
    if(SummeNick >16000) SummeNick =16000;//限幅
    if(SummeNick < -16000) SummeNick = -16000;
    pd_ergebnis = DiffNick + Ki * SummeNick; // PI-Regler f黵 Nick//                                       
    // Motor Vorn
    tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
   
    if(pd_ergebnis >tmp_int) pd_ergebnis =tmp_int; //限幅
    if(pd_ergebnis < -tmp_int) pd_ergebnis = -tmp_int;

    motorwert = GasMischanteil + pd_ergebnis + GierMischanteil;       
这段代码着实不解,不知道这属于什么控制,PIorPD?

在这段代码值之前,已经有了如下的代码:
//从角度(陀螺积分)和角速度(陀螺仪信号)中,计算控制反馈,PI控制了

if(Looping_Nick) MesswertNick = MesswertNick * GyroFaktor;
    else             MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor;
    if(Looping_Roll) MesswertRoll = MesswertRoll * GyroFaktor;
    else             MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
    MesswertGier = MesswertGier * (2 * GyroFaktor) + Integral_Gier * IntegralFaktor / 2;

望大神帮忙解读一下第一段代码,若是第二段代码我的理解也有误,望指正。


还有高度调节控制部分,也希望高手指点指点~~~

xiwangyangguang 发表于 2012-5-11 09:38:54

望高人指点呀!!!!!
页: [1]
查看完整版本: 请教控制算法