Skip to content

Latest commit

 

History

History
109 lines (70 loc) · 4.85 KB

使用Simulink进行辨识的问题.md

File metadata and controls

109 lines (70 loc) · 4.85 KB

2017.11.10

使用Simulink进行辨识的问题

  • 使用二阶传递函数$G(s)=\frac{400}{s^2+500}$ 进行仿真,PID参数给定为$k_p=0. 5,k_I=2$ ,其中的PID是针对连续状态下的PID参数,需要转换成离散状态下的PID参数,二者存在差别

  • 如果需要使用最小二乘法进行辨识,要么是控制器的已知,使用间接法(论文),要么是控制器的阶数大于被控模型阶数或者输出测量不含噪声

  • 闭环控制下使用RELS算法进行辨识的结果如下:

    • 使用$PI$ 控制器;

    • 控制模型为: $$ G(s)=\frac{400}{s^2+500s} $$

    • 将其变换成离散函数:

      function [num,den]=trans(model)
      num = input('num[]:');
      den = input('den[]:');
      if model == 'c2d'
          sys = tf(num,den)
          dsys = c2d(sys,0.01);
          [num,den] = tfdata(dsys,'v')
          
      end
      
      if model == 'd2c'
          sys = tf(num,den,0.01)
          csys = d2c(sys);
          [num,den] = tfdata(csys,'v')
      end
          0.017 z + 0.01444
        ----------------------
        z^2 - 1.607 z + 0.6065

      theta =
         -1.6065
          0.6065
         -0.0000
          0.0170
          0.0144
    • **在辨识过程中,输入的测量噪声为0,否则,辨识结果会变差 **

构建相位器传递函数

  • **根据物理公式推出相位器传递函数 **

    • 为了方便调试,保留了传递函数中各参数的物理意义,暂时没有计算出最终的传递函数模型。

    • 由于在调试PID参数的过程中,只有当模型可以线性化时,才能通过MATLAB工具箱确定基本的参数,因此,OCV的非线性流量曲线用线性线性函数代替转换,只是将占空比和流量的数据进行了统一(使用非线性拟合效果很差

    • 采用PID的形式为MATLAB中默认的格式,方便导入Simulink模块:

      $G(s)=P+I\frac1s+D\frac{N}{1+N\frac1s}$

      save

      当参数为: $P=3.15,I=0.65,D=0.3,N=500$

      QQ截图20171108215614

      如果不改变三个参数,则小角度的响应比较慢,同理,如果当参数选择在小角度响应较快时的参数,则大角度会产生超调。(多次调试进行折中的结果

  • 闭环系统辨识中的问题

    • 闭环系统辨识中,采用的控制器为PI控制器,如果采用PID控制器,则无法再模型的输入中增加白噪声(会导致系统不稳定,并且在参考的辨识文献中,大部分PI控制并进行辨识)。

      QQ截图20171109152402

    • 只能在输入给定白噪声 如果在输出中也存在噪声则无法正确的辨识

    • 给定阶跃,输入白噪声,辨识结果如下:

      QQ截图20171109155949

    • 在同样的条件下,辨识结果存在误差,采用的算法为RELS算法,通过检查,算法本身没有问题,需要尝试其他算法

  • 使用丁峰的算法,RLS,MISG,RML等,RELS效果最好,后续准备尝试使用更高级的辨识算法,包括神经网络辨识和模糊辨识,并且,定参数PID也很难是阶跃响应在大角度和小角度同时表现很好,参考外文文献,不同转速油温影响辨识参数,通过增加遗忘因子的RELS可以在线自适应(文中辨识不同情况的模型取平均值

进展总结

**新的算法>>开环的简单模型辨识>>闭环的简单模型辨识>>闭环虚拟的相位器辨识 **

  1. 完成线性模型的PID控制,可以通过MATLAB工具箱简单的确定参数,达到稳定的控制效果
  2. 通过丁峰提出的算法进行辨识,可以辨识相对应的模型(但是模型结构的确定主要是自己凑试,不同的结构和算法效果都不一样
  3. 通过PID和系统模型构成闭环,通过直接法所给出的辨识要求,可以使用开环的算法直接辨识出系统的模型的参数,但是辨识效果需要进一步提高(主要是输入噪声,结构等对辨识效果影响很大
  4. 对于辨识效果仅仅是通过直接观察仿真曲线而定,没有编写出确定的误差准则程序
  5. 暂时没有将实验数据带入(主要原因是上述辨识的激励信号均为白噪声,并非阶跃响应,测量的也是PID调节的占空比,同时,使用直接法在非线性虚拟模型中的辨识效果并不是特别理想,需要进一步找寻合适的辨识算法
  6. 针对非线性辨识,后续准备涉及更深层次的算法