PID control using LoopPoint at KitControls Module - Engineer of NiagaraFramework

Tridium, NiagaraFramework, SCADA, HMI, PLC, Automation, SmartFAM etc.. About controls.
나이아가라 프레임워크 QnA : neverlikekami@gmail.com

2019년 5월 8일 수요일

PID control using LoopPoint at KitControls Module

개요

본문에서는 PID 컨트롤을 왜, 어떻게 해야하는지에 대해 적고자 한다.
Niagara Framework를 이용하여 PID제어 하는 방법을 알아보자.


    PID 컨트롤은 무엇인가 (What is the PID control)


     P : Proportional : 비례
     I  : Integral       : 적분
     D : Differential  : 미분

     비례와 적분, 미분 정보를 조합하여 적정한 수준의 출력값을 결정하는 기법
     효과적으로 목표값에 도달하기위해 사용되는 제어의 기법

    ON/OFF 제어의 결과 (Result of On/Off Control)


    <단순 ON/OFF 제어결과 , 출처 : www.inforad.co.kr>


    P 제어의 결과 (Result of P-Control)

    <P 제어 결과 , 출처 : www.inforad.co.kr>


    PD 제어의 결과 (Result of PD-Control)

    <PD 제어 결과, 출처 : www.inforad.co.kr>


    PID 제어의 결과 (Result of PID-Control)


    <PID 제어결과, 출처 : www.inforad.co.kr>


    PID 제어의 예시 (Example of PID-Control)

    < PID 값 변화에 대한 결과, 출처 : inforad.co.kr>

    위의 PID제어에 대한 상세한 설명은 아래의 링크에서 확인할 수 있다.
    You can able to read more detail information from the below link.
    https://www.inforad.co.kr/single-post/2016/12/08/pid-control


    위의 그래프만 보더라도 PID제어가 무엇인지 알 수 있다.
    이제부터 해야하는것은 "어떻게 튜닝하는가" 이다.

    튜닝 방법


    PID값을 올리면 목표값에 도달하는 속도가 전반적으로 빨라진다.
    하지만 너무많은값을 올리게되면 심한 헌팅현상을 볼 수 있다.


    목표값이 변화하였는데 응답이 느릴때 : P값 증가
    목표값이 변화하였는데 응답은 빠르지만 불안정할 때 : P값 감소

    피드백 값이 목표값에 도달하지 못하는경우 : I값 감소
    피드백 값이 목표값에 불안정하게 진동하며 도달할 때 : I값 증가

    P값을 어느정도 올렸는데도 응답이 느릴때 : D 값 증가
    D값을 올렸는데도 응답이 느릴 때 : D값 감소
    I값이 너무 적으면 시간대비 조작량이 늘어나며 심한 헌팅증상가능

    튜닝 순서

    1. P값을 도출하기위해 I와 D값은 모두 0으로 시작.
    2. P값을 최소값으로 하여 설정후 동작상태를 관찰.
    3. 결과값을 토대로 P값을 조금씩 증가.
    4. 허용범위 내에서 정상적인 편차가 존재할떄까지 조절.
    5. I값을 조절하기 시작.
    6. I값을 늘이고 줄여 목표값에 도달하는 시간을 조정.
    7. 너무 불안정하고 조정이 안되면 P값과 I값을 감소시키고 관찰.


    나이아가라로 PID 구현하는 방법 (How to Implement PID in Niagara-Framework)


    나이아가라 안에서 PID를 구현하기위한 방법을 알아보자

    LoopPoint 오브젝트 위치 

    We can able to implement PID using LoopPoint object in KitControl-Module.
    우리는 KitControl 모듈의 LoopPoint Object를 이용하여 PID를 구현할 수 있다.



    LoopPoint 오브젝트의 Slot 설명



    OUT : 출력값
    Loop-Enable : PID연산을 사용할지 말지 결정. True : 사용, False : 미사용
    Controlled-Variable : 온도, 습도, 압력, 풍량 같은 조작하고자 하는 대상
    Setpoint : 조작대상의 목표값
    ExecuteTime : PID 계산 프로그램 실행 속도
    ActualTime : 실제동작시간
    Loop-Action : Direct/Reverse가 있으며 정방향 동작 역방향 동작을 나타냄
    Disable Action : Zero/MIN/MAX/AVG 등의 값이 있으며 LoopEnable이 False 일때 출력값
    ProportionalConstant : 비례제어 설정 , P 값
    Integral Constant : 적분제어 설정 , I값
    Derivative Constant : 미분제어 설정 , D값
    Bias : P제어만 사용할 때 오프셋 오류를 수정하기 위해 사용
    Maximum Output : 최대 출력값
    Minumum Output : 최소 출력값
    RampTime : 급격한 출력 변화율의 제어를 위해 사용. 기본으로 사용안함(0:00:00)















    댓글 없음:

    댓글 쓰기

    Post list