Методы определения расчетных длин пригодных для расчетов на устойчивость по СП 16.13330. Ищем, делимся, обсуждаем. - Страница 18
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Архитектура и Строительство > Конструкции зданий и сооружений > Металлические конструкции > Методы определения расчетных длин пригодных для расчетов на устойчивость по СП 16.13330. Ищем, делимся, обсуждаем.

Методы определения расчетных длин пригодных для расчетов на устойчивость по СП 16.13330. Ищем, делимся, обсуждаем.

Ответ
Поиск в этой теме
Непрочитано 09.09.2022, 22:37 1 |
Методы определения расчетных длин пригодных для расчетов на устойчивость по СП 16.13330. Ищем, делимся, обсуждаем.
румата
 
Регистрация: 06.04.2015
Сообщений: 2,753

Эта тема создана с целью поиска и сбора информации по любым из существующих способов и методам определения расчетных длин, а также с целью их обсуждения, критики или формулировок своих собственный методик применительно к расчетам на устойчивость и проверке по предельной гибкости согласно норм РФ и, возможно, других стран.
Просмотров: 149784
 
Непрочитано 29.09.2022, 09:16
#341
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от румата Посмотреть сообщение
В рамках той точнейшей теории по которой эта расчетная длина определена.
Цитата:
Сообщение от румата Посмотреть сообщение
как такой ручной расчет применить к значительно более сложной системе
Это два разных конца одной и той же шутки.

В простой схеме явная ошибка в длине, и причина ошибки, очевидны. А в более сложной, где разные рамы как-то между собой связаны, увидеть, что они друг на друга недостаточно сильно влияют, и их надо разделять на разные расчетные схемы, уже проблема. В идеале сам алгоритм должен ловить такие случаи. Вот алгоритм "по первой форме" прямо требует, чтобы ему "не такие" схемы не подсовывали.

Пример с одиночными стержнями выше показывает, что, начиная с некоторой величины, нелинейный расчет перестает сходиться. И, если предельная нагрузка второй колонны окажется выше, чем нагрузка сходимости для первой, для второй колонны нелинейный счет будет невозможно выполнить физически. Хотя, возможно, это просто глюк Скада. Но, глюк или не глюк, проверить расчетную длину 4.4 может не получиться.

А ручной счет дает тот же ответ, но без нелинейных расчетов в принципе. Он всегда даст ответ, в Скаде или без него.

Надо дальше тестировать взаимодействие форм. Минимум из них берется, или они взаимодействуют как-то, типа корня из суммы квадратов. Нужна схема, где формы очевидно переключаются - например, с ригелем, сползающим вниз, к заделке.

Моя главная проблема пока - дикая трудоемкость создания деформированных схем. Я прошлый раз с бетоном бросил разбираться из-за нее. Как это дело автоматизировать можно, кто знает?
Цитата:
Сообщение от румата Посмотреть сообщение
нелинейный расчет, только годный для простейших систем.
Можно пример системы, где он даст неправильные напряжения? Желательно, не в виде "рассмотрим раму бесконечной длины".
Нубий-IV вне форума  
 
Автор темы   Непрочитано 29.09.2022, 09:20
#342
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Можно пример системы, где он даст неправильные напряжения?
Под "годный" имелось в виду затруднительное его применение при расчетах сложных систем.

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Моя главная проблема пока - дикая трудоемкость создания деформированных схем. Я прошлый раз с бетоном бросил разбираться из-за нее. Как это дело автоматизировать можно, кто знает?
Вам просто нужна программа, которая умеет изменять иделализированную геометрию на слегка деформированную или по результатам расчета на фиктивные боковые нагрузки, или по результатам расчета на упругую устойчивость. RFEM так умеет. Там нет никакой проблемы создать погибь или перекос вспомогательным загружением от которого пойдет в расчет только деформированная геометрия без учета НДС.

----- добавлено через ~7 мин. -----
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Надо дальше тестировать взаимодействие форм. Минимум из них берется, или они взаимодействуют как-то, типа корня из суммы квадратов.
Конечно корень из суммы квадратов. Но зачем это нужно практически - мне не ясно.

----- добавлено через ~12 мин. -----
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Как это дело автоматизировать можно, кто знает?
Можно и для скада автоматизировать. На подобие того, как это сделано в RFEM. Типа перегона результатов деформации узлов в исходную геометрию без изменения нагрузок, нумерации узлов и элементов.

