2025-02-16 22:17:42 +04:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 15px;\">\n",
"\n",
"\n",
"<ul>\n",
"<li>Выбрать входные и выходные переменные.</li>\n",
"<li>Выполнить настройку параметров лингвистических переменных: определить\n",
"количество термов, типов и параметров функций принадлежности</li>\n",
"<li>Сформировать базу нечетких правил.</li>\n",
"<li>Выполнить оценку качества полученной нечеткой системы</li>\n",
"</ul>\n",
"</p>\n"
]
},
{
"cell_type": "code",
2025-02-26 17:38:35 +04:00
"execution_count": 33,
2025-02-16 22:17:42 +04:00
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import skfuzzy.control as control\n",
"import skfuzzy as fuzzy\n",
"import numpy as np\n",
"\n",
"\n",
"# считаем данные и поределим входные и выходные переменные\n",
"data = pd.read_csv(\"./csv/option4.csv\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 15px;\">\n",
"Так как мы предсказываем инсульт, то входными переменными будут самые, пожалуй, важные критерии - возраст, уровень с а х а р а в крови, ИМТ, гипертония (е е наличие/отсутствие) и сердечный приступ (тоже е г о наличие/отсутствие)<br><br>а вот ВЫходной переменной будет, естесственно, сам инсульт (наличие/отсутствие)\n",
"</p>\n"
]
},
{
"cell_type": "code",
2025-02-26 17:38:35 +04:00
"execution_count": 34,
2025-02-16 22:17:42 +04:00
"metadata": {},
"outputs": [],
"source": [
"age = control.Antecedent(np.arange(0, 101, 1), 'age') # возраст от 0 до 100 с шагом 1 год и т.д.\n",
"glucose = control.Antecedent(np.arange(50, 301, 1), 'glucose')\n",
"bmi = control.Antecedent(np.arange(10, 50, 0.1), 'bmi')\n",
"hypertension = control.Antecedent(np.arange(0, 2, 1), 'hypertension')\n",
"heart_disease = control.Antecedent(np.arange(0, 2, 1), 'heart_disease')\n",
"\n",
"# а теперь выходная переменная (Consequent)\n",
"stroke_risk = control.Consequent(np.arange(0, 1.1, 0.1), 'stroke_risk')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<p style=\"margin: 15px; text-align: center;\">\n",
"НАКОНЕЦ Я УСТАНОВИЛА В С Е ПАКЕТЫ етить е г о \n",
"</p>\n",
"\n",
"<p style=\"margin: 15px;\">\n",
"теперь самое время определить нечеткие переменные, которые сложатся... в лингвистические\n",
"</p>\n"
]
},
{
"cell_type": "code",
2025-02-26 17:38:35 +04:00
"execution_count": 35,
2025-02-16 22:17:42 +04:00
"metadata": {},
"outputs": [
2025-02-26 17:38:35 +04:00
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_7\\.venv\\Lib\\site-packages\\skfuzzy\\control\\fuzzyvariable.py:125: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n",
" fig.show()\n"
]
},
2025-02-16 22:17:42 +04:00
{
2025-02-26 16:44:48 +04:00
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-02-26 17:29:35 +04:00
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
2025-02-16 22:17:42 +04:00
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# возраст\n",
2025-02-26 16:44:48 +04:00
"age['young'] = fuzzy.zmf(age.universe, 0, 30)\n",
"age['middle'] = fuzzy.trapmf(age.universe, [18, 20, 30, 40])\n",
"age['old'] = fuzzy.trapmf(age.universe, [40, 50, 60, 70])\n",
"age['aged'] = fuzzy.smf(age.universe, 60, 100) \n",
2025-02-16 22:17:42 +04:00
"\n",
"# с а х а р \n",
2025-02-26 16:44:48 +04:00
"glucose['low'] = fuzzy.zmf(glucose.universe, 50, 80)\n",
"glucose['normal'] = fuzzy.trapmf(glucose.universe, [70, 80, 90, 100])\n",
"glucose['hight'] = fuzzy.smf(glucose.universe, 100, 300)\n",
"\n",
2025-02-16 22:17:42 +04:00
"# ИМТ\n",
2025-02-26 16:44:48 +04:00
"bmi['low'] = fuzzy.zmf(bmi.universe, 0, 19)\n",
"bmi['normal'] = fuzzy.trimf(bmi.universe, [18, 20, 25])\n",
"bmi['hight'] = fuzzy.smf(bmi.universe, 25, 50)\n",
"\n",
2025-02-16 22:17:42 +04:00
"# гипертония\n",
2025-02-26 17:29:35 +04:00
"hypertension['low'] = fuzzy.zmf(hypertension.universe, 0, 0.6)\n",
"hypertension['high'] = fuzzy.smf(hypertension.universe, 0.4, 1.0)\n",
"\n",
2025-02-16 22:17:42 +04:00
"# пердечный сриступ\n",
2025-02-26 17:29:35 +04:00
"heart_disease['low'] = fuzzy.zmf(heart_disease.universe, 0, 0.6)\n",
"heart_disease['high'] = fuzzy.smf(heart_disease.universe, 0.4, 1.0)\n",
"\n",
"#риск инсульта\n",
"stroke_risk['low'] = fuzzy.zmf(stroke_risk.universe, 0, 0.4)\n",
"stroke_risk['medium'] = fuzzy.trimf(stroke_risk.universe, [0.3, 0.5, 0.7])\n",
"stroke_risk['high'] = fuzzy.smf(stroke_risk.universe, 0.6, 1.0)\n",
2025-02-16 22:17:42 +04:00
"\n",
2025-02-26 17:29:35 +04:00
"\n",
"age.view()\n",
"glucose.view()\n",
"bmi.view()\n",
"hypertension.view()\n",
"heart_disease.view()\n",
"stroke_risk.view()\n",
2025-02-16 22:17:42 +04:00
"\n"
]
2025-02-26 16:44:48 +04:00
},
{
2025-02-26 17:29:35 +04:00
"cell_type": "markdown",
2025-02-26 16:44:48 +04:00
"metadata": {},
2025-02-26 17:29:35 +04:00
"source": [
"<p style=\"margin: 15px;\">\n",
"а теперь формируем базу нечетких правил :D\n",
"</p>\n",
"\n",
"\n",
"<style>\n",
" .blur-text {\n",
" filter: blur(3px);\n",
" transition: filter 0.3s ease-in-out;\n",
" cursor: pointer;\n",
" }\n",
"\n",
" .blur-text.clear {\n",
" filter: blur(0);\n",
" }\n",
"</style>\n",
"\n",
"<p class=\"blur-text\" onclick=\"this.classList.toggle('clear')\" style=\"margin: 15px;\">\n",
" ну.... с написанием правил мне чат гпт помог, я не медик, поэтому... спасибо чату\n",
"</p>"
]
2025-02-26 16:44:48 +04:00
},
{
"cell_type": "code",
2025-02-26 17:38:35 +04:00
"execution_count": null,
2025-02-26 16:44:48 +04:00
"metadata": {},
2025-02-26 17:38:35 +04:00
"outputs": [
{
"ename": "AttributeError",
"evalue": "'ControlSystemVisualizer' object has no attribute 'ctrl'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[36], line 22\u001b[0m\n\u001b[0;32m 19\u001b[0m rule19 \u001b[38;5;241m=\u001b[39m control\u001b[38;5;241m.\u001b[39mRule(heart_disease[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhigh\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m&\u001b[39m glucose[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhight\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m&\u001b[39m bmi[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhight\u001b[39m\u001b[38;5;124m'\u001b[39m], stroke_risk[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mhigh\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[0;32m 20\u001b[0m rule20 \u001b[38;5;241m=\u001b[39m control\u001b[38;5;241m.\u001b[39mRule(heart_disease[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlow\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m&\u001b[39m glucose[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnormal\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m&\u001b[39m bmi[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnormal\u001b[39m\u001b[38;5;124m'\u001b[39m], stroke_risk[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlow\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[1;32m---> 22\u001b[0m \u001b[43mrule1\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mview\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32md:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_7\\.venv\\Lib\\site-packages\\skfuzzy\\control\\rule.py:313\u001b[0m, in \u001b[0;36mRule.view\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 309\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mview\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m 310\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 311\u001b[0m \u001b[38;5;124;03m Show a visual representation of this Rule.\u001b[39;00m\n\u001b[0;32m 312\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 313\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mControlSystemVisualizer\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mview\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32md:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_7\\.venv\\Lib\\site-packages\\skfuzzy\\control\\visualization.py:204\u001b[0m, in \u001b[0;36mControlSystemVisualizer.view\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mview\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m 187\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 188\u001b[0m \u001b[38;5;124;03m View the visualization.\u001b[39;00m\n\u001b[0;32m 189\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 202\u001b[0m \u001b[38;5;124;03m inline.\u001b[39;00m\n\u001b[0;32m 203\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 204\u001b[0m nx\u001b[38;5;241m.\u001b[39mdraw(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mctrl\u001b[49m\u001b[38;5;241m.\u001b[39mgraph, ax\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39max)\n\u001b[0;32m 205\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfig, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39max\n",
"\u001b[1;31mAttributeError\u001b[0m: 'ControlSystemVisualizer' object has no attribute 'ctrl'"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
2025-02-26 17:29:35 +04:00
"source": [
"rule1 = control.Rule(age['aged'] & hypertension['high'], stroke_risk['high'])\n",
"rule2 = control.Rule(age['old'] & hypertension['high'], stroke_risk['high'])\n",
"rule3 = control.Rule(age['middle'] & hypertension['high'] & glucose['hight'], stroke_risk['high'])\n",
"rule4 = control.Rule(age['middle'] & hypertension['high'] & glucose['normal'], stroke_risk['medium'])\n",
"rule5 = control.Rule(age['young'] & hypertension['high'] & glucose['low'], stroke_risk['medium'])\n",
"rule6 = control.Rule(age['young'] & hypertension['low'] & glucose['normal'], stroke_risk['low'])\n",
"rule7 = control.Rule(age['aged'] & glucose['hight'] & bmi['hight'], stroke_risk['high'])\n",
"rule8 = control.Rule(age['old'] & glucose['normal'] & bmi['hight'], stroke_risk['medium'])\n",
"rule9 = control.Rule(age['old'] & glucose['low'] & bmi['low'], stroke_risk['low'])\n",
"rule10 = control.Rule(age['middle'] & bmi['hight'] & glucose['hight'], stroke_risk['high'])\n",
"rule11 = control.Rule(age['young'] & bmi['hight'] & glucose['hight'], stroke_risk['medium'])\n",
"rule12 = control.Rule(age['young'] & bmi['normal'] & glucose['normal'], stroke_risk['low'])\n",
"rule13 = control.Rule(age['aged'] & heart_disease['high'], stroke_risk['high'])\n",
"rule14 = control.Rule(age['old'] & heart_disease['high'], stroke_risk['high'])\n",
"rule15 = control.Rule(age['middle'] & heart_disease['high'], stroke_risk['medium'])\n",
"rule16 = control.Rule(age['young'] & heart_disease['high'], stroke_risk['medium'])\n",
"rule17 = control.Rule(age['aged'] & hypertension['high'] & glucose['hight'] & bmi['hight'], stroke_risk['high'])\n",
"rule18 = control.Rule(age['middle'] & hypertension['low'] & glucose['low'] & bmi['low'], stroke_risk['low'])\n",
"rule19 = control.Rule(heart_disease['high'] & glucose['hight'] & bmi['hight'], stroke_risk['high'])\n",
2025-02-26 17:38:35 +04:00
"rule20 = control.Rule(heart_disease['low'] & glucose['normal'] & bmi['normal'], stroke_risk['low'])\n"
2025-02-26 17:29:35 +04:00
]
2025-02-26 16:44:48 +04:00
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
2025-02-26 17:38:35 +04:00
"outputs": [
{
"ename": "AttributeError",
"evalue": "'ControlSystemVisualizer' object has no attribute 'ctrl'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[37], line 25\u001b[0m\n\u001b[0;32m 1\u001b[0m stroke_ctrl \u001b[38;5;241m=\u001b[39m control\u001b[38;5;241m.\u001b[39mControlSystem([\n\u001b[0;32m 2\u001b[0m rule1, \n\u001b[0;32m 3\u001b[0m rule2, \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 21\u001b[0m rule20,\n\u001b[0;32m 22\u001b[0m ])\n\u001b[0;32m 24\u001b[0m stroke \u001b[38;5;241m=\u001b[39m control\u001b[38;5;241m.\u001b[39mControlSystemSimulation(stroke_ctrl)\n\u001b[1;32m---> 25\u001b[0m \u001b[43mstroke_ctrl\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mview\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32md:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_7\\.venv\\Lib\\site-packages\\skfuzzy\\control\\controlsystem.py:134\u001b[0m, in \u001b[0;36mControlSystem.view\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mview\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m 131\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 132\u001b[0m \u001b[38;5;124;03m View a representation of the system NetworkX graph.\u001b[39;00m\n\u001b[0;32m 133\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 134\u001b[0m fig, ax \u001b[38;5;241m=\u001b[39m \u001b[43mControlSystemVisualizer\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mview\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 135\u001b[0m fig\u001b[38;5;241m.\u001b[39mshow()\n",
"File \u001b[1;32md:\\code\\mai\\labs\\AIM-PIbd-31-Bakalskaya-E-D\\lab_7\\.venv\\Lib\\site-packages\\skfuzzy\\control\\visualization.py:204\u001b[0m, in \u001b[0;36mControlSystemVisualizer.view\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mview\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m 187\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 188\u001b[0m \u001b[38;5;124;03m View the visualization.\u001b[39;00m\n\u001b[0;32m 189\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 202\u001b[0m \u001b[38;5;124;03m inline.\u001b[39;00m\n\u001b[0;32m 203\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 204\u001b[0m nx\u001b[38;5;241m.\u001b[39mdraw(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mctrl\u001b[49m\u001b[38;5;241m.\u001b[39mgraph, ax\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39max)\n\u001b[0;32m 205\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfig, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39max\n",
"\u001b[1;31mAttributeError\u001b[0m: 'ControlSystemVisualizer' object has no attribute 'ctrl'"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGiCAYAAADA0E3hAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGn5JREFUeJzt3XuMFeX9wOGXi4CmgloKCEWpWm9VQUEoIrE21E00WP9oStUAJV5qtcZCWgFREG9YbyGtq0TU6h+1YI0aIwSrVGKsNESQRFvBKCrUyAK1AkUFhfnlnV92y+KCnC27y3f3eZIRZnbmnFnH3fNxZt5z2hVFUSQAgADat/QOAADsLeECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgC03nB56aWX0siRI1Pv3r1Tu3bt0tNPP/2V2yxatCiddtppqXPnzumYY45JjzzySGP3FwBowyoOly1btqT+/fun6urqvVr/3XffTeedd146++yz0/Lly9Mvf/nLdOmll6bnnnuuMfsLALRh7f6XD1nMZ1yeeuqpdMEFF+x2nYkTJ6Z58+alN954o27ZT37yk/Txxx+nBQsWNPapAYA2qGNTP8HixYvTiBEj6i2rqqoqz7zsztatW8up1o4dO9JHH32Uvv71r5exBADs//K5kc2bN5e3l7Rv3z5GuKxduzb17Nmz3rI8v2nTpvTpp5+mAw888EvbzJgxI02fPr2pdw0AaAZr1qxJ3/zmN2OES2NMnjw5TZgwoW5+48aN6Ygjjii/8a5du7bovgEAeyefpOjbt286+OCD077S5OHSq1evVFNTU29Zns8B0tDZliyPPsrTrvI2wgUAYtmXt3k0+fu4DB06NC1cuLDesueff75cDgDQpOHyn//8pxzWnKfa4c7576tXr667zDNmzJi69a+44oq0atWqdO2116YVK1ak++67Lz3++ONp/PjxlT41ANDGVRwur776ajr11FPLKcv3ouS/T506tZz/8MMP6yIm+9a3vlUOh85nWfL7v9x9993pwQcfLEcWAQA02/u4NOfNPd26dStv0nWPCwDE0BSv3z6rCAAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAFp3uFRXV6d+/fqlLl26pCFDhqQlS5bscf2ZM2em4447Lh144IGpb9++afz48emzzz5r7D4DAG1UxeEyd+7cNGHChDRt2rS0bNmy1L9//1RVVZXWrVvX4PqPPfZYmjRpUrn+m2++mR566KHyMa677rp9sf8AQBtScbjcc8896bLLLkvjxo1LJ554Ypo1a1Y66KCD0sMPP9zg+q+88koaNmxYuuiii8qzNOecc0668MILv/IsDQDA/xQu27ZtS0uXLk0jRoz47wO0b1/OL168uMFtzjjjjHKb2lBZtWpVmj9/fjr33HN3+zxbt25NmzZtqjcBAHSsZOUNGzak7du3p549e9ZbnudXrFjR4Db5TEve7swzz0xFUaQvvvgiXXHFFXu8VDRjxow0ffr0SnYNAGgDmnxU0aJFi9Jtt92W7rvvvvKemCeffDLNmzcv3XzzzbvdZvLkyWnjxo1105o1a5p6NwGA1nbGpXv37qlDhw6ppqam3vI836tXrwa3ueGGG9Lo0aPTpZdeWs6ffPLJacuWLenyyy9PU6ZMKS817apz587lBADQ6DMunTp1SgMHDkwLFy6sW7Zjx45yfujQoQ1u88knn3wpTnL8ZPnSEQBAk5xxyfJQ6LFjx6ZBgwalwYMHl+/Rks+g5FFG2ZgxY1KfPn3K+1SykSNHliORTj311PI9X95+++3yLExeXhswAABNEi6jRo1K69evT1OnTk1r165NAwYMSAsWLKi7YXf16tX1zrBcf/31qV27duWfH3zwQfrGN75RRsutt95a6VMDAG1cuyLA9Zo8HLpbt27ljbpdu3Zt6d0BAFro9dtnFQEAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEDrDpfq6urUr1+/1KVLlzRkyJC0ZMmSPa7/8ccfp6uuuiodfvjhqXPnzunYY49N8+fPb+w+AwBtVMdKN5g7d26aMGFCmjVrVhktM2fOTFVVVWnlypWpR48eX1p/27Zt6Qc/+EH5tSeeeCL16dMnvf/+++mQQw7ZV98DANBGtCuKoqhkgxwrp59+err33nvL+R07dqS+ffumq6++Ok2aNOlL6+fAufPOO9OKFSvSAQcc0Kid3LRpU+rWrVvauHFj6tq1a6MeAwBoXk3x+l3RpaJ89mTp0qVpxIgR/32A9u3L+cWLFze4zTPPPJOGDh1aXirq2bNnOumkk9Jtt92Wtm/fvtvn2bp1a/nN7jwBAFQULhs2bCiDIwfIzvL82rVrG9xm1apV5SWivF2+r+WGG25Id999d7rlllt2+zwzZswoC612ymd0AACafFRRvpSU72954IEH0sCBA9OoUaPSlClTyktIuzN58uTytFLttGbNmqbeTQCgtd2c271799ShQ4dUU1NTb3me79WrV4Pb5JFE+d6WvF2tE044oTxDky89derU6Uvb5JFHeQIAaPQZlxwZ+azJwoUL651RyfP5PpaGDBs2LL399tvlerXeeuutMmgaihYAgH12qSgPhZ49e3Z69NFH05tvvpl+/vOfpy1btqRx48aVXx8zZkx5qadW/vpHH32UrrnmmjJY5s2bV96cm2/WBQBo0vdxyfeorF+/Pk2dOrW83DNgwIC0YMGCuht2V69eXY40qpVvrH3uuefS+PHj0ymnnFK+j0uOmIkTJ1b61ABAG1fx+7i0BO/jAgDxtPj7uAAAtCThAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQAIQ7gAAGEIFwAgDOECAIQhXACAMIQLABCGcAEAwhAuAEAYwgUACEO4AABhCBcAIAzhAgCEIVwAgDCECwAQhnABAMIQLgBAGMIFAAhDuAAAYQgXACAM4QIAhCFcAIAwhAsAEIZwAQDCEC4AQBjCBQBo3eFSXV2d+vXrl7p06ZKGDBmSlixZslfbzZkzJ7Vr1y5dcMEFjXlaAKCNqzhc5s6dmyZMmJCmTZuWli1blvr375+qqqrSunXr9rjde++9l371q1+l4cOH/y/7CwC0YRWHyz333JMuu+yyNG7cuHTiiSemWbNmpYMOOig9/PDDu91m+/bt6eK
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
2025-02-26 17:29:35 +04:00
"source": [
"stroke_ctrl = control.ControlSystem([\n",
" rule1, \n",
" rule2, \n",
" rule3,\n",
" rule4,\n",
" rule5,\n",
" rule6,\n",
" rule7,\n",
" rule8,\n",
" rule9,\n",
" rule10,\n",
" rule11,\n",
" rule12,\n",
" rule13,\n",
" rule14,\n",
" rule15,\n",
" rule16,\n",
" rule17,\n",
" rule18,\n",
" rule19,\n",
" rule20,\n",
2025-02-26 17:38:35 +04:00
" ])\n",
"\n",
"stroke = control.ControlSystemSimulation(stroke_ctrl)"
2025-02-26 17:29:35 +04:00
]
2025-02-26 16:44:48 +04:00
},
2025-02-26 17:38:35 +04:00
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
2025-02-26 16:44:48 +04:00
{
2025-02-26 17:29:35 +04:00
"cell_type": "markdown",
2025-02-26 16:44:48 +04:00
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
2025-02-16 22:17:42 +04:00
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}