2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|||||||||||
1 | |||||||||||
Matlab 2014 Решение системы уравнений в matlab. Не сходится решение28.01.2020, 12:30. Показов 3890. Ответов 18
Метки нет Все метки)
(
Здравствуйте! решаю такую сичтему уравнений (уравнения Кирхгофа применительно к задаче гидравлики для определения расходов). Решение выводится, однако вылазит сообщение, что задача не сошлась за 1100 итераций. При этом ответы зависят от приближения. Помогите пожалуйста разобраться с fsolve, или может есть другой способ решить их в матлабе?
Вот функция
0
|
28.01.2020, 12:30 | |
Ответы с готовыми решениями:
18
Решение системы дифференциальных уравнений в MATLAB Исследовать совместность и найти общее решение и одно частное решение системы уравнений. Решение не было найдено. Решение системы уравнений |
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
28.01.2020, 14:33 | 2 |
Похоже Ваша система не имеет решения.
Причина скорее всего в том, что указаны неправильные данные в ZZ, Cycles, HH_v. Особенно подозрителен Cycles. При отсутствии описания задачи больше сказать ничего не могу
1
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|||||||||||
28.01.2020, 15:21 [ТС] | 3 | ||||||||||
Спасибо, что откликнулись! Ошибки пока что найти не удалось. Cycles действительно не до конца верный,но если всё таки решите помочь, в полном коде я оставил как мне кажется подробные комментарии. С правильным вручную введённым Cycles тоже не работает.
Я прилагаю изображение со схемой замещения гидравлической сети. В неё чёрными цифрами отмечены сопротивлекния, красными - ветви, синими - контуры(циклы). Каждое сопротивление и напорный элемент задаются соседними контурами. В коде выделяются узлы и контуры для составления уравнений. Уравнения по какой то причине не решаются. Законы Кирхкофа для гидравлической сети 1)Сколько втекает в узел, столько и вытекает 2)сумма падений напора на замкнутом контуре равняется сумме напоров напорных элементов. Последовательные сопротивления в ветви складываются Полный код
Функция из пакета по теории графов
0
|
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
28.01.2020, 16:06 | 4 |
![]() Решение
У Вас в упрощенном виде решения нет, а Вы приводите усложненный вариант получения матрицы Cycles.
При этом не знаете, какой она должна быть. Представьте Вы пытаетесь заставить работать код непонятно как работающий и неизвестно что должный получить в результате. По моему вероятность успеха ничтожна, а если что-то получиться то возможно случайно. У Вас есть трезвая мысль Следовательно перетоки имеют направление (как и ток в эл.схеме), а Вы на схеме направления (расчетные) не поставили. А помните как в 1-ом законе Кирхгофа - втекающие с плюсом, вытекающие с минусом (ну или наоборот, но не в этом дело - главное разные знаки. У Вас Вспомните правила умножения матриц. Кроме этого выражение Возведение в квадрат "съедает" знак, а если Вы помните 2-ой закон Кирхгофа, то знаки падений напряжения на сопротивлениях крайне важны PS А приспособление метода узловых потенциалов не проще было бы?
1
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|
28.01.2020, 16:55 [ТС] | 5 |
Матрицу cycles я задавал вручную, и при этом также решения не было.
По поводу направлений мне казалось что знаки выберутся автоматически по первому закону, а во втором они везде в квадрате, и направление течения на перепад напора(напряжения) влиять не будет. При этом знаки напорных элементов учитываются( забыл указать направление, каждый контур рассматривал по часовой стрелке). Нужно хорошенько обдумать это, вы заставили меня усомниться. О методе узловых потенциалов не слышал, по крайней мере под таким названием. Расскажите пожалуйста, чем он может помочь и в чём заключается?
0
|
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
29.01.2020, 07:30 | 6 |
Ну конечно, в MATLABe Бессонов зашит и как только MATLAB услышит Ваши мысли о 1-ом законе Кирхгофа, он сразу знаки правильно расставит.
Это тянет на великое "открытие" и шнобелевксую премию. Как люди раньше не догадались, что при изменении направления течения жидкости в трубе перепад давлений на концах сохраняется. Интересно а в этом случае как жидкость узнает в какую сторону ей течь по направлению уменьшения давления или навстречу. Думать всегда полезно, и главное попробовать немного вручную посчитать (или посмотреть в отладчике MATLABa) и посмотреть что получается. А так как в мультфильме "Вовка в тридевятом царстве" засунул в печку что попало и как попало - вот тебе и пирожки. Только пирожки сразу видно что фигня, а тут еще и понять это надо. Вы ТОЭ не изучали?
1
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|
29.01.2020, 12:47 [ТС] | 7 |
ТОЭ изучал, но как непрофильный предмет, видать и прозевал.
Вы правы, я действительно не знал, чего хочу получить. Опирался на результаты аналогичной проги в маткаде, которая, как мне казалось, опробирована и не один серьёзный проект на ней рассчитывался, но пока ломал голову и сравнивал результаты, заметил что падения напоров в параллельных ветвях там различны, и соответственно расходы определяются ошибочно. Решил более простую схему. Вы правы, знаки играют роль. Сравнил с результатом расчёта по заведомо верному методу. Почему не сделал так раньше - не знаю. Был уставший и мозг автоматически отбрасывал эту идею. Если интересно, объясню свою ошибку. По первому закону всё действительно подобралось бы, но по второму естественно нет. Я руководствовался ошибочной логикой о том, что контур для записи уравнения по второму закону рассматривается как бы отдельно от остальной сети, а в таком контуре падение напора(всё с одним знаком +) равно приросту напора(со знаками + или - в зависимости от направления действия). Спасибо большое, вы очень помогли. Пойду пытаться автоматизировать выбор направления потока в ветвях.
0
|
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
29.01.2020, 13:42 | 8 |
Обязательно на схеме расставьте предварительные (расчетные) направления перетоков в ветвях. Если в результате расчета получите отрицательную величину перетока, то значит не угадали с направлением перетока.
Это обязательное требование при расчете эл.цепей, да и гидравлических тоже. В этом Вы не правы. Если Все перетоки связанные с узлом все складывать без учета направления(знака) то сумма будет равна только в одном случае, когда все перетоки равны нулю. Поэтому в матрице Cycles должны быть 1(втекает), 0(в этот узел не попадает), -1(вытекает). Тогда все будет получаться. В MATLABe есть функция sign(x) для определения знака числа х. У Вас должно быть что-то типа F(num_ur_Q+1:num_ur_Q+num_ur_H)=sign(Q).*Q.^2*ZZ-HH_v; А совпадение или встречка обхода контура и направления перетока отображаться знаком в ZZ
0
|
416 / 200 / 69
Регистрация: 20.01.2019
Сообщений: 714
|
|
29.01.2020, 13:52 | 9 |
0
|
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
29.01.2020, 14:15 | 10 |
0
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|||||||||||
31.01.2020, 08:34 [ТС] | 11 | ||||||||||
Делал-делал, и сделал, только вот не решается всё равно. Решил вбить систему для такой схемы вручную, и всё равно сходимость не достигается. При этом простая системка работает и решение её даёт верный результат. Несколько часов пытался ошибку найти и никак не получается. Помогите пожалуйста, может ошибку заметите, или я опять что то не учитываю.
Прилагаю код программы и функции под спойлером. Также прилагаю изображения простой и сложной схем с обозначенными направлениями потоков, пронумерованными вевями. (Ветви пронумерованы красным цветом на сложной схеме). Закомментировваны уравнения для простой схемы. Программа Кликните здесь для просмотра всего текста
Функция Кликните здесь для просмотра всего текста
0
|
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
||||||
31.01.2020, 13:05 | 12 | |||||
![]() Решение
Конечно, Вам уже писал
Тоже самое необходимо делать и для описания нагрузочной характеристики насосов. В Вашей схеме гидронасос в 3-ей ветви работает в режиме двигателя, те переток происходит против направления стрелки.
1
|
574 / 363 / 186
Регистрация: 11.01.2019
Сообщений: 1,220
|
|
31.01.2020, 13:16 | 13 |
![]() Решение
kirill1g, крокодил не ловится, не решить задачку... Вероятно причина в отсутствии знака в уравнениях давления. Потери давления на участках (см."гугл") вместо Z*Q^2 должны быть Z*|Q|*Q, чтоб знак учитывался. Давление, как и сила, имеют направление действия.
Добавлено через 4 минуты ну вот, зря старался)
1
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|
31.01.2020, 16:03 [ТС] | 14 |
Эх, знал бы ты сколько я голову ломал! Спасибо тебе! Если для тебя очевидно, разъясни ещё пожалуйста, нужно ли также заменять квадраты неизвестных расходжов в слагаемых, отвечающих за действие напорных элементов? Если тебе не очевидно то думаю сам соображу, просто бошка не варит уже под конец дня)
Добавлено через 15 минут Извините, что на ты обратился. Ещё не заметил второй ответ. Спасибо обоим! Добавлено через 1 минуту А, так в том ответе который я не заметил и был ответ на только что заданный вопрос. Добавлено через 2 минуты Спасибо, что обратили внимание. Но всё же в данном случае не так важно. Задача - универсальный код для сетей любой сложности.
0
|
574 / 363 / 186
Регистрация: 11.01.2019
Сообщений: 1,220
|
|
31.01.2020, 16:45 | 15 |
kirill1g, расскажите о результатах, когда справитесь
![]()
0
|
5445 / 2797 / 562
Регистрация: 07.11.2019
Сообщений: 4,593
|
|
31.01.2020, 22:05 | 16 |
0
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|
03.02.2020, 07:31 [ТС] | 17 |
Погуглил, действительно, это бы несколько ускорило счёт, не знаю вот только, есть ли в этом необходимость. Не знал, что такое существует, спасибо за замечание!
Добавлено через 47 секунд Выложу готовую программу в эту тему ![]()
0
|
![]() ![]() 3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
|
|
03.02.2020, 08:16 | 18 |
В коде #12 это уже было сделано
Слабое звено для автоматизации в данном подходе это составление контурных уравнений.
0
|
2 / 1 / 1
Регистрация: 15.11.2019
Сообщений: 19
|
|
03.02.2020, 14:08 [ТС] | 19 |
Спасибо большое всем за помощь! Вот программка, придумать сеть чтобы она её не решила я не сумел. Проверка на простых сетях сходится с ручным решением другим методом.
0
|
03.02.2020, 14:08 | |
Помогаю со студенческими работами здесь
19
Решение скалярных уравнений в пакете Matlab Решение систем дифференциальных уравнений в MATLAB
Решение системы нелинейных уравнений 8 уравнений – 8 неизвестных переменных Решение системы нелинейных уравнений (для двух уравнений) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Исследование байт-кода Python: подключаем дизассемблер
stackOverflow 19.02.2025
Многие знают, что Python - интерпретируемый язык, но мало кто задумывается о том, что происходит между написанием кода и его выполнением. На самом деле Python использует промежуточное представление. . .
|
Исследование байт-кода Python: компиляторы против интерпретаторов
stackOverflow 19.02.2025
Понимание байт-кода Python - основополагающий аспект для разработчиков, стремящихся глубже понять внутренние механизмы языка и оптимизировать производительность своих программ. Байт-код представляет. . .
|
Comprehensions в Python - что это такое?
stackOverflow 19.02.2025
Когда речь заходит о Python, одной из его самых красивых и мощных возможностей являются списковые включения или comprehensions. Это особые синтаксические конструкции, позволяющие создавать новые. . .
|
Python правда такой медленный? Развенчиваем миф о медлительности
stackOverflow 19.02.2025
Когда речь заходит о выборе языка программирования для нового проекта, вопрос производительности часто становится одним из ключевых факторов. Python, несмотря на свою популярность и простоту. . .
|
Динамические формы в Flask
stackOverflow 19.02.2025
Работа с веб-формами часто требует гибкости в отношении количества полей, которые пользователь может заполнить. Представьте ситуацию, когда вам нужно создать форму для ввода контактных данных, где у. . .
|
Обнаружение объектов в реальном времени на Raspberry Pi с OpenCV и Movidius NCS
stackOverflow 19.02.2025
Технология обнаружения объектов в реальном времени становится все более востребованной в различных областях - от систем безопасности до автономных транспортных средств. Особый интерес представляет. . .
|
где chromium хранит пароли и как их обнулить в пожарном варианте
jigi33 19.02.2025
Where is the chromium browser stores passwords for a sites
где chromium-подобный браузер хранит пароли и как их обнулить в пожарном варианте
(see screenshot)
|
howto get access to external internet resources with kinit
jigi33 19.02.2025
Решение проблемы с необходимостью доп. авторизации по Керберос для автоотработки аутентификации на прокси-сервер
(see screenshot)
|
Отслеживание автомобилей и определение скорости с OpenCV и Python на Raspberry Pi
stackOverflow 19.02.2025
В этой статье мы рассмотрим создание системы отслеживания транспортных средств и определения их скорости с использованием компьютерного зрения и библиотеки OpenCV. Наше решение основано на принципе. . .
|
ENV (environments) valid paths in linux
jigi33 19.02.2025
Environments paths
(see screenshot)
|