----- добавлено через ~12 мин. -----
Плагином или расширением это дело оформить.
румата вне форума  
 
Непрочитано 30.09.2022, 03:53
#343
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от румата Посмотреть сообщение
Конечно корень из суммы квадратов.
Про "конечно" - смешная шутка. Число форм потери устойчивости бесконечно. Если их сложить под корнем, получится конечный ответ?
Цитата:
Сообщение от румата Посмотреть сообщение
При нелинейном расчете только распределение суммарной нагрузки влияет на критическую силу рамы.
В Скаде и в Старке оно влияет только на нагрузку, при которой нелинейный расчет окончательно развалится. Но в Старке во фронтальном решателе есть галочка "искать решение в закритической области", с ней решение сходится всегда.
Цитата:
Сообщение от румата Посмотреть сообщение
зачем это нужно практически
Любому, кто будет делать нелинейный расчет, это принципиально важно. От того, какие формы заданы в расчет, зависит, какой ответ получится. Примитивнейшие примеры схем, где форм уже две, приведены прямо в этой схеме, мной и IBZ. Надо ли для каждой из колонн задавать свою форму? Можно ли задать все сразу? Нужно ли учесть знаки? Если есть расчеты по двум формам, как из них получить ответ для суммарной? И т.д, и т.п.
  • Схема 1
    Прямой стержень. Нет искривлений - расчет разваливается при Ncr. С галочкой - спокойно идет дальше с прямолинейной осадкой стержня вниз. Как из такого нелинейного расчета определить правильную несущую?
  • Схема 2
    Задано искривление по первой форме. Расчет находит правильную Nu по первой форме, и разваливается на Ncr. Хороший расчет, честный.
  • Схема 3
    Задано искривление по второй форме. Расчет разваливается при Ncr по первой форме. С галочкой - показывает Nu по второй форме. Первая форма в расчете в явном виде никак не появляется. Как по этому расчету понять, что Nu - неправильная?
  • Схема 4
    Искривление по сумме форм. Разваливается при Ncr по первой форме. С галочкой - показывает Nu по первой форме, игнорируя наличие второй. При этом вторая форма наверняка меняет запасы прочности для сечений в четвертях, мне лень проверять вручную за Старком.
Это называется "искривление не влияет на нелинейный расчет"?
Миниатюры
Нажмите на изображение для увеличения
Название: Формы.png
Просмотров: 557
Размер:	11.4 Кб
ID:	250177  
Вложения
Тип файла: zip Test-Stark.zip (1.3 Кб, 22 просмотров)
Нубий-IV вне форума  
 
Непрочитано 03.10.2022, 02:44
1 | #344
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от румата Посмотреть сообщение
Плагином или расширением это дело оформить.
Хорошая мысль должна быть материальна:

Код:
[Выделить все]
 
#include <Windows.h>
#include <SCADAPIX.hxx>
#include <iostream>
#include <string>


class UserInput {
public:
	UserInput();
	
	bool PromptLoad(UINT nLoads);
	bool PromptForm(UINT nForms);
	bool PromptFactor();

	UINT Load();
	UINT Form();
	double Factor();
private:
	UINT load;
	UINT form;
	double factor;
};

UserInput::UserInput()
{
	load = 0;
	form = 0;
	factor = 0.0;
}

bool UserInput::PromptLoad(UINT nLoads)
{
	for (;;) {
		std::string userInput;

		switch (nLoads) {
		case 0:
			std::cout << "\tНет загружений [Enter]: ";
			break;
		case 1:
			std::cout << "Номер загружения или [Enter] (1): ";
			break;
		default:
			std::cout << "Номер загружения или [Enter] (1-" << nLoads << "): ";
			break;
		}

		std::getline(std::cin, userInput);

		if (nLoads == 0   ||   userInput.empty()) {
			this->load = 0;
			return false;
		}

		try {
			UINT load = std::stoul(userInput);
			if (load > 0 && load <= nLoads) {
				this->load = load;
				return true;
			}
		}
		catch (const std::invalid_argument&) {}
		catch (const std::out_of_range&) {}
	}
}

