در این مطلب، ویدئو کنترل بهینه با Excel و Python GEKKO حل شد با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:01,920
ما یک مشکل ساده بهینهسازی پویا را راهاندازی و حل میکنیم،
2
00:00:01,920 –> 00:00:03,870
اجازه دهید ابتدا
3
00:00:03,870 –> 00:00:06,480
اکسل کنیم و سپس با Python Gekko میتوانید
4
00:00:06,480 –> 00:00:07,980
آن را با MATLAB نیز انجام دهید
5
00:00:07,980 –> 00:00:09,300
و دستورالعملهایی در مورد نحوه انجام
6
00:00:09,300 –> 00:00:11,360
آن وجود دارد، بنابراین این یک
7
00:00:11,360 –> 00:00:13,230
مشکل بهینهسازی ساده است.
8
00:00:13,230 –> 00:00:16,949
x2 که دومین متغیر ما
9
00:00:16,949 –> 00:00:20,130
در زمان نهایی است را به حداقل می رسانیم و این کار
10
00:00:20,130 –> 00:00:23,220
را با تنظیم مقادیر U انجام می دهیم که این
11
00:00:23,220 –> 00:00:25,260
متغیرهای تصمیم هستند و ما
12
00:00:25,260 –> 00:00:27,420
تابع چند
13
00:00:27,420 –> 00:00:30,810
معادله دیفرانسیل خواهیم بود که اولین مورد فقط DX است. 1 DT
14
00:00:30,810 –> 00:00:34,260
برابر است با u پس اگر u مساوی باشد
15
00:00:34,260 –> 00:00:38,640
مراحل 0 تا 1 را می دانید پس ما انتظار داریم x1
16
00:00:38,640 –> 00:00:42,780
شیب 1 داشته باشد بنابراین این مقدار U ما
17
00:00:42,780 –> 00:00:44,789
است و X ما فقط می گوید
18
00:00:44,789 –> 00:00:47,820
که شیب x برابر است با u دومین
19
00:00:47,820 –> 00:00:50,850
معادله دیفرانسیل ما است. این
20
00:00:50,850 –> 00:00:54,300
مجموع مربع های X 1 است و u
21
00:00:54,300 –> 00:00:57,480
مشتق X 2 است، اکنون این ها همیشه
22
00:00:57,480 –> 00:01:01,350
مثبت خواهند بود و بنابراین
23
00:01:01,350 –> 00:01:05,280
ما همیشه افزایشی در X 2 خواهیم داشت و ما
24
00:01:05,280 –> 00:01:06,930
می خواهیم سعی کنیم مقادیر را پیدا کنیم. از
25
00:01:06,930 –> 00:01:09,090
U آنها حداقل مقدار نهایی x2 را به ما می دهند
26
00:01:09,090 –> 00:01:13,200
خوب پس اجازه دهید ادامه بدهم فقط
27
00:01:13,200 –> 00:01:14,369
کمی این موضوع را پاک کنم و
28
00:01:14,369 –> 00:01:17,430
سپس نحوه حل این مشکل را ابتدا
29
00:01:17,430 –> 00:01:19,710
با اکسل توضیح می دهیم. چند
30
00:01:19,710 –> 00:01:21,900
خط اضافی در اینجا وجود دارد فقط به این معنی است که شرایط اولیه
31
00:01:21,900 –> 00:01:24,659
برای X 1 و X 2 من به ترتیب 1 و
32
00:01:24,659 –> 00:01:25,590
0 است.
33
00:01:25,590 –> 00:01:27,840
و من میروم، میدانید از 0 شروع کنید
34
00:01:27,840 –> 00:01:31,229
و اکنون به زمان نهایی 1 بروید، اگر میخواهم
35
00:01:31,229 –> 00:01:32,729
این را در اکسل حل کنم تا
36
00:01:32,729 –> 00:01:34,680
این معادله دیفرانسیل را گسسته کنم،
37
00:01:34,680 –> 00:01:39,689
بنابراین اجازه دهید DX 1 Delta X 1 را روی
38
00:01:39,689 –> 00:01:43,700
دلتا T انجام دهیم و این
39
00:01:43,700 –> 00:01:48,750
X 1 در نقطه زمانی من به اضافه 1 می شود، در نقطه زمانی X 1 را دریافت
40
00:01:48,750 –> 00:01:55,290
می کنم، تقسیم بر دلتا T برابر است با u ok
41
00:01:55,290 –> 00:01:56,790
و سپس من فقط می خواهم این مورد را حل
42
00:01:56,790 –> 00:01:58,920
کنم، این مرحله زمانی بعدی من است، بنابراین این
43
00:01:58,920 –> 00:02:02,250
یک روش اویلر است. حل
44
00:02:02,250 –> 00:02:07,350
معادلات دیفرانسیل و سپس به من می دهد x 1 i
45
00:02:07,350 –> 00:02:14,170
به اضافه 1 برابر با u ضربدر دندان های دلتا
46
00:02:14,170 –> 00:02:17,799
و من از مقدار I منهای یک
47
00:02:17,799 –> 00:02:20,680
برای آن شما استفاده می کنم و سپس
48
00:02:20,680 –> 00:02:25,689
x1 را اضافه می کنم، خوب بچه ها اینطور نیست
49
00:02:25,689 –> 00:02:28,780
مگر اینکه اجازه دهید فقط من به شما کمک می کنم خوب پس
50
00:02:28,780 –> 00:02:32,709
من این را دارم اکنون می خواهم
51
00:02:32,709 –> 00:02:36,489
این فرمول را به اکسل وصل کنم تا
52
00:02:36,489 –> 00:02:37,870
اولین بار g من می خواهم این کار را انجام دهم این است که فقط
53
00:02:37,870 –> 00:02:41,409
چند ستون برای خودم ایجاد کنم، این یکی
54
00:02:41,409 –> 00:02:45,040
زمانش است و من فقط
55
00:02:45,040 –> 00:02:48,639
با چند نقطه در اینجا نقطه صفر صفر
56
00:02:48,639 –> 00:02:50,950
یک می آورم و سپس اگر فقط
57
00:02:50,950 –> 00:02:54,069
با نگه داشتن این کادر سمت راست آن را به پایین بکشید.
58
00:02:54,069 –> 00:02:55,810
برای شما افزایش خواهد یافت، بنابراین این نقاط زمانی من
59
00:02:55,810 –> 00:02:58,419
بین صفر تا آخرین زمانی است
60
00:02:58,419 –> 00:03:02,280
که من U و سپس x1
61
00:03:02,280 –> 00:03:09,969
و x2 خود را خواهم داشت و بیایید فقط 0.5 را در اینجا انجام دهیم، خوب
62
00:03:09,969 –> 00:03:13,000
فقط 0.5 را در هر جایی که
63
00:03:13,000 –> 00:03:16,840
شرایط اولیه 1 و 0 را دارم داشته باشیم. خوب، پس
64
00:03:16,840 –> 00:03:19,599
این دو شرط اولیه من هستند
65
00:03:19,599 –> 00:03:22,079
که دقیقاً در اینجا ارائه شده اند،
66
00:03:22,079 –> 00:03:24,370
خوب اکنون کاری که می خواهم انجام دهم این است که فقط از
67
00:03:24,370 –> 00:03:27,370
روش اویلر استفاده کنم و بنابراین
68
00:03:27,370 –> 00:03:32,049
با مقدار u قبلی
69
00:03:32,049 –> 00:03:35,019
برابر با دلتا X و دلتا X در
70
00:03:35,019 –> 00:03:37,090
حال حرکت است.
71
00:03:37,090 –> 00:03:40,000
اگر
72
00:03:40,000 –> 00:03:41,470
میخواهم نقطه صفر را در آنجا قرار دهم میتواند نقطه صفر باشد
73
00:03:41,470 –> 00:03:43,509
یا میتوانم تفاوت بین آن دو را انجام دهم
74
00:03:43,509 –> 00:03:46,540
و سپس باید
75
00:03:46,540 –> 00:03:51,329
مقدار قبلی x یک را اضافه کنم.
76
00:03:51,329 –> 00:03:54,040
فرمول من است که من فقط می خواهم آن یکی
77
00:03:54,040 –> 00:03:56,199
را با دوبار کلیک کردن در آنجا کپی کنم n ببینید که
78
00:03:56,199 –> 00:03:59,169
با یک شیب از شما می دانید اگر از یک شروع
79
00:03:59,169 –> 00:04:03,250
کنم خوب من از یک شروع می کنم و
80
00:04:03,250 –> 00:04:11,129
شیب 0.5 دارم و بعد از یک بار
81
00:04:11,129 –> 00:04:13,810
نمونه به
82
00:04:13,810 –> 00:04:16,269
مقدار یک امتیاز پنج می رسم و بنابراین شما ببینید که
83
00:04:16,269 –> 00:04:18,668
در سلول نهایی اینجا در آن نقطه
84
00:04:18,668 –> 00:04:20,769
پنج به طوری
85
00:04:20,769 –> 00:04:22,419
که معادله دیفرانسیل ساده آن را
86
00:04:22,419 –> 00:04:24,820
با روش اویلر حل کرد، بگذارید به سراغ
87
00:04:24,820 –> 00:04:27,520
بعدی برویم حالا این دومین معادله دیفرانسیل ما خواهد بود
88
00:04:27,520 –> 00:04:30,879
و من
89
00:04:30,879 –> 00:04:34,620
فقط از یک متناهی استفاده می کنم. تفاوت
90
00:04:34,620 –> 00:04:39,550
خوب به اضافه u مجذور خوب است و سپس من می توانم
91
00:04:39,550 –> 00:04:44,400
از همان روش اویلر استفاده کنم به اضافه 1
92
00:04:44,400 –> 00:04:51,930
برابر x1 من مربع به اضافه u من مربع
93
00:04:51,930 –> 00:04:55,270
خوب است و این در
94
00:04:55,270 –> 00:04:59,500
دلتا T ضرب می شود و سپس در زمان قبلی اضافه می کنم
95
00:04:59,500 –> 00:05:04,599
بیایید به
96
00:05:04,599 –> 00:05:09,130
برنامه نویسی در اکسل برویم و اکنون
97
00:05:09,130 –> 00:05:12,990
این برابر با مقدار x1 قبلی
98
00:05:12,990 –> 00:05:19,840
به اضافه مقدار u قبل است و من
99
00:05:19,840 –> 00:05:22,419
آن را مربع می کنم و چند
100
00:05:22,419 –> 00:05:24,300
پرانتز در اطراف آن قرار می دهم.
101
00:05:24,300 –> 00:05:31,240
اوه خوب من من این کار را انجام خواهم داد
102
00:05:31,240 –> 00:05:34,870
و سپس ضرب در 0.1 می شود یا اگر
103
00:05:34,870 –> 00:05:39,360
فقط می خواهید آن را وارد کنید مراحل زمانی وجود دارد بسیار
104
00:05:39,360 –> 00:05:42,370
خوب، من می خواهم در دلتا t قرار داده و
105
00:05:42,370 –> 00:05:45,900
سپس مقدار x2 قبلی خود را اضافه کنم،
106
00:05:45,900 –> 00:05:50,380
خوب که فرمول من آنجاست و من
107
00:05:50,380 –> 00:05:53,139
فقط می خواهم این یکی را پر کنم، می بینم که
108
00:05:53,139 –> 00:05:55,750
در حال حاضر برابر است با یک نقطه هفت،
109
00:05:55,750 –> 00:05:58,029
پس این مقداری را که
110
00:05:58,029 –> 00:06:01,539
سعی می کنم با تغییر همه چیزهایی
111
00:06:01,539 –> 00:06:05,529
که در این سلول ها وجود دارد
112
00:06:05,529 –> 00:06:08,190
به حداقل برسانم در سلول های قرمز خوب است من سعی می کنم با تغییر این مقادیر اینجا را به حداقل برسانم
113
00:06:08,190 –> 00:06:12,099
خوب است و اجازه
114
00:06:12,099 –> 00:06:14,680
دهید فقط یک نمودار ایجاد کنیم تا بتوانیم این I را ببینیم.
115
00:06:14,680 –> 00:06:17,979
من فقط یک طرح پراکنده را وارد می کنم،
116
00:06:17,979 –> 00:06:23,340
خوب است و اجازه می دهم از شر آن
117
00:06:23,340 –> 00:06:27,460
عنوان خلاص شوم و این را
118
00:06:27,460 –> 00:06:32,830
کمی جمع و جور تر می کنم، خوب است، بنابراین من می
119
00:06:32,830 –> 00:06:34,870
دانم که می خواهم این آخرین نقطه را همانجا به حداقل برسانم،
120
00:06:34,870 –> 00:06:37,960
بنابراین برای انجام این کار این
121
00:06:37,960 –> 00:06:40,919
در اکسل من از حل کننده ای استفاده
122
00:06:40,919 –> 00:06:44,189
می کنم، به حل کننده داده می روم اگر آن را در
123
00:06:44,189 –> 00:06:46,500
دسترس ندارید، فقط باید به
124
00:06:46,500 –> 00:06:52,229
گزینه ها بروید و سپس به افزونه ها بروید OK و
125
00:06:52,229 –> 00:06:55,020
روی افزونه های اکسل کلیک کنید فقط مطمئن شوید که
126
00:06:55,020 –> 00:06:58,020
افزونه حل کننده وجود دارد. اگر این کار را انجام دهید
127
00:06:58,020 –> 00:07:01,139
و دادهها را انتخاب کنید، حلکننده
128
00:07:01,139 –> 00:07:04,919
را انتخاب کنید، کادر محاورهای
129
00:07:04,919 –> 00:07:07,620
حلکننده ظاهر میشود ct هدف من که
130
00:07:07,620 –> 00:07:10,259
این پارامتر نهایی خواهد بود در اینجا،
131
00:07:10,259 –> 00:07:15,949
میخواهم با تغییر دادن این سلولها،
132
00:07:15,949 –> 00:07:19,050
همه آنهایی که انتخاب
133
00:07:19,050 –> 00:07:21,120
نشدهاند، غیرمنفی شوند و
134
00:07:21,120 –> 00:07:25,199
سپس روی حل خوب کلیک کنید، بنابراین قبل از
135
00:07:25,199 –> 00:07:27,960
اینکه بگوید با موفقیت برآورده شده
136
00:07:27,960 –> 00:07:30,120
است، 1.77 است. نقطه صفر هفت و نه را گرفتم، بنابراین من
137
00:07:30,120 –> 00:07:32,279
توانستم این مقدار نهایی را به حداقل برسانم که در
138
00:07:32,279 –> 00:07:34,349
اینجا واقعاً
139
00:07:34,349 –> 00:07:35,779
مهم نیست که می توانید آن را به هر چیزی تغییر دهید
140
00:07:35,779 –> 00:07:39,330
، روی راه حل تأثیر نمی گذارد، بنابراین
141
00:07:39,330 –> 00:07:41,039
اگر فقط می خواهید آن را روی صفر قرار دهید،
142
00:07:41,039 –> 00:07:43,169
در واقع یکی که واقعاً
143
00:07:43,169 –> 00:07:45,000
مهم نیست، خوب است، بنابراین اگر من گسسته سازی دقیق تری
144
00:07:45,000 –> 00:07:47,129
در اینجا داشتم، اگر می دانستم
145
00:07:47,129 –> 00:07:49,889
نقطه صفر صفر یک نقطه زمانی
146
00:07:49,889 –> 00:07:52,589
را می دانستید، این راه حل دقیق تری به من می داد،
147
00:07:52,589 –> 00:07:54,949
خوب که
148
00:07:54,949 –> 00:07:58,139
من اکنون بهینه سازی کرده ام و به صورت پویا بهینه سازی کرده ام.
149
00:07:58,139 –> 00:08:02,009
مقادیر شما برای به دست آوردن
150
00:08:02,009 –> 00:08:06,270
حداقل در x2 من خوب است، بنابراین اکنون می خواهم
151
00:08:06,270 –> 00:08:09,689
نشان دهم که چگونه این کار را با gecko انجام دهم همچنین
152
00:08:09,689 –> 00:08:12,839
gecko یک بسته پایتون برای
153
00:08:12,839 –> 00:08:16,259
بهینه سازی پویا است و اگر فقط یک
154
00:08:16,259 –> 00:08:19,469
ویرایشگر متن باز کنید این کار انجام می شود.
155
00:08:19,469 –> 00:08:23,699
مانند اکسل، اما اکنون فقط با
156
00:08:23,699 –> 00:08:29,909
بسته gecko اوکی است، بنابراین من فقط می خواهم
157
00:08:29,909 –> 00:08:34,948
numpy را وارد کنم، بگذارید این را بسازم، بگذارید ببینم
158
00:08:34,948 –> 00:08:36,719
اجازه دهید ببینم آیا می توانم این را
159
00:08:36,719 –> 00:08:46,980
فقط کمی بزرگتر کنم اینجا مشاهده زوم
160
00:08:46,980 –> 00:08:50,760
بزرگنمایی خوب است تا میخواهم
161
00:08:50,760 –> 00:08:52,819
این را کمی بزرگتر کنم و دوباره
162
00:08:52,819 –> 00:08:54,450
در Mouse
163
00:08:54,450 –> 00:08:59,940
up، کلید ctrl را زدم، اجازه دهید ببینم
164
00:08:59,940 –> 00:09:03,420
آیا میتوانم کلید ctrl را بزنم که اوه
165
00:09:03,420 –> 00:09:04,800
وجود ندارد، اوکی میرود، خوب است،
166
00:09:04,800 –> 00:09:08,480
بنابراین numpy و matplotlib وجود دارد.
167
00:09:08,480 –> 00:09:11,270
و سپس چیز دیگری که من به آن نیاز دارم
168
00:09:11,270 –> 00:09:14,190
gecko است، بنابراین اگر gecko ندارید، می
169
00:09:14,190 –> 00:09:16,590
توانید آن را از خط فرمان نیز دریافت کنید، می
170
00:09:16,590 –> 00:09:21,630
توانید gecko را نصب pip انجام دهید که باید
171
00:09:21,630 –> 00:09:24,480
خارج شود و آخرین نسخه
172
00:09:24,480 –> 00:09:27,510
gecko را برای شما دریافت کنید. قبلاً
173
00:09:27,510 –> 00:09:29,970
این الزامات را برآورده
174
00:09:29,970 –> 00:09:33,960
کردهام، بنابراین چیزی برای من نصب نمیشود، بسیار خوب، من
175
00:09:33,960 –> 00:09:37,950
میخواهم یک مدل gecko جدید ایجاد کنم و
176
00:09:37,950 –> 00:09:40,320
سپس تعدادی نقطه زمانی دارم که
177
00:09:40,320 –> 00:09:43,410
اکنون در اکسل میخواهم، ما فقط 11
178
00:09:43,410 –> 00:09:45,