Sameman 58 #1 Дата: 26 ноября, 2012 Для своих нужд решил тряхнуть стариной и в Дельфи написать простейший калькулятор деформации, наверное упругой, поскольку в сопромате абсолютный ноль. Хотелось бы не искать формулы по всему инету, может быть, кто в теме подскажет? Интересуют формулы для свободной, защемлённой, консольной заделки балок простейших форм - круга\квадрата и круглой\квадратной же трубы при поперечной одноточечной и продольной нагрузке? Попробовал считать, считаю на калькуляторе, по формуле 3 http://www.chipmaker.ru/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=508170 и http://www.chipmaker.ru/index.php?app=core&module=attach§ion=attach&attach_rel_module=post&attach_id=542963 для стали длиной 0.1 метра и диаметром 0.005 метра(модуль Юнга из Вики - 210 ГПа), при нагрузке в 1 Кг какой-то недостоверный прогиб 0.0792775528976323 метра получается? 0 Поделиться сообщением Ссылка на сообщение
Sameman 58 #2 Дата: 28 ноября, 2012 (изменено) Гм, есть кто-нибудь сведущие, проконсультировать? Или вообще бредовая идея? Это в Hexelon: ((1*gAccel)*0,1^3)/(3*Pi*210000000000*0,0005^4) = 0,0792775528976323 Это в Дельфи\Паскале, то, что вышло: Result.Text := FloatToStr ((rF*rL*rL*rL)/(3*rE*Pi*rD*rD*rD*rD)); Изменено 28 ноября, 2012 пользователем Sameman 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #3 Дата: 28 ноября, 2012 С точки зрения правильности переноса формулы - похоже. А что Вас смущает? 0 Поделиться сообщением Ссылка на сообщение
Sameman 58 #4 Дата: 28 ноября, 2012 79 миллиметров изгиб при жёстко закреплённом стержне? 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #5 Дата: 28 ноября, 2012 может кинете получившийся код целиком? Что-то там с величинами не то значит 0 Поделиться сообщением Ссылка на сообщение
Sameman 58 #6 Дата: 28 ноября, 2012 (изменено) Так по формуле(из источников в посте #1) l=(F*L^3)/(3*E*pi*d^4)(момент инерции сечения для сплошного круга - J = 3.14159*d^4/64 уже в формуле приведён) калькулятор Hexelon тоже самое высчитывает? unit Deform1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg; type TForm1 = class(TForm) Material: TComboBox; Sort: TComboBox; Beam: TComboBox; Image1: TImage; Length: TEdit; Diameter: TEdit; Force: TEdit; Result: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure LengthChange(Sender: TObject); procedure BeamChange(Sender: TObject); procedure SortChange(Sender: TObject); procedure Button1Click(Sender: TObject); procedure DiameterChange(Sender: TObject); procedure ForceChange(Sender: TObject); procedure MaterialChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; sB,sV : Word; rF,rL,rD,rJ,rR: double; rE: double = 210000000000; Pi: double= 3.1415926; implementation {$R *.dfm} procedure TForm1.SortChange(Sender: TObject); begin if Sort.Text = Sort.Items[0] then sV:= 1; if Sort.Text = Sort.Items[1] then sV:= 1; if Sort.Text = Sort.Items[2] then sV:= 1; if Sort.Text = Sort.Items[3] then sV:= 1; if Sort.Text = Sort.Items[4] then sV:= 1; if Sort.Text = Sort.Items[5] then sV:= 1; end; procedure TForm1.BeamChange(Sender: TObject); begin if Beam.Text = Beam.Items[0] then sB:= 1; if Beam.Text = Beam.Items[1] then sB:= 1; if Beam.Text = Beam.Items[2] then sB:= 1; end; procedure TForm1.LengthChange(Sender: TObject); begin rL:= ((StrToFloat(Length.Text))/1000) ; end; procedure TForm1.DiameterChange(Sender: TObject); begin rD:= ((StrToFloat(Diameter.Text))/1000) ; end; procedure TForm1.ForceChange(Sender: TObject); begin rF:= ((StrToFloat(Force.Text))*9.80665) ; end; procedure TForm1.MaterialChange(Sender: TObject); begin if Material.Text = Material.Items[0] then rE:= 210000000000; if Material.Text = Material.Items[1] then rE:= 115000000000; if Material.Text = Material.Items[2] then rE:= 98000000000; if Material.Text = Material.Items[3] then rE:= 100000000000; if Material.Text = Material.Items[4] then rE:= 70000000000; if Material.Text = Material.Items[5] then rE:= 63000000000; if Material.Text = Material.Items[6] then rE:= 116000000000; end; procedure TForm1.Button1Click(Sender: TObject); begin Result.Text := FloatToStr ((rF*rL*rL*rL*1000)/(3*rE*Pi*rD*rD*rD*rD)); // (((rE*rL*rL*rL)/(3*rE*Pi*rD*rD*rD*rD))); end; end. Это уже поправил, чтобы в миллиметрах прогиб выводился. Изменено 28 ноября, 2012 пользователем Sameman 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #7 Дата: 28 ноября, 2012 (изменено) Посмотрел формулу, что там за величина J ? upd нашел в соответсвии с http://www.chipmaker...ttach_id=542963 J = (Pi*d*d*d*d)/64, в коде это не отражено и почему вы не используете формулу полностью? если я ничего не путаю, то должно получиться что-то типа (rF*a*a*a*b*b*b)/(3*E*J*rL*rL*rL), а это уже будет совсем другая величина Изменено 28 ноября, 2012 пользователем Рижанин 0 Поделиться сообщением Ссылка на сообщение
Sameman 58 #8 Дата: 28 ноября, 2012 Потому что там есть множитель размерности приложенного усилия в зависимости от точки приложения усилия ((a^3)*(b^3))/((x^3)*(x^3)) , он легко приводится при равных плечах к виду (((x/2)^3)*((x/2)^3))/((x^3)*(x^3))=1/64 и т.д. до полученного вида. Не использую по причине желания превентивного устранения накапливаемых ошибок - точность и так не ахти какая, по сравнению с Hexelon. 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #9 Дата: 28 ноября, 2012 пересчитываю руками :) Что-то тут не так передается куда-то 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #10 Дата: 28 ноября, 2012 дайте линк на коэффициенты эти самые, похоже дело в них 0 Поделиться сообщением Ссылка на сообщение
Sameman 58 #11 Дата: 28 ноября, 2012 (изменено) Вот. К нему, из Hexelon: ((1*gAccel)*0,1^3)/(3*210000000000*((Pi*0,0005^4)/64))*(((0,05^3)*(0,05^3))/((0,1^3)*(0,1^3))) = 0,0792775528976323 ((0,05^3)*(0,05^3))/((0,1^3)*(0,1^3))=0,015625=1/64 Изменено 28 ноября, 2012 пользователем Sameman 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #12 Дата: 28 ноября, 2012 (изменено) я имел в виду табличные значение этой самой Е :) просто проверить кол-во нулей Понял что это, копаю интернеты Хотя что Вам не нравится? диаметр в пол милиметра - это не самый жесткий стержень получится Модули Юнга проверил, размерность в проге тоже правильная. Так что похоже на правду. посчитал руками для 5 мм, получил 7,92639773531493E-006 Можете проверить модель в Exclel и чем похожем Изменено 28 ноября, 2012 пользователем Рижанин 0 Поделиться сообщением Ссылка на сообщение
Sameman 58 #13 Дата: 28 ноября, 2012 (изменено) Так что похоже на правду. Спрошу счас у наиквалифицированнейшего тут сопроматчика. Помочь, хотя я ему надоел уже с этими 0.5 миллиметрами http://www.chipmaker.ru/topic/95829/ Изменено 28 ноября, 2012 пользователем Sameman 0 Поделиться сообщением Ссылка на сообщение
Рижанин 0 #14 Дата: 28 ноября, 2012 Потом отпишитесь, мне уже самому интересно стало. Но для примера, автомобильный щуп в полмилиметра - довольно гибкая штука 0 Поделиться сообщением Ссылка на сообщение