bool UserInput::PromptForm(UINT nForms)
{
	for (;;) {
		std::string userInput;

		switch (nForms) {
		case 0:
			std::cout << "\tНет вычисленных форм [Enter]: ";
			break;
		case 1:
			std::cout << "\tНомер формы или [Enter] (1): ";
			break;
		default:
			std::cout << "\tНомер формы или [Enter] (1-" << nForms << "): ";
			break;
		}

		std::getline(std::cin, userInput);

		if (nForms == 0   ||   userInput.empty()) {
			this->form = 0;
			return false;
		}

		try {
			UINT form = std::stoul(userInput);
			if (form > 0 && form <= nForms) {
				this->form = form;
				return true;
			}
		}
		catch (const std::invalid_argument&) {}
		catch (const std::out_of_range&) {}
	}
}

bool UserInput::PromptFactor()
{
	for (;;) {
		std::string userInput;
		std::cout << "\t\tМножитель: ";

		std::getline(std::cin, userInput);

		try {
			double factor = std::stod(userInput);
			this->factor = factor;
			return true;
		}
		catch (const std::invalid_argument&) {}
		catch (const std::out_of_range&) {}
	}
}

UINT UserInput::Load()
{
	return load;
}

UINT UserInput::Form()
{
	return form;
}

double UserInput::Factor()
{
	return factor;
}


struct Coordinate {
	double x;
	double y;
	double z;
};


struct Displace {
	double x;
	double y;
	double z;
};


class ScadProject {
public:
	ScadProject();
	
	bool Read();
	bool Write();

	UINT Loads();
	UINT Forms(UINT load);

	bool AddDisplace(UINT load, UINT form, double factor);

	bool IsChanged();
private:
	ScadAPI hScadProject;
	char* workDir;
	UINT nNodes;
	Coordinate* originalCoordinates;
	Displace* displaces;
	bool isChanged;

	bool InitWorkDir();

	bool InitHandle();
	bool ReadProject();
	bool WriteProject();
	bool ReadResults();
	bool GetNodesNumber();
	bool AllocateCoordinates();
	bool AllocateDisplaces();
	
	bool SaveOriginalCoordinates();
	bool SetZeroDisplaces();

	bool FindStr(UINT load, UINT form, UINT* pStr);
	bool AddDisplacesToProjectCoordinates();
};

ScadProject::ScadProject()
{
	hScadProject = 0;
	workDir = 0;
	nNodes = 0;
	originalCoordinates = 0;
	displaces = 0;
	isChanged = false;

	InitWorkDir();
}

bool ScadProject::Read()
{
	return
		InitHandle() &&
		ReadProject() &&
		ReadResults() &&
		GetNodesNumber() &&
		AllocateCoordinates() &&
		AllocateDisplaces() &&
		SaveOriginalCoordinates() &&
		SetZeroDisplaces();
}

bool ScadProject::Write()
{
	isChanged = false;
	return
		AddDisplacesToProjectCoordinates() &&
		WriteProject() &&
		SetZeroDisplaces();
}

UINT ScadProject::Loads()
{
	return ApiGetQuantityLoad(hScadProject);
}

UINT ScadProject::Forms(UINT load)
{
	return ApiGetQuantityLoadStr(hScadProject, API_RESULT_STABIL, load);
}

bool ScadProject::FindStr(UINT load, UINT form, UINT* pStr)
{
	for (UINT str = 1; ; str++) {
		ApiLoadingData data = { 0 };

		if (ApiGetResultData(hScadProject, API_RESULT_LOAD, 1, str, &data) != APICode_OK) {
			*pStr = 0;
			return false;
		}

		if (data.TypeInf == 0 &&
			data.TypeLoad == 0 &&
			data.TypeEnvelope == 0 &&
			data.NumLoad == 0 &&
			data.NumSchemUnite == 0 &&
			data.NumLoadSchemUnite == 0 &&
			data.NumStep == 0 &&
			data.NumFixedStep == 0 &&
			data.QuantityForm == 0 &&
			data.NumForm == 0 &&
			data.Value == 0.0 &&
			data.ProcMassX == 0.0 &&
			data.ProcMassY == 0.0 &&
			data.ProcMassZ == 0.0 &&
			data.Name == 0 &&
			data.Comb == 0) 
		{
			*pStr = 0;
			return false;
		}

		if (data.TypeInf != API_RESULT_STABIL)
			continue;

		if (data.TypeEnvelope != ApiDYN_STAB)
			continue;

		if (data.NumLoad != load)
			continue;

		if (data.NumForm != form)
			continue;

		*pStr = str;
		isChanged = true;
		return true;
	}
}

