اطلاعیه

Collapse
No announcement yet.

مشکل در مطلب

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

    مشکل در مطلب

    مشکلی که من دارو اینه که یک می خوام rootlocus یه تابع انتقال رو رسم کنم با این تفاوت که ضریبی که قراره از 0 تا بینهایت تغییر کنه در چند تا از عبارت های صورت و مخرج هست و نمی تونم تابع رو بر اساس اون مرتب کنم.
    دوستان کسی ایده ای داره که چی کار باید بکنم؟؟(مثلا: (s^2+2*s+(6*x+1))/(s^4+2*x*s^3+2*s+3) که می خوام به اضای تغییرات x صفر و قطب ها رو رسم کنه.)
    اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

    #2
    پاسخ : مشکل در مطلب

    من دقیق متوجه نشدم !
    ولی اگه می خواین که مثلا به ازای زتای ثابت یا اومگای ثابت بهره (K) مدار رو با روش Rlocas بدست بیارین بله امکانش هست...
    منظورتون اینه؟!

    دیدگاه


      #3
      پاسخ : مشکل در مطلب

      ببین rlocus میاد تابع انتقال رو که توش همه بر اساس متغیر s هستند رو به ازای بهره k از صفر تا بینهایت رسم می کنه که k یه ضریب پشت کل تابع انتقال هست.ولی تو این مثالی که من زدم می خوام صفر و قطب ها رو بر بر اساس یه بهره دیگه که تو مثال من x بود رسم کنه که x مثل k یه ضریب پشت تابع انتقال نیست بلکه تو دل عبارت هاست.فکر کنم اینجا دیگه باید از pzmap استفاده بشه نه rlocus .
      اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

      دیدگاه


        #4
        پاسخ : مشکل در مطلب

        بله، منم قبلا همچین چیزی میخواستم که با pzmap انجام دادم
        {خلاف قوانین - امضا ویرایش شد}

        دیدگاه


          #5
          پاسخ : مشکل در مطلب

          نوشته اصلی توسط nanoware
          بله، منم قبلا همچین چیزی میخواستم که با pzmap انجام دادم
          میشه یه کم توضیح بدین؟ :rolleyes:
          اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

          دیدگاه


            #6
            پاسخ : مشکل در مطلب

            سلام. اول کمک و نکاتی که دوستان میگن. بعدش: توی خود MATLAB از دستور help pzmap استفاده کنید. یه سری اطلاعات میده! اگر مشکلتون حل نشد، بگین یه کتاب در این مورد Upload میکنیم. اگر بازم نشد، خوب اونوقت میشینیم براش یه مطلب چند صفحه ای مینویسیم.
            در ضمن از Demo های خود MATLAB هم میتونید کمک بگیرید. البته MATLAB من ورژن 6.5 هستشو pzmap به چشمم نخورد ولی شاید تو ورژن های بالاتر باشه.
            BNTSTBNT

            دیدگاه


              #7
              پاسخ : مشکل در مطلب

              میشه یه کم توضیح بدین؟ icon_rolleyes
              من مشکلمو با به حلقه مثل این حل کردم:
              کد:
              s=tf('s')
              hold
              for x = 0 : 10 : 100
              H=(s^2+2*s+(6*x+1))/(s^4+2*x*s^3+2*s+3);
              pzmap(H)
              end
              اگه کسی راه بهتری بلده لطف کنه بگه :rolleyes:
              {خلاف قوانین - امضا ویرایش شد}

              دیدگاه


                #8
                پاسخ : مشکل در مطلب

                دوستان مثل اینکه متوجه مشکل من نشدن.
                من با pzmap,rlocus,nyquist... بلدم کار کنم.مشکل من اینه که نمی خوام متغیرم تو rootlocus متغیر k باشه بلکه می خوام یه متغیر دیگه باشه که تو خود تابع انتقال هست.
                تو مثالی که زدم که واضح منظورم رو گفتم که.
                اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

                دیدگاه


                  #9
                  پاسخ : مشکل در مطلب

                  نوشته اصلی توسط nanoware
                  میشه یه کم توضیح بدین؟ icon_rolleyes
                  من مشکلمو با به حلقه مثل این حل کردم:
                  کد:
                  hold
                  for x = 0 : 10 : 100
                  H=(s^2+2*s+(6*x+1))/(s^4+2*x*s^3+2*s+3);
                  pzmap(H)
                  end
                  اگه کسی راه بهتری بلده لطف کنه بگه :rolleyes:
                  آقا این راه شما درسته و خودم هم این کار رو انجام داده بودم.ولی من نمی خام به ازای هر x یه صفر و قطب بکشه.شاید من بد منظورم رو فهموندم.
                  من میخوام مثل rlocus که از قطب به صفر میره،اینجا هم به ازای تغییر x نه k از صفر به قطب بره.
                  (خودمم دیگه گیج شدم! )
                  اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

                  دیدگاه


                    #10
                    پاسخ : مشکل در مطلب

                    سلام. یعنی میخواهین یه نمودار باشه روش کلیک کنین براتون مقدار X رو بده، نه اینکه مقدار x رو شما بدین! آره؟
                    BNTSTBNT

                    دیدگاه


                      #11
                      پاسخ : مشکل در مطلب

                      تقریبا چیزی که nanoware جان گفتن درست بود.با این تفاوت که من تابعی که بر حسب s,x که داشتم تو یه ماتریس بود .ولی نمی دونم چرا وقتی s رو با دستور:
                      s=tf('s رو به صورت متغیر transfer function معرفی می کنم (قبلش s رو به عنوان یه سمبل معرفی کردن) دیگه تابع داخل ماتریسم رو نمیشناسه
                      و باید معادلمو به صورت copy,paste بیارم تو یه ماتریس دیگه بریزم تا pzmap رو بکشه.
                      اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

                      دیدگاه


                        #12
                        پاسخ : مشکل در مطلب

                        سلام. اصلاً متوجه نشدم! شاید هم خسته ام. :icon_razz:
                        BNTSTBNT

                        دیدگاه


                          #13
                          پاسخ : مشکل در مطلب

                          من میخوام مثل rlocus که از قطب به صفر میره،اینجا هم به ازای تغییر x نه k از صفر به قطب بره.
                          منم راهی بلد نیستم :sad:
                          متوجه مشکلی که تو پست 10 نوشتید هم نشدم

                          {خلاف قوانین - امضا ویرایش شد}

                          دیدگاه


                            #14
                            پاسخ : مشکل در مطلب

                            ببینید واسه اینکه بخوای یک transfer function تعریف کنی یه راحش اینه که متغیر s رو به عنوان متغیر Tf معرفی کنی.با دستور" s=tf"s
                            ولی من قبلش s رو به عنوان یه سمبل معرفی کردم.با دستور syms s
                            با این کار میشه اول تابع رو بر حسب متغییر s تعریف کرد و هر بلایی خواستی سرش بیاری (مثل من که متغیر x هم داشتم و باید حذفش میکردم) و بعد که تابع فرم استاندارد واسه تابع انتقال گرفت s رو به عنوان متغیر تابع انتقال تعریف کنی و کافیه تابع رو بریزی تو یه ماتریس.خود matlab اون رو به عنوان یه transfer function میشناسه.
                            مثلا:
                            "s=tf"s
                            a=s^2+1
                            ولی اگه قبلش a رو به صورت زیر تعریف کنی اشتباه میشه:
                            syms s
                            a=s^2+1
                            "s=tf"s
                            b=a
                            در ایحالت درسته که s متغیر tf شده ولی نمیاد b رو به عنوان transfer function بشناسه.
                            امیدوارم متوجه شده باشین،چون دیگه نمی دونم چه جوری باید بگم :sad:
                            اگر انسان از همه خطر ها پرهيز کند ، هرگز راه به جائي نخواهد برد...

                            دیدگاه


                              #15
                              پاسخ : مشکل در مطلب

                              پیام جان باز هم زیاد متوجه منظورت نشدم(هرچند که 5-6 ار پستتو خوندم!)
                              ولی تا این حد میدونم اینجا که شما اومدی اول a رو به عنوان یه تابع سیمبولیک از متغیر سمبولیک s تعریف کردی(پس a=s^2+1 سمبله و نه tf )، بعدش ماهیت s رو از sym به tf تغییر دادی، a که تو حافظه است هیچ تغییری نمیکنه و در نتیجه b=a هم سیمبولیک هست
                              مثلا فکر میکنی با وارد کردن این دستورا مقدار نهایی b چی میشه؟

                              کد:
                              a=2
                              b=2*a
                              a=3
                              نتیجه اینه: a=3, b=4

                              فکر کنم جوابم ربطی به سوالت نداشت و اینارو خودت میدونی! :biggrin: :icon_razz:
                              {خلاف قوانین - امضا ویرایش شد}

                              دیدگاه

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