اطلاعیه

Collapse
No announcement yet.

کنترل دما با pid و تبدیل به زبان c به بسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کنترل دما با pid و تبدیل به زبان c به بسکام

    سلام دوستان
    من برنامه ای از سایتی گرفتم که عنوان آن کنترل دما با PID هست که به زبان C نوشته شده است که من آشنایی زیادی با آن ندارم من مقداری از این برنامه که متوجه شدم با بسکام نوشتم ولی این خطوط را متوجه نشدم اگر از دوستان کسی هست کمک کند و مفهوم این خطوط را برای من بگوید .
    تشکر
    DDRD.4=1;
    ; DDRD.5=1
    ; TCCR1A=0xE3
    ; TCCR1B=0x0C
    ; TCNT1H=0x00
    ; TCNT1L=0x00
    ; ICR1H=0x00
    ; ICR1L=0x00
    ;OCR1AH=0x00
    ; OCR1AL=0x00
    ; OCR1BH=HD
    ;OCR1BL=LD

    [left] sprintf(buffer,"T=%3.1f\xdfC SP=%2.1f\nKp=%f\nKi=%f\nKd=%f",temp,SP,pterm, iterm,dterm);
    lcd_clear();
    ;(lcd_puts(buffer
    (delay_ms(200
    ;[ADCSRA=0xCD;[/left



    این هم آدرس سایت
    http://www.picpars.com/193/-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%AF%D9%85%D8%A7%DB%8C-%D9%87%DB%8C%D8%AA%D8%B1-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%DA%A9%D9%86%D9%86%D8%AF%D9%87-PID-%D8%A8%D8%A7-%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D 8%B1%D9%84%D8%B1-AVR

    #2
    پاسخ : کنترل دما با pid و تبدیل به زبان c به بسکام

    سلام : ببین دوست من
    خب قسمت بالای که اول یه پایه ای رو خروجی تعریف کرده برای خروجی موج pwm و یکش کرده
    بعد خط های بعد از ریجستراش معلومه مال تایمر 1

    خب ببین چی توی ریجستراش ریخته //
    تا جایی که میدونم برای تولید موج pwm و مقدار توپ 10 بیتی // اینکه مشکلی نیست // حتی میتونی برنامه شو تغییر بدی// به هر حال یه موج pwm


    قسمت پاینی هم اومده مقدار متغیر های رو نمایش داد همین temp,SP,pterm,iterm,dterm
    تو به هر طرقی که میتونی انجامش بده ( به صورت اعشار )
    بعد یه تاخیر 200 میلی ثانیه ای داده
    بعد مبدل a/d رو فعال کرده برای نمونه برداری از یه پایه مشخص که تو فایل پروتیوس هست
    که دمای هیتر نشون میده
    مثل lm 35 باهاش رفتار کن

    همین

    دوست من اینو بدون این برنامه ضرایب رو برای ست پوینت 68 درجه تنظیم کرده
    و باید ضرایب برای کار خودت و محیط خودت بدست بیاری اگه بلدی به منم بگووووو
    منم مدتیه دنبالشم اما کسی هنوز شیر فهمم نکرده :bye

    دیدگاه


      #3
      پاسخ : کنترل دما با pid و تبدیل به زبان c به بسکام

      سلام :
      بله من بدست آوردم ولی و با دلیل علمی تر و قابل قبول تر نه با آزمون و خطا .
      شما می تونید به سیستمی که قصد دارید کنترل کنید ورودی پله بدهید و تابع فرایند اون سیستم را بدست بیارید و با استفاده از قسمت تنظیم ضرایب به صورت اتوماتیک نرم افزار متلب ضرایب KPوKi و Kd بدست بیارید البته ین ضرایب برای سیستم پیوسته هست که باید به گسسته تبدیل کنید .
      باز هم اگر توضیح کم بود بگید تا کمک کنم .

      من از همین روش استفاده کردم که جواب گرفتم فقط برای تولید موج PWM در تایمر کانتر یک مشکل دارم که بسکام error میده و نمیتونم مشکل برنامه برطرف کنم .

      دیدگاه

      لطفا صبر کنید...
      X