bool ScadProject::AddDisplacesToProjectCoordinates()
{
	for (UINT node = 1; node <= nNodes; node++) {
		double x = originalCoordinates[node].x + displaces[node].x;
		double y = originalCoordinates[node].y + displaces[node].y;
		double z = originalCoordinates[node].z + displaces[node].z;

		if (ApiNodeUpdate(hScadProject, node, x, y, z) != APICode_OK)
			return false;
	}

	return true;
}

bool ScadProject::AddDisplace(UINT load, UINT form, double factor)
{
	UINT str;
	if (!FindStr(load, form, &str))
		return false;

	for (UINT node = 1; node <= nNodes; node++) {
		double* pDisplace = ApiGetDisplace(hScadProject, 1, str, node);
		if (!pDisplace)
			return false;

		displaces[node].x += pDisplace[0] / 1000.0 * factor;
		displaces[node].y += pDisplace[1] / 1000.0 * factor;
		displaces[node].z += pDisplace[2] / 1000.0 * factor;
	}

	return true;
}

bool ScadProject::IsChanged()
{
	return isChanged;
}

bool ScadProject::InitHandle()
{
	if (ApiCreate(&hScadProject) != APICode_OK)
		return false;

	return true;
}

bool ScadProject::InitWorkDir()
{
	workDir = new char[MAX_PATH];
	GetPrivateProfileString("SCAD", "SWORK", "C:\\SWORK", workDir, MAX_PATH, ".\\ScadSFormsExport.ini ");

	return true;
}

bool ScadProject::ReadProject()
{
	if (ApiReadProject(hScadProject, 0) != APICode_OK)
		return false;

	return true;
}

bool ScadProject::WriteProject()
{
	if (ApiWriteProject(hScadProject, 0) != APICode_OK)
		return false;

	return true;
}

bool ScadProject::ReadResults()
{
	UnitsAPI units[] = { { "m", 1 }, { "T", 1 } };

	if (ApiInitResult(hScadProject, units, workDir) != APICode_OK)
		return false;

	return true;
}

bool ScadProject::GetNodesNumber()
{
	nNodes = ApiGetQuantityNode(hScadProject);

	return true;
}

bool ScadProject::AllocateCoordinates()
{
	originalCoordinates = new Coordinate[(size_t)nNodes + 1];

	return true;
}

bool ScadProject::AllocateDisplaces()
{
	displaces = new Displace[(size_t)nNodes + 1];

	return true;
}

bool ScadProject::SaveOriginalCoordinates()
{
	for (UINT node = 1; node <= nNodes; node++) {
		LPCNodeApi pNodeApi = ApiGetNode(hScadProject, node);
		if (!pNodeApi)
			return false;

		originalCoordinates[node].x = pNodeApi->x;
		originalCoordinates[node].y = pNodeApi->y;
		originalCoordinates[node].z = pNodeApi->z;
	}

	return true;
}

bool ScadProject::SetZeroDisplaces()
{
	for (UINT node = 1; node <= nNodes; node++) {
		displaces[node].x = 0.0;
		displaces[node].y = 0.0;
		displaces[node].z = 0.0;
	}

	return true;
}


int main()
{
	setlocale(LC_ALL, "Russian");
	setlocale(LC_NUMERIC, "C");

	ScadProject sp;
	UserInput ui;

	if (sp.Read())
		for (;;) {
			while (ui.PromptLoad(sp.Loads())) {
				while (ui.PromptForm(sp.Forms(ui.Load()))   &&   ui.PromptFactor()) {
					sp.AddDisplace(ui.Load(), ui.Form(), ui.Factor());
				}
			}
			if(sp.IsChanged())
				if (sp.Write())
					std::cout << "Деформированная схема экспортирована." << std::endl << std::endl;
				else
					std::cout << "Ошибка записи проекта." << std::endl << std::endl;
		}
	else
		std::cout << "Ошибка чтения проекта." << std::endl;
}
Во вложении - скомпилированная программа.

