[컨트롤 공학] Scielab로 판선도를 그려봤습니다!

5749 단어 Scilab제어 공학

개요


제어 시뮬레이션에서 MATLAB는 자주 사용되지만 MATLAB가 쓴 무료 소프트웨어에는 Sccilab(Silab)이 있다.
Scielab라면 자유롭기 때문에 자신의 취미에 따라 쉽게 놀 수 있고 학생들도 사용할 수 있다. (요즘은 파이톤도 파이톤control을 사용할 수 있고 컨트롤 시뮬레이션을 할 수 있기 때문에 파이톤control에 관해서는 기회가 된다면 접촉하고 싶다.)
다른 한편, 인터넷의 정보는 단점일 가능성이 매우 적다. 오늘날, 나는 Scielab로 제어에 필요한 판선도를 묘사하고 싶다.
나이키스트 사선도 여기 모아.
https://qiita.com/trami/items/9fd130779fc0e0adc1bf

작업 환경

  • Windows10(64bit)
  • Scilab 6.0.2
  • 이른바 판선도


    판선도는 주파수 전달 함수의 이득과 상위, 각주파수를 가리킨다ω가로축을 위한 도표는 전자는 이득선도, 후자는 상위선도를 나타낸다.
    이득 그래프의 세로 축은 $20\log{10]|G(j\omega)|$단위로 데시벨(dB), 위상도 세로축은 위상${\angle}G(j\omega)$단위(°)로 표시됩니다. 또한 가로축은 대각 주파수 $\omega$대수축 눈금 $\log위에서 넓은 범위를 나타낼 수 있는 $\omega달러를 채택하다.

    전달 함수 정의


    우선 전달 함수를 정의하면 주문이라고 생각할 수 있다.
    전달 함수 가정
    G(s)=\frac{1}{s^2+2s+3}\
    
    미리 준비하다.
    s = %s; //記号変数の定義
    Gs = 1/(s^2 + 2*s + 3) //伝達関数の定義 
    G = syslin('c', Gs); //連続時間システムの定義
    

    바둑판 선그림 그리기


    전달 함수를 정의했으니 바로 판선도를 그리고 싶습니다.
    그럼에도 불구하고 Scielab의 경우 한 줄에 판선도를 그립니다.
    bode(G)
    
    그럼 여러 가지 요소를 복습하면서 판선도를 그려봅시다.

    비례원소

    G(s) = K
    
    우선, 비례 요소. 이 자체는 설명이 필요 없다고 생각하지만, Scielab에서 실행할 때 주의해야 한다.
    K = 1;
    Gs = K 
    
    sysilin: 매개 변수 #2의 형식이 올바르지 않습니다. 선형 상태 공간이나 전달 함수를 지정하십시오.
    정확히 아래와 같다.
    K = 1;
    Gs = K / s^0 
    

    Scielab로 실행하면 위와 같은 판선도를 얻을 수 있습니다. 이것은 전체 통로 필터입니다. (전역이 필터를 통과합니다.)
    여기서 주의해야 할 점은 Scielab의 가로축은 각 주파수 $\omega$이 아니라 주파수 $f$f로 표시되어 있다는 점입니다. 각 주파수로 변환할 수도 있지만 부작용이 커서 추천하지 않습니다.
    겸사겸사 말씀드리지만, 완전히 잡담입니다. Scielab는 C 언어와 달리 문장 끝의 분호입니다. (;)안 넣어도 안 틀려요.

    적분 원소

    G(s) = \frac{1}{s}\
    
    다음은 포인트 요소로 어렵지 않지만 중요하다.
    Gs = 1/s  
    

    통제할 곳은 두 개다.
    이득 곡선도의 경사율은 $-20$dB/dec
  • 상위선도 지연 $90^{circ}달러
  • 여기 dec는 decade의 줄임말로 decade로 읽는데 이것은 로마자 독법의 유래입니까?영어에선 dikeid로 발음하네. (가면 기사 decade 같은 거 있지!)
    한 개의 적분기가 $-20$dB/dec, $90^{circ} 달러로 지연됩니다.
    그럼 두 개의 적분기는??
    당연히 $-40달러 dB/dec, $180^{circ}이 뒤떨어졌습니다.

    미분원소

    G(s) = s
    
    다음은 미분 요소로 물리적으로 실현될 수 없기 때문에 그리 중요하지 않으니 우선 열거해 봅시다.
    비례 요소와 같이 분모에 s^0을 넣는 것을 잊지 마세요.
    Gs = s / s^0
    

    이것은 적분기와 완전히 상반된다.
  • 이득 곡선도의 경사율은 20달러 dB/dec
  • 상위선도 전진$90^{circ}달러
  • 일차 지연 요소

    G(s) = \frac{K}{1+Ts}\
    
    그 다음은 일차 지연 요인으로 매우 중요하다.
    K는 비례 상수, T는 시간 상수입니다. RC 회로는 $T=1/CR$, RL 회로는 $T=L/R입니다. 시간 상수는 최종치에 도달한 $63.2%입니다.
    T = 1;
    K = 1;
    Gs = K / (1 + T * s)
    

    억압해야 할 부분이 많다.
  • 할인점은 $\omega=2{pi}f=T^{1}달러
  • 벤드 점에서 $-3달러 dB
  • 이득
  • 이득 곡선도 고주파에서의 경사율은 $-20$dB/dec
  • 상위선도가 접점에서 45^{circ}달러
  • 지연됨
  • 비례원소와 적분원소는 접선근사
  • 저통 여파기로 기능
  • 일급진원소

    G(s) = K(1+Ts)
    
    다음은 1단계 진입 요인이다. 우리도 미분 요인과 마찬가지로 그리 중요하지 않지만, 나는 열거할 것이다.
    K는 비례 상수이고 T는 시간 상수이다.
    T = 1;
    K = 1;
    Gs = K * (1 + T*s) / s^0
    
    

    이것은 지연 요인과 상반되는 행위다.

    2차 지연 요소

    G(s) = \frac{(\omega_n)^2}{s^2+2\zeta\omega_ns+(\omega _n)^2}\
    
    다음은 차등 요인이다. 이것도 중요하다.
    $\omega_n달러는 고유 각도 주파수이고 $\zeta는 감쇠 상수입니다.
    그러면 우리는 0, 1에 비해 판선도를 그려 보려고 한다. 쇠퇴계수는 사실상 정값이지만, 지금은 이상적으로 0이다.
    z = 1;
    wn = 1;
    Gs = 1 / (s^2 + 2*z*wn*s + wn^2)
    
    z = 0;
    wn = 1;
    Gs = 1 / (s^2 + 2*z*wn*s + wn^2)
    

    억압해야 할 부분이 많다.
  • 접점이 $\omega=2{pi}f=wn달러
  • 고주파 이득 곡선도의 경사율은 $-40달러 dB/dec
  • 상위선도가 접점에서 90^{circ}달러
  • 지연됨
  • 접점 부근에서 공진 관찰
    감쇠 계수는 $1/\sqrt{2}\sim0입니다.$0dB 미만
  • 감쇠계수가 작을수록 최고치
  • 시간 낭비 요인

    G(s) = \exp(-Ls)
    
    마지막으로 시간 낭비 요인이다.
    나는 Scielab로 이것을 그리고 싶었지만 오류가 발생했다. 지수 함수가 선형이 아니기 때문일 수도 있다. 근사한 데이터를 써야 할지도 모르지만 필자는 능력이 부족해서 보자마자 보충하고 싶었다.
    [추기 2019.6.11]
    역시 시간적 요소가 선형이 아니기 때문에 직접 그릴 수 없고, 다른 사이트에 사기와 고민이 있기 때문에 다시 한 번 명확하게 쓴다.
    Scielab에서 시간 요소는 선형이 아니므로 직접 그릴 수 없습니다!
    잘못된 시간 요소를 그리려면 전송 함수를 다항식과 비슷하게 하려면 데이터 근사성을 사용해야 합니다. 이 데이터는 MATLAB에 데이터 근사성을 위한 함수pade와 비슷하지만 Scielab은 아닌 것 같습니다.
    데이터의 근사성에 관해서 나는 시간이 있을 때 다시 종합하고 싶다.

    총결산


    Scielab를 사용하면 쉽게 플롯을 그릴 수 있다. 플롯이라면 계산기를 사용하지 않아도 쉽게 그릴 수 있지만 확인하면 딱 좋지 않을까? 계산기 없이 그리기 힘든 넥스트 플롯과 안정여유 등을 정리해보자.
    [나이키스트 사선도] https://qiita.com/trami/items/9fd130779fc0e0adc1bf

    좋은 웹페이지 즐겨찾기