代數環

鄧肯145發表於2018-05-04
使用純微分模組 du/dt 要慎重,容易出現各種問題,原因比較複雜。
有些情況下,沒有替代性的方法時可以使用,但對於PID控制器而言,建議使用近似微分 s/(N*s+1) 代替,其中N為足夠大的常數,一般至少取N>=5以上。

積分器有代數環的問題,可以嘗試加個memory試試。

matlab eps表示最小浮點數
奇點問題:

  試了下列方法:
  1、增加eps
      2、加memory 
  3、改步長

  4、solver改成ode23

       5 nonadaptive改成adaptive

或者disable zero-cross

代數環的解決措施
1、用工具欄中的“simulink”中的“diagnostics”對代數環進行消除
將simulink中diagnostics的對代數環的處理資訊進行選擇,將對代數環的處理資訊選擇為“none”,即忽略代數環的資訊。
2、在反饋迴路中新增延時模組進行消除
由於代數環的產生是由於整個模型中所有模塊均為直通模組,因此只需在反饋迴路中新增延時模組即可消除代數環。延時模組有delay模組、memory模組,如圖2所示,用memory來消除代數環。

3、用變換法消除代數環
對於簡單的代數環問題,可以通過人為地採用數字變換法來求解消除代數環,但這隻針對簡單的代數環有限,對於複雜的代數環基本不可能實現。
4、在反饋迴路中新增入高頻傳遞環節
在反饋迴路中新增入高頻傳遞函式,打斷反饋迴路中的直通模組,消除輸入訊號與輸出訊號的關聯關係。如圖3所示。

相關文章