Экспортирует из проекта SCAD формы потери устойчивости в виде деформированной схемы. Номера загружений, номера форм и коэффициенты при них - по выбору. Формы экспортируются по отдельности или в любых комбинациях. (Сам Скад экспортирует только одну форму, и из вредности - только первую). Для запуска либо программу положить в папку рядом со Скадом, либо в папку с программой скопировать из папки Скада библиотеки, на нехватку которых программа ругается при запуске (я не стал их архивировать, там под двести метров весу):
libiomp5md.dll
libmmd.dll
mkl_core.1.dll
mkl_intel_thread.1.dll
ProfileXXI.dll
SCADAlien.dll
SCADAPIX.dll
SCADFemBase.dll
SprFEM.dll
SprResult.dll
SprSchema.dll
SprSchemaRc1049.dll
SprTools.dll
Перед запуском настроить в файле ScadSFormsExport.ini путь к каталогу SWORK, иначе результаты расчета никогда не будут обнаруживаться.
Вложения
Тип файла: zip ScadSFormsExport.zip (10.2 Кб, 22 просмотров)
Нубий-IV вне форума  
 
Автор темы   Непрочитано 03.10.2022, 08:45
#345
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Число форм потери устойчивости бесконечно. Если их сложить под корнем, получится конечный ответ?
Для конечного ответа необходимо, как при динамическом расчете, рассмотреть конечное число первых форм.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
В Скаде и в Старке оно влияет только на нагрузку, при которой нелинейный расчет окончательно развалится.
Нагрузка, при которой деформационный расчет начинает идти "вразнос" и есть критическая нагрузка рамы.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Но в Старке во фронтальном решателе есть галочка "искать решение в закритической области", с ней решение сходится всегда.
А это лишнее, закритическое состояние хоть и интересная штука, но не особо пригодная в практике проектирования.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Любому, кто будет делать нелинейный расчет, это принципиально важно. От того, какие формы заданы в расчет, зависит, какой ответ получится.
Понятно, что зависит. Только вот "упругая" ФПУ это абстракция чистой воды. Реальностью является монтажный перекос и допуск на кривизну проката. Они далеко не всегда эквивалентны формам потери устойчивости и их и нужно учитывать в деф. расчете в первую очередь.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Хорошая мысль должна быть материальна:
Обращайтесь, еще есть куча "хороших" мыслей в резерве
румата вне форума  
 
Непрочитано 03.10.2022, 09:14
#346
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от румата Посмотреть сообщение
закритическое состояние хоть и интересная штука, но не особо пригодная в практике проектирования.
Как это не пригодная? Я вот только что начал тестировать расчет в Скаде по формам из программы выше, и сразу обломился. В моей раме 20К1/30К1 не удается получать R=240МПа во второй колонне по старшим формам. Расчет разваливается раньше, после первой формы для рамы. Это означает, что я не могу получить честный поэлементный расчет в нелине. Сейчас вот проплачусь и попробую в Старке посчитать (а он не автоматизируется, и терпение у меня может лопнуть раньше, чем я до ответа доберусь).

Собственно, сама затея поменять нагрузку так, чтобы уменьшить расчетную длину недогруженной колонны (как в статьях), подразумевает, навскидку, пару версий:
  1. Мы для этой колонны как бы берем следующую форму. Вот эту версию я и хотел протестировать, посмотрев несущие способности колонн по следующим формам. Вдруг колонна по своей "родной" форме достигает R раньше, чем по общей: по общей-то нужная деформация сразу не выбрана. КЗУ рамы по первой форме - это R в перегруженной колонне, а у недогруженной резерв; вдруг в нелине его вторая/третья форма обставит.
  2. Мы предполагаем, что нагрузки не растут все пропорционально, а растет только локально нагрузка на одну колонну. Эта версия как раз следующая с списке.
У обеих версий цель либо поймать СП на недооценке в какой-нибудь из схем, либо убедиться, что как раз все работает как надо. В формулах я такое не осилю, так хоть россыпь случайных схем численно сверить можно.
Нубий-IV вне форума  
 
Непрочитано 03.10.2022, 09:50
#347
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,791


Offtop: Подкинуть дровишек, смеха ради..
Определитель шарнирного стержня в МКЭ

Даёт критическую силу

что несколько отлично от Эйлеровой. Примерно в 1,22 раза.
МНП даёт практически Эйлерову.
__________________
Меньше знаешь - крепче зубы.

Последний раз редактировалось Бахил, 03.10.2022 в 13:07.
Бахил вне форума  
 
