Phương pháp tính toán vật liệu đại học Bách Khoa Hà Nội và cách dùng phần mềm ABAQUS Phương pháp tính toán vật liệu đại học Bách Khoa Hà Nội và cách dùng phần mềm ABAQUS Phương pháp tính toán vật liệu đại học Bách Khoa Hà Nội và cách dùng phần mềm ABAQUS Phương pháp tính toán vật liệu đại học Bách Khoa Hà Nội và cách dùng phần mềm ABAQUS
Trang 1Phương pháp tính toán vật liệu
Phép toán cơ bản
Trang 2Nếu số hạng nhập vào có giá trị thập phân thì nó sẽ ra kết quả gần đúng
VD : 1,1/3 + 2/3 = 0,…(giá trị gần đúng)
Trang 3Hằng số toán học cơ bản
Kết quả gần nhất
Trang 4Gắn giá trị
Trang 5Đẳng thức
Trang 6Quy tắc thay thế
Lấy thứ tự phần tử
Trang 7Các hàm
Trang 9Các lệnh thay thế cho hàm
Trang 10Rút gọn, khai triển hàm
Trang 11Tính vi phân, tích phân hàm
Vẽ đồ thị :
Trang 12Lệnh vẽ đồ thị
Trang 14Plot[{Sin[𝑥], Sin[2𝑥], Sin[3𝑥]}, {𝑥, 0,2Pi}]
Trang 15Các lệnh trên đồ thị để vẽ khung, lưới,…
Ví dụ : Plot[Sin[𝑥2], {𝑥, 0,3}, Frame → True] (có khung)
Plot[Sin[𝑥^2], {𝑥, 0,3}, AxesLabel → {"x value", "Sin[x^2]"}] (vẽ đồ thị có tên trục)
Plot[Sin[𝑥^2], {𝑥, 0,3}, Frame → True, GridLines → Automatic] (vẽ đồ thị có lưới tọa độ) Plot[Sin[𝑥^2], {𝑥, 0,3}, AspectRatio → 1] (tỉ lệ chiều cao : chiều rộng của đồ thị là 1:1)
Plot[Sin[𝑥^2], {𝑥, 0,3}, PlotRange → {0,1.2}] ( chỉ lấy của trục tung khoảng từ 0->1.2, cao hơn hoặc âm sẽ k lấy, còn trục hoành thì đã là khoảng của x rồi )
Nếu phải vẽ lại 1 đồ thị nào đó mà cần thay đổi định dạng thì hãy đặt tên cho đồ thị đó rồi xem ở bảng dưới, còn nếu chỉ cần vẽ lại đồ thị trước đó rồi thay đổi định dạng thì chỉ cần Show[%] ( tức là có thể thay tên đồ thị đó bằng %)
Trang 16Vẽ lại đồ thị
Trang 17Vẽ các dãy đồ thị
Trang 18Đồ thị đường đồng mức và mật độ
Trang 19Các thiết lập đường đồng mức, các lệnh trên đồ thị đường đồng mức
Đồ thị mật độ
Mesh->True : Thêm lưới cho đồ thị mật độ
Trang 20Vẽ đồ thị 3D
Trang 21Lệnh không hiển thị màu của đồ thị 3D
Thay thế lệnh Shading :
Cách thêm màu đồ thị :
Trang 22Đồ thị từ bảng dữ liệu
Ví dụ đồ thị từ bảng dữ liệu
Trang 23Nối các điểm trên đồ thị
Ví dụ vẽ bảng từ đồ thị
Trang 24Vẽ đồ thị tham số
Ví dụ về đồ thị tham số
Trang 25Vẽ đồ thị tham số 3D
Ví dụ vẽ tham số 3D
Trang 26Cách bỏ màu đồ thị thay cho lệnh Shading
Cách thêm màu đồ thị
Trang 27Danh sách các hàm biểu diễn đồ thị
Trang 28Các phép toán cơ bản
Trang 29Tính vi phân của 1 hàm số
Trang 30Tính tích phân của một hàm số
Trang 31Ví dụ tính tích phân
Tổng và tích của hàm
Trang 32Ví dụ về tổng và tích của hàm
Sum[𝑥^𝑖 𝑖 ⁄ , {𝑖, 1,5,2}] là i từ 1->5 nhưng với bước nhảy là 2 ( có công thức tổng quát bên trên )
Lệnh để giải phương trình
Trang 33Ví dụ giải phương trình
Lệnh giải bất phương trình
Trang 34Ví dụ giải bất phương trình
Giải phương trình vi phân
Ví dụ phương trình vi phân
Trang 35Dãy số
Trang 36Ví dụ dãy số
Giới hạn của hàm và ví dụ
Trang 37Ký hiệu toán học
Hàm
Trang 38Thủ tục và hàm
Trang 39Ma trận
Trang 40Khai báo ma trận
Trang 43Dạng ma trận ( MatrixForm )
Nhớ cho dấu # xuống dưới chữ a như này a ## để ra như trong mẫu thay vì ra như bên cạnh
Trang 44Giải bộ nghiệm hệ phương trình
Các phép tính vô hướng của ma trận
Ma trận cho vector dòng
Trang 45Bài giải
Trang 48Bài toán 2 :
Trang 50Bài giải :
Bài toán 3 :
Giải :
Trang 51Sau này sẽ thay thế bằng lệnh NMinimize ở trong bản 12.0, còn ở bản hiện tại 7.0 thì cứ dùng lệnh ConstrainedMin
Bài toán 4 :
Giải đề bài trên nhưng tìm max
Giải :
Trang 52→Dùng lệnh Minimize ở ví dụ bên dưới là chuẩn nhất
BVN : Giải bài toán sau
Trang 54Phương pháp đơn hình
Giải bài toán
Tìm max nhưng đổi dấu chuyển về min để cho nó đúng với phương pháp đơn hình dạng chuẩn tắc
Trang 56→Vậy khi bài toán yêu cầu tìm Min, ta sẽ dùng lệnh Minimize, khi bài toán yêu cầu tìm Max, ta sẽ đổi dấu của cả hàm rồi cho hàm chạy về Min rồi dùng lệnh Minimize
Trang 57Giải:
Tối ưu cắt vật liệu dạng thanh
Trang 58Ma trận ràng buộc
Ví dụ : Bài toán cắt thanh sắt, cắt phôi dạng than
Trang 59Liệt kê chương trình tập con như sau :
Trang 60Lệnh thực hiện bài toán
Trang 62Giải theo lệnh ma trận ở page 73 cho dễ nhìn hơn
Trang 63Phần là tính l.n theo đề bài là cần 1800 thanh 4,5; 2150 thanh 3,5;2750 thanh 2,3; còn phần tổng L thì lấy số liệu đã tính
ở trên 120 + 840 + 955 thì cần tổng cộng 1915 thanh sắt 11,7m như đề bài cho, nhân vào rồi chia ra như phép tính sẽ được số vật liệu được sử dụng, và sau đó tính ra số vật liệu không được sử dụng
Ví dụ 2 :
Trang 65Cách cắt trực tiếp sau đó loại bớt số cách và làm tiền đề để dùng cách cắt kết hợp:
Dùng cách cắt kết hợp :
Trang 66Xác định cách cắt tối ưu :
Thay các ràng buộc đẳng thức bằng bất đẳng thức:
Trang 67Dùng lệnh Linear Programming :
Trang 69Ví dụ 3 :
Trang 70Hỏi Yj là đoạn chênh nhau theo trục y trên trục tọa độ từ tâm đường tròn này đến tâm đường tròn kia hay là đoạn từ tâm đến mép thanh sắt vì theo như công thức tính Yj thì có thể Yj là từ tâm đến mép thanh sắt ?
Xi là đường kính
Chương trình như sau :
Trang 71Tính góc :
Trang 72Sau đó xếp lấy chiều dài làm chuẩn :
Hỏi xem lấy chiều dài làm chuẩn khác gì lấy chiều rộng làm chuẩn ?
Trang 73Hỏi xem phần tính x ở ví dụ 2 như nào ? và tại sao biến thành bất đẳng thức mà k đổi dấu
Chương 5 : Bài toán sản xuất đồng bộ
5.1.Mô hình toán học
5.1.1.Bài toán pha trộn
Hợp kim A, hợp kim B, hợp kim C là những hợp kim giữa những phôi kim loại gốc
và những vật liệu cũ chế tạo từ kim loại đó Ví dụ hợp kim A có thể là phôi nhôm kết hợp với những vành xe đạp làm bằng nhôm được nung ra tạo thành hợp kim
A
Giải :
Trang 74Có mô hình toán học với 6 biến :
Giá thành 1kg sản phẩm là :
Từ 3 hàm ràng buộc trên, ta biến đổi thành 6 hàm ràng buộc bất đẳng thức tương
tự page 66 ( tức là từ 1 hàm ràng buộc như trên thì sẽ biến đổi thành 2 hàm ràng buộc bất đẳng thức nên từ đó từ 3 hàm sẽ thành 6 hàm bất đẳng thức ) rồi sau đó
gõ vào Mathematica
Trang 75Giải bằng LinearProgramming ma trận :
Bài toán này có thể dùng được theo lệnh Minimize, còn nếu tìm Max thì phải đổi dấu về tìm Min, nhưng nên dùng theo lệnh ma trận này để nếu như có những bài toán về vecto thì lệnh ma trận mới giải được, và nếu muốn giải lệnh ma trận thì buộc phải chuyển về dạng chuẩn tắc là tìm Min
Ra kết quả đầu tiên là lấy đồng, nhôm và hợp kim A là vì hợp kim A vừa đầy đủ 3 kim loại, vừa có giá thành rẻ nhất, sau đó thì nó mới nhảy đến lấy cái B, rồi sau đó
là lấy C và cứ thể ra phương án càng phía sau càng đắt
5.1.2.Bài toán tổng quát
Bên trên là M1,M2,…Mm chứ không phải Mn Mỗi máy sẽ sản xuất ra các chi tiết khác nhau, và trong 1 đơn vị thời gian thì giả sử máy M3 sẽ sản xuất được a33 chi tiết CT3
Dạng của bài toán :
Trang 76Mô hình bài toán :
Trang 785.3.Thuật toán nhân tử
Xem lại record phút 57 ngày 28/10 để ghi tiếp phần thiếu
6.Đa thức đặc trưng, cách tìm vecto riêng
Trang 79Ví dụ :
với m[[1]] là gọi dòng 1 ra
Các phép tính với vecto
Trang 82Ma trận vuông :
Các hàm với ma trận :
Trang 83Trị riêng của ma trận, vecto riêng
Trang 84Đường chéo ma trận :
Ma trận đối xứng, ma trận Hermitian
Trang 85Ví dụ thực hành :
Trang 86Norm : Độ lớn của vecto
Lệnh phép chiếu trực giao
Ví dụ :
Trang 87Lệnh tạo các dãy số, ma trận
Trang 88Ví dụ :
Trang 89Lệnh các phép tính với ma trận :
Ví dụ :
Trang 91Không gian vecto
Ví dụ
Trang 94Phương pháp xét sự độc lập của hệ vecto
Ví dụ 6 :
Ứng dụng phần mềm Mathematical
Trang 96Vì bị sai A nên phải gõ lại A rồi mới Solve lại
Trang 97Cơ sở và số chiếu
Trang 98Chiều :
Cơ sở chính tắc của 1 số không gian :
Trang 99Không gian đa thức bậc không quá n :
Không gian M(m,n) các ma trận cỡ m.n
Trang 100Định lý:
Trang 101Tọa độ của vecto với một cơ sở :
Ví dụ 1 :
Trang 102Tính chất của vecto
Trang 103Tính chất của điểm
Ứng dụng :
Trang 104Nhân vecto
Để u.(u.v)=0 tức là vecto u phải vuông góc với vecto (u.v)
Trang 105Dùng hàm Cross :
Vậy u.(u.v)=0
Trang 106Công thức tính đạo hàm:
Ví dụ :
Trang 107Ten xơ:
Trang 108Phép tính random
Trang 109Ví dụ :
Trang 110Sparse matrices
Trang 111Ứng dụng : Hệ PTTT
Bài tập:
Trang 112Định lý Fourier:
Trang 113Không gian Vecto
Trang 114Vecto và ma trận giải bài toán hóa học
Trang 115Giải bài toán hành vi cơ nhiệt, vòng tròn Mohr
Trang 121Vòng tròn Mohr và ứng suất
Trang 122Phương trình vòng tròn Mohr
Trang 123Cách dựng vòng tròn Mohr
Trang 124Trạng thái ứng suất phẳng đặc biệt
Trạng thái ứng suất trượt
Trang 125Tích phân
Có 3 loại tích phân
Trang 127Điều kiện tính tích phân
Cách viết kí hiệu tích phân :
Trang 129Tích phân xác định
Vẽ miền tích phân :
Trang 130Hàm nón
Trang 131Chuỗi
Trang 132Tìm thể tích :
Đám mây điện tử
Trang 133NIntegrate
Trang 134Ví dụ :
Trang 135Tính Euler-Maclaurin
Trang 136Chú thích bài tập thi giữa kì :
Quotient là lệnh chia lấy số nguyên
IntegerPart là lấy phần nguyên của đáp án của phương trình, vì lệnh Quotient lúc đấy sẽ k dùng được
Trang 140Ví dụ về chuỗi, hàm số Fourier :
Trang 141Cách khai báo điều kiện của hàm
Nếu cần cách khai báo nào không biết, sử dụng lệnh Help rồi gõ, ví dụ không biết khai báo điều kiện như nào, sử dụng lệnh Help để gõ Condition rồi đọc các ví dụ CMYKColor là bảng màu CMYK
RGBColor sẽ được dùng nhiều hơn với các chỉ số màu của đỏ, xanh lá và xanh biển
Trang 142Hoặc nếu muốn khai báo có kí hiệu tích phân thì có thể khai như sau:
Với aa[n_] là giá trị giống a[n_], chỉ là cách viết khác
Sau đó, ta tạo bảng giá trị :
Cảnh báo màu đỏ là cảnh báo độ chính xác của giá trị vì nó quá bé, chứ không phải là bị sai
Sau đó, định nghĩa cho các số hạng tổng quát :
Đây là theo công thức ban đầu là :
Trang 143Sau đó, định nghĩa hàm Fourier :
Sau khi định nghĩa xong, ta muốn khai triển Fourier theo bậc 2, ta gõ như sau : fourier[2,x]
Sau đó, muốn vẽ đồ thị cho khai triển bậc 2 của Fourier thì làm như sau :
Có thể thay CMYKColor bằng RGBColor, nhưng RGB chỉ cần điền 3 giá trị trong ngoặc vì nó chỉ dựa trên 3 màu là red, green,blue
Trang 144Sau đó, nếu muốn vẽ ra cả 2 đồ thị ban đầu và sau để so sánh, ta gõ :
Hoặc vẽ cả 3 đồ thị mình đã vẽ và đặt tên như sau :
Graphfive chắc là thầy đặt cho Fourier với bậc 5, graphtwo thì là bậc 2, đây chỉ là đặt tên chứ không phải lệnh
Trang 145Tính chuỗi Fourier gồm hàm, biến t, và n là bậc, cái này nên làm trên web
Khai báo f[x] không có điều kiện sau đó khai triển Fourier :
Ví dụ 3 : (trong máy thầy ghi là ví dụ 1)
Trang 146Giải vẽ đồ thị cho 5 số hạng trong chuỗi Fourier
Ví dụ 2 :
Phương trình nhiệt độ, sự phân bố nhiệt độ
Trang 147Bài giải :
Phương trình truyền nhiệt và các điều kiện biên :
u là nhiệt độ sợi dây tại các vị trí x tương ứng
t là thời gian
Điều kiện biên ví dụ như u(0,t)=T0, t>0 có nghĩa là u tại x=0 sẽ bằng T0 với mọi t>0 u(x,0)=f(x),0<x<a, có nghĩa là hàm phân bố nhiệt độ ban đầu tại thời điểm t = 0 và
ở vị tí x0 ban đầu nào đó thì sẽ bằng hàm f(x)
Sau đó, hàm u(x,t) sẽ thu được kết quả biểu diễn như sau :
Trang 148Đây chính là phương trình biểu diễn phân bố nhiệt độ theo chiều dài dây, và nó phụ thuộc thời gian
Ví dụ cụ thể :
Sau đó, giải theo Mathematica
Đầu tiên, ta gắn định nghĩa cho hàm f(x) với biến là x
Dấu gạch dưới là để khai báo có biến là x
Sau đó, vẽ sự phân bố của hàm f(x)
Với x từ 0→1 vì sợi dây dài 1m
Trang 149Từ đồ thị trên, ta thấy nhiệt độ ở 2 đầu sợi dây là 10, ở giữa là 30 độ
Ta có hàm v(x) sẽ bằng 10 luôn vì T0 = Ta nên theo công thức thì trong trường hợp này v(x) sẽ bằng T0 luôn
n = n/a nên ta khai báo cho với biến n như sau :
Với a là chiều dài sợi dây = 1m
Tiếp đó, ta khai báo cho hệ số bn theo công thức tính bn như trên với a=1 :
Sau đó, ta biểu diễn các hệ số trong 1 bảng gồm có hệ số n và bn tương ứng
Trang 150Sau đó, ta xác định hàm u là sự phân bố nhiệt độ theo biến x và t với hệ số n=1 trước
Sau đó, ta định nghĩa hàm u tại n bất kì
Tại hàm u này sẽ phụ thuộc vào thời điểm trước đó, do đó ta cần xác định thời điểm bắt đầu là bao nhiêu, sau đó xác định các giá trị sau phụ thuộc vào các giá trị trước, ví dụ như u[x_,t_,n_] sẽ phụ thuộc vào u[x,t,n-1]
Sau đó, ta hiển thị kết quả tại các thời điểm khác nhau, ví dụ như giá trị của u với
n chạy tự 1→7 với bước tăng là 3
Vậy ta sẽ có u tại n = 1,4,7
Trang 151Giả sử để bước tăng là 1, ta sẽ có 7 giá trị
Sau đó, ta sẽ vẽ đồ thị biểu diễn cho phân bố nhiệt độ trên sợi dây này tại các thời điểm t khác nhau
Với x chạy từ 0→1 và t chạy từ 0→10
Ta sẽ thử trước với t chạy từ 0→1 thôi
Vậy ta sẽ ra 2 đồ thị tại giá trị t=0 và t=1, chỉnh lại PlotRange bằng 30
Ta thấy phần nằm ngang tức là nhiệt độ cao ở giữa đã truyền nhiệt qua 2 đầu
Trang 152Ta sẽ thay đổi t từ 0→0.5 với bước nhảy là 0.1 để ta xem được rõ sự thay đổi qua
6 đồ thị
Vậy tức là dần dần nhiệt độ sẽ hạ thấp dần, tiến đến việc nhiệt độ dần dần giảm
và cuối cùng sẽ bằng nhiệt độ 2 đầu sợi dây
Nếu muốn xem rõ hơn, ta chỉ cần thay đổi t và bước nhảy để nó ra những đồ thị
giảm chậm hơn và rõ hơn, ví dụ có thể lấy t là từ 0→0.2 với bước tăng là 0.05
Khai báo hàm với function
Trang 154Ví dụ :
Để tên là FourierTrigSeries như cũ cũng được
Sau đó, vẽ đồ thị :
Trang 155Có full phần bên trên trong phần tài liệu thầy đã up
Giải phương trình vi phân
Ví dụ vi phân :
Trang 156Dùng câu lệnh Part để lấy kết quả của phương trình trên, để khi tính toán thì nếu mình muốn dùng kết quả đó thì mình sẽ dùng được, còn nếu nó ở trong ngoặc thì
sẽ không dùng được kết quả đó
Ví dụ như ảnh trên, nếu muốn vẽ đồ thị luôn mà không lấy kết quả ra thì sẽ bị lỗi Vậy nếu muốn vẽ đồ thị, ta phải làm như ảnh dưới
Trang 157Lệnh Part là Part[pt, ith] là chọn phần tử thứ i trong phương trình
Trang 158Ngoài lệnh Part, ta có thể tách kết quả như sau :
Nhưng nói chung, ta nên dùng lệnh Part để gọi kết quả ra
Ở lệnh y[t], ta dùng 2 lệnh Part vì từ kết quả thứ 2 trở đi, ta cần gọi như thế để có thể gọi phương trình ban đầu ra, rồi mới lấy kết quả thứ 2 của phương trình
Giải phương trình vi phân và vẽ đồ thị
Trang 159Tuy nhiên, dùng lệnh trên không dùng được nên ta phải gọi ra rồi thế như sau
Đáng nhẽ phải ra x→0, ở đây chắc là nó lỗi gì đó
Vi phân từng phần
Trang 160Ví dụ vi phân từng phần :
Trang 161pt8[[1]] là lệnh trích xuất giống Part, có 2 cách trích xuất như vậy
C[1][t_] là vì không muốn gọi cả tổ hợp (-x+y/xy) ở sau kia ra nên mình khai báo [t_] như vậy để nó thay thế cho cụm (-x+y/xy), rồi khi mình thay thế cái C[1] bằng hàm Sin như đằng sau kia, nó sẽ tự động thay t bằng cụm đó rồi tính như bình thường, tức là Sin[t^2] thì nó sẽ tự động tính là Sin[(-x+y/xy)^2] luôn, nên đặt tên
là t kia cho đỡ dài, còn việc tính hàm đặt tên là fn kia là tính hàm khi C[1] thay thế bằng hàm Sin đó
Sau đó, vẽ đồ thị của hàm đó ra
Trang 162Muốn lưu đồ thị, dùng lệnh Export như sau :
Export[“tên ảnh.pdf,jpg,…”,tên đồ thị hoặc phương trình mình muốn xuất] Export ra file pdf là nét nhất
Trang 163Lệnh để yêu cầu chất lượng ảnh, ví dụ như 2 hình dưới, càng cao thì càng nét
Trang 164Giải phương trình vi phân bằng phương pháp số
Ta thấy theo trường hợp bên dưới, có những phương trình không theo dạng chuẩn của vi phân, nên nó sẽ ra kết quả là hàm DSolve đó, nên ta cần giải bằng phương pháp số, tức là giải phương trình với 1 khoảng của biến x
Trang 165Và vẽ đồ thị cho hàm trên, ta cần thêm Evaluate để vẽ
/.s là trích hàm đó bằng hàm s vừa đặt tên ở trên
Trang 166InterpolatingFunction ở đó là hàm nội suy
Giải hệ phương trình vi phân tầm thường
Trang 167Ví dụ truyền nhiệt trên sợi dây :
Trang 169nghĩa là đạo hàm bậc 2 của u[x,t] theo x (vì là đạo hàm bậc 2
nên mới có 2 chữ x giống như trong phương trình đạo hàm bậc 2 là ) bằng với đạo hàm của u[x,t] theo t
Sau đó, vẽ đồ thị
Ví dụ 2 : Sự tỏa nhiệt
Trang 170Phương trình tỏa nhiệt ở đây là vi phân bậc nhất, có thể tính được theo những ví
dụ bên trên, nhưng ta cần tính hệ số k
B1 : Đầu tiên, ta giải phương trình vi phân bằng lệnh DSolve, đó là phương trình
tỏa nhiệt được gợi ý trong đề bài (là đạo hàm của T theo t, và A là nhiệt độ môi trường = 70 đã được cho), với nhiệt độ nóng chảy ban đầu tại thời gian t=0 là 350
độ C, từ đó ta tìm ra T[t] là nhiệt độ của thanh kim loại phụ thuộc vào thời gian Sau đó, ta gọi T[t] ra bằng lệnh Part Ta thấy, T[t] phụ thuộc vào 2 hệ số là k và t
Trang 171B2 : Tiếp theo, ta giải hệ số k dựa trên dữ liệu đề cho là nhiệt độ của thanh giảm
xuống 275 độ ở thời gian t=0, vậy ta đã biết được T[t]=275, t=20 → từ đó ta giải
ra hệ số k, sau đó ta gọi hệ số k ra bằng lệnh Part để tính
B3 : Tiếp đó, từ hệ số k, ta giải theo yêu cầu đề bài là nhiệt độ giảm xuống 80 độ C
thì tốn bao nhiêu thời gian, vậy ta đã có hệ số k và T[t]=80, từ đó ta tìm ra t cần tìm để thanh kim loại giảm xuống 80 độ C, sau đó gọi t ra bằng lệnh Part
Cách của thầy :
Sau đó, ta sẽ giải được ra k
Trang 172Ví dụ : với phương trinh x 2 -9, ta sẽ xem nó dần hội tụ đến 3 như nào, với
nghiệm x 0 ta đoán là bằng 20
i++ là câu lệnh của vòng lặp for, i nó sẽ tự động tăng thêm 1 sau mỗi 1 vòng lặp