arnikdehnavi's picture
Update app.py
5915085
raw
history blame contribute delete
No virus
13.3 kB
import streamlit as st
import plotly.graph_objects as go
import skfuzzy as fuzz
from skfuzzy import control as crt
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as ml
import streamlit as st
import math
from mpl_toolkits.mplot3d import Axes3D
import streamlit as st
st.title('Schematic Design !')
tanasobat=crt.Antecedent(np.arange(0,3.05,0.05),'c')
jahat=crt.Antecedent(np.arange(0,25.1,0.1),'a')
jerm_hararati=crt.Antecedent(np.arange(0,4185.1,0.1),'b')
feshordegi=crt.Antecedent(np.arange(0,1,0.01),'d')
ertefa=crt.Antecedent(np.arange(2.3,10.001,0.001),'e')
WWR=crt.Antecedent(np.arange(0,1.001,0.001),'f')
emtiaz_HH=crt.Consequent(np.arange(-4,24.01,0.01),'score')
g1=st.sidebar.radio('climate',['hot and humid','hot and dry','cold','moderate and humid'])
jahat['low']=fuzz.trimf(jahat.universe,[0,5,12])
jahat['medium']=fuzz.trimf(jahat.universe,[5,12,17.5])
jahat['re_hight']=fuzz.trimf(jahat.universe,[12,17.5,25])
jahat['high']=fuzz.trimf(jahat.universe,[17.5,25,25])
jerm_hararati['low']=fuzz.trapmf(jerm_hararati.universe,[0,0,1500,1600])
jerm_hararati['medium']=fuzz.trapmf(jerm_hararati.universe,[1500,2000,3000,3500])
jerm_hararati['high']=fuzz.trapmf(jerm_hararati.universe,[3000,3500,4185,4185])
tanasobat['low']=fuzz.trapmf(tanasobat.universe,[0,1.1,1.3,1.4])
tanasobat['medium']=fuzz.trapmf(tanasobat.universe,[1.2,1.4,1.6,1.7])
tanasobat['high']=fuzz.trapmf(tanasobat.universe,[1.6,1.7,3,3])
feshordegi['low']=fuzz.trapmf(feshordegi.universe,[0,0.2,0.5,0.6])
feshordegi['medium']=fuzz.trapmf(feshordegi.universe,[0.5,0.6,0.8,0.85])
feshordegi['high']=fuzz.trapmf(feshordegi.universe,[0.8,0.85,1,1])
ertefa['low']=fuzz.gbellmf(ertefa.universe,0.3,6,2.4)
ertefa['medium']=fuzz.gbellmf(ertefa.universe,0.2,6,3)
ertefa['high']=fuzz.smf(ertefa.universe,3.2,3.6)
WWR['low']=fuzz.gbellmf(WWR.universe,0.05,4,0.15)
#WWR['medium']=fuzz.gbellmf(WWR.universe,0.05,6,0.25)
WWR['RE_high']=fuzz.gbellmf(WWR.universe,0.05,4,0.30)
WWR['high']=fuzz.smf(WWR.universe,0.35,0.45)
emtiaz_HH['awful']=fuzz.gaussmf(emtiaz_HH.universe,0,1)
emtiaz_HH['bad']=fuzz.gaussmf(emtiaz_HH.universe,4,1)
emtiaz_HH['not_bad']=fuzz.gaussmf(emtiaz_HH.universe,8,1)
emtiaz_HH['good']=fuzz.gaussmf(emtiaz_HH.universe,12,1)
emtiaz_HH['very_good']=fuzz.gaussmf(emtiaz_HH.universe,16,1)
emtiaz_HH['excelent']=fuzz.gaussmf(emtiaz_HH.universe,20,1)
r1=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['excelent'])
r2=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['very_good'])
r3=crt.Rule(jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['very_good'])
r4=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['very_good'])
r5=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['very_good'])
r6=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['very_good'])
r7=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['very_good'])
r8=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r9=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r10=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r11=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r12=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['good'])
r13=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r14=crt.Rule(jahat['low']&~jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r15=crt.Rule(jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r16=crt.Rule(jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['good'])
r17=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r18=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r19=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['good'])
r20=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['good'])
r21=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['good'])
r22=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['good'])
r23=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r24=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r25=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r26=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r27=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r28=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r29=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r30=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r31=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r32=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r33=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r34=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r35=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r36=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r37=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['not_bad'])
r38=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r39=crt.Rule(jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['not_bad'])
r40=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&WWR['RE_high'],emtiaz_HH['bad'])
r41=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['bad'])
r42=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r43=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['bad'])
r44=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r45=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r46=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['bad'])
r47=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r48=crt.Rule(~jahat['low']&jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r49=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['bad'])
r50=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r51=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r52=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r53=crt.Rule(jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['bad'])
r53=crt.Rule(jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['awful'])
r54=crt.Rule(~jahat['low']&jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['awful'])
r55=crt.Rule(~jahat['low']&~jerm_hararati['low']&tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['awful'])
r56=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['awful'])
r57=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&ertefa['high']&~WWR['RE_high'],emtiaz_HH['awful'])
r58=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&WWR['RE_high'],emtiaz_HH['awful'])
r59=crt.Rule(~jahat['low']&~jerm_hararati['low']&~tanasobat['high']&~feshordegi['low']&~ertefa['high']&~WWR['RE_high'],emtiaz_HH['awful'])
cs=crt.ControlSystem([r1,
r2,
r3,
r4,
r5,
r6,
r7,
r8,
r9,
r10,
r11,
r12,
r13,
r14,
r15,
r16,
r17,
r18,
r19,
r20,
r21,
r22,
r23,
r24,
r25,
r26,
r27,
r28,
r29,
r30,
r31,
r32,
r33,
r34,
r35,
r36,
r37,
r38,
r39,
r40,
r41,
r42,
r43,
r44,
r45,
r46,
r47,
r48,
r49,
r50,
r51,
r52,
r53,r54,r55,r56,r57,r58,r59])
cs1=crt.ControlSystemSimulation(cs)
width=st.sidebar.slider("width",min_value=1,max_value=10,step=1,value=5)
length=st.sidebar.slider("length",min_value=1,max_value=10,step=1,value=8)
c1=cs1.input['c']=length/width
a1=cs1.input['a']=st.sidebar.slider("jahat",min_value=0.00,max_value=40.00,step=0.1,value=0.0)
b1=cs1.input['b']=st.sidebar.slider("jerm_hararati",min_value=0.00,max_value=4180.00,step=0.1,value=0.0)
d1=cs1.input['d']=st.sidebar.slider("feshordegi",min_value=0.00,max_value=1.0,step=0.01,value=0.1)
e1=cs1.input['e']=st.sidebar.slider("ertefa",min_value=2.3,max_value=5.00,step=0.01,value=3.31)
height=e1
f1=cs1.input['f']=st.sidebar.slider("wwr",min_value=0,max_value=100,step=5,value=50)
wwr= ((f1 - 1) / 99) * 50 + 50
cs1.compute()
g11=cs1.output['score']
g11=round(g11)
# Create axis
st.metric(label="your fuzzy score", value=g11)
#st.set_option('deprecation.showPyplotGlobalUse', False)
#st.pyplot()
#Create sliders to adjust the dimensions
# Use Plotly to create a 3D cube with the adjusted dimensions
fig = go.Figure(data=[
# Main body of the cube
go.Mesh3d(x=[0, width, width, 0, 0, width, width, 0],
y=[0, 0, length, length, 0, 0, length, length],
z=[0, 0, 0, 0, height, height, height, height],
alphahull=0,
color='#F5DEB3',
opacity=1,
lighting=dict(ambient=0.5, diffuse=0.9, roughness=0.1, specular=0.2, fresnel=0.2),
flatshading=True,
hoverinfo='none'),
# Window surface
go.Mesh3d(x=[width+0.05,width+0.05,width+0.05,width+0.05],
y=[length*(wwr/100), length*(wwr/100), length*(1-wwr/100), length*(1-wwr/100) ],
z=[height*(wwr/100), height*(1-wwr/100), height*(1-wwr/100), height*(wwr/100)],
i=[2, 3, 0, 1, 0, 3],
j=[1, 2, 3, 3, 2, 0],
k=[0, 1, 2, 0, 2, 3],
color='skyblue',
opacity=1,
lighting=dict(ambient=0.5, diffuse=0.9, roughness=0.1, specular=0.2, fresnel=0.2),
flatshading=True,
hoverinfo='none')]
)
fig.update_layout(scene=dict(zaxis=dict(visible=False,range=[0,5],autorange=False),xaxis=dict(visible=False,range=[0,10],autorange=False),yaxis=dict(visible=False,range=[0,10],autorange=False)),width=100,height=800)
# Use Streamlit to display the 3D c ube
st.plotly_chart(fig,use_container_width=True)