Автор темы   Непрочитано 03.10.2022, 10:16
#348
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Это означает, что я не могу получить честный поэлементный расчет в нелине.
Поэлементный расчет в нелине при расчете рамы целиком? Сдается Вы, батенька, чего-то не того хотите от нелина. Даже, можно сказать, невозможного хотите.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
В моей раме 20К1/30К1 не удается получать R=240МПа во второй колонне по старшим формам.
Не могу взять в толк зачем заставлять раму работать противоестественно по старшим формам, когда физика и механика сводят эту работу к единственному пути разрушения?
румата вне форума  
 
Непрочитано 03.10.2022, 10:20
#349
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от румата Посмотреть сообщение
зачем заставлять раму работать противоестественно по старшим формам
Тогда любой поэлементный расчет - противоестественный. Как может обеспечиваться прочность по моменту пролете, если не прошла поперечка на опоре? Надо и в проверку момента подставлять нагрузку, найденную обратным путем через поперечную силу. Это критическая сила для балки - по первому сломавшемуся.
Нубий-IV вне форума  
 
Автор темы   Непрочитано 03.10.2022, 10:35
#350
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Тогда любой поэлементный расчет - противоестественный.
Конечно. Противоествественный поэлементный расчет оправдан только тогда, когда его легко выполнить без потери надежности.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Как может обеспечиваться прочность по моменту пролете, если не прошла поперечка на опоре?
Обеспечиваться прочность проленого сечения может. Просто в реальности вся балка разрушится на опоре, т.е. не в том месте.
Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Надо и в проверку момента подставлять нагрузку, найденную обратным путем через поперечную силу.
Надо, только Вы почему-то пытаетесь сделать наоборот. Деф. расчет Вам показывает разрушение по 1-й форме с минимальной критичесой силой(условно прочность на опоре), а Вы от него требуете разрушаться по высшим формам с бОльшей критической силой(нет - ломайся ты не на опоре, а в пролете). Так не бывает в реальности, так бывает только в нормах, когда никто не знает наперед что наступит раньше и проверяются все возможные предельные состояния поперечных сечений без привязки к общей работе балки.

----- добавлено через ~24 мин. -----
Цитата:
Сообщение от Бахил Посмотреть сообщение
Определитель шарнирного стержня в МКЭ

Даёт критическую силу
Где-то ошибка, и матрицы жесткости, из которой вычисляется определитель, не видно.
румата вне форума  
 
Непрочитано 03.10.2022, 13:08
#351
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,791


Цитата:
Сообщение от румата Посмотреть сообщение
Где-то ошибка,
Ну так пересчитай и покажи где.
__________________
Меньше знаешь - крепче зубы.
Бахил вне форума  
 
Автор темы   Непрочитано 03.10.2022, 13:39
#352
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Цитата:
Сообщение от Бахил Посмотреть сообщение
Ну так пересчитай и покажи где.
Хорошо, только для начала свою матрицу покажи.
румата вне форума  
 
Непрочитано 03.10.2022, 14:54
#353
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,791


Продолжаем экзерсисы.
Консольный стержень:

Уже ближе к Эйлеру
__________________
Меньше знаешь - крепче зубы.
Бахил вне форума  
 
Автор темы   Непрочитано 04.10.2022, 10:39
#354
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Цитата:
Сообщение от Бахил Посмотреть сообщение
Продолжаем экзерсисы.
Консольный стержень:
Что означает твоя матрица 2х2? Где в ней твой любимый критический параметр ?
румата вне форума  
 
Автор темы   Непрочитано 04.10.2022, 10:44
#355
румата


 
Регистрация: 06.04.2015
Сообщений: 2,753


Для консольного стержня матрица критического параметра должна выглядеть так
Нажмите на изображение для увеличения
Название: Снимок экрана 2022-10-04 104345.png
Просмотров: 52
Размер:	7.4 Кб
ID:	250253
румата вне форума  
 
Непрочитано 05.10.2022, 02:01
#356
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,071


Цитата:
Сообщение от румата Посмотреть сообщение
Обеспечиваться прочность проленого сечения может. Просто в реальности вся балка разрушится на опоре, т.е. не в том месте.
Колонны в раме тоже разрушаются не в том месте. Однако мы их почему-то равняем под единую нагрузку. Для балки аналогия выглядит так:
Дана нагрузка на балку 10т/м. Момент в пролете 100тм, поперечка на опоре 50т.

Проверяем прочность стенки на опоре на срез, получаем критическую величину Qcr = RA = 10*10 = 100т, коэффициент запаса 2, и критическую нагрузку на балку qcr = 20т/м. Это балка Эйлера.

А момент в пролете Mcr = RW = 10*40 = 400тм, с запасом 4 раза и qcr=40т/м. Не сходится, приводим сечение к эквивалентному, введя коэффициент расчетной длины сечения μ = 0.79. Он показывает, на сколько надо умножить размеры сечения, чтобы критический момент балки Эйлера стал равен моменту реальной балки.

Вот теперь можно проверить прочность по моменту. Момент сопротивления при μ = 0.79 станет равен W=40*0.79^3 = 20, момент Mcr = RW = 10*20 = 200тм, коэффициент запаса 2, критическая нагрузка qcr = 20т/м. Все сходится, все правильно.

Так же можно делать все остальные проверки - прогибы, устойчивости, прочности швов. Они все и всегда покажут запас 2 раза, и критическую нагрузку 40т/м. Чем больше одинаковых проверок, тем больше все сходится, тем больше все правильно.

Цитата:
Сообщение от румата Посмотреть сообщение
Деф. расчет Вам показывает разрушение по 1-й форме с минимальной критичесой силой
Он еще ничего не показал. Старк не автоматизируется, и даже первую версию расчета я получу, возможно, только к концу недели. Но вот запасы системы по высшим формам уже не выпуклые, и уже напоминают объединение нескольких разных форм. Плюс они похожи на область поэлементной прочности нелинейного расчета из поста 162. Например, почему проверка устойчивой прочности по первой форме похожа на проверку устойчивости по третьей?
Миниатюры
Нажмите на изображение для увеличения
Название: 01.PNG
Просмотров: 432
Размер:	13.0 Кб
ID:	250269  
Нубий-IV вне форума  
 
Непрочитано 05.10.2022, 02:55
#357
Ильнур

КМ (+КМД), КЖ (КЖФ)
 
Регистрация: 30.05.2007
Далече
Сообщений: 25,623


Цитата:
Сообщение от Бахил Посмотреть сообщение
... смеха ради...Примерно в 1,22 раза.
Чушь собачья. Где откопал?
__________________
Воскресе
Ильнур вне форума  
 
Непрочитано 05.10.2022, 07:43
#358
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,791


Цитата:
Сообщение от Ильнур Посмотреть сообщение
Чушь собачья. Где откопал?
Да, твой любимый МКЭ.

----- добавлено через ~5 мин. -----
Строительная механика. Динамика и устойчивость сооружений. под ред. Смирнова, 1984. стр. 301, табл. 11.1
__________________
Меньше знаешь - крепче зубы.
Бахил вне форума  
 
Непрочитано 05.10.2022, 16:24
#359
IBZ

Расчетчик МК
 
Блог
 
Регистрация: 06.05.2006
Ростов-на-Дону
Сообщений: 6,573


Цитата:
Сообщение от Бахил Посмотреть сообщение
Строительная механика. Динамика и устойчивость сооружений. под ред. Смирнова, 1984. стр. 301, табл. 11.1
Этот метод носит название "Энергетический метод в форме перемещений". Он впервые предложен В.В. Болотиным в книге «Динамическая устойчивость упругих систем» 1956 года издания (стр. 505 – 513). Этот метод позиционируется как приближенный и не может конкурировать с точными расчётами.
IBZ вне форума  
 
Непрочитано 05.10.2022, 16:56
#360
RsAs


 
Регистрация: 21.07.2022
Сообщений: 155


Большая там погрешность?
RsAs вне форума  
Ответ
Вернуться   Форум DWG.RU > Архитектура и Строительство > Конструкции зданий и сооружений > Металлические конструкции > Методы определения расчетных длин пригодных для расчетов на устойчивость по СП 16.13330. Ищем, делимся, обсуждаем.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В поиске сравнительные таблицы старых (СНиП и пр.) и новых нормативных документов (актуализированные СП) Armin Поиск литературы, чертежей, моделей и прочих материалов 19 25.11.2016 08:27
Как трактовать указания СП 16.13330 "Стальные конструкции"? gdenisn Металлические конструкции 41 20.10.2016 06:37
Обязательные и доброволные нормы Aragorn Прочее. Архитектура и строительство 24 15.12.2014 14:08
Расчет ангара в Scad. Вопрос по коэффициентам расчетных длин для связей. TOWER SCAD 9 15.07.2009 07:46
Коэффициенты расчетных длин в постпроцессоре SCAD Pilot729 SCAD 4 25.12.2006 12:36